Deploy a blazing-fast personal blog or developer journal completely on the Cloudflare edge network. Powered by Hexo, Pages, Workers, D1 database, and R2 bucket.
# Clone and bootstrap
$ git clone https://github.com/ranbeioc/xhalo-blog.git
$ cd xhalo-blog && npm install
# Start the local development server
$ npm run dev
✔ xhalo-blog dev server ready at http://localhost:8787
ℹ D1 Database local binding configured
ℹ R2 Storage local bucket mapped
xhalo-blog provides everything you need to run a professional, secure, and infinitely scalable blog with zero server maintenance overhead.
Supercharged by Hexo static generation. Fast build times, standard Markdown compatibility, and NexT theme adapter support.
Serverless relational database at the edge. Mapped schemas, index tracking, and auto-generated migration history.
Zero egress fee storage bucket. Directly upload assets, support signed preview links, and automatically match theme folders.
Protect mutation endpoints from bots and malicious requests using non-interactive Cloudflare Turnstile token validation.
Write, edit, preview, and publish your content on the web. Connects directly to Workers API with local dry-run options.
Deploy preview environments on branch commits. Auto-generate sitemaps, robots.txt rules, and RSS feeds during merge cycles.
Here is how xhalo-blog integrates the full Cloudflare ecosystem to distribute content and manage assets globally.
Follow these simple steps to deploy your own xhalo-blog edge environment.
Get the scaffold codebase on your local machine and install workspaces dependencies.
git clone https://github.com/ranbeioc/xhalo-blog.git
cd xhalo-blog
npm install
Login to your Cloudflare account using Wrangler and create your D1 database and R2 bucket.
npx wrangler login
npx wrangler d1 create xhalo-blog-db
npx wrangler r2 bucket create xhalo-blog-assets
Boot up the edge emulator and local admin panel workspace to verify operations.
npm run dev
Validate locally, push through GitHub review, then connect your selected site repository to Cloudflare Pages.
npm run check:all
git push origin main