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 dev
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
{
"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.js
Help us improve:
- Develop Git-based CMS adapter
- Provide feedback!
License: MIT