Skip to content

A full-featured blog and content management system built with React, Redux, and Firebase. Includes a custom WYSIWYG editor using Draft.js, with support for reading, liking, bookmarking, and managing posts.

Notifications You must be signed in to change notification settings

bhprtk/coding-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✍️ Coding Blog

Coding Blog is a full-featured blog and content management system (CMS) built from the ground up using React, Redux, and Firebase. It allows users to read, like, bookmark, create, and manage blog posts with a powerful custom-built WYSIWYG editor powered by Draft.js. This project was built with flexibility in mind, offering full control over rich-text content creation and user interactions.


πŸš€ Features

  • πŸ“– Read blog posts with clean, responsive layouts
  • ❀️ Like and πŸ”– bookmark posts
  • πŸ“ Create and edit posts using a custom WYSIWYG editor (built with Draft.js)
  • ✏️ Full content management: create, update, delete posts
  • πŸ” Authentication and post management

πŸ›  Tech Stack

  • Frontend: React, Redux
  • Editor: Draft.js (custom WYSIWYG implementation)
  • Database & Hosting: Firebase
  • State Management: Redux
  • Styling: CSS modules / styled components (optional depending on your setup)

πŸ“¦ Installation

git clone https://github.com/bhprtk/coding-blog.git
cd coding-blog
npm install

βš™οΈ Usage

To run the development server locally:

npm start

Then open your browser and go to:

http://localhost:3000

Note: Make sure to configure your Firebase project and add your credentials in a .env file or appropriate config file.


πŸ“„ Environment Variables

Create a .env file and include your Firebase credentials:

REACT_APP_API_KEY=your_api_key
REACT_APP_AUTH_DOMAIN=your_project_id.firebaseapp.com
REACT_APP_PROJECT_ID=your_project_id
REACT_APP_STORAGE_BUCKET=your_project_id.appspot.com
REACT_APP_MESSAGING_SENDER_ID=your_messaging_sender_id
REACT_APP_APP_ID=your_app_id

🧠 Why Draft.js?

Instead of relying on external editors, this project uses Draft.js to build a custom WYSIWYG experience tailored to blogging. It supports:

  • Rich text formatting
  • Editable content blocks
  • Clean, serialized output for Firebase storage

This provides full control over how content is created, saved, and rendered.


πŸ“ˆ Future Improvements

  • User authentication and protected editing
  • Tagging and category filters
  • Pagination and search
  • Comment system
  • Post scheduling and drafts

πŸ“„ License

This project is licensed under the MIT License.


πŸ‘€ Author

Built by Pratik Bhandari


About

A full-featured blog and content management system built with React, Redux, and Firebase. Includes a custom WYSIWYG editor using Draft.js, with support for reading, liking, bookmarking, and managing posts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published