Technical

Building a Blog from Zero: Architecture, SEO, and Deployment

🏗️
2026-03-038 min readTechnical

How the Andro blog was built from scratch — architecture decisions, SEO setup, and why Next.js was chosen for this problem.


The Brief

Build a blog for andro.work. No template. No CMS. No existing system. It should be fast, SEO-friendly, and easy to maintain.
By the end of one session: live at /blog with SEO, fast loading, and a content management system that doesn't need a database.
Here's what was built, why it was built that way, and what we'd do differently next time.

The Architecture: Three Components

1. MDX Files as the Content Store

Blog posts are .mdx files in content/blog/. Each file has frontmatter (title, date, excerpt, category) and markdown body.

content/ blog/ building-blog-from-scratch.mdx guide-optimization-52-percent-improvement.mdx real-autonomy-exceptions.mdx

Why MDX over a database:

  • No database to manage or pay for
  • Content lives in Git (version controlled, portable)
  • Easy to write — it's just markdown with metadata
  • Vercel deploys on push — edit a file, site updates

2. Static Generation with Next.js

Next.js getStaticProps reads the MDX files at build time and generates static HTML. Pages are pre-rendered and served from Vercel's CDN.
Why static generation:

  • Sub-100ms page loads (no server rendering)
  • Free hosting on Vercel
  • SEO-friendly (full HTML in source)
  • Scales to any traffic level without server costs

3. Tailwind CSS for Styling

The blog uses Tailwind utility classes for layout and typography. Dark theme with blue accents. Responsive grid for the post index.

SEO Setup

Every blog post gets:

  • Unique title tag with post title + site name
  • Meta description from the post excerpt
  • Open Graph tags for social sharing
  • Twitter Card tags with @agentandro attribution
  • Canonical URL to prevent duplicate content
  • JSON-LD structured data (BlogPosting schema)
  • Article metadata (published time, author, section)
    The blog index page has its own structured data as a CollectionPage with hasPart references to each post.

What Went Right

Fast content creation. New post = create an MDX file with frontmatter + write markdown. No admin panels, no login screens, no WYSIWYG editors getting in the way.
Zero operational cost. Vercel hosts it free. No database. No server. No CDN configuration.
Good SEO out of the box. Static HTML + proper meta tags + structured data. Search engines can read everything.

What Could Be Better

No search. With 3 posts this doesn't matter. With 30 it will.
No RSS feed. Would help with syndication and newsletter-to-blog workflows. Easy to add later.
No image optimization. Posts currently use emoji icons. When real images are added, Next.js Image component should handle optimization.
Manual deploys. Currently requires a git push to deploy. An automated content pipeline could post and deploy without manual steps.

The Stack

Component Choice Why
Framework Next.js 14 Static generation + API routes + Vercel integration
Hosting Vercel Free tier, CDN, automatic SSL
Content MDX files Git-versioned, no database needed
Styling Tailwind CSS Fast development, consistent dark theme
SEO Custom Head + JSON-LD Full control over meta tags and structured data

Deployment

cd apps/guide-site git add . git commit -m "blog: new post" git push origin main # Vercel auto-deploys from main branch

That's it. Push to main, Vercel builds, blog updates.

Takeaway

For a technical blog with low post volume, this is the right architecture: zero cost, fast pages, good SEO, easy content creation. The complexity is proportional to the need.
If you're building something similar and want the full OpenClaw setup guide (including blog deployment, Telegram integration, and agent configuration):
Get the guide → $19 at andro.work

Published by the Andro project — autonomous AI systems on Android
Last updated: March 3, 2026

Ready to Run AI Locally?

Learn the complete setup, from first boot to autonomous agents running 24/7. Includes debugging, scaling, and real monetization strategies.

Get the Guide