Skip to content

πŸ“ CG Blog: React blog with RTL support. Host content anywhere. Vite + SSR. Beginner-friendly MD setup.

Notifications You must be signed in to change notification settings

Creative-Geek/CG-Blog

Repository files navigation

CG Blog 🎨

image

Minimalist React blog engine with first-class RTL support. Your content, any hosting, no lock-in.

License: MIT

Features

πŸ” Auto RTL Article switching (Arabic/Urdu/Persian ready)
🌐 Server-side rendering (React Router 7)
πŸ“‘ Remote markdown content from any URL
♾️ Infinite scroll with loading states
πŸ–ΌοΈ Graceful fallbacks for missing data
πŸŒ— Built-in dark mode (Shadcn/ui)

Get Started in 4 Steps

  1. Clone:
git clone https://github.com/Creative-Geek/cg-blog.git
  1. Create Content:
  • Copy the template folder contents to a new folder and edit the content.

  • Set a build command:

    node generate-index.js
  • Deploy to any static serving service.

  1. Set content source in src/constants.js:
// Use any raw URL that provides the files.
export const BASE_URL = "YOUR_MARKDOWN_FILES_URL";
export const NAME = "Creative Geek";
  1. Launch:
npm install && npm run dev

Content Structure Template

Content Server/
β”œβ”€β”€ Articles/
β”‚   β”œβ”€β”€ my-post.md     # Article content in markdown
β”‚   β”œβ”€β”€ my-post.json   # Article metadata
β”‚   └── my-post.jpg    # Optional cover image
└── Pages/
    β”œβ”€β”€ about.md       # Static page content
    └── about.json     # Page metadata

Article JSON Format

{
  "title": "Your Article Title",
  "image": "optional-cover.jpg",
  "description": "A brief description of your article",
  "date": "DD MMM YYYY",
  "author": "Author Name"
}

Page JSON Format

{
  "title": "Page Title"
}

Hosting Strategies

  • Frontend: Deploy this repo to Vercel/Netlify/Github Pages
  • Content: Host MD files on GitHub/S3/Cloudflare
    Edits appear live without redeploys, only new articles need to be added to index using the build command

Why CG Blog?

  • πŸ•‹ Providing real RTL support to markdown content.
  • πŸš€ Content lives separately - no CMS wars
  • 🧩 Tested with 100+ articles (stress-free scroll)
# Rebuild search index when adding content
node generate-index.js

Contribute

Help us improve:

  • Develop Git-based CMS adapter
  • Provide feedback!

License: MIT

Releases

No releases published

Languages