Minimalist React blog engine with first-class RTL support. Your content, any hosting, no lock-in.
π 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)
- Clone:
git clone https://github.com/Creative-Geek/cg-blog.git- 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. 
- 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";- Launch:
npm install && npm run devContent 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
{
  "title": "Your Article Title",
  "image": "optional-cover.jpg",
  "description": "A brief description of your article",
  "date": "DD MMM YYYY",
  "author": "Author Name"
}{
  "title": "Page Title"
}- 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
- π 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.jsHelp us improve:
- Develop Git-based CMS adapter
- Provide feedback!
License: MIT
