Set up the company GitHub account and wrote the plan for the Labs series: 30 repositories, each runnable, each with a live demo. First decision: no build step for demos, so a client can open one and it works.
Dated notes from building the Labs series. Not a changelog: the decisions, the small gotchas, and the things we chose not to do. The commit that added each entry carries the same date.
Set up the company GitHub account and wrote the plan for the Labs series: 30 repositories, each runnable, each with a live demo. First decision: no build step for demos, so a client can open one and it works.
Sketched the shared design tokens: navy #0b0f1a, gold #f5c26b, blue #3a7bff, Poppins headings and Inter body. One stylesheet for every demo so the account reads as one studio, not thirty forks.
Wrote the shared runtime helpers: SVG line and donut charts, tables, formatting, storage, toasts. Rewriting a table renderer thirty times would have been the real cost of this series.
Started Pulse. Funnel semantics first: first-touch anchor, ordered steps, conversion window; retention cells that cannot be observed stay null rather than zero, because an unobservable week is not a 0% week.
Seeded dataset generator for Pulse: mulberry32, growth-skewed signups, decaying return visits. 120,000 events in about 110 ms, so the demo can regenerate the dataset on every load.
Decided the gallery would be one Pages site with every demo in a subfolder instead of thirty Pages sites. One deployment, one place for a client to browse, one build log.
InvoiceFlow money model: integer minor units, discount applied before tax, largest-remainder split for line totals. Float currency bugs are the quickest way to lose a finance client.
Wrote the project gate: required files, README substance, screenshots, demo asset checks, runtime smoke test, no placeholder text. If a repository does not pass, it does not get published.
Deskly SLA engine: business hours, holidays, and pause-on-customer reconstructed from ticket history. A countdown is easy; pausing it at the right instant is the part that breaks support desks.
Slotwise DST conversion: a wall time can map to zero, one or two instants. Tests written before the UI so the ambiguity is handled once, in the engine, not in every screen.
Leadpipe forecast: committed, weighted and ceiling pipelines instead of a single number. Sales teams argue with a number; showing the assumption is what makes it useful.
SchoolKit report card: credit-weighted GPA, competition ranking, print CSS. Printed output is still a requirement for most schools, so the stylesheet is part of the feature.
QueueKit: atomic claim with UPDATE ... RETURNING, full-jitter backoff, leases. Built the dead-letter replay first because that is what on-call actually needs at 2am.
SocketChat: RFC 6455 framing by hand on node:http. Tested the masked Hello vector from the RFC before writing a single room, which made the rest of the server straightforward.
SearchLite: Porter stemmer checked against the published vocabulary sample, then BM25 with configurable k1 and b. The demo exposes the per-term score breakdown so a ranking can be explained.
RAGForge evaluation harness: 36 labelled questions, hit at k and MRR. A retrieval demo without an evaluation number is a magic trick, not an engineering sample.
Arvion UI contrast audit: WCAG ratios computed in JavaScript, and a token pair below 4.5:1 fails the audit page. Tokens that fail should be visible in the system, not discovered by a user.
GharKo Sathi Flutter case study: job state machine and offline queue written as pure Dart and tested against shared JSON vectors, so the JavaScript mirror in the demo cannot drift.
Landing Kit: six templates on one conversion framework. Documented why each section exists instead of shipping six pretty pages with no argument behind them.
Motion Lab: every recipe has a prefers-reduced-motion fallback, and the playground includes a cubic-bezier sampler. Motion that ignores the user's setting is a bug, not a style choice.
SyncKit convergence test over thirty random seeds with network partitions. If two clients do not converge after the partition heals, the demo is a lie, so the test came first.
Final pass before publishing: re-shot every screenshot with the random-port capture script, checked each one shows its own project, and recorded the demo GIFs that now sit at the top of each README.
Arvion Technologies, Kathmandu, arviontech.net · GitHub