The system has been building since March 2026, and every major build is below, newest first. Entries carry a version tag from July 2026, when the system became a versioned package; earlier entries come from the project history.
Docs pages measure their own width
22 August 2026
- Content-level breakpoints measure the content column, not the browser window — collapsing the sidebar brings the table of contents back with no resize
- Below 860px of content width the table of contents becomes an "On this page" dropdown under the breadcrumb
- Body text caps at 720px where the contents column is absent, ending a jump in line length at the breakpoint
- The collapsed sidebar renders before first paint, so the layout never flips on load
- Focus outlines stay inside dialog and drawer scroll areas
The glossary becomes a searchable reference
20-22 August 2026
- Every term in the glossary is an expandable row grouped by letter, with live search and a sticky A-Z jump rail
- Every entry follows one pattern: a one-sentence definition, newcomer context, then labelled examples
- Two reusable pieces came out of the work: the expandable contents row and the docs-site A-Z index
- The glossary takes the first cover on the home page shelf
Page transitions join the docs kit
20 August 2026 v4.1.0
- A
pageTransitionsconfig flag in the docs kit — the generator bundle a consumer installs to build its own docs site — off by default, with the default output byte-identical to before - Enabled, the generator emits the transition markup and stylesheet plus a bundled page router with named hooks for site-specific wiring
- Strict validation, a conflicts checklist and a warning when a site already runs its own router make enabling an explicit choice
Two control bars become one: the bar
16 August 2026 v4.0.0
- Sticky bar and toolbar were the same box discovered twice; they are now one Bar, configured by density, width and sticky attributes
- The bar keeps to one row: items that do not fit collapse into an overflow menu, in the order the author set, instead of wrapping
- Every doc and tool page now ends its bar the same way — actions, overflow trigger, close
- The two token families collapse into one, with every old name mapped onto a new one
Fourteen icon names leave the sprite
14 August 2026 v3.0.0
- Fourteen names retire and three arrive, moving the icon sprite from 188 names to 177 — duplicates collapse onto one drawing each, and eleven of the fourteen are renames rather than losses
- The release records six components shipped since the previous release: Site Header, Nav, Footer, Page Header, Toolbar and Avatar
- The long-form text-size classes that were documented but never defined in CSS now work, as aliases onto the short forms
eye,eye-offandtiktokjoin the set
The Docs section stops describing a site that no longer exists
14 August 2026
- All 106 markdown sources audited; the Docs section went from 16 pages to 13
- Three obsolete pages removed, with their still-true content merged elsewhere
- The sidebar stopped listing every tool twice
- Setup, folder-structure and markdown docs corrected: wrong ports, deleted scripts, undocumented fields
Six page types, and tools stop being hand-written
13-14 August 2026
- One page-rendering core serves the docs site and brand instances, replacing eight near-duplicate generators
- A single table decides each page's chrome — header, bar, table of contents, pager, feedback, footer — across six declared types
- Seven tools moved from hand-written HTML into generated source pairs, each shedding around 120 lines of duplicated boilerplate
- Every tool must carry a close control, enforced at build time; a browsable showroom of the six types ships under
examples/
Components survive page navigation
11 August 2026
- Tabs, accordion and rating went inert after any in-page navigation and only recovered on a hard reload; all three now re-initialise on every page swap
- Every tool page had been missing two to five scripts; all nine now carry the full set
- Two automated checks joined the test run: one proving every shipped script survives a swap, one driving real navigations in a browser
- Published guidance named the wrong navigation event, so listeners written from it never fired — corrected
The docs site starts using its own components
10-11 August 2026
- Page Header and Footer became core components, replacing the hand-rolled footer on all 124 generated pages
- The feedback modal now composes Dialog, gaining proper labelling, focus handling and motion
- Breadcrumbs on 104 generated pages use the Breadcrumb component, fixing separators read aloud and a missing current-page marker
- Every page now reports exactly one banner, one main and one contentinfo landmark
Toolbar ships, and every tool moves onto it
9-10 August 2026
- The tools had solved the control bar three separate times; one component replaced them all, with grouping, labels, dividers and an actions cluster
- One 36px control height across the bar, replacing bars that rendered three unrelated heights side by side
- Bars dropped from 70px to 53px and now line up with page content
- A consistency pass followed: missing focus indicators, pressed states, merged menus and keyboard access across all eight tools
- The Toolbar merged into the Bar a week later, on 16 August
Site Header, Nav, Sticky Bar and Avatar become core components
8-9 August 2026
- Nine classes welded to the docs grid became three portable components; the docs stylesheet lost 539 lines
- The mobile sidebar is a real modal drawer — 130 focusable elements were reachable behind a closed menu, now zero
- A skip link, focus return, scroll lock and 44px touch targets arrived with the rebuild
- Browser test suites proved the rebuild, rather than a read-through of the CSS
Drawer, Book and Page Navigation join the system
3-4 August 2026 v2.2.0 v2.2.1
- Drawer builds on the existing dialog machinery with a placement axis and no new script
- Book covers, contents rows and the prev/next pager promoted out of docs-site CSS into the portable system, with 22 new tokens
- Dropdown menus measure the viewport and place themselves, and the menu semantics were finished: roving focus, typeahead, grouping
- v2.2.1 fixed invisible text on coloured outline buttons and dark-mode toasts losing their type colours
The CMS goes from plan to live admin
2-4 August 2026
- One authoritative plan landed first: measured inventory, architecture, six gated phases and a full decision log
- The importer parses all 95 source pages, runs dry by default and is idempotent per source file
- Import parsers turned the documentation corpus into structured content — unconvertible raw HTML fell from 64 blocks to 2
- The admin deployed on Cloudflare, bound to the production database and media bucket, with 98 pages imported as structured blocks
Eleven channel pages now share one template
3 August 2026
- Ten social and owned-channel pages rebuilt as Regulations, Standards, Formats, Tools — joining the Direct page authored on the template two days earlier
- The split separates what a platform imposes from what By Default chose
- Every page gained a Tools section; where no tool exists yet, the page names the one that should
- Contradictory Instagram crop guidance corrected in five places
The Logo Tool ships
2-3 August 2026
- The Logo Tool exports any By Default lockup at any size and colour, as SVG, PNG or JPG
- Brand guidelines become interface: minimum size is an input floor, clear space bakes the exclusion zone into the file, colour is a choice between approved options
- A validated manifest drives the tool, with named empty states when it does not check out
- A headless harness runs 130 checks across all five lockups
A permanent asset host, and the redirect table cut to one rule
2 August 2026
assets.bydefault.studionow serves email-signature assets under a contract that bytes at a published path never change- All 109 historical redirects were deleted rather than migrated — the site had never been public, so no old URL had ever been shared
- The build now fails above the host's redirect-rule limit, so a bad redirect file can never deploy again
The site restructures around the Media System
1 August 2026
- A concept document lands: one vocabulary for mediums, token scoping and the engine/instance split
- The Design System section became Website — 44 URLs moved, grouped by medium so new mediums are an addition, not another rename
- Touchpoints split into Social and Channels, plus a new Direct page for decks, proposals and RFPs
- The generator now keys its rules on a page's layer rather than a section name, so a rename cannot silently break a gate
The platform moves to Cloudflare, and auth comes out
31 July to 1 August 2026
- Both domains transferred with no downtime — one was 26 hours from expiry with auto-renew off
- The docs site ported to a Cloudflare Worker, with both server-side forms verified end to end
- The login gate had lost its backend and was redirecting 109 of 114 pages to a dead sign-in screen; it came out in one change, with the login and account layouts kept as unwired designs
- Site output switched to an explicit allowlist, so a forgotten file returns 404 instead of leaking
The system becomes a versioned package
12-30 July 2026 v1.0.1 → v2.1.1
- Releases ship through a public artefact repo, tag-synced by CI and consumed as a version-pinned dependency
- Nine releases in the first fortnight, v1.0.2 through v2.0.0: the icon sprite, a machine-readable DESIGN.md, the docs kit and the standalone styleguide all join the package
- Component JS and the
bd-*media modules (audio, video, cursor) followed in v2.0.1 and v2.1.0 - v2.0.0 made blocks gap-only — the first breaking change consumers had to migrate for
- Every built artefact carries a version stamp, and the release history was backfilled into a changelog
BrandOS becomes a product, and the studio site moves out
2-6 July 2026
- The agency site moved to its own repository on 2 July, with its own generator and deploy
- BrandOS repositioned from an internal system into a brand-agnostic engine running brand instances, with By Default as instance one and the live demo
- Touchpoint guidelines arrive as a first-class section: eleven per-channel pages from one template
- A settings model appears — an admin manifest plus a designer-facing theme file, with generated config that is never hand-edited
The agency site is built here, and pushes the system hard
April to May 2026
- The By Default agency site was designed and built inside this repo: home, work feed, case studies, products, contact
- Page transitions, scroll animation, carousels, fluid type and the sidebar patterns were all proven here first
- The transition layer was rebuilt end to end in May: transforms confined to a stage element, with a wrapper inside every container so a failed swap cannot strand a page
- The whole site later moved out, taking the lessons and leaving the system
One markdown source starts generating the whole site
April 2026
- The project reorganised around a single markdown source: docs became
cms/, tools consolidated, HTML generated - Sidebar navigation rebuilt, with tools given direct links and clean URLs
- The generator grew author wiring, opt-out flags and full-site regeneration
- The design system took its first full refresh: palette, typography, logo reorganisation and drop cap support
Logins arrive, and the site wears its first client brand
28-30 March 2026
- A login gate arrived: Netlify Identity, per-page access control and role-based docs
- Client themes introduced the multi-brand architecture — access control and client index generation per brand
- The site restructured into section subfolders with a standalone auth page
The Brand Book lands, and the site gets a URL
21-27 March 2026
- The Brand Book section landed alongside the design system foundations
- The first tools shipped: CPM Calculator, Display Ad Preview and the SVG cleaner
- Netlify deployment configured, and tables, mobile type and docs styling took their first passes
The system starts life as a project template
20 March 2026
- The repo began as By Default's project template, filled in as By Default BrandOS
- The docs site became the root hub, with assets consolidated under one folder
- Brand fonts set: Inclusive Sans for body, RecifeText for headings