Build the TinkerPages prototype — one of eight fundamentally different local site studies in WEB-FABLE-W1 — to prove one thing: the format is the product. TinkerPages is a documentation format, “one project, one page,” for makers whose finished projects live undocumented in drawers and photo rolls. The domain is owned; nothing was built for TinkerPages before this study. The page had to present the format as a proposal, demonstrate it on one real Curiosell artifact, and stay inside the wave’s honesty grammar at every sentence.
02Audience
One type of person, one specific problem: a hobby engineer with finished projects and zero documentation, who wants each one captured on a single honest page. Their problem is not motivation and not tooling — it is that open-ended documentation never gets started, so finished work becomes unrepeatable and mute. The page speaks to that person in their own material culture (graph paper, tape, marker notes) while showing them a bounded format that actually gets finished.
03Visual Concept
“Field notebook.” An engineer’s graph-paper notebook — white cards taped onto a cream grid, mono stamps and labels, short hand-written margin remarks — disciplined by a real format underneath. The charm is surface; the structure is strict: cards sit on a fixed grid, rotations never exceed ±1°, and every block label is set in mono like a form field.
Palette: cream graph paper #FBF6E9 with grid rules #C9D6DF; white card stock #FFFFFF; graphite #3B3B3B; marker red #D9402A; marker blue #2E6FA8; sticker yellow #F2BE22 for stamps and chips only (never as text on light ground).
Type: GROTESK (Segoe UI stack) for structure and body; MONO (Cascadia/Consolas) for format block labels, statuses, and readouts; HAND (Segoe Print stack) strictly for short decorative annotations that repeat what body copy already says. Scale ratio 1.25: 13 / 16 / 20 / 25 / 31 / 39 / 49 px. Spacing unit 8 px, multiples only.
Motion: tactile and small — cards settle with a light spring on entry, tape strips shift a degree on hover, the IN DESIGN stamp thunks in once. prefers-reduced-motion makes everything static; the animation class is only added to the root when JS confirms motion is allowed.
Anti-look honored: no kraft-cardboard texture, no safety-yellow industrial tape, no crayon vibe, no skeuomorphic spiral binding.
the notebook is the costume — the seven-block spec is the body underneath
04Signature Techniques
Interactive format demonstrator
The centerpiece is a worked-example TinkerPage — the real Landing Pad Pack procedural generator (SketchUp/Ruby, part of DRONIEUS) — rendered as a live document beside a mono format spec panel. Blocks 03–07 (PARTS / STEPS / WHAT BROKE / RESULT / NEXT TIME) toggle off and on; TITLE and ONE-LINE WHAT are locked with an explanation. Removing a block does not silently reflow the page: it leaves a dashed red “missing block” stub stating exactly what the page just lost. That stub is the argument made mechanical — the format, not the styling, is what keeps a project alive.
Completeness meter
An SVG gauge (ticks drawn procedurally 0–7, needle rotated by CSS transform with a spring bezier scoped to the motion-allowed class) reads the demo’s actual toggle state: blocks present, blocks filled, and a verdict line in an aria-live region. Two example blocks are honestly unfilled — WHAT BROKE and NEXT TIME need the builder’s own memory, and inventing them would break the wave’s rules — so the meter distinguishes “present” from “filled.” Nothing is simulated; the meter is labeled as a live-computed design instrument.
Implementation notes
Vanilla JS in one end-of-body script; every DOM query null-guarded; runs from file://.
Toggles are role="switch" buttons, fully keyboard-operable; number keys 3–7 mirror them (modifier keys and editable targets are excluded); keys 1–2 flash the locked rows instead of failing silently.
Reduced motion: the settle observer short-circuits, the needle snaps, the stamp appears without its thunk.
Small screens: the panel stacks above the document, decorative hand-arrow annotations are hidden below 1100 px, and the layout holds at 360 / 768 / 1280 px with no horizontal scroll.
05What Is Real / What Is Prototype
Item
Status
Honest note
tinkerpages.com
DOMAIN HELD
Domain owned; no public surface exists.
This site page
IN DESIGN
The design study itself; deployed as a placeholder preview (WEB-LIVE-A1, 2026-07-09).
Seven-block format spec
CONCEPT / PROPOSAL
Drafted in this wave (2026); untested against real projects.
Landing Pad Pack generator
WORKING
Real SketchUp/Ruby procedural generator, part of DRONIEUS; used to produce a real asset pack. Its TinkerPage here is an example with two blocks honestly unfilled.
Completeness meter
BUILT (in-page)
Real client-side instrument reading real toggle state; no simulated data anywhere on the page.
Community / users / submissions
— none exist
Stated plainly on the page. No gallery of TinkerPages exists yet.
06Business Direction
Who it serves: a hobby engineer with finished projects and zero documentation, who wants each one captured on a single honest page.
What problem it solves: open-ended documentation never gets started; bounded documentation does. The seven required blocks turn “write it up someday” into a finishable task, and the required WHAT BROKE block makes the record useful rather than flattering.
What offer or content strategy it could support: the format itself is the product — a template plus a discipline. Plausible directions, all unpriced and undecided: the format published as a free template; a gallery of real TinkerPages once they exist; possibly hosting or community features later. Growth is content-gated by design: TinkerPages earns its next step only when 3–5 real TinkerPages of real finished projects exist. The first candidates would come from Curiosell’s own artifacts, as the worked example does.
What proof/assets are needed later: 3–5 real completed TinkerPages of real projects (including their WHAT BROKE and NEXT TIME blocks, written by the builder); a revised spec after those pages push back on it; and an owner decision between a hosted gallery/community and purely personal use — currently undecided and stated as undecided.
07For the Next Builder
Write one more real TinkerPage. The obsidian-ai-capture-bridge CLI or the operator-console are real, working Curiosell artifacts; either could yield a second worked example — but its WHAT BROKE block must come from real notes, not invention.
Pick from the upgrade menu in the brief: the grid that re-rules itself per section (5 mm→10 mm) or spring physics on the meter needle. The print stylesheet was claimed by critique pass 1 and the red-marker correction layer by pass 2 — see the log below.
Pressure-test the spec copy. The seven “why” lines in the format spec card are the page’s soul; tighten any that read generic.
Keep the honest gaps. The two unfilled blocks are load-bearing honesty. If a future pass fills them, the content must come from the builder’s real memory of the generator work — otherwise leave them unfilled and visible.
Do not add: community language, submission forms, user counts, or any launch phrasing. The page states that none of these exist; keep it true.
08Critique Log
Pass 0 — builder self-critique
Problems found in my own build and fixed before finishing:
Annotation overflow. The hand-written margin notes were absolutely positioned outside their cards (right: -178px). Against the page’s overflow-x fence they were clipped half-invisible at 1100–1300 px viewports. Fixed: annotations repositioned inside card bounds, and the worked-example note moved into normal document flow so it survives every width.
Clipped tape. The example-document card used overflow: hidden (a leftover from its zero-padding layout), which silently amputated its masking-tape strips — the site’s core texture. Fixed: overflow removed; the tapes render at every breakpoint.
Hover specificity bug. The card hover-straighten rule (.card:hover) lost the cascade to the entry-settle state (.settle.in), so most cards ignored their own hover behavior. Fixed with an explicit .card.settle.in:hover rule — hover states are now consistent across all cards.
Reduced-motion leak risk. The meter needle’s spring transition could have run for reduced-motion users. Fixed twice over: the transition is scoped to a class added only after a JS matchMedia check, and the reduced-motion media query force-disables it anyway.
Greedy keyboard shortcuts. The number-key toggles originally fired on any keypress. Fixed: modifier combinations (Ctrl/Alt/Meta) and editable targets are excluded, and keys 1–2 flash the locked rows with an explanation instead of doing nothing.
Complexity upgrade this pass: the locked-row flash — pressing 1 or 2 highlights TITLE and ONE-LINE WHAT with a brief red wash, teaching the “a page without them isn’t a page” rule through interaction rather than only through copy.
Pass 1 — hostile director critique
Problems found by a critic who did not build the page, and fixed:
Status-stamp contrast failure. The IN DESIGN cover stamp set 16px bold mono in marker red #D9402A on a white card — 4.45:1, under the 4.5:1 AA floor for text that size, on the page’s single most important honesty element. Recolored to the deep marker red #B93420 (5.9:1); the double-rule stamp look is unchanged.
Format-spec list collapsed wrong on small screens. Below 768 px each row’s three spans fell into a two-column auto 1fr grid, auto-placing the long “why” line into the number column and crushing the block name beside it. The why-line now spans the full row on small screens and returns to its own column at 768 px+.
Meter caption could contradict the meter. “Two blocks await the builder’s memory” was hard-coded, so toggling WHAT BROKE or NEXT TIME off made the sentence false against the live count beside it. The caption is now computed with the meter — including the zero case, which states that hidden gaps are hidden, not filled.
Block swap animation ran once, then died. The swap-in class was added but never removed, so each block’s reveal played only on its first toggle. The class is now reset (with a forced reflow) on every toggle; reduced-motion still disables it entirely.
Widowed words in display copy. Four card headings could strand their last word at narrow widths (“…carry the weight”, “…required blocks”, “…is not”, “…could grow”), as could this guide’s own title. Tied with non-breaking spaces.
Inaccurate keyboard hint. The panel said keys 3–7 work “when this page has focus”; they work anywhere outside editable fields. The hint now says what the code does.
Complexity upgrade this pass: a print stylesheet plus a “Print this TinkerPage” button (keyboard-reachable, null-guarded, hidden where window.print is unavailable). Printing strips the notebook costume — tape, tilt, grid, panel, manifesto — and emits only the worked example as one clean sheet, in whatever toggle state the reader left it, with the format line and the wave’s honesty footer printed on the page. “One project, one page” becomes literal paper: the format survives without the styling, which is the site’s whole argument.
Pass 2 — hostile director critique
Problems found by a second critic who did not build the page, and fixed:
The meter lied without JavaScript. The needle’s CSS default pointed at 0 (“DRAWER”) while the hard-coded readout beside it said “7 / 7 blocks present” — with scripting off, the page’s own instrument contradicted its own caption. Fixed: the static default now sits at 7/7 to match the static readout, and the script rewinds the needle to zero before its first update so the opening sweep still runs for motion-allowed visitors.
Dead controls with no confession. With JavaScript off, the spec panel still presented five switch buttons, keyboard instructions, and a tickless dial — all inert, none explaining themselves. Fixed: a <noscript> notice inside the panel states plainly that the panel is inert and that the example renders complete without script.
Two hand-accent sizes. The hand annotations ran at 1.125 rem in the margins but 1.0625 rem in the document footer and in this guide — two arbitrary sizes for one accent voice, neither on the declared scale. Normalized to a single 1.125 rem accent size on both pages.
Undersized tap targets. The 13 px mono navigation links (cover nav, both footers, this guide’s nav) had no padding — roughly 20 px-tall touch targets on the site’s only navigation. Fixed: the small mono links now carry an 8 px vertical hit-area pad with no visual change.
Complexity upgrade this pass: the red-marker correction layer from the brief’s upgrade menu. A “Run the marker pass” button (revealed only when JS is live, aria-pressed, keyboard-reachable) overlays an editor’s red pen on the worked example: hand-written margin remarks grading each block against the spec, and a marker circle around the two honestly-unfilled tags. Every remark repeats a fact the document already states — the pen checks, it never invents. Motion is one small scoped ease, disabled under reduced motion; the print stylesheet strips the whole layer so paper still gets the clean page. It deepens the argument: the format is something a page can be graded against, and this page grades itself in the open.
Pass 3 — director rendered inspection (browser)
Observed during a live browser-rendering inspection; no code defect identified and no changes made:
Transient renderer freeze on first load. One transient freeze occurred on this page’s first load during inspection — the screenshot pipeline timed out twice; the tab recovered on navigation.
Bisection exonerated every construct. Debug variants (script removed; background disabled; motion CSS force-enabled without script) were tested in isolation and reproduced nothing; the original page then rendered cleanly on all subsequent loads with zero console errors.
Render verified otherwise clean. Format spec, demonstrator controls, print and marker-pass buttons, and the honest unfilled-block labeling all verified correctly in render.
No code defect identified; no changes made this pass. The incident is disclosed in W1_VALIDATION_REPORT.md.
Complexity upgrade this pass: none — stability preserved after two verified upgrade passes.