capad.fyi · hero locked · now the rest of it
The hero is settled — T4, the whole picture, deckle and live inks. So this is the other half of the problem: the content around it and the flow through it.
Here is the diagnosis, and it is not a content shortage. The good material already
exists and most of it is better than what a portfolio in this genre usually has. The
problem is that it is scattered, and the flow does not route through it. Four
testimonials sit in their own section when three of them are about specific projects.
Around sixty stack items take a scroll that reads as filler. The genuinely exceptional
specifics — 553 of 647 commits, propose-then-confirm,
0.7 ms, 92% of self-time — are buried inside
ninety-word paragraphs where nobody will ever read them.
So almost everything below is subtraction or re-attribution. Nothing is invented. Every word and every number is already yours, moved somewhere it can work. The coloured tags mark what is new, moved and cut.
The wordmark was the biggest missing piece and I could not place it without knowing
what it actually is. Now I do: it is capad, and the icon is a
c with a liquid drop falling off its terminal. So the drop becomes the ink
drop on the sheet and the mark sits on the paper rather than floating above it. T4 ink,
picture whole, same locked framing.
The whole proposal on one screen before the mock, so you can argue with the structure without scrolling a picture.
| Cover | Wordmark restored. Statement, name, proof strip and availability pill are your existing copy, untouched. T4, picture whole. |
|---|---|
| The ledger | New section, and the highest-leverage change here. Every hard number you already publish, aggregated into one honest block directly under the cover: 0 API keys, 0 blocking reviews, 0.7 ms, 92% of self-time, 137 LEDs, 2.3 MB, 8 AI-chat providers, 78 reviews, 553/647 commits. Today these are scattered across four cards where a scanning reader never assembles them. Each number names the project it came from, so it is a receipt and not a boast. |
| Work | Kept, and reordered by proof density rather than by a manual order field: searchts, then Hare, then glyphmaps, then grove. Each card carries its real metrics as before. |
| Testimonials | Moved. No longer a section. Each quote is attached to the project it is about — the two searchts tweets sit under searchts, the wmux maintainer note sits under wmux, the Appson note sits under experience. This deletes a whole section and converts four testimonials from decoration into per-item evidence. It is the one change I would fight for. |
| Experience | Merged with the manifesto. The summary fields are excellent and unreadable at ninety words each. The specific claims are pulled out of them as inline receipts — 553 of 647 commits, propose-then-confirm writes, SHA-256 append-only audit log, 1,400 LOC deadline engine, 34 Mongoose models. The manifesto then closes the section instead of sitting in a separate one. |
| The stack | Cut from the main flow. Eight groups, roughly sixty nouns. That is a resume appendix, and in a portfolio it is the lowest-signal screen on the site. It stays on /resume in full; the run replaces it with one line and a link. This is a deletion, and it is the one I most want you to check, because it changes what your site claims to be. |
| Contact | Reframed as a colophon. The last page of a printed book is where the credits are, and you already had the shape — a Caveat signature over capad.fyi · built in glass. Now it says so, and carries paper, ink and typeface credits. Also a bug: the site ships two different emails, connect@capad.fyi on the homepage and form, hi@capad.fyi in the CMS resume. Pick one. |
| Flow | Deliberately almost nothing. The one continuous gesture is the registration offset easing toward zero as you leave the cover, reusing the mechanism you already liked rather than inventing three new set pieces. Section boundaries are carried by value and paper, not by animation. |
One continuous sheet. Read it top to bottom the way you would scroll it.
I build the tools that shouldn’t need to exist.
shipping in the open searchts · glyphmaps · grove · beep-beep-oss
See the workthe ledger
Nine numbers, all already published by you, each one naming where it came from. Nothing here is a claim I wrote.
selected work
Two shipped, two in progress. Status updates live, straight from the CMS. Ordered by how much checkable evidence each one carries.
A keyless web unlocker that reads, searches, and transcribes what a naive fetch cannot, from bot-walled pages to whole AI-chat share conversations. Ships on PyPI as a CLI, an MCP server, and a Python library.
what people said about this, specifically
“from your own IP” is the whole insight. a proxy pool fights the bot-wall; your own IP is already through it, same reason a human's browser doesn't trip cloudflare. an agent acting from where you already are doesn't need to sneak in. nice build.
Phi Browser · on searchts · @phibrowserfetch-time + final_url turns read output into something a reviewer can cite later. Tier/status is useful; redirect + timestamp makes it durable.
Dang_nh · on searchts · @hikarirainaA PR reviewer in two forms. Hare Bot checks the branch out, installs it, runs the repo's own test command, and posts findings as me. Hare is that same review shipped as a GitHub App. Neither can approve a merge.
Google Maps turn-by-turn on the back of a phone. GlyphMaps mirrors the next maneuver onto the Nothing Phone (4a) Pro's 137-LED Glyph Matrix, so a glance at a face-down phone shows your next turn. No Maps API key.
A free Git review companion that sits beside your AI coding editor. The commit graph, diffs, and every in-flight worktree, refreshing live as your agent changes the repo under you.
also shipped, smaller: CoffeeBreath, a Rainmeter widget that breathes with the album art · Discord Voice Overlay · Dooper, a self-hostable Matrix inbox · MSU Halls Register.
experience
Primary engineer and architect on a small team for corporate-governance SaaS covering MCA/ROC company data, statutory deadlines and penalties, and Vee, an agentic chat with governed writes.
Owned a Vite/React transcript editor for production transcription work, with a thinner personal share on the wider CodeCommit platform.
Most people think “that would be cool” and move on. I build it.
I like things that respond and feel a little alive. A turn arrow drawn in LEDs on the back of a phone. A music widget that breathes with the song. The things I build are maximal and full of motion; the words about them stay plain.
Aadarsh owned the architecture of Compliance Sarathi end to end and shipped a reliable agentic assistant under real deadline pressure. He is who you want on the hard parts of a system.
Engineering · Appson TechnologiesThe stack moved to the resume, whole. Eight groups and about sixty nouns is an appendix, not a page. It reads as filler in a portfolio and it is the lowest-signal screen on the site. It is all still there at /resume; the run just stops pretending it is content.
colophon
I'm open to roles, contracts, collaborations, and the occasional desktop oddity. Email is the fastest way to reach me.
Aadarsh Upadhyay
You asked how we move through it, so here is the whole navigation model, which is deliberately almost nothing.
| The spine | Cover → ledger → work → experience → colophon. Five stops, down only. Every claim on the page is either a number in the ledger or an expandable item beneath it. There is no sixth stop competing for attention. |
|---|---|
| The one gesture | The registration offset eases from its cover value toward zero as you leave the first screen, so the print visibly comes into register while you read. It is the same custom property the hero already uses, extended once. No new mechanism, no scroll-jacking, no pinned sections. |
| Boundaries | Carried by paper value, not by animation. The sheet changes value once, at experience, and that is the only seam in the document. |
| Nav | The dot rail becomes four stops instead of seven, because there are four places worth jumping to. Labelling it work ledger experience colophon rather than inventing new navigation. |
| Exit | The colophon is the exit and it behaves like one: the credits are there, the email is the largest thing on it, and there is nothing after it to scroll to. |