Personal portfolio and playground deployed on Cloudflare Pages.
Live at www.cybai.re.
- Hono — routing, middleware, JSX-based SSR
- Tailwind CSS v4 — utility-first CSS compiled via
@tailwindcss/cli - Cloudflare Pages — edge deployment
- Cloudflare KV — CTF flag validation (
CTF_FLAGSbinding)
No client-side hydration. All rendering happens at the edge. English/French i18n via URL suffix, cookie, or Accept-Language.
bun install
bun run dev # CSS once + Vite dev server
bun run watch:css # Hot CSS recompilation (second terminal)
bun run build # Production build
bun run preview # Local preview via wrangler pages dev (KV available here, not in dev)
bun run deploy # Build + deploy to Cloudflare PagesCSS is compiled separately from the JS bundle — run
bun run build:cssif styles don't update afterbun run build.
Version control uses jj (Jujutsu). Two bookmarks:
main(production) anddev(development).
KV is not available in
bun run dev(Vite). Usebun run preview(wrangler) to test flag submission.
Flags are hidden throughout the site, its HTTP headers, DNS records, and this repository. Visit /ctf to track progress — 15 challenges, 1800 pts total.
KV entry format: key = flag string, value = {"id":"challenge_id","name":"Challenge Name","points":N}.
Seeding commands and flag values are kept in FLAGS.md (gitignored).