Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Astro + Preact personal-site boilerplate with Markdown blog, interactive UI islands, and Cloudflare Pages deployment.
Elon Kernel is an Astro 5 + Preact personal-site boilerplate that ships multi-page content, Markdown blog rendering, interactive UI islands, and a Cloudflare Pages-ready deployment setup.
Elon Kernel is a personal-site project template built with Astro 5 and Preact. It takes Markdown blog posts and static content as input and produces a multi-page static site with interactive components (timeline, tag filtering, table of contents, publish modal) as output. The project is maintained by elonwoo-02 and is designed to deploy primarily on Cloudflare Pages, with both an Astro API route and a Pages Function route for the same AI chat endpoint.
Elon Kernel's feature set is built around a static-first architecture with interactive islands and a Cloudflare-first deployment workflow.
src/blog/; the site generates /rss.xml, /search.json, and per-tag pages via src/pages/tags/.wrangler.toml sets pages_build_output_dir = "dist", compatibility_date = "2024-10-01", and compatibility_flags = ["nodejs_compat"]./api/ai/chat endpoint supports POST and GET, SSE streaming, and uses OpenAI via OPENAI_API_KEY; a missing key returns 500.npm test runs Vitest on jsdom; npm run check includes color checks and test-layout checks.src/components/mobile/ directory provides mobile shells and dock/FAB integrations.Elon Kernel is aimed at developers who want a ready-made personal site that runs on Cloudflare Pages and includes a blog and interactive UI elements.
/, /blog, /about, /experience) and the Markdown blog pipeline to publish content quickly without building from scratch.wrangler.toml configuration and both Astro API route and Pages Function implementations, so the same endpoint works in local dev and on Pages Functions.With Elon Kernel you can publish content, add AI chat, and customize the interactive shell without starting from scratch.
.md files into src/blog/ and get RSS, search index, tag pages, and article views with TOC and reading progress.OPENAI_API_KEY (and optionally OPENAI_MODEL and OPENAI_BASE_URL) and use the /api/ai/chat endpoint for streaming chat responses on both runtimes.data, logic, ui directories) and terminal modal to change the interactive shell without touching page layouts.Elon Kernel uses Astro's file-based routing under src/pages/ to compose pages from BaseLayout.astro and per-page component folders. Interactive widgets (timeline, tags, TOC, publish modal, dock, terminal) are mounted as Preact islands, while shared client bootstraps in src/scripts/ handle theme, global shortcuts, and service worker. The same API route is implemented twice: an Astro API route at src/pages/api/ai/chat.ts and a Pages Function at functions/api/ai/chat.ts, so behavior matches under both astro dev and Cloudflare Pages Functions. Local parity can be verified with npx wrangler pages dev dist after building.
Only for the /api/ai/chat endpoint. If OPENAI_API_KEY is missing, the endpoint returns a 500. The rest of the site — pages, blog, timeline, dock — works without it.
Set the build command to npm ci && npm run build and the output directory to dist. Configure OPENAI_API_KEY (plus optional OPENAI_MODEL and OPENAI_BASE_URL) in both Preview and Production. The repo's wrangler.toml already sets pages_build_output_dir = "dist" and compatibility_flags = ["nodejs_compat"].
Node.js 18+ and npm 9+ are listed as prerequisites. The repository recommends Node 18+ LTS for Cloudflare Pages builds.
Vitest with Testing Library on the jsdom environment. The recommended loop runs npm test, npm run check (which includes color and test-layout checks), then npm run build.
The README says "License status: TBD" and recommends adding an explicit license file if you plan public distribution. That means there is no license declared yet.
