A silly ideas board - A simple blog platform built with microservices architecture & Next.JS
SillyBlog is a modern blog platform built with microservices architecture. The project demonstrates distributed development practices, inter-service communication, event-driven messaging with RabbitMQ, and horizontal scalability.
- ✅ Complete authentication system with JWT
- ✅ Full post management (CRUD operations)
- ✅ Modern responsive UI with real-time updates
- ✅ Microservices communication with RabbitMQ
- ✅ Docker containerization and orchestration
- 🎨 Client - Next.js frontend with Ant Design and Tailwind CSS
- 🚪 API Gateway - Request routing and proxying with JWT middleware
- 🔐 Auth Service - Authentication, authorization and user management
- 📝 Post Service - Post CRUD operations and content management
- 🐰 RabbitMQ - Event-driven messaging between services
- PostgreSQL 15 - Two separate instances:
auth-db(port 5432) - User authentication and profile datapost-db(port 5433) - Posts and content data
- Next.js 15 - React framework with App Router
- Ant Design 5 - UI component system
- Tailwind CSS 4 - Utility-first CSS framework
- TypeScript - Static typing
- Node.js - JavaScript runtime
- Express.js - Web framework
- Prisma - Database ORM
- JWT - Token-based authentication
- Docker & Docker Compose - Containerization and orchestration
- PostgreSQL 15 - Relational database
- RabbitMQ - Message broker for event-driven communication
- Docker >= 20.0
- Docker Compose >= 2.0
- Node.js >= 18.0
- npm
# Clone the repository
git clone https://github.com/sillyveira/sillyblog.git
cd sillyblog
# Run all services
docker-compose up -d
# Check logs
docker-compose logs -f- Client (Frontend):
http://localhost:2999 - API Gateway:
http://localhost:8080 - Auth Service:
http://localhost:3000(internal) - Post Service:
http://localhost:3001(internal) - RabbitMQ Management:
http://localhost:15672(guest/guest) - Auth Database:
localhost:5432 - Post Database:
localhost:5433
sillyblog/
├── 📱 client/ # Next.js Frontend
│ ├── src/app/
│ ├── package.json
│ └── README.md
├── 🚪 apiGateway-service/ # API Gateway
│ ├── routes/
│ ├── middleware/
│ └── package.json
├── 🔐 auth-service/ # Authentication Service
│ ├── src/
│ ├── prisma/
│ └── package.json
├── 📝 post-service/ # Posts Service
│ ├── src/
│ ├── prisma/
│ └── package.json
├── � docs/ # Documentation
│ ├── architecture.md
│ └── services.md
├── 🐳 docker-compose.yml # Container orchestration
└── 📖 README.md # This file
- User registration and login with validation
- JWT-based authentication with HTTP-only cookies
- Protected routes and middleware
- User profile management and editing
- Automatic token refresh on profile updates
- Create, read, update, delete posts
- Markdown editor with real-time preview
- Post pagination and navigation
- Author information display
- Responsive post cards
- Modern responsive design
- Ant Design component system
- Tailwind CSS styling
- Loading states and skeletons
- Form validation and error handling
- Real-time user feedback
- RabbitMQ message broker integration
- User update events between services
- Automatic author name synchronization
- Fault-tolerant messaging
- Advanced post filtering and search
- User avatar uploads
- Comment system on posts
- Real-time notifications
- User roles and permissions
- Post categories and tags
- Email notifications
- Social features (likes, shares)
This project was created to demonstrate my skills in:
- Practical microservices architecture
- Integration between different technologies
- Development best practices
- Containerization and orchestration
- ✅ Auth Service – Complete with JWT and user management
- ✅ API Gateway – Complete with routing and middleware
- ✅ Post Service – Complete with CRUD and event messaging
- ✅ Client (Next.js) – Complete MVP with all core features
- ✅ RabbitMQ Integration – Event-driven user updates
- ✅ Docker Environment – Production-ready containerization
- ⏳ Advanced Features – Search, categories, comments (planned)
The application features a modern, responsive interface built with Next.js and Ant Design:
- Homepage: Clean post listing with pagination
- Post Editor: Markdown editor with live preview
- User Profiles: Profile viewing and editing capabilities
- Authentication: Secure login/register forms
- Responsive Design: Mobile-first approach
Demo deployment and screenshots coming soon!
