| __tests__ | ||
| .vscode | ||
| public | ||
| readme | ||
| src | ||
| .eslintrc.json | ||
| .gitignore | ||
| jest.config.mjs | ||
| next.config.js | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
📷 EXIF Photo Blog
https://github.com/sambecker/exif-photo-blog/assets/169298/4253ea54-558a-4358-8834-89943cfbafb4
Demo App
Features
- Photo upload with EXIF extraction
- Organize photos by tag and camera model
- Infinite scroll
- Built-in auth
- Light/dark mode
- Automatic OG image generation
- Support for Fujifilm film simulations
Installation
1. Deploy to Vercel
- Click Deploy
- Add required storage (Vercel Postgres + Vercel Blob)
- Add environment variables
NEXT_PUBLIC_SITE_TITLE(e.g., My Photos)NEXT_PUBLIC_SITE_DOMAIN(e.g., photos.domain.com)NEXT_PUBLIC_SITE_DESCRIPTION(optional—mainly used for OG meta)
2. Setup Auth
- Generate auth secret
- Add to environment variables:
AUTH_SECRET
- Add admin user to environment variables:
ADMIN_EMAILADMIN_PASSWORD
3. Upload your first photo
- Visit
/admin - Click "Choose File"
- Title your photo
- Click "Create"
4. Develop locally
- Clone code
- Run
pnpm ito install dependencies - Set environment variable
AUTH_URLlocally (not in production) tohttp://localhost:3000/api/url(this is a temporary limitation ofnext-authv5.0) - Run
vc devto start dev server, and utilize Vercel-stored environment variables
5. Add Analytics (optional)
- Open project on Vercel
- Click "Analytics" tab
- Follow "Enable Web Analytics" instructions (
@vercel/analyticsis already part of your project)
6. Optional configuration
NEXT_PUBLIC_PRO_MODE = 1enables higher quality image storageNEXT_PUBLIC_PUBLIC_API = 1enables public API available at/apiNEXT_PUBLIC_OG_TEXT_ALIGNMENT = BOTTOMkeeps OG image text bottom aligned (default is top)NEXT_PUBLIC_HIDE_REPO_LINK = 1removes footer link to repoNEXT_PUBLIC_HIDE_FILM_SIMULATIONS = 1prevents Fujifilm simulations showing up in/gridsidebar
FAQ
Q: My images/content have fallen out of sync with my database and/or my production site no longer matches local development. What do I do?
A: Navigate to /admin/configuration and click "Clear Cache" button.
Q: I'm seeing server-side runtime errors when loading a page after updating my fork. What do I do?
A: Navigate to /admin/configuration and click "Clear Cache" button. If this doesn't help, open an issue.