| __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
Example 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
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
- Install dependencies
pnpm i - Run
vc devto 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
- Set
NEXT_PUBLIC_HIDE_REPO_LINK = 1to remove footer link to repo - Set
NEXT_PUBLIC_PRO_MODE = 1to enable higher quality image storage - Set
NEXT_PUBLIC_PUBLIC_API = 1to enable a public API available at/api