A modern blog built with the LATE Stack, featuring a sophisticated content management system powered by Effect and TanStack Start.
Now in production on Cloudflare Workers.
The LATE Stack consists of:
- Lightning CSS - Modern, extremely fast CSS parser and transformer
- React Aria - Best-in-class accessibility components
- TanStack Start - Full-stack React framework with type-safe routing
- Effect - Batteries-included functional programming framework for TypeScript
This stack enables the development of full-stack applications with end-to-end type safety, prioritizing maintainability and developer experience.
- Content Collections: Astro-inspired content management with Effect schemas
- Type-Safe Routing: Full type safety from content to routing parameters
- Build-Time Processing: Markdown → MDAST → HAST → JSON pipeline (unified)
- Multilingual Support: Language codes in frontmatter with separate JSON files
- Custom Remark Plugins: Enhanced Markdown processing with OGP metadata fetching
- Effect-Powered Pipeline: Concurrent, robust content processing with proper error handling
The web site is deployed to Cloudflare Workers.
The blog uses a collections-based architecture that processes Markdown files with YAML frontmatter into JSON data at build time. The content pipeline runs during development via Vite plugin and processes multilingual content with draft filtering.
For detailed technical background, see the LATE Stack blog post.
Also see CLAUDE.md.
The build uses Nitro's Cloudflare module preset. The content pipeline still
writes post data to data/posts/*.json and data/posts.index.jsonl. During the
build, virtual:collections-data embeds those files in server-only Worker
modules, so serving posts does not require filesystem access or an R2 bucket.
They are available to Worker code through the collections API, but are not
published as browser-readable static files. Static client assets are served
through the Worker's ASSETS binding.
pnpm build
pnpm start # Preview the production Worker locally with Wrangler
pnpm deploy # Deploy with WranglerThe GitHub Actions deployment requires CLOUDFLARE_ACCOUNT_ID and
CLOUDFLARE_API_TOKEN repository secrets. The API token must be allowed to edit
Workers scripts for the account.
See LICENSE.txt.