notes shipped events today
-
The Console I Built to Stop Drowning
The story of the Course Console, and how it grew out of a scaling problem. Going from four classes to seven made attendance alone unmanageable, so I built a data-free QR scanner: signed codes a student cannot forge, scanned on my phone, verified by a workflow. That scanner taught me a shape, a page that holds no data, reads my repos live, and writes back only through one reviewed door. The same shape then swallowed grading review: AI-proposed grades render in grain type until I approve or edit them, at which point they go clean, and nothing reaches a student until I turn my decisions into a prompt I have read. One console, two tabs, one rule: the machine drafts, I sign.
-
I Was Shipping Faster Than I Could Understand It
How I got back on top of AI-assisted work across a dozen repos: one shared workflow instead of a dozen improvised ones. A work-triggered heartbeat (a doctor at every session start, CI on every push) that makes skipped chores visible, an accountability contract (a run ledger, declared rails, and verification by a second pass) that keeps an unattended run honest, and a documentation discipline borrowed from aerospace manuals and from Addy Osmani's writing on loop engineering. One person applying the shape the field agrees on, honest that it isn't proof it scales to a team.
-
I Finally Ran the Benchmark I Kept Promising
I built the same small blog four ways, my native stack, the same stack with the browser doing the HTML swap, Astro, and Next, and measured what each ships for one identical filter. Next sends about 118 kilobytes of JavaScript where my stack sends two, roughly 162 times more, with the same rendered HTML and the same SEO on every build. Declarative Partial Updates, a new browser primitive, pushes the cost lower still by letting the server stream fragments the browser patches in with no library, though it is a flagged experiment and not safe across browsers before about 2027.
-
PROOF is live
The plan board stopped rendering a snapshot and started streaming: cards move as the work moves, pushed over server-sent events, on this very site.
-
A student project worth showing (placeholder)
A placeholder event standing in for a real student-project highlight. The photo and prose are set dressing until the real ones replace them, so read this as the shape of the post, not the project.
-
Closed a loop I called at the top of a note
The plan for building PROOF was the first thing on its own board. I published the plan for the plan tool before the tool existed, and it held.
-
Coached a hackathon team (placeholder)
A placeholder event standing in for a real hackathon writeup. The photos and prose here are set dressing until the real ones are dropped in, so treat this as the shape of the post, not the post.
-
Where were we?
AI coding sessions lose their plan state between sessions: it lives in prose docs, memory files, and handoff prompts that both operators have to re-read. PROOF is a small open-source tool that standardizes AI plans as markdown files with six frontmatter fields and renders them as a live kanban board. The files are the source of truth, the board is a projection, and the AI never maintains the board. Written as the argument for building it; PROOF has since shipped, and the dated update at the end closes the loop.
-
PANTRY's mindmap shipped
PANTRY's whole-codebase mindmap shipped. It is AI-legible, not AI-powered: it runs no model, it just makes a project easy for an agent already on your machine to read.
-
Gave a talk (placeholder)
A placeholder event standing in for a real talk. The photo and prose are set dressing until the real ones replace them, so read this as the shape of a talk post rather than the talk itself.
-
This Site Feels Like an App. It's a Stack of Full Page Loads.
A technical tour of how tjakoen.github.io is built, and why it is a different way of doing things: the single-page feel is a cross-document View Transition, not an SPA; there is no build step, because a Bun server composes the HTML and the static site is a frozen crawl of it; there is no client framework, only a handful of small scripts leaning on native browser elements; writes go through one path that also runs with no server; and the whole thing is three layers stacked one direction. The AI side of the story lives in its own whitepaper.
-
The Browser Grew Up While I Was Busy With Frameworks
I spent years inside frameworks because the native web platform couldn't do the job. It can now. Here is the specific, mildly technical account of the browser features (View Transitions, the dialog element, details, has, color-mix) that let me build a whole stack with no framework and no build step, what that actually buys you, and the honest limits, plus the benchmark I finally ran.
-
One design system, one vocabulary
The whole site is one design system: every surface is addressable by a human and an AI through one shared vocabulary, and the AI's hand stays visible on the page as grain. One vocabulary, one direction.
-
How I Turned a GitHub Org Into My Whole Classroom
The maker's story of a GitHub-native course platform: GitHub is the LMS, a repo is the coursework, a push is a submission, and grading is an Action. How the "repo is the platform" reframe fell out of having no budget, the one-engine-many-courses design, and the unglamorous bugs that turned out to be the real work: access control, scoped tokens, and treating repo names as data.
-
Ten Times Zero Is Still Zero
How I actually work with AI, and why it holds up. AI is a multiplier, not an addend; it multiplies what you already are, and ten times zero is still zero, so I made sure I wasn't zero first. Then the receipt, pulled from this portfolio's own git history: more documentation than code, written fast, with an AI co-authoring every commit. Professional vibe coding is the human writing the rails and the AI writing much of the code inside them. Includes the playbook.
-
I Nearly Quit Teaching. So I Automated the Part That Was Killing Me.
Why I teach when the math says I shouldn't, how I run a classroom (treat adults like adults, lean into self-study, skip the fluff, go straight at the hard parts), and how, after a semester that nearly made me quit, I automated grading and coursework onto a GitHub-native platform so the mechanical grind stopped stealing the time I actually wanted to spend on students.
-
New panels on the desk
This feed, and a compose window that doubles as the contact form. The site is static, so the compose window hands your message to your own mail app rather than pretending to have a backend.
-
I Built a Whole Stack Because No To-Do App Would Have Me
How trying to organize my own life turned into a no-build stack, a design system, a content engine, and an AI that manages me.
-
One Vocabulary, Two Operators
A research-style positioning of GRAIN, an AI-interaction design system: a UI where a human click and an AI decision resolve to the same closed, semantic action-vocabulary through one write door, with the AI's presence disclosed as an in-surface provenance signal. The contribution is an alternative *modality* for AI, a design-system claim, independent of what is built with it or where it runs.
🤖 Built with Claude. I don't prompt and pray, I prompt and prove. How I actually work with AI, receipts and all →