You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A RESTful blog API built with Express 5, TypeScript, Prisma, and JWT authentication. Backend-only (no frontend). Supports user registration, role-based authorship requests, blog post CRUD with cover images, threaded comments, and an admin panel for managing authorship.
Tech Stack
Area
Choice
Runtime
Node.js + TypeScript (compiled with tsc, dev via tsx watch)
Framework
Express 5
Database
PostgreSQL via Prisma 7 (@prisma/adapter-pg)
Auth
JWT (passport-jwt) + bcryptjs for password hashing
Validation
express-validator
Image Upload
Multer (disk, 5MB limit) → Cloudinary
Rate Limiting
express-rate-limit (100 req / 15 min)
Caching
apicache (in-memory, 5-min on public post listings)
npm install
cp .env.example .env # Fill in values
npx prisma migrate dev # Apply schema + generate client
npm run dev # → http://localhost:3500
Scripts
Command
Description
npm run dev
Dev server with hot reload (tsx watch)
npm run build
prisma generate + tsc
npm run start
Run compiled dist/index.js
npm run prod_build
prisma migrate deploy + prisma generate + tsc
About
A RESTful blog API built with Express 5, TypeScript, Prisma, and JWT authentication. Backend-only (no frontend). Supports user registration, role-based authorship requests, blog post CRUD with cover images, threaded comments, and an admin panel for managing authorship.