Anonymous 21-day journaling webapp for college students, built with Node.js, Express, SQLite, and plain frontend assets.
- Node.js 18+
- Express
- better-sqlite3
- express-session + connect-sqlite3
- SendGrid
- Razorpay / Stripe
- Web Push + PWA assets
server.js- app bootstrap, schema creation, middleware, schedulingroutes/- auth, app, admin, payments, waitlist, static pagespublic/- landing page, app UI, waitlist page, admin page, CSS, JS, PWA fileslib/- config and email helpers
- Copy
.env.exampleto.env - Fill in the required secrets
- Run
npm install - Run
npm start - Open
http://localhost:8080
- This service can run in Railway's Dockerfile mode with the repo-root
Dockerfile - Set
SESSION_SECRETas a permanent Railway variable - Mount a persistent volume at
/data/db - Keep
DATA_DIR=/data/db - Do not set
PORTmanually in Railway; Railway provides it automatically - Verify
/api/readyafter deploy
If you deploy from a curated file list, make sure routes/, lib/, email-service.js, and email-templates.js are included. See webapp-files.txt.