LAB / DECISION LOG
58 decisionsDecision log
I was keeping this log while building the site anyway: what changed, what I rejected, and why. I decided to make it public because the finished interface hides most of that work. If you are looking at the result, I want you to be able to see how I think while making it.
Some earlier entries were reconstructed from project notes; new decisions are recorded as they happen. This is not a release log or a cleaned-up success story. Reversals and failed directions stay when they help explain where the work ended up.
Website decisions
Showing 58 decisions
Scroll horizontally to read every column.
| Date | Category | Decision | Reason | Source |
|---|---|---|---|---|
| Interaction | Gave all four Button Lab families a native momentary lifecycle: an immediate, higher-contrast state remains for the full held input and recovers on release, while each family’s ripple, passage, raster scan, or shape treatment can finish independently. | The earlier controls displayed noticeable effects but did not consistently feel clicked: Contact had no held state, Type Register expired on a timer even during a long hold, and Morph often released before its active shape arrived. Physicality now comes from concept-specific darkening, displacement, compression, or substrate exposure rather than shared Material styling. |
| |
| Visual design | Replaced Type Changes Register’s centered zero substitution with a 145ms Anime.js raster head, then separated the family from vermilion transport through a vivid-cobalt, midnight, and sulfur palette plus a faint same-color register impression behind the displaced label. | The zeros erased the label’s structure, while the initial vermilion treatment made this family resemble Direction Becomes Motion and left the short raster as nearly invisible texture. The revised treatment keeps the real Inky Mono label readable and completely unscaled: vertical displacement and an undeformed impression add physicality without compressing monospace glyphs or borrowing Contact’s chromatic registration. |
| |
| Process | Refine all four surviving Button Lab concepts into complete control families under one functional contract, compare them in real interface contexts, and trial each on the homepage before selecting the production language. | Choosing from isolated hero specimens would leave the central design question unanswered. Making every concept solve compact utility controls, directional reading actions, link semantics, disabled states, and reduced motion tests whether it can become a coherent system and gives the case study an earned production conclusion. |
| |
| Interaction | Kept each homepage Note card fully clickable, softened its panel with the shared small radius, and added a persistent lightweight “Read note →” footer instead of repeated button chrome. | The square bordered cards read as static, razor-sharp panels, while their existing hover-only response did not communicate clickability on touch devices. A quiet text affordance makes the progressive disclosure discoverable without turning the carousel into a wall of buttons. |
| |
| Architecture | Stabilized the first render of the measured baseline system: self-host and preload the Commit Mono reference face alongside PP Telegraf and Inky Mono, calculate the coupled Hero and About corrections in one batch, reserve the final layout space, and reveal the managed text and rules only when the font-resolved frame is aligned. | The arithmetic was small, but the page initially measured fallback text and then corrected several elements across successive animation frames. That produced a conspicuous second movement after the grid and content had appeared; the revised loading contract measured 0px of post-reveal movement under both normal loading and a simulated 750ms font delay. |
| |
| Layout | Completed the Introduction baseline registration by measuring the Hero headline as well as the Hero body and About text, then rendering every horizontal guide with a shared 1px optical offset below the measured phase. | The August implementation aligned the Hero body and About but omitted the Hero headline, so its rule could visibly cut through the letters. Placing the rule on the exact baseline raster row also overlapped flat glyph edges; the 1px offset makes the rule sit directly underneath them. |
| |
| Process | Closed the planned twenty-concept local-model button batch after two smoke generations in each of two prompting strategies; preserve the prompts and raw artifacts as internal evidence, but do not continue the remaining jobs or add the experiment to the public case study. | The compliance-led prompt produced technically correct but generic effect demonstrations. An action-led revision improved the model’s conceptual rationale, but the rendered controls still lacked reliable visual authorship and included basic execution failures. Scaling the same behavior would create volume rather than useful divergence, and the smoke tests had already answered the experiment’s question. |
| |
| Content | Restructured the Button case study around the reset: retain the original twelve-option evidence, compress V2 from a six-card state gallery into a short causal bridge and shortlist, then contrast it with four live concepts from a fresh premise-led session; mention two rejected attempts without displaying them and keep the ending explicitly in progress. | V2 matters because refinement exposed the convergence, but the full gallery delayed the real story and gave the failed branch too much visual weight. The central narrative is recognizing that granular correction would preserve a flawed process, abandoning that path, and restructuring the collaboration until the agent became a useful creative partner rather than another source of cleanup. |
| |
| Visual design | Rejected Button Lab Concept 05 and redirected the final exploration toward a barely visible container with dominant type and iconography. | The detailed halftone texture stole attention from the action and did not look pleasant. Expressive feedback should remain subordinate to the button’s content. |
| |
| Visual design | Accepted Button Lab Concept 04 and its text-only, icon-only, and text-with-icon forms as a viable shared control candidate. | The typographic register and internal color response create an expressive visual identity while preserving a generic label-plus-optional-icon primitive that can be used without conceptual rework. |
| |
| Visual design | Rejected Button Lab Concept 03 as the basis of the shared control language and returned the exploration to an atomic label-plus-optional-icon primitive. | Combining previous and next actions with a live counter and progress rail produced an overcomplicated navigation component. Position and progress should remain separate components that can be composed with generic controls when needed. |
| |
| Process | Reset the Button Lab from cosmetic variant matrices to one coherent, agent-owned concept at a time; retain the accepted contact-point color response as Concept 01 while the next variation starts from an independent directional-motion premise. | The earlier candidates shared the same template and gaming-style treatment, while manually directing tiny differences defeated the purpose of testing an agentic design process. Concept 01 demonstrated enough authorship to preserve as a benchmark rather than immediately tuning it. |
| |
| Layout | Applied the scoped baseline contract to Contact: its email line establishes the local 26px phase, the Contact heading is corrected to it after font loading and reflow, and its local guide renders from that phase. | Contact retained the same decorative-gradient problem as the original About block: its guide began from an arbitrary section edge instead of a real text baseline. |
| |
| Layout | Adopted a true baseline contract for the shared Hero + About introduction: the Hero’s first body baseline establishes the 26px phase, measured corrections align About’s visible index label, headline, and first body baseline after font loading and reflow, and the visible guide renders from that same phase. | About was visibly off despite row-sized boxes because the previous horizontal guide was only a gradient and Hero’s fluid height put its actual text baselines out of phase. Siarhei clarified that the rule must sit on the base of each text line, not merely organize text boxes; the left-rail label must share that phase when visible. |
| |
| Layout | Made About a row-snapped text surface within the shared introduction canvas: its padding and gaps use full 26px layout rows, its heading reserves an integral-row slot, and Body Large begins on the following row. | The visible horizontal guide made About’s arbitrary 32px padding, 24px heading gap, and fluid heading box appear to drift even though its body copy used 26px leading; row slots strengthen the text-grid relationship without imposing global baseline snapping on expressive headings. |
| |
| Layout | Combined Hero and About into one shared introduction canvas with a single grid guide and only outer-edge fades; removed About’s local guide and section border, and aligned its content to the Hero copy track. | The two adjacent grid surfaces used the same visual language but their independent fades failed to connect, while About began on a different column and appeared unanchored. |
| |
| Content | Restructured the About block from a second introduction into a three-paragraph arc — current code-first practice, the site as its own public case study with links to the decision log, labs, and notes, then the AR/creative-tools origin — and replaced “face and body tracking” with “on-device ML” in public copy. | The hero and About both restated who Siarhei is while nothing on the page substantiated the photo card’s “code-first practice” claim; Siarhei confirmed the site should present itself as a case study, and tracking language reads wrong to the public without context. |
| |
| Content | Retired the dedicated Hero Badge lab route and removed it from the public Labs index while retaining the approved production photo-card component on the homepage. | The exploration is complete, so a separate tuning page no longer adds useful context or represents active work. |
| |
| Layout | Hide the numbered section index at the compact breakpoint while preserving each section’s semantic heading. | In the one-column mobile composition, labels such as “01 / about” stack directly above titles such as “About me” and repeat the same information; the index remains useful as a separate orientation rail on wider layouts. |
| |
| Visual design | Raised the shared Inky Mono label roles to 14–15px, reduced their tracking, and narrowed Body Large to fluid 16–17px so labels and normal text sit closer in the visual hierarchy. | The previous 12–13px labels felt disproportionately small beside normal text. Tightening only the upper end of Body Large improves the balance without making labels larger than prose or returning the light Commit Mono treatment to an undersized scale. |
| |
| Architecture | Selected Vercel as the first production host for `s1k.digital` while retaining the site’s fully prerendered `adapter-static` architecture. | Siarhei chose Vercel after hearing positive reports about it; static output keeps deployment simple and portable if the host changes later. |
| |
| Visual design | Rejected and removed the Button Controls V3 geometry-divergence experiment while preserving the original button exploration. | None of the four V3 constructions was worth carrying forward; the experiment made the shortlisted controls worse rather than revealing a stronger direction. |
| |
| Architecture | Made `src/lib/styles/tokens.css` the canonical source for reusable styling definitions and adopted Material-style semantic typography roles calibrated for the site’s own fonts. | Typography had fragmented into dozens of local values, including labels below 11px; central roles create a legible shared scale without making the site inherit Material’s visual language. |
| |
| Process | Opened the existing working Decision Log to readers, made it the only maintained project history, and required new decisions to be recorded as they happen. | The finished interface hides the judgment behind it; one contemporaneous record shows how Siarhei thinks while avoiding duplicate Progress Log and Architecture Decisions maintenance. |
| |
| Testing | Added browser tests for public routes, horizontal overflow, browser errors, and Notes Reader behavior. | Visual review did not protect stable route and interaction behavior. |
| |
| Interaction | Promoted the Hero Photo Card’s scroll-driven light treatment to the homepage and mapped it to the card’s own travel rather than full-page progress. | Full-page progress made the effect nearly static while the hero remained visible. |
| |
| Layout | Standardized the first structural content below navigation on one fixed 3rem route-start spacing token. | Lab and case-study routes had mixed fixed, responsive, and doubled top spacing. |
| |
| Architecture | Moved navigation ownership for every `/lab` route into one shared route layout. | Each experiment needed the same route back to the homepage without duplicating navigation markup. |
| |
| Visual design | Assigned licensed Inky Mono to structural labels, navigation, metadata, and compact interface text. | Labels needed a distinct authored voice while Commit Mono remained responsible for reading copy. |
| |
| Layout | Replaced the universal centered page cap with a small-inset workspace and separate layout owners for content pages, tools, and reading surfaces. | The old 92rem frame made the site behave like a centered document even where it was intended to feel like a workbench. |
| |
| Layout | Removed the globally visible grid guides and made them opt-in for individual surfaces. | Global guides intersected with cards, tables, and panels that used different structural grids. |
| |
| Layout | Presented homepage experiments as compact linked rows instead of another card gallery. | The section is a route index for working experiments, not a promotional project gallery. |
| |
| Content | Replaced separate public Button Lab links with one continuous “How to Build a Button” case-study route. | The public artifact needed to show the progression as one process rather than disconnected playgrounds. |
| |
| Layout | Replaced separate homepage section-label implementations with one static Section Index component. | Per-section labels had inconsistent alignment and sticky behavior. |
| |
| Content | Framed the first process case study around the claim that the first prompt is not the beginning. | The work needed to show how prior context, constraints, critique, and live code shape agent-assisted design. |
| |
| Interaction | Rejected transparent ghost controls and opened a Button Lab to test opaque physical alternatives. | The transparent button felt false because the background grid competed with the action surface. |
| |
| Content | Converted the homepage to mdsvex and introduced semantic inline terms. | Long-form source needed to remain readable while still supporting interactive components. |
| |
| Content | Limited semantic inline styling to first occurrences and high-signal concepts instead of highlighting every interesting word. | Repeated wrappers made the authored source harder to read and weakened the meaning of the styling. |
| |
| Visual design | Selected licensed PP Telegraf Regular for titles after comparing free and commercial candidates in an isolated lab. | It provided the chosen title character without making headings excessively heavy. |
| |
| Visual design | Increased the shared body rhythm and homepage copy sizes after applying the lighter Commit Mono weight. | The new body treatment read too small and light at the previous scale. |
| |
| Content | Added Siarhei’s AR product and applied-ML creative-tooling background to the homepage copy. | The earlier copy underrepresented years of work in AR authoring, effects pipelines, segmentation, tracking, and relighting. |
| |
| Visual design | Adopted Commit Mono for body copy while keeping titles non-monospace. | Using one mono treatment for every text role would make the site read as a literal terminal. |
| |
| Layout | Moved hero and section copy from arbitrary maximum widths onto real grid and subgrid spans. | Text blocks needed to participate in the page scaffold rather than merely sit above a decorative grid. |
| |
| Layout | Moved the approved photo-card and introduction composition from the isolated lab into the homepage hero while keeping the lab as a reference. | The isolated direction was approved as the production hero composition, but still needed a separate tuning surface. |
| |
| Process | Stopped taking screenshots after every small visual change and reserved them for meaningful composition review. | DOM, computed CSS, console output, and runtime dimensions are faster and more precise for minor layout debugging. |
| |
| Layout | Replaced the decorative grid overlay with a responsive CSS grid also used by page content. | The visible grid claimed to be structural, but the content was not actually aligned to it. |
| |
| Visual design | Rebuilt the hero portrait as a lightweight HTML, CSS, and Svelte photo card. | The card retained the physical-object direction without requiring a heavy 3D scene. |
| |
| Visual design | Rejected the initial Three.js security-badge treatment for the hero portrait. | It felt visually heavy and loaded a large Three.js bundle for one portrait treatment. |
| |
| Process | Required block-level briefs and isolated labs before major visual changes reach production surfaces. | Visual structure and intent should be agreed before polishing or homepage integration. |
| |
| Content | Marked the Commonweal Compute brief as canonical and treated earlier documents as supporting material. | The earlier article draft contained superseded framing. |
| |
| Process | Classified local-LLM outputs for Commonweal Compute as unverified ideation material until checked against real literature. | Generated numbers, citations, and factual claims could not be published as evidence without verification. |
| |
| Content | Positioned `s1k.digital` as a personal portfolio and the primary home for Commonweal Compute, rather than an agency traction site or LinkedIn series. | The first public work needed to support portfolio evaluation before interviews, not become a content-series or traction exercise. |
| |
| Layout | Reduced the homepage hero height so the first viewport also reveals the page beyond the introduction. | The initial hero occupied too much of the first screen. |
| |
| Visual design | Removed the acid and cyan gradient spots introduced in the first visual pass. | They did not match the requested thin, terminal-like grid treatment. |
| |
| Architecture | Reserved Three.js for future WebGL and shader work rather than using a React graphics wrapper. | It is the established standard with broad documentation and keeps the graphics layer independent of React. |
| |
| Architecture | Configured the site for static generation with SvelteKit’s static adapter. | The current site does not require a server, and static hosting keeps deployment simpler. |
| |
| Architecture | Chose modern vanilla CSS and custom properties instead of Tailwind. | The visual system needed direct control without inheriting a framework’s conventions. |
| |
| Architecture | Replaced the initial Astro scaffold with SvelteKit. | The site was becoming interaction- and motion-heavy rather than primarily content-driven. |
|