tangible.one · 19 artifacts · 7 groups
The tangible.one app and marketing site: account screens, campaigns, pricing widget, transactional emails, brand foundations. Scarecrows, not builds: every page is standalone HTML with no build step. Grouped by the work item it belongs to, newest pass first. Times are Montreal (EST). Newest: Transactional emails, 3 Oct 2026.
Active threads — the newest pass is the one to read.
Kitchen sink → working editor → Julia’s Figma round trip → decoration split into axes.
The assembled scarecrow of every 08-26 decision: header bar owns identity and publish, preview on top at actual size, a height-draggable drawer with four tabs (Setup / Content / Appearance / Delivery), live theming and frames, and strategy-B positioning: a tappable schematic map of the current format, kind-discriminated, beside preview-rendering kind and art dropdowns.
The ornament model survived review; the glyph position control did not. Four replacement strategies — plain words, the format’s own schematic map, thumbnail radio cards, drop-on-preview — each drawn on three formats, plus the decided two-rows-and-a-countdown-toggle panel.
v2 modelled decoration as one enum on the eyebrow. This splits it into three axes — up to two placed ornaments, a frame treatment, and the existing art presets — recovers the pre-v1 stickers and dashed borders, and adds ribbon, price tag, stamp and burst. Every rail shown failing.
All seven formats, grouped by slot class, plus a live arbitration simulator showing which campaign wins each slot. The round trip: v1 went into Julia's Figma and came back as spec.
Working editor for topbar, banner and welcome mat. Julia's Figma, ported — the form derives itself from the format and the surfaces really render. Superseded by v2.
The first kitchen sink: the 40% OFF spinwheel sticker, ticket-edge strips, rotating promo bars, in-navbar placements, hero-collapse-on-scroll. Explorations, mostly not v1.
Settled: shipped, normative, or a stable set of screens.
The signed-in app. A set, not a thread — each page stands alone.
Tabbed product page — downloads, changelog, licences, feedback.
One site: plugins, activations, observations.
The connected-sites table.
Account overview: branded alerts, plugins, licences.
Licence keys, seats and activations.
Catalogue listing.
What we send, rendered from the real template code.
All nine emails we send, rendered from the real template code — plus two redesign directions. Two use the branded shell; seven don't.
Normative for the WP widget plugin.
Six layouts, seven themes, the overflow policy and PPP hydration. Normative for the WP widget plugin — port it, don't redesign it.
Became real code.
The double-opt-in landing. Shipped and live — this one became real code.
Working documents for the people building the marketing surfaces.
The list of handoff documents, newest first.
Twelve consent, purchase, email and plugin setup screens with their current words, where each lives in code, and what to review.
Colour, type and the logo glyph.
Four loading directions built from the logo glyph.
Colour, type, buttons, callouts, flourish restraint — the original brand direction. This page.
Dashboard direction
This is what body copy looks like in League Spartan. Comfortable at 18px line height 1.6 — breathable and readable.
Heads up
Improved PHP 8.3 support and fixes for async sync queues. Three of your sites are still on 1.1.0.
Review sites →Dashboard alerts — branded
Issues across your sites
License lifecycle events
Palette
Notices
Dashed border + saturated icon bubble + two-line copy hierarchy. Pattern lifted from teamtangible.com's contact-form confirmation.
Thanks for reaching out!
A member of our team will follow up with you shortly to discuss how we can help.
Your download is being prepared
We're bundling the latest release. This usually takes a few seconds — we'll redirect you when it's ready.
Your SiteSync license expires in 9 days
Your subscription isn't renewing. If you want uninterrupted access, renew from your billing page before April 28.
5 licenses active across 8 sites — all good.
Buttons
Type scale
League Spartan 18 · body copy for longer paragraphs. The quick brown fox jumps over the lazy dog.
League Spartan 14 · secondary / metadata. The quick brown fox jumps over the lazy dog.
League Spartan uppercase · eyebrow label
Evolution
The marketing site sets the brand tone; the app adapts it for data density. Record every deviation here so future decisions stay principled, not arbitrary.
Evolution · 2026-04-19
Source: teamtangible.com pills almost everything — CTAs, form inputs ("FIRST NAME"), nav links. The marketing site's pill-heaviness is part of its bold voice.
App evolution: in a data-dense B2B context, pill-for-everything becomes visual noise — a 500px-wide search input shaped like a pill feels precious, not confident. So we split the radius rule:
rounded-full (pill) — page-level primary CTAs onlyrounded-lg (8px) — secondary buttons, filters, dropdown triggersrounded-md (6px) — text inputs, search fieldsrounded-xl (12px) — cards, notice blocksRationale: the pill retains its signal because it's rare. When everything's a pill, nothing is.
Evolution · 2026-04-19
Source: marketing pages lean into rotated note-cards, scattered confetti dots, yellow highlighter strips, squiggle underlines everywhere.
App evolution: flourishes are reserved for moments — a single squiggle on hover, a single highlighter phrase in an empty state. Page-level decorations (rotated cards, dot confetti, highlighter on body) don't ship to the app because they contend with data the user is trying to read. We apply brand warmth through color, type, and the dashed-border notice pattern instead.
Template · future evolutions
Each time we deviate from teamtangible.com's pattern (or knowingly inherit something unusual), add a block here with: source behaviour, app evolution, and rationale. Keeps the "why" legible to future you.