The Exact Code I Used to Rebuild
MikesBlogDesign.com with Astro
December 05, 2025 • Mike
This is the real deal.
Below is every single file you need to turn the current mikesblogdesign.com into a blazing-fast, fully maintainable Astro site — in under 30 minutes.
Step 1 – Create the project
npm create astro@latest mikesblogdesign-astro -- --template minimal
cd mikesblogdesign-astro
npm install
Step 2 – Replace these files exactly
astro.config.mjs
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
export default defineConfig({
site: 'https://mikesblogdesign.com',
integrations: [mdx()],
output: 'static'
});
src/styles/global.css → your exact current CSS
/* Exact CSS from mikesblogdesign.com – Dec 2025 */
* { margin:0; padding:0; box-sizing:border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
background: #0f0f1a; color: #e0e0e0; line-height: 1.7;
}
.container { max-width: 800px; margin: 0 auto; padding: 2rem 1rem; }
header nav { padding: 2rem 0; text-align: center; font-size: 1.1rem; }
header nav a { color: #00d4ff; margin: 0 1.2rem; text-decoration: none; }
h1, h2, h3 { color: #00d4ff; }
h1 { font-size: 2.8rem; margin-bottom: 0.5rem; }
footer { margin-top: 6rem; padding: 3rem 0; text-align: center; color: #666; border-top: 1px solid #333; }
pre { background:#1a1a2e; padding:1.5rem; border-radius:8px; overflow-x:auto; margin:2rem 0; border:1px solid #333; }
src/components/Header.astro
---
---
<header>
<nav>
<a href="/">Home</a>
<a href="/category/artificial-intelligence/">AI</a>
<a href="/category/productivity/">Productivity</a>
<a href="/category/health/">Health</a>
<a href="/about/">About</a>
</nav>
</header>
src/components/Footer.astro
---
---
<footer>
<p>© 2025 MikesBlogDesign • Hand-crafted with ♥ and Astro</p>
</footer>
src/layouts/BaseLayout.astro → the magic wrapper
---
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';
export interface Props {
title: string;
description?: string;
}
const { title, description = "Mike's thoughts on AI, productivity, and building fast websites" } = Astro.props;
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>{title} • MikesBlogDesign</title>
<meta name="description" content={description} />
<link rel="stylesheet" href="/styles/global.css" />
</head>
<body>
<Header />
<div class="container"><slot /></div>
<Footer />
</body>
</html>
src/pages/index.astro → your new homepage
---
import BaseLayout from '../layouts/BaseLayout.astro';
---
<BaseLayout title="MikesBlogDesign">
<h1>Welcome to the new<br>MikesBlogDesign</h1>
<p>Same 100/100 speed. Zero copy-pasting. Finally.</p>
</BaseLayout>
Step 3 – Deploy (30 seconds)
npm run build
Upload the dist/ folder anywhere you host now — done.
That’s literally everything.
Copy → paste → npm run build → upload.
You now have the exact same site you’ve always loved — but finally maintainable.
See you on the other side of copy-paste hell,
Mike