BlogWave CMS is a full-stack underwater-themed blog content management system. It features a visually immersive frontend with oceanic animations, a robust backend with JWT authentication, and complete blog management functionality.
- Frontend: Next.js 13+ (App Router) + TypeScript + Tailwind CSS
- Backend: Node.js + Express + MongoDB + JWT Auth
- Animations & 3D: Three.js, particles, wave effects
- DevOps: Docker + Docker Compose
- User authentication: Register, Login, OTP verification, Password reset
- Blog creation, editing, draft saving, and deletion
- Search blogs by name or tags
- Save/Unsave and Like/Unlike blogs
- User profile management with customizable details
- Immersive oceanic animations:
- Submarine, fish, bubble animations
- Wave separators and particle effects
- RESTful APIs for users and blogs
- JWT-based authentication with protected routes
- Email sending middleware for OTP/password recovery
- Centralized error handling and API response utilities
docker-compose.yamlto run both frontend and backend seamlessly- Easy local setup with one command
- Node.js (v18+ recommended)
- MongoDB instance or Atlas cluster
- Docker & Docker Compose (if using containerized setup)
- Clone the repo
git clone https://github.com/ashankgupta/blogwave-cms.git
cd BlogWave-CMS
- Backend
cd backend
npm install
# Create .env with MongoDB URI and JWT secret
node server.js
- Frontend
cd ../frontend
npm install
npm run dev
- Open http://localhost:3000 in your browser
docker-compose up --build
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
blogwave-cms/
βββ backend/ # Node.js API, controllers, models, routes
βββ frontend/ # Next.js frontend with animations
βββ docker-compose.yaml
-
Fork the repo
-
Create a branch (git checkout -b feature/your-feature)
-
Commit your changes (git commit -m "Add feature")
-
Push to the branch (git push origin feature/your-feature)
-
Open a Pull Request
This project is licensed under GNU License.