Framework

Meta-framework. Static site generation, content collections, zero-JS-by-default pages.

Language

Strict-mode type safety across all source files. No any, no exceptions.

Runtime & Package Manager

Package manager and runtime. Fast installs, built-in test runner support, native TypeScript.

Content

Generates the RSS feed at /feed.xml from content collections.

Generates sitemap.xml for search engines.

OG image generation. Renders HTML/CSS to SVG, then resvg-js to PNG.

Syntax highlighting for code blocks in Markdown. Astro built-in, github-dark-dimmed theme.

Live taglines on the homepage via SSE. Rust microservice at lylics.magj.dev serving random lyrics.

Markdown-to-HTML for LLM widget previews (summarize, translate).

Progressive Web App support via @vite-pwa/astro. Service worker, offline, install prompt.

Performance

Automated performance, accessibility, and SEO audits after each deploy. Reports in etc/lighthouse/.

Lint & Format

Biome v2 MIT / Apache-2.0
github ↗

Replaces ESLint + Prettier. One tool for linting and formatting — written in Rust, extremely fast.

Testing

Unit and integration testing. Vite-native, fast, TypeScript-first.

Playwright v1.58 Apache-2.0
github ↗

End-to-end browser testing against the production build. Chromium.

Git Hooks

Pre-commit hooks: runs Biome lint and Terraform fmt check before every commit. Written in Go.

Infrastructure

Infrastructure as code. Provisions S3, CloudFront, Lambda, DynamoDB, API Gateway, Route 53, ACM, SNS, IAM.

Cloud / AWS

Static hosting. HTML and assets synced from dist/ with cache headers.

CDN and HTTPS. Serves magj.dev, invalidates on deploy.

Serverless functions: auth (phone/OTP), admin, llm-proxy. Bun runtime.

Session and user data storage for auth.

HTTP routing to Lambda for /auth, /admin, /llm endpoints.

OTP SMS delivery for phone verification.

DNS for magj.dev.

TLS certificates for HTTPS.

AI / LLM

LLM for summarize and translate via Lambda llm-proxy.

LLM API used in Lambda llm-proxy for compatible models.

Gemini 3.1 Pro for text/reasoning; Nano Banana Pro for image generation (blog covers, assets).

LLM routing with circuit breaker, retry, and fallback (Anthropic → Bedrock → OpenAI → Gemini). Coming.

Claude via Bedrock in llm-proxy fallback chain. Implementing soon.

Agent

Domain-specific instructions for AI agents. SKILL.md files guide coding, releases, design, tooling, and AWS practices.

Analytics

Optional site analytics when PUBLIC_GA4_MEASUREMENT_ID is set at build time (see Layout.astro).

First-party usage and cost metrics in admin (DynamoDB); optional GA4 for traffic. Documented in-repo.

Deployment

CI/CD pipeline: lint, test, build, deploy to S3 and CloudFront on every push to main.