mirror of
https://github.com/Afilmory/afilmory
synced 2026-02-01 22:48:17 +00:00
- Introduced a comprehensive `DEVELOPMENT.md` guide for contributors and self-hosters, detailing workspace layout and common commands. - Updated `README.md` to include links to the new development guide and improved deployment instructions. - Added new documentation files covering architecture, builder pipeline, configuration, and deployment strategies. - Implemented new storage provider documentation for Backblaze B2, Eagle, GitHub, and local storage options. - Enhanced the UI components with new features, including a navigation context and improved theme handling. - Removed outdated GitHub Action deployment documentation. Signed-off-by: Innei <tukon479@gmail.com>
1.3 KiB
1.3 KiB
Architecture Overview
- apps/web: React 19 + Vite SPA. Consumes
photos-manifest.jsonand thumbnails underapps/web/public. Runs standalone or with injected manifest. - apps/ssr: Next.js 15 wrapper. Injects manifest into HTML for SEO/OG and serves SPA assets. Provides dynamic OG generation.
- packages/builder: Photo pipeline. Syncs from storage (S3/B2/GitHub/local/Eagle), processes images, and writes manifest + thumbnails into the SPA.
- packages/data / packages/utils / packages/hooks / packages/components / packages/ui: Shared data access, utilities, hooks, and design system pieces.
- be/: Backend (Hono) and dashboard apps. Tenant/auth/billing logic lives here; see
docs/backend/*andbe/apps/*/AGENTS.md.
Data Flow
- Builder downloads photos from configured storage.
- Generates thumbnails and
photos-manifest.json(apps/web/src/data/photos-manifest.json). - SPA loads manifest either from the bundled JSON or
window.__MANIFEST__when SSR/backend injects it. - SSR wraps SPA for SEO/OG; backend can also inject manifest for full-server mode.
Key Traits
- Incremental sync to avoid reprocessing unchanged photos.
- Adapter pattern for storage providers.
- Shared types between builder, SPA, and SSR/backends to keep manifest schema aligned.