How to Build a Free Blog with Astro & Cloudflare in 30 Minutes (No Wallet Required!)
Learn how to build a lightning-fast blog using Astro and Cloudflare Pages - completely free, no credit card needed! This step-by-step guide takes you from zero to published in just 30 minutes.

Table of Contents
- 🤔 What the Heck is Astro Anyway?
- 🎯 What You’ll Have by the End (a.k.a. Your Blogging Superpowers)
- 🧰 What You Need (a.k.a. Your Blogging Starter Pack)
- 🥇 Level 1: Become a GitHubber (5 minutes)
- 🥈 Level 2: Node Your Way to Success (5 minutes)
- 🥉 Level 3: Power Up with VS Code (Optional, 3 minutes)
- 🏆 Level 4: Fork That Theme! (2 minutes)
- 🕹️ Level 5: Clone Like a Pro (3 minutes)
- ⚙️ Level 6: Install & Run Locally (5 minutes)
- 🎨 Level 7: Make It Yours (10 minutes)
- ✍️ Level 8: Write Your First Masterpiece (5 minutes)
- 💾 Level 9: Save & Push Like a Boss (2 minutes)
- ☁️ Level 10: Enter the Cloud (3 minutes)
- 🚀 Boss Fight: Deploy to Cloudflare Pages (5 minutes)
- 🌐 Bonus Round: Custom Domain (Optional, 5 minutes)
- 📝 Keep Blogging Like a Champ
- 💡 Pro Tips for Blog Glory
- 🛠️ Local Dev Workflow Cheat Sheet
- 🎨 Customize Even More!
- 🔄 Keep Your Blog Fresh
- 🏎️ “But Why Astro?” (For the Skeptics)
- 🧯 Troubleshooting (a.k.a. Don’t Panic)
- 🎉 You Did It!
Hey there, future internet superstar! 🌟 Dreaming of launching your own blog but your wallet’s emptier than your fridge before payday? Well, put that credit card away, because today we’re building a blazing-fast, zero-cost blog that’ll make your friends say, “Whoa, you did THAT?!” — all without spending a single shiny penny. 🪙
So grab your favorite beverage (coffee, tea, or unicorn tears 🦄), and let’s get this blog party started!
🤔 What the Heck is Astro Anyway?
Before we dive in, let’s answer the burning question: “What is this Astro thing and why should I care?”
Astro is like that friend who’s impossibly good at everything. It’s a modern static site generator that lets you build blazing-fast websites using your favorite JavaScript frameworks (React, Vue, Svelte - take your pick!). But here’s the kicker - Astro ships zero JavaScript by default.
That’s right! While other frameworks are sending megabytes of JS to your users’ browsers, Astro’s saying “Nah, I’m good” and delivering mostly HTML. The result? Sites that load faster than you can say “why is WordPress so slow?”
Why Astro is Perfect for Your Blog:
- Speed that makes Google drool 🤤 (hello, SEO benefits!)
- “Islands architecture” - fancy talk for “only hydrate the interactive parts”
- Use any UI framework (or none at all) - it’s like the Switzerland of web dev
- Markdown support that makes blogging feel like texting
- Zero-config by default because ain’t nobody got time for that
Think of Astro as the mullet of web frameworks: business in the front (static HTML for speed) and party in the back (JavaScript only where you need it). And today, we’re using it to build you a blog that’s faster than your uncle’s hot take on politics at Thanksgiving dinner.
🎯 What You’ll Have by the End (a.k.a. Your Blogging Superpowers)
- A modern, responsive blog powered by Astro ⚡
- Your content safely stored on GitHub (like a digital vault, but cooler)
- Your site deployed on Cloudflare Pages (with free SSL, so hackers cry 😭)
- Optionally, a custom domain (because
myawesomeblog.com
>randomstring.pages.dev
) - And the best part? It all costs $0.00. That’s right — cheaper than instant noodles.
🧰 What You Need (a.k.a. Your Blogging Starter Pack)
- Basic Markdown knowledge (it’s easier than making toast)
- A computer with internet (duh)
- About 30 minutes of your precious time
- Node.js & npm installed (don’t worry, it’s painless)
- Visual Studio Code (optional, but makes you look like a pro)
- Your favorite drink (hydration = motivation)
🥇 Level 1: Become a GitHubber (5 minutes)
Already got a GitHub account? Skip ahead, you overachiever. If not:
- Zoom over to GitHub.com
- Smash that Sign up button
- Pick a cool username (or something embarrassing, your call)
- Verify your email (check spam, those sneaky emails love hiding)
🎉 Achievement unlocked: You’re now part of the world’s biggest dev club! No secret handshake required.
Information Notice
For more on github you can check: Link GitHub SSH
🥈 Level 2: Node Your Way to Success (5 minutes)
Before we get coding, let’s install Node.js & npm:
- Visit nodejs.org
- Download the LTS version (Long Term Support = less drama)
- Install it like any other app
- Open Terminal/Command Prompt and type:
node --version
npm --version
If you see numbers, congrats! If not, double-check or yell at your computer (gently).
Information Notice
For more on github you can check: Install Node Mac
🥉 Level 3: Power Up with VS Code (Optional, 3 minutes)
Because coding in Notepad is so 1995.
- Go to code.visualstudio.com
- Download & install
- Open it up and bask in its glory
🏆 Level 4: Fork That Theme! (2 minutes)
Time to grab your shiny new blog template (And no, we’re not talking about stealing silverware from your local diner):
- Visit Bitdoze Astro Theme
- Hit Fork (top-right corner)
- Name it whatever you want (
my-awesome-blog
works) - Click Create fork
💥 Boom! You now own a copy. Customize away!
🕹️ Level 5: Clone Like a Pro (3 minutes)
Let’s get that code on your machine:
- In your forked repo, click Code > copy the HTTPS URL
- Open VS Code
- Press
Ctrl+Shift+P
(orCmd+Shift+P
on Mac) - Type Git: Clone, hit Enter
- Paste the URL, pick a folder
- Open the repo when prompted
⚙️ Level 6: Install & Run Locally (5 minutes)
Now we get to play digital plumber - connecting all the pipes that make your blog flow!
- Open the terminal in VS Code (`Ctrl + backtick “)
- Type:
npm install
npm run dev
- Wait for the magic
- Visit
http://localhost:4321
🎉 Achievement unlocked: Your blog lives! (Locally, but still cool.)
🎨 Level 7: Make It Yours (10 minutes)
Let’s add your personal flair.
Update src/config/config.json
{
"site": {
"title": "Your Amazing Blog Title",
"base_url": "https://yourblog.pages.dev",
"logo_text": "Your Blog Name"
},
"metadata": {
"meta_author": "Your Name",
"meta_description": "Your captivating blog description"
}
}
Update src/config/site.ts
export const siteConfig = {
name: "Your Blog Name",
description: "Your blog's awesome description goes here",
// Leave the rest alone for now
};
💡 Pro Tip: If you spill coffee on your keyboard, that’s called JavaScript.
✍️ Level 8: Write Your First Masterpiece (5 minutes)
- Go to
src/content/posts/
- Create
my-first-post.md
- Paste this in:
---
title: "My First Blog Post"
meta_title: "My First Amazing Blog Post"
description: "This is the beginning of my blogging journey!"
date: 2023-07-15
image: "../../assets/images/web-development.svg"
authors: ["admin"]
categories: ["Personal"]
tags: ["beginnings", "blogging"]
---
## Hello World!
Welcome to my shiny new blog! I'm excited to overshare my thoughts with the internet.
### Why I Started This Blog
- To rant
- To teach
- To learn
- To procrastinate productively
Stay tuned for more!

- Save & refresh
http://localhost:4321
🎉 Achievement unlocked: First post published!
Congratulations! You’ve officially joined the ranks of “people with opinions on the internet.” It’s a prestigious club with absolutely no entry requirements.
💾 Level 9: Save & Push Like a Boss (2 minutes)
- Click the Source Control icon (branchy thing)
- Stage all changes (+ button)
- Write a commit message (“First post, woohoo!”)
- Click ✔️ to commit
- Push via the ”…” menu > Push
☁️ Level 10: Enter the Cloud (3 minutes)
- Sign up at Cloudflare.com
- Verify email
- Skip “Add a website” (we’re doing Pages instead)
🚀 Boss Fight: Deploy to Cloudflare Pages (5 minutes)
- In Cloudflare, go to Pages
- Click Create a project > Connect to Git
- Authenticate with GitHub
- Pick your repo
- Set:
- Project name:
my-awesome-blog
- Production branch:
main
- Build command:
npm run build
- Output directory:
dist
- Project name:
- Click Save and Deploy
☕ Time for a coffee refill while Cloudflare works its magic.
🌐 Bonus Round: Custom Domain (Optional, 5 minutes)
- Buy a domain (as cheap as $1/year)
- In Cloudflare Pages, go to your project > Custom domains
- Click Set up a custom domain
- Follow the DNS instructions
Now your blog looks pro AF.
📝 Keep Blogging Like a Champ
Option 1: Edit on GitHub
- Add
.md
files insrc/content/posts/
- Commit changes
- Done!
Option 2: Edit Locally (Recommended)
- Pull latest:
git pull
- Add new post
- Preview with:
npm run dev
- Commit & push:
git add .
git commit -m "Add awesome new post"
git push
Cloudflare will redeploy automagically.
💡 Pro Tips for Blog Glory
- Post regularly (even if it’s memes)
- Use images & GIFs (because walls of text are boring)
- Share everywhere (spam responsibly)
- Engage with comments (don’t feed the trolls)
- Have fun! Blogging shouldn’t feel like homework.
🛠️ Local Dev Workflow Cheat Sheet
npm run dev # Start local server
npm run build # Build production version
npm run preview # Preview production build
git add . # Stage changes
git commit -m "Your message" # Commit
git push # Deploy!
🎨 Customize Even More!
Your project is super flexible! Here’s what you can tweak inside the src/
folder:
🎨 Styles & Colors
- Edit
src/styles/global.css
to change theme colors, fonts, or add custom CSS.
:root {
--color-primary-500: #3b82f6; /* Change this to your fav color */
}
- Customize dark mode colors under
.dark { ... }
in the same file.
🔗 Social Links
- Edit
src/config/social.json
:
{
"facebook": "https://facebook.com/yourusername",
"twitter": "https://twitter.com/yourusername",
"instagram": "https://instagram.com/yourusername"
}
🗺️ Navigation Menu
- Edit
src/config/menu.json
to customize your site’s navigation links.
🖼️ Images, Logos & Favicons
- Place images in
src/assets/images/
orpublic/images/
. - Replace favicons/logos in
src/assets/favicons/
orpublic/
. - Update references if needed in configs or layout files.
📝 Content: Posts, Pages, Authors
- Blog posts:
src/content/posts/
- Static pages:
src/content/pages/
(e.g., Privacy, Terms) - About page:
src/content/about/index.md
- Author profiles:
src/content/authors/
(great for multi-author blogs)
⚙️ Site Info & Metadata
src/config/config.json
for site title, URL, metadata.src/config/site.ts
for site name, description, and more.
🧩 Layouts & Components
- Customize how your blog looks by editing components in
src/layouts/
and its subfolders. - Change headers, footers, post layouts, widgets, etc.
🗂️ Pages & Routing
- Add or edit pages in
src/pages/
(e.g.,/about
,/contact
,/blog
). - Create new
.astro
files for custom routes.
This way, you can fully personalize your blog’s look, feel, and content!
🔄 Keep Your Blog Fresh
- Add the original repo as upstream:
git remote add upstream https://github.com/bitdoze/bitdoze-astro-theme.git
- Fetch updates:
git fetch upstream
- Merge:
git merge upstream/main
- Fix conflicts, push, done!
🏎️ “But Why Astro?” (For the Skeptics)
“Couldn’t I just use WordPress/Wix/Medium?” Sure, you could also use a butter knife to cut down a tree. Astro is:
- 10-1000x faster than traditional CMS platforms
- More customizable than those “drag-and-drop” site builders
- More professional-looking than that free Blogger site you made in 2009
- Less likely to get hacked than that WordPress site you never update
- Future-proof because it uses modern web standards, not proprietary lock-in
Plus, can you really put a price on saying “Oh, my blog? Yeah, I built it myself with Astro” at parties? (The answer is no, that level of subtle bragging is priceless.)
🧯 Troubleshooting (a.k.a. Don’t Panic)
Site won’t build?
- Check terminal errors
- Validate Markdown syntax
- Run
npm run build
locally for clues
Images missing?
- Check paths
- Use relative paths or full URLs
- Put images in
public/images/
npm install fails?
- Update Node.js
- Clear cache:
npm cache clean --force
- Delete
node_modules
&package-lock.json
, reinstall
Everything exploded?
No worries! That’s just the traditional developer initiation ceremony. Try turning it off and on again (seriously, it works more often than we’d like to admit).
🎉 You Did It!
You now own a professional, blazing-fast, zero-cost blog. No hosting fees, no nonsense. Just pure, unfiltered YOU on the internet.
Astro + Cloudflare = 🚀 speed + 💰 savings.
Now go forth and conquer the blogosphere! Remember: your voice matters, and the world wants to hear it (or at least Google does).
Happy blogging! ✍️✨
P.S. Found this guide helpful? Share it! And star the Bitdoze Astro Theme on GitHub to spread the love.
P.P.S. Advanced folks: hook up custom domains, automate with GitHub Actions, or just brag about your free, fast blog. You earned it!
Related Posts

Best Astro.js Online Courses/Tutorials
If you want to learn Astro.js you should check these online courses that can help you get started.

How To Deploy Static Website Astro.JS on VPS Servers
Learn how to deploy a node.js static website Astro on a VPS server easily.

Coolify Install A Free Heroku and Netlify Self-Hosted Alternative
Free Heroku and Netlify alternative? Coolify Install is an easy-to-use self-hosted platform that will help you get started quickly, without any complicated setup.