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.
- Configure via environment variables:
Create a .env file or set these in your deployment platform (Vercel, Netlify, Cloudflare Pages):
# Required: URL where your content is hosted
VITE_BASE_URL=https://your-content.pages.dev
# Your name/site name (default: "Creative Geek")
VITE_NAME=Your Name
# Optional: External resume URL (Google Drive, etc.)
# Leave empty to use BASE_URL/Pages/resume.pdf
VITE_RESUME_URL=
# Check if resume.pdf exists at BASE_URL (default: false)
VITE_CHECK_RESUME_EXISTS=true
# Use cover image instead of animated background (default: false)
VITE_USE_COVER_IMAGE=falseSee .env.example for all available options.
- Launch:
npm install && npm run devDeploy the project to your vercel account:
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.jsHelp us improve:
- Develop Git-based CMS adapter
- Provide feedback!
License: MIT
