Skip to content

Latest commit

Β 

History

140 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BeReal Studio πŸ“Έ 🎬

Unified, Local-First Desktop Suite for BeReal GDPR Data Exports

Explore your memories in a feed, calendar, and map; restore and export photos; and create music-synchronized recap videos on your own computer.

Latest Release Release Build Status License Windows macOS Linux Privacy


πŸ“₯ Downloads & Installation

Download the official standalone release for your platform from the Latest Release Page:

Platform Format / Architecture Direct Download Link
Windows Windows .exe (64-bit NSIS Setup) ⬇️ Download for Windows (Installer)
Windows Windows .exe (64-bit Standalone) ⬇️ Download for Windows (Portable)
macOS macOS .dmg (Apple Silicon M1/M2/M3/M4) ⬇️ Download for macOS (Apple Silicon .dmg)
macOS macOS .app.tar.gz (Apple Silicon .app Bundle) ⬇️ Download for macOS (.app Bundle)
Linux Linux .AppImage (x86_64 Universal) ⬇️ Download for Linux (.AppImage)
Linux Linux .deb (Debian / Ubuntu x86_64) ⬇️ Download for Linux (.deb)

πŸ’‘ Looking for earlier releases, source archives, or release notes? Explore all GitHub Releases.

Read the plain-language changelog or the full v2.6.0 release notes.


⚑ Prerequisites & External Tools

BeReal Studio is engineered with native Rust algorithms to minimize dependencies. Depending on the features you use:

Tool Status Purpose Installation
FFmpeg Required for Videos Rendering recap videos (.mp4), audio sync, and video PIP compositing. β€’ Windows Windows: winget install Gyan.FFmpeg
β€’ macOS macOS: brew install ffmpeg
β€’ Linux Linux: sudo apt install ffmpeg
ExifTool Optional / Recommended Extended photo and video metadata. Apple Live Photo pairing metadata does not require ExifTool; FFmpeg is required to create its paired .mov. β€’ Windows Windows: winget install OliverBetz.ExifTool
β€’ macOS macOS: brew install exiftool
β€’ Linux Linux: sudo apt install libimage-exiftool-perl

πŸ” You can check and verify your system's FFmpeg and ExifTool status anytime inside BeReal Studio under Settings βš™οΈ β†’ System & Dependencies.


πŸ–ΌοΈ Application Showcase

🏠 Home πŸ“± Memories
Home Dashboard Memories Explorer
πŸ“… Memories calendar πŸ—ΊοΈ Map overview
Memories Calendar Offline Memories map
πŸ“ Photo pins on the map πŸ–ΌοΈ Gallery for a busy place
Memories map with photo pins Map gallery for a busy location

Memories map density

πŸ“Έ Photo processing 🎬 Recap videos
Photo Processing Recap Video Generator

Activity history and active jobs


✨ Key Features

πŸ“± Memories Explorer

  • Browse your archive as photo cards, a monthly calendar, or a continuous feed.
  • Swap the two cameras, move the selfie inset, and play behind-the-scenes clips.
  • Search by caption, date, or place; filter by media type and location.
  • Save one memory as a combined photo or video, an individual camera view, or a motion photo.

πŸ—ΊοΈ Map Viewer

  • See memories with saved locations as photo pins, nearby groups, and a density view. Open a place to browse its photos.
  • Start from a location label on a memory to jump to its spot on the map.
  • The world map works offline. Detailed street tiles are optional with your own MapTiler key; MapTiler receives the viewed area and your IP address, while your photos stay on your device.

πŸ“Έ Photo Processing Suite

  • Restore capture dates, locations, and captions; keep late posts with their correct BeReal day.
  • Export both cameras in picture-in-picture or side-by-side layouts, with the main or selfie camera as the background.
  • Make Samsung or Google motion photos, or Apple Live Photo packages for Mac Photos. Live Photo export needs a behind-the-scenes clip and FFmpeg; see the Mac import guide.
  • Choose a date range and process a batch of photos together.

🎬 Recap Video Generator

  • Turn selected memories into a video paced to your music, with adjustable timing and a waveform preview.
  • Add dates and locations to slides and preview the sequence before rendering.
  • Keep photo batches and video renders running in the background.

πŸ“‹ How to Download Your Archive from BeReal

  1. Open the BeReal mobile app and tap your Profile icon (bottom-right).
  2. Tap the Settings icon (top-right).
  3. Tap Help β†’ Select Contact Us.
  4. Select Ask a Question β†’ Tap Troubleshooting β†’ Tap Other.
  5. Tap Contact Us at the bottom β†’ Select the Topic dropdown.
  6. Select "I'd like to request a copy of my data".
  7. Type a message with at least 10 characters (e.g., "Please provide a copy of my account data") and submit.
  8. BeReal will deliver a secure download link via email containing your official archive ZIP (including posts.json and all media).
  9. Once downloaded, select the ZIP or unzipped folder directly in BeReal Studio.

πŸ› οΈ Prerequisites (For Building from Source)

  1. Rust Toolchain:
    • Install via rustup.rs (Rust 1.78+ recommended).
  2. Package Manager & JavaScript Runtime:
    • Bun (Recommended for ultra-fast startup): Install via bun.sh (powershell -c "irm bun.sh/install.ps1 | iex").
    • NPM / PNPM / Yarn (Fully Supported): Standard Node.js v18+ environment works out-of-the-box.
  3. FFmpeg (For Recap Video & Apple Live Photos):
    • Required for video slideshow encoding, dual-video PIP overlays, and Apple Live Photo MOV creation.
    • Windows: winget install Gyan.FFmpeg or download from ffmpeg.org.
    • macOS: brew install ffmpeg
    • Linux: sudo apt install ffmpeg

πŸš€ Running Locally

You can use Bun (recommended) or NPM / PNPM / Yarn:

Option A: Using Bun (Fastest)

# Install dependencies
bun install

# Start local desktop development server
bun run tauri dev

Option B: Using NPM

# Install dependencies
npm install

# Start local desktop development server
npm run tauri dev

πŸ“¦ Building & Packaging

To compile a self-contained release executable and installer for your operating system:

# With Bun
bun run tauri build

# With NPM
npm run tauri build

Build Artifact Locations:

  • Windows: src-tauri/target/release/bundle/nsis/BeReal Studio_2.6.0_x64-setup.exe or src-tauri/target/release/bereal-studio.exe
  • macOS: src-tauri/target/release/bundle/dmg/BeReal Studio_2.6.0_aarch64.dmg or src-tauri/target/release/bundle/macos/BeReal Studio.app
  • Linux: src-tauri/target/release/bundle/deb/BeReal Studio_2.6.0_amd64.deb or appimage/BeReal Studio_2.6.0_amd64.AppImage

πŸ§ͺ Testing & Verification

# Run Svelte & TypeScript diagnostics
bun run check
# or: npm run check

# Run Rust unit tests and benchmark suite
cargo test --manifest-path src-tauri/Cargo.toml

πŸ—οΈ Architecture & Directory Structure

BeRealStudio/
β”œβ”€β”€ src/                                    # Frontend (SvelteKit SPA + TypeScript)
β”‚   β”œβ”€β”€ app.html                            # Root HTML & Inter font imports
β”‚   β”œβ”€β”€ styles/global.css                   # Custom dark design system tokens & font-faces
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ types.ts                        # TypeScript models & IPC interfaces
β”‚   β”‚   β”œβ”€β”€ tauri.ts                        # Tauri IPC bridge & typed event listeners
β”‚   β”‚   β”œβ”€β”€ stores.ts                       # Svelte reactive state stores
β”‚   β”‚   β”œβ”€β”€ memoriesStore.ts                # Memories explorer state & live compound filtering
β”‚   β”‚   └── fonts.ts                        # Curated built-in font definitions
β”‚   β”œβ”€β”€ components/                         # Reusable UI Component Suite
β”‚   β”‚   β”œβ”€β”€ NavBar.svelte                   # Top navigation bar (Home, Photos, Recap, Settings, About)
β”‚   β”‚   β”œβ”€β”€ Toggle.svelte                   # Animated on/off switch
β”‚   β”‚   β”œβ”€β”€ Slider.svelte                   # Value range slider with value pill
β”‚   β”‚   β”œβ”€β”€ FilePicker.svelte               # Native folder & file dialog wrapper
β”‚   β”‚   β”œβ”€β”€ DateRangePicker.svelte          # Dual date pickers with monthly density histogram
β”‚   β”‚   β”œβ”€β”€ ProgressBar.svelte              # Streaming progress indicator
β”‚   β”‚   β”œβ”€β”€ LogConsole.svelte               # Color-coded live terminal log
β”‚   β”‚   β”œβ”€β”€ ErrorModal.svelte               # Categorized error overlay
β”‚   β”‚   β”œβ”€β”€ FontPicker.svelte               # Curated 7-font dropdown selector
β”‚   β”‚   β”œβ”€β”€ RuleEditor.svelte               # Reverse geocoding rules editor
β”‚   β”‚   └── memories/                       # Memories & Explorer Component Suite
β”‚   β”‚       β”œβ”€β”€ MemoriesGrid.svelte         # Responsive memory card grid & full-height scrubber
β”‚   β”‚       β”œβ”€β”€ CalendarGrid.svelte         # Interactive monthly calendar with sticky navigation
β”‚   β”‚       β”œβ”€β”€ DualCameraFrame.svelte      # Dual-camera frame with click-to-swap & movable PIP
β”‚   β”‚       β”œβ”€β”€ MemoryFeedModal.svelte      # Fullscreen continuous vertical scroll feed
β”‚   β”‚       β”œβ”€β”€ MemoryFilterBar.svelte      # Live compound search & dimension filters
β”‚   β”‚       β”œβ”€β”€ MemoryActionMenu.svelte     # Memory 3-dot dropdown menu
β”‚   β”‚       β”œβ”€β”€ MemoryContextMenu.svelte    # Right-click context menu
β”‚   β”‚       └── ExportMemoryModal.svelte    # Single-memory export dialog (Apple Live Photo & Motion Photo)
β”‚   β”œβ”€β”€ views/                              # Application Primary Views
β”‚   β”‚   β”œβ”€β”€ Home.svelte                     # Main dashboard with hero & feature cards
β”‚   β”‚   β”œβ”€β”€ MemoriesView.svelte             # Native Memories & Calendar Explorer View
β”‚   β”‚   β”œβ”€β”€ ToolkitConfig.svelte            # Photo processing configuration view
β”‚   β”‚   β”œβ”€β”€ RecapperConfig.svelte           # Recap video configuration view with live preview
β”‚   β”‚   β”œβ”€β”€ Activity.svelte                 # Parallel active operations & generation history
β”‚   β”‚   β”œβ”€β”€ Processing.svelte               # Real-time progress & live streaming log view
β”‚   β”‚   β”œβ”€β”€ Complete.svelte                 # Summary metrics, output opener & log exporter
β”‚   β”‚   β”œβ”€β”€ Settings.svelte                 # Global defaults, FFmpeg detection & inspector tools
β”‚   β”‚   └── About.svelte                    # Privacy manifesto, authoring & open source credits
β”‚   └── routes/+page.svelte                 # SPA root page router
β”‚
β”œβ”€β”€ src-tauri/                              # Rust Backend (Tauri v2)
β”‚   β”œβ”€β”€ Cargo.toml                          # Native dependencies (image, img-parts, symphonia, rayon, etc.)
β”‚   β”œβ”€β”€ tauri.conf.json                     # Desktop window & plugin configuration
β”‚   β”œβ”€β”€ capabilities/default.json           # Tauri v2 security capabilities
β”‚   β”œβ”€β”€ tests/
β”‚   β”‚   └── benchmark_suite.rs              # End-to-end performance benchmarking harness
β”‚   └── src/
β”‚       β”œβ”€β”€ main.rs & lib.rs                # Tauri entry & command registration
β”‚       β”œβ”€β”€ state.rs                        # Global state, ProgressEmitter & log buffer
β”‚       β”œβ”€β”€ commands/                       # IPC Command Handlers
β”‚       β”‚   β”œβ”€β”€ archive.rs                  # scan_archive, extract_zip (streaming)
β”‚       β”‚   β”œβ”€β”€ toolkit.rs                  # start_toolkit, cancel_toolkit (Rayon multi-core)
β”‚       β”‚   β”œβ”€β”€ recapper.rs                 # start_recapper, cancel_recapper
β”‚       β”‚   β”œβ”€β”€ explorer.rs                 # load_memories, export_single_memory (Live Photo & Motion Photo)
β”‚       β”‚   β”œβ”€β”€ settings.rs                 # load_settings, save_settings, reset_settings
β”‚       β”‚   β”œβ”€β”€ system.rs                   # show_in_folder, check_ffmpeg, offline geodb, analyze_audio
β”‚       β”‚   └── debug.rs                    # export_debug_log, get_debug_logs
β”‚       β”œβ”€β”€ pipeline/                       # Photo Processing Logic
β”‚       β”‚   β”œβ”€β”€ parser.rs                   # Authoritative dataset fusion & moment registry
β”‚       β”‚   β”œβ”€β”€ image_ops.rs                # Format conversion, PIP & Side-by-Side compositing
β”‚       β”‚   β”œβ”€β”€ exif_writer.rs              # Lossless EXIF & IPTC JPEG segment injection
β”‚       β”‚   β”œβ”€β”€ live_photo.rs               # Apple Photos Live Photo pair (.jpg + .mov) generator
β”‚       β”‚   β”œβ”€β”€ motion_photo.rs             # Samsung SEFH/SEFT binary muxer & GCamera XMP
β”‚       β”‚   β”œβ”€β”€ video_ops.rs                # FFmpeg dual-video PIP overlay
β”‚       β”‚   β”œβ”€β”€ date_filter.rs              # Range filtering & density distribution
β”‚       β”‚   └── cleanup.rs                  # Intermediate artifact cleanup
β”‚       └── recapper/                       # Recap Video Engine
β”‚           β”œβ”€β”€ audio.rs                    # Symphonia audio decoding & waveform analysis
β”‚           β”œβ”€β”€ timing.rs                   # Quadratic ramp / even timing curves
β”‚           β”œβ”€β”€ geocoder.rs                 # Nominatim reverse geocoding & offline GeoDB
β”‚           β”œβ”€β”€ location_rules.rs           # Country-specific location formatting engine
β”‚           β”œβ”€β”€ font_resolver.rs            # Built-in font resolver & disk loader
β”‚           β”œβ”€β”€ frame_renderer.rs           # Image resize & text overlay with shadows
β”‚           └── video_encoder.rs            # Zero-copy raw RGB frame piping to FFmpeg stdin
β”œβ”€β”€ package.json                            # App manifest & dependencies (v2.6.0)
└── README.md                               # User documentation & GDPR guide

πŸ—ΊοΈ Future Roadmap & Upcoming Features

  • πŸ“… Native BeReal-Style Memories & Calendar Viewer (Completed in v2.0.0 & v2.3.0):
    • Monthly Memories Calendar Matrix with day thumbnails, late badges, and retake counters.
    • Interactive Feed & Lightbox with front/back camera click-to-swap and movable PIP.
    • Multi-dimensional search, hierarchical location drawers, and single-memory exports.
    • Smooth 1:1 pointer drag panning and zoom controls for high-res photo and video exploration.
    • Full Video BeReal support with synchronized dual-video playback and Side-by-Side MP4 combining.
  • 🍏 Apple Photos Live Photos Compatibility:
    • Export paired still image (.jpg) and video (.mov) files with matching Apple Content Identifier UUID (MakerApple:17 and com.apple.quicktime.content.identifier). A packaged export imported as one Live Photo on macOS 26.
  • 🎬 Recap Video Library & Gallery Viewer:
    • In-app gallery indexing all rendered recap MP4s with playback preview, waveform scrubber, and quick actions ("Open in Player", "Show in Explorer").

πŸ’– Credits & Open Source Lineage

BeReal Studio is authored and maintained by NotToxel (GitHub Repository).

It unifies, rewrites, and modernizes the core capabilities of three pioneer open-source projects into a single, high-performance desktop application:


πŸ“œ License

Copyright Β© 2026 NotToxel.

BeReal Studio is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See the full license.

You can use, share, and modify the app under that license.

About

BeReal Studio is the cross-platform desktop app to fully manage your BeReal memories from a GDPR export. Providing importing tagging, viewing and generate custom recap videos.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages