Skip to content

About

Self-hosted photo calendar & memory album. Bring your own storage: local disk, S3/R2 or Google Drive. Mobile + web.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

English · Español

Feelingmark logo

Feelingmark

A self-hosted photo calendar and memory album.

Feelingmark walkthrough: calendar, day view and adding photos

Calendar on Android, with photo thumbnails and a video badge Day view with a note and photos at their real proportions Settings: scan the pairing QR, test the connection

A self-hosted photo calendar and memory album. Bring your own storage; Feelingmark brings the order: one calendar, one day at a time.

Built as an open alternative for people who liked apps like Dots Memories but don't want their memories locked into someone else's subscription. Mobile app (Android/iOS) and web client share the same code.

Status: v0.3 — usable day to day; some rough edges remain. Open source and self-hosted: you run your own server and storage. What is planned next: docs/roadmap.md.

Features

  • Calendar view: each day shows its photos; tap a day to open it.
  • Photo date is read from EXIF automatically; if missing, from the file date, and you can always move a photo to another day.
  • Duplicate photos are detected and skipped.
  • Your storage, your rules: files live on a disk you choose (an external drive works). The app never hosts anything for you.
  • Thumbnails generated by your server; the phone app talks to your server over HTTP with a private token.
  • A text note for each day and read-only share links for a month.
  • Albums tab: one automatic album per month, with cover and photo count.
  • Video recap of the month with soft cross-fades and optional music (ffmpeg, Docker/Node servers).
  • Reliable uploads: photos are queued and retried; whatever failed (no network) uploads by itself next time you open the app.
  • Works offline: the calendar shows the last view of each month and the thumbnails you already saw when the server is unreachable.
  • Pair your phone by scanning a QR (one-time code that expires; shown at startup and at /pair).
  • Light/dark mode, English and Spanish (more languages welcome).
  • Storage on a local disk or any S3-compatible service (Cloudflare R2, Backblaze B2, MinIO).

Deploy on Cloudflare Workers + D1 + R2 with one command (guide). Experimental Google Drive storage (guide). Android app: signed APKs on Releases, no store needed (how to install). Reach your server from outside home: docs/exposing.md. Guides: docs/personal-use.md (private server + importing your library), docs/install.md, docs/storage.md. Roadmap: docs/roadmap.md.

Quick start (Docker)

git clone <this repo> && cd feelingmark
echo "AUTH_TOKEN=$(openssl rand -hex 24)" > .env
echo "DATA_DIR=/path/to/your/disk/feelingmark" >> .env   # optional, default ./data
docker compose up -d

Open http://localhost:8787 for the web client. In Settings, enter the server URL and your token. The mobile app connects the same way (use your computer's LAN address, e.g. http://192.168.1.10:8787).

Development

Requires Node 26+ and pnpm.

pnpm install
pnpm test && pnpm typecheck
cd apps/server && AUTH_TOKEN=dev pnpm dev          # API on :8787
cd apps/mobile && pnpm web                         # or: pnpm android

Configuration lives in environment variables; see .env.example. Never commit your .env.

Project layout

  • apps/server — Hono API, SQLite (built-in node:sqlite), storage adapters.
  • apps/mobile — Expo (React Native) app, also exported as the web client.
  • DESIGN.md — visual design system.

Contributing

Issues and PRs are welcome (see CONTRIBUTING and the Code of Conduct). To add a language, copy apps/mobile/src/i18n/en.ts to xx.ts and register it in i18n/index.ts.

Parts of this project were built with the help of an AI assistant.

License

AGPL-3.0

About

Self-hosted photo calendar & memory album. Bring your own storage: local disk, S3/R2 or Google Drive. Mobile + web.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages