Personal blog about building real projects with AI-assisted coding. The site is static, multilingual, and built for publishing articles as Markdown content.
- Astro 6 with static output
- Solid.js islands for interactive controls
- Bun for package management and scripts
- Cloudflare Pages for hosting
- Astro content collections for posts
- RSS, sitemap, generated Open Graph images, JSON-LD, and PWA support
Install dependencies with Bun:
bun installRun the local dev server:
bun run devUseful checks:
bun test
bun run lint
bun run fmt:check
bun run typecheck
bun run buildPosts live in src/content/posts. Each post has one folder per slug and one Markdown file per locale, for example index.en.md and index.ru.md.
English is the canonical language. Translated article pages must point their canonical URL to the English version of the same article.
Cloudflare builds the site with:
bun run buildThe production output directory is dist. If the Cloudflare project requires a deploy command, use:
npx wrangler versions upload --assets=./distwrangler.toml maps the generated assets to ./dist for that upload step. Set PUBLIC_CF_ANALYTICS_TOKEN in Cloudflare to enable Cloudflare Web Analytics. Leave it unset locally to skip the analytics beacon.