A modern, password-protected timeline app with admin posting, random color dots, and pixel-perfect UI.
- Pixel-perfect vertical timeline with colored dots
- Admin page with random default color for each new update
- Password protection for both timeline and admin
- Timeline only at
/, admin only at/admin - No
/timelineroute - Browser password managers discouraged from saving real passcode
- Install dependencies:
npm install
- Set up your local database:
- By default, uses SQLite (
dev.db). - To reset/clear updates:
npx prisma db push npx prisma db execute --file=clear-updates.sql --schema=prisma/schema.prisma
- By default, uses SQLite (
- Start the dev server:
npm run dev
- Do NOT use
dev.dbor SQLite for production on Vercel. - Use a cloud database (Postgres, MySQL, or hosted SQLite like Turso).
- Set the
DATABASE_URLenvironment variable in Vercel dashboard to your production DB. - Vercel will auto-detect Next.js and deploy.
- All routes except
/and/adminare redirected to/.
Create a .env file (not committed) with at least:
DATABASE_URL=your_database_url_here
ADMIN_PASSCODE=your_admin_passcode_here
npm run dev— Start local dev servernpm run build— Build for productionnpm run start— Start production servernpx prisma migrate dev --name <desc>— Run a new migrationnpx prisma studio— Visual DB browsernpx prisma db execute --file=clear-updates.sql --schema=prisma/schema.prisma— Clear all updates
- Password fields are protected from browser autofill.
- Passcode is required for both timeline and admin.
- Do not commit
.envordev.dbto your repo.
Deploy, enjoy, and stay secure!