Building a Personal Blog from Scratch: 2026 Complete Tutorial
A personal blog is one of the best ways to showcase expertise, share knowledge, and build a personal brand.
1. Preparation: Domain
1.1 Choosing a Domain
- Short and memorable (under 3 words)
- Brand-relevant (your name or topic)
- Good extension (.com best, then .me, .blog, .dev)
1.2 DNS Resolution
Registering the domain is only half the job; you still have to point the domain at your server or hosting platform. Two records do most of the work:
- A record: points the domain at a server IP, e.g.
blog.example.com -> 203.0.113.10; set TTL to 300 seconds during testing so changes propagate faster. - CNAME record: points a subdomain at another domain, e.g.
www -> example.github.io, which is how GitHub Pages and Vercel are usually wired up.
Propagation can take anywhere from minutes to 24 hours; verify with dig blog.example.com or nslookup. Once resolution works, get an SSL certificate so the site runs over HTTPS — otherwise browsers flag it as not secure.
2. Option 1: WordPress (Most Flexible)
2.1 Pros
- Largest market share, mature ecosystem
- Rich themes and plugins
- No coding needed for publishing
- Powerful blog management
2.2 Setup Steps
# Install LEMP stack
apt update && apt install nginx mysql-server php8.1-fpm php8.1-mysql
# Download WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz -C /var/www/
# Configure database and run setup wizard
2.3 Recommended Plugins
- SEO: Yoast SEO / Rank Math
- Cache: WP Super Cache / W3 Total Cache
- Security: Wordfence / Sucuri
- Backup: UpdraftPlus
- Images: Smush / ShortPixel
3. Option 2: Hexo (Static Blog, Minimal)
3.1 Pros
- Pure static pages, extremely fast
- Markdown writing experience
- Free deployment (GitHub Pages / Vercel)
- No server management needed
3.2 Setup
npm install -g hexo-cli
hexo init my-blog
cd my-blog
npm install
hexo new "My First Post"
hexo server # http://localhost:4000
3.3 Auto-Deploy with GitHub Actions
To skip running hexo deploy by hand, add a GitHub Actions workflow: on every push to main, it runs npm ci and hexo generate, then publishes the generated public/ folder to Pages or your server. Writing becomes "edit Markdown locally -> push -> live in about two minutes":
name: Deploy
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npm ci && npx hexo generate
- uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
4. Option 3: Ghost (Writing-Focused)
4.1 Pros
- Designed for content creation
- Built-in membership and subscription
- Modern editing experience
- Better performance than WordPress
4.2 Setup
docker run -d --name ghost-blog -p 2368:2368 ghost:latest
5. Comparison
| Dimension | WordPress | Hexo | Ghost |
|---|---|---|---|
| Difficulty | Medium | Low-Medium | Low-Medium |
| Maintenance | Regular updates | Low | Medium |
| Speed | Needs optimization | Very fast | Fast |
| Extensibility | Very high | Limited | Medium |
| Cost | Server + domain | Domain only | Server + domain |
| Best for | Feature-rich blogs | Tech blogs | Content creators |
Doing the Math
Rough estimates at 2026 prices:
| Approach | Minimum annual cost | Notes |
|---|---|---|
| Hexo + GitHub Pages | ~$10 for the domain | Hosting is free, domain only |
| WordPress + 2C2G cloud server | ~$165 | Server + domain + occasional backup storage |
| Ghost + official hosting | from ~$100 | Most convenient, most expensive |
A static site can get down to just the domain fee; a dynamic site is a fixed "server + domain" expense plus backups and monitoring down the line. If budget matters in the early stage, the static route has a clear edge.
6. Content Strategy
6.1 First Post Ideas
- "Why I built this blog" (personal story)
- "[Technology] Beginner's Guide"
- "Best Practices for [Topic] in 2026"
6.2 Consistent Writing Tips
- Fixed frequency: at least 1 post per week
- Focus on your niche
- Solve specific problems
- Update old posts regularly
- Engage with readers
Common Questions
- Which TLD should I buy: prefer
.com, then theme-relevant ones like.me,.dev,.blog; be cautious with obscure new TLDs outside a brand context. - Learn the tech first or write first: if your goal is recording and sharing, start with a static setup like Hexo and go live in half an hour; if you plan long-term content monetization (membership, courses), start with WordPress or Ghost.
- What if nobody reads my posts: spend 80% of the early effort on "content that is genuinely useful" rather than polishing themes and plugins; traffic compounds slowly.
7. Summary
WordPress is most feature-rich, Hexo is lightest, Ghost has the best writing experience. For most beginners, start with WordPress or Hexo. The best platform is the one that helps you keep writing.
Reference: WordPress docs https://wordpress.org/documentation/ ; Hexo docs https://hexo.io/docs/ ; Ghost docs https://ghost.org/docs/