This is a full-stack blog platform built with TypeScript, Next.js, Express, and MongoDB. It allows users to create, manage, and share blogs efficiently. The project is structured into two parts:
- UI: The Next.js frontend application.
- API: The Express.js backend server.
Designed to be production-ready, the platform focuses on scalability, performance, security, and accessibility.
- Article Management: Create, update, and delete blog posts.
- User Management: Role-based access control for admins and users.
- WYSIWYG Editor: Simplifies content creation.
- Infinite Scroll: Provides smooth content loading.
- Secure Authentication: JWT-based with email verification and password reset.
- API Rate Limiting: Enhances security and prevents abuse.
- SEO Optimization: Improves web app visibility with SEO-friendly architecture.
- Server-Side Rendering (SSR): Boosts performance and SEO rankings.
- Frontend (UI): Next.js, TypeScript
- Backend (API): Express.js, TypeScript
- Database: MongoDB
- Authentication: JWT
- Other Tools: Nodemailer (email services), Bcrypt (password hashing)
- Node.js
- MongoDB
git clone
cd blog-platform
cd ui
npm install
NEXT_PUBLIC_API_URL=
npm run dev
cd ../api
npm install
MONGO_URI=mongodb+srv://:@cluster0.mongodb.net/?retryWrites=true&w=majority
ACCESS_TOKEN_SECRET=
ACCESS_TOKEN_EXPIRY=7d
REFRESH_TOKEN_SECRET=
REFRESH_TOKEN_EXPIRY=20d
OTP_EXPIRE=2 # in minutes
SMTP_USER=
SMTP_PASS=
npm start