Our.one · Decisions
What we chose for you. And why.
Every product, UX, or policy choice we made on your behalf gets a row here — queryable, comment-able, react-able. Superseded decisions stay visible. Reverted ones too. You should be able to see what we decided and push back.
- ShippedgovernanceAI-authored
Decisions support long-form comment threads
Decisions can be commented on using the same `comments` table that powers Hall wishes / proposals / ADRs. Reactions are the single-bit pushback signal; comments are the long-form one.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedcomposeAI-authored
Compose has Write / Preview tabs through the same render pipeline
ComposeBar has Write / Preview tabs. Preview round-trips through the same server-side renderMarkdown pipeline that the feed uses.
Decided May 5, 2026 · Shipped May 5, 2026
- Shippedapp-shellAI-authored
Sticky rails, no marketing footer on /one
On /one/*, the left and right rails are sticky to the viewport (only the center column scrolls); the marketing footer is removed.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedtypographyAI-authored
Inter for body text, Bitter for display headings
Body text in /one (atom bodies, paragraphs, textareas) uses Inter via the .substrate-body class. Bitter is reserved for display headings.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedgovernanceAI-authored
Every decision is a database record, supersedable, react-able
Every product/UX/policy choice (lens shape, refusal, UX affordance) is stored in a `decisions` table. Users can react to and (eventually) comment on decisions. Decision history is preserved — supersession chains, never destructive overwrites.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedgovernanceAI-authored
Decisions emit pulse events when they ship
When a decision flips into status='shipped' (new or transition), `upsertDecision` emits a `decision_shipped` pulse event with slug, title, scope, product, and AI-authored flag — the build-log + activity ticker pick it up automatically.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedcomposeAI-authored
Bookmarks are atoms, not a separate table
A bookmark is an atom with source_kind='save' and references_atom_id pointing to the saved atom. Reader-only utility — the bookmarked atom's author is never told.
Decided May 5, 2026 · Shipped May 5, 2026
- Shippedapp-shellAI-authored
Lens color paints the whole shell, not just the center column
The active lens's color paints the entire /one shell (nav + rails + center column) via a --substrate-bg CSS variable.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedcomposeAI-authored
DMs are atoms with visibility=private + recipient pointer
Direct messages render at /one/dms (inbox) and /one/dms/<userId> (thread). They're atoms with `source_kind=direct_message`, `visibility=private`, and `dm_recipient_user_id` set; the same `buildVisibilityClause` enforces author-or-recipient-only access. Profiles get a Message button.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedlensAI-authored
Excerpts are a lens setting, not a global preference
Each lens declares an excerpt strategy. Deep-reading lenses (Calm, Focus, Friends) render full bodies; scan lenses (Default, Quiet news) render word-truncated excerpts with an explicit Read more → link.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedreactionsAI-authored
One reaction kind, author-only aggregate, no public counts
A single reaction kind ('appreciate') for atoms at v0.5. The author of the atom sees aggregate (count + sample names). Other readers see only their own button state — no counts, ever.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedlensAI-authored
Profiles capture declared intent; the For-you lens filters by tag-overlap, never inference
New `one_profiles` table: profession, bio_md, interest_tags. Onboarding flow at /one/onboarding captures these on first visit (skippable). New `For you` lens dynamically pulls the viewer's interest_tags at query time and filters public atoms by tag overlap with each atom's `intent_tags`. Both sides — author and reader — explicit. No behavioral inference.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedlensAI-authored
Discovery is a public chronological timeline + people directory, not an algorithm
New 'Discover' lens shows all `visibility=public` atoms across Our.one, newest first. New `/one/people` directory lists publishers (users with at least one public atom) sorted by most-recent-public-post. Empty-state on follow-only lenses now points users to both.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedcomposeAI-authored
Replies are atoms; threading is a self-FK pointer, not a separate type
A reply is an atom with `references_atom_id` set. Reply button on AtomCard opens compose pre-filled with the source; atom permalink renders all visible replies as a thread.
Decided May 5, 2026 · Shipped May 5, 2026
- ShippedfeedAI-authored
Avatars on atom cards, monochrome with hover-to-color
Atom cards render author avatars; in monochrome and hidden lenses they're desaturated by default and animate to color on hover.
Decided May 1, 2026 · Shipped May 5, 2026