
🚀 A fast, content-driven freelance site built to turn the right visitors into email conversations: static Astro on Cloudflare Pages, with zero JavaScript on every page but one.
📌 At a glance
👤 Role: Solo: positioning, design, engineering
🗓️ Timeline: August 2026 · ongoing
🟢 Status: Live in production
🧰 Stack: Astro 7 · TypeScript · Tailwind CSS 4 · MDX · Svelte 5 · Cloudflare Pages
🔗 Live: balwanbamniya.xyz
🎯 The problem
Startups and growing teams outside India usually meet me through a link. In the first few seconds the site has to answer three questions: Can this person build what we need? Can we trust them? How do we start? Most developer portfolios answer the wrong ones, with logo walls, heavy animation and placeholder projects. I wanted a site that reads like a consultant's proposal, loads instantly on a mid-range phone, and has exactly one call to action: an email.
🛠️ What I built
🧭 Positioning, copy and information architecture: home, services, work, about and contact, plus notes and case-study pages
🗂️ A typed content pipeline for case studies and notes, with a draft gate and reusable MDX components
🎨 A warm editorial design system: ivory, paper and ink colors, a serif/sans pairing, visible focus states and reduced-motion support
⚙️ A share image, sitemap and robots.txt generated at build time from one config file
🧠 Key decisions
🏝️ Static Astro instead of a React framework: every page is plain HTML at build time, with no server to patch or scale
🧩 One small interactive island: a ~1 KB Svelte copy-email button, loaded only when visible; the mobile menu is a native HTML element
🗝️ One config file as the source of truth for name, domain, email and links; empty optional links never render
🔤 Self-hosted fonts: no third-party font CDN, for speed and privacy

📱 Above: the contact page at 390px. The email link works without JavaScript; the copy button is the site's only interactive component.
⚡ Hard problems solved
🙈 Drafts that never leak. Case studies can be previewed locally while they're being written, but one shared check keeps drafts out of production pages, indexes and the sitemap.
🖼️ A share image that can't go stale. The social preview image is generated during the build from the same config file, so it always matches the site.
📚 Case studies with evidence, not adjectives. I extended the content schema with role, timeline, status and an "at a glance" metrics strip, and built reusable components for diagrams, flows, callouts and figures.
📈 Results
⚡ 0 KB of JavaScript on home, services, work, about, notes and 404
📦 About 13 KB of gzipped JavaScript on the contact page, loaded only when visible
🎨 About 12 KB of gzipped CSS for the whole site
📄 2.5–5.5 KB of gzipped HTML per page
🛠️ One build command produces the site, sitemap, robots file and share image, deployed as static files on Cloudflare Pages
🔭 What's next
🔤 Preload the main serif font to remove the brief font swap
🤖 Automated Lighthouse and accessibility checks in CI
📊 Private, cookieless analytics to measure whether the positioning converts
💬 Want a fast, credible website like this for your business? Let's talk.
0 likes · 1 view · Oct 12, 2026
Fast, content-driven freelance site: static Astro on Cloudflare Pages, zero JS on 6 of 7 pages, ~12 KB gzip CSS, typed MDX case-study pipeline.