Technical reference for AI assistants and contributors working on rockoder.com.
- Framework: Astro 5.17.1
- Language: TypeScript
- Styling: Tailwind CSS v4
- Hosting: GitHub Pages
- Domain: www.rockoder.com
- Build: GitHub Actions (
.github/workflows/deploy.yml)
All content uses Astro's Content Collections API. Schemas defined in src/content/config.ts.
| Collection | Path | Schema Fields |
|---|---|---|
blog |
src/content/blog/ |
title, date, author, tags, description, draft |
beyondthecode |
src/content/beyondthecode/ |
title, date, description, draft |
notes |
src/content/notes/ |
title, date, tweet_url, tweet_id, screenshot |
case-studies |
src/content/case-studies/ |
title, company, role, period, technologies, summary, impact, draft |
Non-collection content in src/data/:
books.ts- Reading list entrieswriting.ts- External publicationsvideos.ts- Conference talks
| Layout | Used By | Features |
|---|---|---|
BaseLayout.astro |
Most pages | Header, footer, SEO |
PostLayout.astro |
Blog posts | Reading progress, TOC, tags, share buttons |
BeyondTheCodeLayout.astro |
Editorial essays | Reading progress, TOC, share buttons (no tags) |
CaseStudyLayout.astro |
Case studies | Company/role header, technologies |
Navigation links defined in src/components/Header.astro:
const navLinks = [
{ href: '/', label: 'Home' },
{ href: '/blog/', label: 'Blog' },
{ href: '/beyondthecode/', label: 'Beyond the Code' },
{ href: '/notes/', label: 'Notes' },
{ href: '/writing/', label: 'Writing' },
{ href: '/reading-list/', label: 'Reading' },
{ href: '/videos/', label: 'Videos' },
{ href: '/about/', label: 'About' },
];- Use CSS variables:
var(--background),var(--foreground),var(--accent), etc. - Responsive breakpoints:
sm:,md:,lg: - Dark mode via
prefers-color-schememedia query - Transitions on interactive elements
npm install # Install dependencies
npm run dev # Dev server at localhost:4321
npm run build # Production build to ./dist/
npm run preview # Preview production build# Create src/content/blog/your-slug.md
---
title: "Title"
date: 2025-02-16
tags: ["tag"]
draft: false
---# Create src/content/beyondthecode/your-slug.md
---
title: "Title"
date: 2025-02-16
description: "Brief description"
draft: false
---src/content/config.ts- Content collection schemassrc/components/Header.astro- Site navigationsrc/styles/global.css- Design tokens and global stylesastro.config.mjs- Astro configurationtailwind.config.mjs- Tailwind configuration