A modern blogging platform built with TypeScript, React, and Node.js.
Share your thoughts, stories, and ideas with the world.
- About
- Features
- Demo
- Quick Start
- Installation
- Usage
- Configuration
- Project Structure
- Contributing
- Testing
- Deployment
- FAQ
- License
- Support
- Acknowledgments
Blogrr is a full-stack blogging platform designed to be simple, fast, and customizable. It allows users to create, publish, and manage blog posts with ease. The platform is built using TypeScript for type safety and maintainability, React for a dynamic user interface, and Node.js with Express.js for the backend API.
This project aims to provide a modern alternative to traditional blogging platforms, focusing on developer experience and performance. It's ideal for developers who want to quickly set up a blog, customize it to their needs, or contribute to an open-source blogging platform.
Key technologies include React for the frontend, Node.js and Express.js for the backend, and TypeScript for enhanced code quality. The architecture follows a modular design, making it easy to extend and customize the platform with new features and integrations.
- π― Create and Manage Posts: Easily create, edit, and delete blog posts with a rich text editor.
- β‘ Performance: Optimized for fast loading times and smooth user experience.
- π Security: Secure user authentication and authorization to protect your content.
- π¨ UI/UX: Clean and intuitive user interface for a seamless blogging experience.
- π± Responsive: Fully responsive design that works on all devices.
- π οΈ Extensible: Modular architecture that allows for easy customization and extension.
π Live Demo: https://blogrr-front.vercel.app/
Clone and run in 3 steps:
git clone https://github.com/themradul07/Blogrr-.git
cd Blogrr-
npm install && npm startOpen http://localhost:3000 to view it in your browser.
- Node.js 18+ and npm
- Git
- MongoDB installed locally or a MongoDB Atlas account
# Clone repository
git clone https://github.com/themradul07/Blogrr-.git
cd Blogrr-
# Install dependencies
npm install
# Start development server
npm run devdocker run -p 3000:3000 themradul07/blogrr// Example: Fetching blog posts from the API
import { getPosts } from './services/api';
async function fetchBlogPosts() {
const posts = await getPosts();
console.log(posts);
}
fetchBlogPosts();// Example: Creating a new blog post
import { createPost } from './services/api';
async function createNewPost() {
const newPost = {
title: 'My New Blog Post',
content: 'This is the content of my new blog post.',
author: 'John Doe'
};
const createdPost = await createPost(newPost);
console.log(createdPost);
}
createNewPost();Create a .env file in the root directory:
# Database
DATABASE_URL=mongodb://localhost:27017/blogrr
DATABASE_NAME=blogrr
# Server
PORT=3000
NODE_ENV=development
# Authentication
JWT_SECRET=your_jwt_secret_key{
"name": "blogrr-config",
"version": "1.0.0",
"settings": {
"theme": "light",
"language": "en",
"postsPerPage": 10
}
}Blogrr-/
βββ π client/
β βββ π src/
β β βββ π components/ # Reusable UI components
β β βββ π pages/ # Application pages
β β βββ π hooks/ # Custom React hooks
β β βββ π utils/ # Utility functions
β β βββ π services/ # API services
β β βββ π styles/ # CSS/styling files
β β βββ π index.tsx # Application entry point
β βββ π public/ # Static assets
β βββ π .env.development # Development environment variables
β βββ π package.json # Client dependencies
β βββ π tsconfig.json # TypeScript configuration
βββ π server/
β βββ π src/
β β βββ π controllers/ # Route handlers
β β βββ π models/ # Data models
β β βββ π routes/ # API routes
β β βββ π middleware/ # Middleware functions
β β βββ π utils/ # Utility functions
β β βββ π index.ts # Server entry point
β βββ π .env.development # Development environment variables
β βββ π package.json # Server dependencies
β βββ π tsconfig.json # TypeScript configuration
βββ π .gitignore # Git ignore rules
βββ π package.json # Project dependencies
βββ π README.md # Project documentation
βββ π LICENSE # License file
We welcome contributions! Please see our Contributing Guide for details.
- π΄ Fork the repository
- π Create your feature branch (
git checkout -b feature/AmazingFeature) - β
Commit your changes (
git commit -m 'Add some AmazingFeature) - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
# Fork and clone the repo
git clone https://github.com/yourusername/Blogrr-.git
# Install dependencies (in both client and server directories)
cd Blogrr-/client && npm install
cd Blogrr-/server && npm install
# Create a new branch
git checkout -b feature/your-feature-name
# Make your changes and test
# Run client and server development servers in separate terminals
cd Blogrr-/client && npm start
cd Blogrr-/server && npm run dev
# Commit and push
git commit -m "Description of changes"
git push origin feature/your-feature-name- Follow existing code conventions
- Run
npm run lintbefore committing - Add tests for new features
- Update documentation as needed
# Run tests (in both client and server directories)
cd Blogrr-/client && npm test
cd Blogrr-/server && npm testQ: How do I customize the theme?
A: You can customize the theme by modifying the CSS files in the client/src/styles directory.
Q: How do I add new features?
A: You can add new features by creating new components, pages, or API endpoints. Follow the existing project structure and conventions.
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial use
- β Modification
- β Distribution
- β Private use
- β Liability
- β Warranty
- π¨ Design inspiration: Dribbble
- π Libraries used:
- π₯ Contributors: Thanks to all contributors
- π Special thanks: To the open-source community for providing valuable resources and tools.


