f67479d7f062e5d4219bab17d478fc9abeff8960
luisdralves
Personal portfolio as a linear scroll gallery. Motion as medium.
Stack
- Next.js 16 — RSC-first
- motion.dev — Scroll-driven animations, spring physics
- Tailwind CSS 4 — Styling
- better-sqlite3 — Visitor counter persistence
- Biome — Linting and formatting
Environment
Copy .env.example to .env and configure:
| Variable | Description |
|---|---|
RATE_MY_SHOTS_URL |
Base URL of the rate-my-shots instance that feeds the photography section (photos, thumbnails, and EXIF) |
HOST_PORT |
Host port the app is published on (default 3000) |
DATA_DIR |
Host directory bind-mounted to /app/data, where the SQLite counter DB lives (default ./data) |
Development
bun install
bun dev
Scripts
| Command | Description |
|---|---|
bun dev |
Development server (Turbopack) |
bun build |
Production build |
bun start |
Production server |
bun lint |
Biome checks |
bun format |
Biome formatting |
Languages
TypeScript
98.9%
CSS
0.6%
Dockerfile
0.4%