A modern, collaborative blogging platform built for speed, security, and developer-centric content control.
Blogify is a full-stack web application designed to streamline the way developers write and share articles. The project focuses on structured content delivery, moving away from standard plain-text storage to a robust, custom-tailored data architecture.
Built as a high-performance MERN application, Blogify provides a seamless writing experience while giving authors granular control over their content's metadata and presentation.
- Custom Slate.js Engine: Uses a custom-built implementation to structure content into JSON format, ensuring consistent styling and portability.
- Modern UI/UX: A clean, responsive interface built with React 19, Tailwind CSS 4.0, and CoreUI components.
- Secure Authentication: Integrated Google OAuth for quick and secure user access.
- Developer-Friendly Build: Optimized with Vite for near-instant hot module replacement (HMR).
- Robust Security: Hardened backend using Helmet, HPP, Rate Limiting, and Zod for schema validation.
- Library: React 19
- Styling: Tailwind CSS 4.0 & CoreUI
- Editor: Slate.js (Custom JSON Content Engine)
- State & Routing: React Router 7
- Build Tool: Vite
- Runtime: Node.js
- Framework: Express.js (v5)
- Authentication: JWT & Google Auth Library
- Validation: Zod
- Database: MongoDB
- ODM: Mongoose
The core logic of Blogify revolves around a structured data pipeline:
- The Input: Authors use a custom editor powered by Slate.js. Instead of generating messy HTML, it outputs a clean JSON tree representing the document structure.
- The Storage: This JSON object is validated via Zod and stored in MongoDB through Mongoose models.
- The Rendering: On the frontend, our custom engine traverses the JSON tree and dynamically "paints" the content using Tailwind-styled React components.
Follow these steps to get a copy of Blogify running locally.
-
Clone the Repository
git clone [https://github.com/shamil-tp/Blogify.git](https://github.com/shamil-tp/Blogify.git) cd blogify -
Setup Backend
cd backend npm installCreate a
.envfile in thebackendfolder and add yourMONGODB_URI,JWT_SECRET, andPORT. -
Setup Frontend
cd ../frontend npm install -
Run Development Servers
- Backend:
npm run test(uses nodemon) - Frontend:
npm run dev(uses vite)
- Backend:
-
View the App Open
http://localhost:5173for the frontend.
This project was collaboratively designed and developed by: