Release history
Foldergram releases
Instagram-inspired photo and video gallery
All releases
13 shown
- Legacy route aliases continue to work but new canonical routes are preferred.
- Settings changes for stories mode and excluded folders may require a subsequent scan.
- Fallback to original image when preview is missing
- Original media download actions in home feed, post viewer, stories viewer, and reels viewer
- Polished viewer experience: icon tooltips, click‑to‑pause video playback, video folder covers, smoother post switching
Full changelog
Foldergram v1.1.0 brings a solid round of viewer, routing, and library-management improvements.
Highlights:
- Fixed post viewer navigation on
/likes/posts, so previous/next now stays within the liked-posts collection. - Added a fallback to the original image when a generated preview is missing, preventing blank post views.
- Added original media download actions to the home feed, post viewer, stories viewer, and reels viewer.
- Polished the viewer experience with better icon tooltips, click-to-pause video playback, support for video-based folder covers, and smoother post-switching.
- Cleaned up canonical app routes: posts now prefer
/post/:idand folders now prefer/f/:slug, while legacy aliases continue to work. - Expanded Settings with a dedicated
General Settingsarea for stories behavior, feed defaults, and excluded folders. - Added configurable excluded folders for gallery discovery, rescans, and watcher-driven indexing, with support for both
.envconfig and runtime settings. - Clarified when settings changes require a follow-up scan, especially for stories-mode and excluded-folder updates.
- Moved generated previews and thumbnails into a new app-managed storage layout that is no longer tied to the gallery folder structure.
- Added clearer scan progress and migration status messaging, including guidance for older libraries that still need to move to the new derivative layout.
- Compatibility toggle in Settings allows reverting to legacy stories‑as‑folders behavior; use the provided rescan path if needed
- Reserved `AppFolder/stories` support for avatar stories and highlight capsules across scanning, storage, and API surfaces
- Shared `StoriesModal` for opening stories from Home avatars and folder pages
- Settings now includes a unified general settings card with stories mode controls, legacy toggle, migration messaging, and rescan flow
Full changelog
Summary
This release adds end-to-end folder stories and highlights support, fixes Recent feed ordering to stay strictly reverse-chronological, and improves the mobile viewing and settings experience.
Highlights
- Home
Recentfeed now renders in strict reverse-chronological SQL order with no post-query reshuffling or burst balancing. - Added reserved
AppFolder/storiessupport for avatar stories and highlight capsules across scanning, storage, and API surfaces. - Home avatars and folder pages now open stories through a shared
StoriesModal. - Added stories mode controls in Settings, including support for legacy stories-as-folders behavior, migration messaging, and rescan flow.
- Reserved story media is excluded from normal folder, feed, and reels surfaces.
- Improved mobile reels controls and streamlined navigation and settings menus.
- Refactored Settings into a unified general settings card with compact feed selectors and stories toggle.
- Fixed story ID validation plus story retry and error-state handling.
- Added regression coverage for Recent feed ordering and updated tests/docs for the new stories flow.
Notes
This change is designed to preserve existing local gallery behavior while introducing dedicated stories handling. If you were previously using stories as normal folders, the new settings flow provides a compatibility toggle and rescan path.
- Tabbed search in Explore with separate media/folder results, pagination, and recent history
- Reels: video‑first browsing experience with autoplay, vertical navigation, overlays, and anchored info panel
Full changelog
- Improved the mobile media viewer with smoother swipe navigation, a bottom-sheet details panel, more stable modals, and cleaner Highlights and action controls.
- Added tabbed search to Explore with separate media and folder results, pagination, and recent search history, while keeping the default explore grid when no search is entered.
- Introduced Reels, a dedicated video-first browsing experience for local videos with autoplay, smoother vertical navigation, interactive overlays, and an anchored info panel.
- Fixed rotated portrait videos in the home feed, improved feed playback interactions, corrected home feed mode syncing, added regression coverage for feed mode transitions, and documented the
/reelsroute and related settings/API.
- Admin‑only folder rename and description fields that persist across rescans
- “Set as Cover” UI for selecting any image in a folder as its avatar (UI‑selected covers now persist)
- Filesystem‑based folder covers supporting `cover.jpg`, `cover.jpeg`, `cover.png`, `cover.webp`, `cover.gif` with case‑insensitive matching and nested album support
Full changelog
- Added admin-only folder customization: rename folders in-app without changing filesystem names, and add an optional folder description.
- Added admin-only “Set as Cover” from the image viewer to choose any image in a folder as that folder’s avatar.
- Added support for filesystem-based folder covers using
cover.jpg,cover.jpeg,cover.png,cover.webp, orcover.gif. - Cover-file detection now works for nested child albums, not just top-level folders.
- Cover filenames are now treated case-insensitively, so files like
Cover.jpgwork the same ascover.jpg. - Active cover files are hidden from the feed and folder grid so they do not appear as duplicate posts.
- Manual folder names, descriptions, and UI-selected covers now persist across normal rescans and startup scans instead of being overwritten.
- Folder avatars are now clickable on the folder page and open the currently active avatar image in the existing
ImageModal. - Hidden cover images can now still open in the viewer when they are the folder’s active avatar.
- Added an admin-only
Home Feed Defaultsetting underScan & Libraryto choose whether Home opens with Random, Recent, or Rediscover. - The homepage now uses the saved app-wide feed default on first load instead of relying on a hardcoded mode.
Randomremains the single fallback and default when no home-feed preference has been configured yet.- Viewers can still switch feed modes from the Home page without changing the saved admin default.
- Added regression coverage for rescan persistence, child-album cover detection, case-insensitive cover hiding, active-avatar opening behavior, and home-feed default validation/status handling.
- Configurable `DERIVATIVE_MODE=lazy` for on‑demand thumbnail/preview generation
- `IMAGE_DETAIL_SOURCE` to choose between generated previews or streaming originals
- 720p‑class preview generation and optional HD playback via Vidstack players
Full changelog
Features & Improvements
- Lazy Derivative Mode: Added configurable
DERIVATIVE_MODE=lazysupport so large libraries can index first and generate missing thumbnails or previews on demand instead of doing all derivative work upfront. - Image Detail Source: Added
IMAGE_DETAIL_SOURCEso image detail pages can use generated previews or stream originals, depending on how you want to trade off quality vs processing. - Video Playback Upgrade: Improved video handling with better 720p-class preview generation, optional
HDplayback for compatible original MP4 files, and Vidstack-based players in both the home feed and media modal. - Smarter Rebuild Behavior: Updated library-index rebuild and thumbnail regeneration flows to work cleanly with lazy derivatives and reuse cached files where possible.
- Docs & Configuration: Expanded the README and docs to cover lazy derivatives, image detail source behavior, rebuild semantics, and the updated video playback flow.
Bug Fixes
- Lazy Route Stability: Fixed lazy derivative request handling to avoid
ERR_HTTP_HEADERS_SENTerrors during preview/video serving. - Concurrency Guard: Added a generation limit for lazy derivative requests so different missing files do not spawn unbounded concurrent Sharp/FFmpeg work.
- Video UX Polish: Fixed the HD/original playback flow and player behavior so source switching, autoplay, and modal/feed playback behave more reliably.
- Redesigned Settings page with master-detail sidebar and grouped "Danger Zone" actions
- Added official index and playback support for animated WebP media
- Upgraded desktop Image Viewer to Instagram-style shrink-wrap layout with larger close button
Full changelog
Features & Improvements
- Access Control: Implemented a new three-tier security system (Admin, Viewer, Public) to safely manage local and shared gallery access.
- Settings Revamp: Completely redesigned the Settings page with a sleek master-detail sidebar layout and explicitly grouped "Danger Zone" actions.
- Animated WebP: Added official index and playback support for animated WebP media.
- Modal Polish: Upgraded the desktop Image Viewer with an Instagram-style shrink-wrap layout that gracefully hugs portrait photos, alongside a much larger, easier-to-click close button.
- EXIF-data: Added richer EXIF-based image details in the post modal sidebar. Stored in a new internal JSON field and shown only when present.
Bug Fixes
- Mobile Layout: Fixed a mobile rendering issue on the Library page to ensure a smoother browsing experience on smaller screens.
Routine maintenance release for Foldergram.
Changelog
Full Changelog: https://github.com/foldergram/foldergram/compare/v1.0.2...v1.0.3
Routine maintenance release for Foldergram.
Changelog
Full Changelog: https://github.com/foldergram/foldergram/compare/v1.0.1...v1.0.2
Routine maintenance release for Foldergram.
Changelog
Full Changelog: https://github.com/foldergram/foldergram/compare/v1.0.0...v1.0.1
- Local-only architecture with no cloud sync or external API dependencies
- Folder-based library model where direct child folders are treated as albums
- SQLite‑backed feed and folder browsing with generated thumbnails and previews
Full changelog
Foldergram is a local-only photo and video gallery app for browsing folders in an Instagram-inspired layout. It indexes media from a configured gallery root, stores metadata in SQLite, generates thumbnails and previews, and serves over localhost.
Highlights:
- Local-only architecture with no cloud sync, auth, or external API dependency
- Folder-based library model with direct child folders treated as albums
- SQLite-backed feed and folder browsing
- Generated thumbnails and previews for fast browsing
- Image and video support
- Development-time file watching and incremental re-indexing
- Docker support with published GHCR image path
- Frontend with feed, folder views, search and detail viewer
Tech stack:
- Node.js 22
- Express 5 + TypeScript
- Vue 3 + Vite + Pinia
- SQLite via
node:sqlite - Sharp
- FFmpeg / FFprobe
Notes:
- This is the first stable release.
- Recommended container image path:
ghcr.io/foldergram/foldergram