Rebuilding Usama's corner of the internet
My old site was a FastAPI app serving Bootstrap templates from a Docker container. It worked, but it said very little about me — and a cold-starting container is a strange way to serve four static pages.
This new site is the opposite: static HTML on a CDN, one page that says what I actually do, and a brand with a story.
The brief: one line, taken literally
Every design decision here answers to one sentence: helping people and products grow.
That’s not a tagline bolted on afterwards. It’s the design brief.
The mark reads “us” — Usama Shahid — with a sun rising out of the s and a sprout reaching toward it. Growing toward the light. The palette follows the same story: warm cream paper, dark ink, a sunflower yellow for the sun, a sprout green for the growing things.
Even the section names obey it. The blog is notes on growing. The lab is the Greenhouse, and the experiments in it are residents on a potting bench. When something breaks, it doesn’t throw an error — it wilts.
A brand isn’t a logo file. It’s a rule you can check every new page against: does this help someone grow, or is it decoration?
Static first: speed as respect
If someone gives you their attention, don’t spend it on spinners.
So the whole site is built with Astro, which does its work at build time and ships almost no JavaScript. What reaches your browser is finished HTML:
- No frameworks on the wire. The interactivity you see — the menu, the little reveal animations — is a few tiny inline scripts, not a bundle.
- Fonts self-hosted. Two families, subset and served from my own domain. No third-party font service watching you read.
- Images optimised at build time. The portrait on the homepage is a compact WebP with its dimensions declared, so nothing jumps while loading.
- Even the diagrams are pre-drawn. The flowcharts in my technical posts are rendered to inline SVG when the site is built — you read a drawing, you don’t download a diagramming library.
None of this is exotic. It’s just moving every possible gram of work from your device to my build step, where it belongs.
Don’t break the web
The old site had lived at this domain for years, and other pages point at it. Retiring it didn’t have to mean snapping those threads.
So every old URL still works — /experience, /media, /success-stories and friends all forward permanently to their new homes. Links are promises; a rebuild isn’t an excuse to break them.
The same instinct kept RSS. There’s a full feed at /rss.xml — no newsletter, no pop-up asking for your email. If you want to follow along, your reader can do it quietly.
Credentials that hold
The other thing the rebuild changed is what leads.
The site now opens with the things that survive scrutiny — IEEE, the UK Global Talent visa, Top 1% on Upwork — not a wall of course certificates. If a claim can’t be checked, it didn’t make the page.
And there’s a place to write: this section. Notes on AI, teaching, and building things — because the best way to stay sharp is to keep shipping, and the best way to learn is to explain.
Update, a week on: a server came back
The site now has a few small AI experiments — a digital twin, a writing-search tool, a research agent. Which means a server exists again. Worth being precise about why that isn’t a U-turn.
The old server ran around the clock to hand out pages that never changed. The new one is serverless: it sleeps at zero cost and only wakes when someone actually talks to the AI.
Same principle as the rest of the rebuild — don’t make people wait, and don’t pay for idle. The pages are still static HTML on a CDN; the server exists only for the one job that genuinely needs one.
Each resident got its own write-up, built the way I teach — from a real question, up from first principles:
- Growing Sprout — my digital twin, and why the hard part of a chatbot is making it refuse.
- The Writing Bed — how retrieval lets a tool answer from my own words, with receipts.
- Scout — an agent that chooses where to look, and knows when to stop.
Or skip the reading and meet them in the Greenhouse.
Rebuild it in your head
The whole rebuild in one breath:
Say one true thing about yourself, then make every page answer to it. Ship finished HTML so nobody waits. Keep old links alive, because links are promises. And when you finally do need a server, make it one that sleeps.
More soon. 🌱