Release ledger · Vol. I

What changed in the inbox,
and why it matters.

The changelog is the public ledger for Folio. It records product changes, reliability work, and setup guidance in the language an operator can act on: what changed, who it helps, and what to try next.

Latest

27 July 2026

Entries

17

Scope

Product · Reliability · Manual

I · Release notes

No. 017

A domain another project already claimed can now finish setup on its own.

The week's headline is a rule that replaces a queue: prove you control a domain's DNS and Folio will use a sending identity it didn't create. Alongside it, a setup page that stops calling things green when they aren't, prices that lead with the monthly rate, and unknown links that finally return a real 404.

  • New

    Prove the zone is yours and sending unlocks itself

    Some domains already have a sending identity registered elsewhere — set up by another project, or by an earlier tool, long before Folio saw them. Folio refuses to take over an identity it didn't create, which is right, but it left those domains permanently short of the records they needed and there was nothing the owner could do about it. Now there is: publish the four records already on your setup page and Folio checks them itself, including a DKIM key it generated at a selector only the zone's controller could answer for. When they resolve, the remaining records are issued automatically on the next pass. No ticket, no waiting on us, and no change to how the identity behaves for whoever else is using it — Folio will use it to send, and still never rename, retag, or delete it.

  • Fixed

    Setup no longer reports green when it isn't

    Three checks on the setup page could pass on records a receiving mail server would reject. SPF and DMARC were matched anywhere in the record rather than at its start, so a value that had accidentally kept its quote marks counted as valid; and a domain carrying two SPF or two DMARC records passed, when in fact a duplicate means no policy is applied at all. Because these checks are what unlock sending, a false green could authorise mail from a domain with no working authentication. All three now match the way a receiver does. Separately, a domain that can't finish outbound setup now shows all seven record positions with the reason, instead of announcing seven, rendering four, and quietly reloading itself every ten seconds forever.

  • Fixed

    Pricing leads with the monthly rate

    The pricing and home pages headlined the full annual total, so $348/yr sat next to competitors quoting $7 per user per month — which reads as expensive even though Folio is dramatically cheaper for anyone running several businesses. Both cadences now headline the monthly rate, with the billed total directly beneath at full ink, and the trial line moved up next to the price where the question about committing to a year actually lands. The comparison figures were re-checked against primary sources at the same time: Microsoft 365 Business Basic is $7, not $6, and Fastmail Business is $3, not $4 — we had been overstating a competitor's price in our own favour. The annual saving is 25%, which we had been understating as 20%.

  • Fixed

    Unknown links return a real 404, and old links land where they meant to

    Any address that didn't exist on folioinbox.com returned the home page with a success code, which told search engines and AI crawlers that every mistyped or stale URL was a real page. Misses now return a genuine 404 with a page that offers somewhere useful to go, while the app's own deep links keep working as before. Seventeen addresses that were linked from elsewhere but never shipped — a features and solutions structure this site never had, plus near-misses of real URLs — now redirect to the page that answers the same question, in a single hop.

  • Reliability

    Domain setup stopped queueing behind a shared AWS limit

    Folio's AWS account is shared with other projects, and two background jobs were asking Amazon about every sending identity in it one at a time, against a limit of roughly one request per second. Once the account passed a couple of dozen identities that reliably hit the ceiling — and a request that gets refused looks the same as a negative answer, so a bad pass could quietly stop tidying up bounce records or under-report problems on the admin view. Both now ask a single question against a different, far more generous service. Retries on the shared connection were also capped, so a throttling incident can't turn an interactive click during domain setup into a minute-long wait.

  • Reliability

    Infrastructure changes are checked before they deploy

    A permissions stack had been stuck in a failed state since late June, silently rejecting every update, and the daily check meant to catch that couldn't run its deeper assertions. The stack is unblocked, the check now runs in full on a schedule, and a class of change that quietly forces AWS to delete and recreate a live permissions policy has been identified and backed out. None of this is visible in the product; it is the difference between a deployment that is verified and one that is assumed.

  • Improved

    Search copy, and a changelog that was showing its own scaffolding

    Two rounds of search and answer-engine work across the marketing pages: clearer titles and descriptions on pages that were being seen but not clicked, better internal links into the pages nothing reached, and repairs to seventeen dead links inside published writing. Found while checking that work: this page and the shipping log on the home page had been serving the release-notes drafter's raw output — placeholder headings and unfinished sentences — for several weeks. Those releases are now written, and a test now refuses to let an unwritten draft reach the site again.

No. 016

Replies land where the sender asked — and setup warns you before mail moves.

Three changes at the edges of the product: replies now honour a sender's Reply-To, connecting a domain tells you first when mail is already flowing to it, and identity changes are fenced to domains Folio provisioned itself.

  • Fixed

    Replies honour the sender's Reply-To

    A sender's Reply-To header was read at delivery and then dropped, so every reply addressed the From line instead — wrong for mailing lists, ticketing systems, and no-reply senders that publish a real reply mailbox. Replies now address Reply-To when it is present and fall back to From when it is not, and reply-all keeps both addresses out of Cc so nobody is written to twice. This applies to mail imported from here on; letters already in your mailbox keep replying to From.

  • New

    Setup that knows your registrar — and warns before mail moves

    The DNS step of connecting a domain now detects your DNS host from its nameservers and shows the click-path for that specific control panel, across roughly forty hosts, with a picker to correct it when the guess is wrong. And before you connect a domain that already receives mail somewhere else, a “Before you switch” alert says so plainly — pointing the apex MX at Folio moves your inbound mail, and that should never be a surprise.

  • Reliability

    Sending identities fenced to domains Folio provisioned

    Every change to a domain's sending identity now passes through a single ownership checkpoint that fails closed: Folio will create, reconfigure, or remove an identity only for a domain it provisioned itself, and a set of reserved zones is refused outright. Infrastructure permissions were narrowed to match, and any identity deletion raises an alert. Nothing about how your domains behave changes — this closes a path where an identity could be acted on without a positive ownership signal.

No. 015

The Spam list holds still under your cursor.

A quiet week, and one fix that took two tries — the second time by instrumenting the real thing on production instead of guessing again.

  • Fixed

    Spam review no longer jitters under the cursor

    In the Spam folder, resting the cursor over a message could throw the page into a rapid scroll-and-reflow loop, with the review panel flickering between two letters. The cause was a feedback loop: the review aside changes height per message, that changes the page height, the browser's scroll anchoring re-pins the scroll position, a different row slides under a stationary cursor, and it selects itself — round and round. A first attempt disabled scroll anchoring on the workspace, which did nothing, because anchoring only applies to the element that actually scrolls. Anchoring is now disabled on the document itself while Spam is open and restored the moment you leave, with a movement check on selection as a second layer. Measured on production before and after: 170 scroll events in three seconds down to one, and a 52px scroll swing down to none.

No. 014

Leave AWS WorkMail without exporting a thing.

The headline is a real migration tool — connect a WorkMail mailbox and Folio pulls the mail across itself. Alongside it: a stricter read on known-bad sending hosts, an accessibility pass over the app, and a second server behind the API.

  • New

    Import your AWS WorkMail mailbox over IMAP

    Connect a WorkMail mailbox and Folio imports its history directly over IMAP — no export file to produce, download, or upload. The credential is used for that one session and never written to storage, to logs, or to the job record, and connections are IMAPS-only. An interrupted import costs nothing to resume: the per-message marker skips anything already brought across. The guided cutover, including the DNS switch, lives at the WorkMail migration guide.

  • Improved

    Known-bad sending hosts now count against a message

    Inbound mail is checked against public blocklists — Spamhaus and SpamCop — at delivery, and a listing feeds the spam score as a bounded signal rather than a hard rejection. This closes a gap where confidently-spammy mail was pulled back toward the inbox by otherwise-clean SPF, DKIM, and DMARC results. Passing authentication proves who sent a message, not that you want it.

  • Improved

    Keyboard, contrast, and touch-target fixes throughout

    A full pass over the app's accessibility. The closed mobile navigation drawer is out of the tab order entirely; opening it moves focus inside, Tab stays within it, Escape closes it, and focus returns where it started. Domain headings use contrast-safe text instead of arbitrary per-domain colours, the Deliverability page's definition lists are marked up correctly, Calendar heading order is repaired, and inbox filters, selection controls, and dismiss buttons are all up to comfortable touch sizes. The next action on a blocked Compose now sits above the explanation of why it is blocked, rather than below it.

  • Reliability

    The API runs on more than one server

    The backend ran as a single instance, so any machine failure or routine deploy meant a gap in service. It now runs two, spread across separate machines, with a disruption budget that drains them one at a time. Nothing about the application itself changed — durable state has always lived outside the process.

No. 013

A denser inbox, and fewer dead ends on the way in.

The desktop list is rebuilt for scanning — roughly two and a half times more letters on screen — and the paths that used to strand a new account now lead somewhere.

  • Improved

    The desktop inbox is a dense, single-pane list

    The desktop folder list spent about 165px per message and showed roughly four letters at a time. Rows are now about 60px — around ten on screen — with the sender's name over a date and via-domain line, a single-line subject, and a one-line preview. The per-domain colour stripe, serif subjects, flagged fleuron, and likely-spam seal all stay. The wide-viewport two-pane reading desk introduced in No. 012 is retired with this release: a row click opens the letter on its own page again, at every screen size. Mobile is unchanged.

  • Fixed

    Trash sorts by date again

    Discarded drafts pinned themselves to the top of Trash regardless of their date, because a draft's row key starts with a letter and every other row's starts with a digit. Trash is now sorted by received date, which puts old drafts back in their real place — including the ones already sitting in your Trash. On one real mailbox, four drafts dated 25 May to 14 June moved from the top four positions down to where they belonged.

  • Fixed

    Onboarding paths that led nowhere

    Three dead ends on the way in. An account with no domain was told to “write the first letter,” which it had no address to do — it now reads “Add a domain to begin” and goes there. A transient failure loading your identities blanked the whole message list; it no longer does. And hitting the preview's one-domain limit showed a notice and stopped, where it now takes you to billing with the upgrade in front of you.

  • Improved

    Hitting a plan limit no longer throws away your work

    Reaching the domain or send cap used to show a notice and redirect to billing, discarding whatever you had just typed. You now get an in-place dialog naming the specific limit you hit and what the next tier changes. If you do go on to billing, the domain you typed or the draft you were writing is waiting for you when you come back.

  • New

    Your preview usage, visible

    Accounts on the no-card preview had no way to see where they stood. The app now carries a quiet meter — sends used of 100, domains used of 1 — and the billing page shows preview accounts the same plan ladder that subscribers already had.

  • New

    Try the multi-domain inbox before you sign up

    The home page's demo link used to scroll toward a video that was never recorded. It is now a working demo: mail from three fictional businesses arrives in one inbox, and hitting reply shows the From address selecting that brand on its own. Also added: an honest note that the web app runs in mobile Safari today, and a waitlist for the iOS launch.

  • Improved

    Pricing shows monthly and annual side by side

    The pricing page gained the monthly/annual toggle the home page already had, so the two surfaces stop disagreeing with each other, plus a five-question FAQ. Two long-standing bugs went with it: two tiers could both claim to be the recommended plan, and on narrow phones the cookie banner covered the first plan card.

  • Improved

    Setup emails that name the actual problem, once

    The nudge that helps you finish connecting a domain now names the specific blocker — inbound MX, SPF, DKIM, DMARC, MAIL FROM, or a missing alias — and carries the exact record to publish plus a link to the right screen. It sends once per problem and then stops: no recurring reminder, and an account that never acts is marked and left alone for good. Renewal notices now also respect the suppression list and carry a working unsubscribe.

No. 012

A new front page, a new inbox, and formatting you can find.

The site and the app were redrawn as a broadsheet — a real nameplate, ruled sections, an editorial icon set — and Compose finally surfaces the formatting controls it always had.

  • Improved

    The site and the app redrawn as a broadsheet

    The design system was consolidated into a single token layer and applied across the product. The home page became a front-page nameplate with a dateline and ruled sections; every marketing page picked up the running head; the app followed. On wide screens the mailbox became a two-pane reading desk where a letter opens beside the list instead of navigating away, with the reply and file actions pinned so they stay reachable partway down a long letter. The two-pane desk was retired the following week — see No. 013.

  • New

    Rich-text formatting in Compose, where you can see it

    Compose could already render bold, italic, links, lists, and quotes — the controls were just hidden behind selecting text first, which nobody thinks to do. The toolbar now appears the whole time you are writing: docked above the field on desktop, riding the top of the keyboard on mobile. Bulleted lists, numbered lists, block quotes, and clear-formatting joined bold, italic, and link. It is fully keyboard-operable with arrow-key navigation, and Escape returns you to the letter exactly where you left off. Markdown is still what gets stored, so nothing about how your mail is sent changed.

  • Improved

    A mobile app built for thumbs

    The launcher icon was a pale mark on a pale ground and effectively invisible on a home screen; it is now a high-contrast masthead “F.” Inside, a bottom tab bar — Inbox, Agenda, Compose, More — replaces the hamburger, and hides itself while you are writing or reading so a rising keyboard never lifts it. Search moved into the masthead. Crude unicode glyphs gave way to one hairline icon set. Alongside: safe-area padding under the notch, domain filters on a single scrolling strip instead of a ragged wrap, and a domain health score that reads as a score rather than an error code.

  • Fixed

    Signatures render the way the brand-kit preview shows them

    A signature saved with its own leading delimiter came out of the composer with that delimiter doubled, and its line breaks collapsed into one run-on line in Gmail. The composer no longer adds a delimiter to a signature that already carries one, and single newlines inside a signature are preserved.

  • Improved

    One notice per domain when mail hits an address you don't have

    A dictionary attack against a hosted domain used to spawn one banner per invented address, each needing its own dismissal, and they could overlap the spam-review banner. Notices now share a single ordered stack, group into one card per domain with a hit count and an expandable address list — so a real address is still rescuable — and offer one tap to dismiss a whole domain, both the backlog and anything that arrives later.

  • Fixed

    Domain health reads SES Easy DKIM correctly

    Domains whose DKIM is published as SES Easy DKIM CNAME records were reported as failing, because the health check only probed for the common selector names. It now detects those records and scores them correctly.

  • Fixed

    Attachment links refresh instead of expiring

    Links to attachments are signed and short-lived, so a message left open long enough would hand you a dead one — including when clicking through an image thumbnail. They are now treated as expiring cache entries and refreshed before use.

  • Improved

    Storage and attachment limits stated plainly

    The 15 MiB attachment limit and the per-plan storage allowances now appear on the pricing page, in the FAQ, in the manual, and in the app's billing view, instead of being something you found out by hitting one.

No. 011

Tougher on spoofed senders — and we show our work.

Mail that fails authentication outright no longer gets the benefit of the doubt: it's filed as spam on arrival. And when a message is flagged, the letter now explains why — in plain English, right next to the checks that made the call.

  • New

    Spoofed senders don't reach your inbox

    Incoming mail that can't prove who sent it — no passing SPF and no passing DKIM, or a From-domain whose own DMARC policy says to reject failures — is now filed straight to Spam on arrival, before it's ever scored on content. This holds even when the spoofed domain publishes no policy at all, so a forged sender can't dodge the check simply by staying silent. Authentication that's merely missing or temporarily unreachable still fails open, so a misconfigured-but-honest sender isn't punished.

  • New

    Why a message was flagged, in plain English

    Open Show message information on any letter and you'll see the authentication results — SPF, DKIM, DMARC — written out plainly, plus a new Sender history line describing how the sending domain's mail has been received across the network lately. History is framed as history, never as proof of identity: a domain with a strong track record still has to pass the authentication checks sitting right beside it, because reputation keys on a domain that can be spoofed and authentication is what actually verifies the sender. How Folio handles spoofed senders.

  • Improved

    More borderline spam actually lands in Spam

    The threshold for automatically filing a message to the Spam folder dropped from 98% to 90% likelihood, so mail that's very probably spam stops slipping into the inbox just under the old line. Anything below that still rides in the inbox with its reasoning one click away.

No. 010

See who's forging your domains — and who's passing.

DMARC aggregate reports used to arrive as opaque daily ZIPs in your inbox. Now Folio reads them for you and charts the result on a new Deliverability page — per-domain pass rates, daily trends, and the IPs sending as you and failing.

  • New

    Deliverability dashboard

    A new Deliverability page reads the daily DMARC aggregate reports mailbox providers file for your domains and rolls them up per domain: authentication pass rate, a daily pass/fail series, the source IPs sending as you and failing, and which providers reported. The raw reports are diverted out of your inbox and parsed server-side — no more opaque ZIPs. Reports land about once a day per provider, so a freshly bound domain takes roughly a day to show its first data.

  • New

    Per-domain reporting, wired automatically

    Every domain you bind now publishes its DMARC reports to a receive-only dmarc-rua@<your-domain> address that Folio creates and manages for you — hidden from your alias list and never a sendable identity. Nothing to set up. To bring in a domain you added earlier, add rua=mailto:dmarc-rua@<your-domain> to its existing _dmarc record; that one line is the only change.

  • New

    Ready-to-tighten nudge

    Once a domain shows a clean pass rate across a full window, the page surfaces a prompt to move its policy from p=none toward p=quarantine and then p=reject — so spoofed mail is actually held or rejected instead of merely logged. A new Manual article, “Reading your DMARC reports,” walks through the page and the policy ladder.

  • Fixed

    DMARC reports route to an address that exists

    Generated _dmarc records previously listed a second rua destination on shared infrastructure that had no live mailbox behind it. Records now carry a single rua pointing at your own per-domain dmarc-rua@ address, so no report is sent to a dead destination. Existing domains pick up the corrected record the next time you view their DNS.

No. 009

Prove deliverability before you switch — and a roomier free preview.

Three changes aimed at the moment before you commit: test that mail lands before repointing MX, get setup steps for your actual DNS host, and a free preview big enough to actually trust the result.

  • New

    Send a test before you move MX

    From a domain's setup page you can now send a real, DKIM-signed test letter to an inbox you control — before repointing MX. Sending never touches your incoming mail, so you can confirm a letter lands in the inbox (not spam) with zero risk to your current setup. Test sends use a separate allowance and never count against your preview sends.

  • New

    Guided, registrar-aware DNS setup

    Folio now detects where your domain's DNS is hosted — Cloudflare, GoDaddy, Namecheap, Squarespace, Route 53, and more — and shows the exact click-path to the record editor instead of a generic table. Unrecognized host? You'll still get your nameservers and clear next steps.

  • New

    Export all mail as .mbox

    Security → Export all mail downloads your inbox, archive, sent, and spam as a standard .mbox file that Thunderbird, Apple Mail, mutt, and Google Takeout all read. Paired with Google Takeout import, your mail moves in and out freely — nothing held hostage.

  • Improved

    Free preview raised to 100 sends

    The no-card preview now includes 100 sends (up from 25), so you can live with the product long enough to trust its deliverability before adding a card. Still one domain in preview; the rest of every plan is unchanged.

No. 008

Emcognito WebMail is now Folio — at folioinbox.com.

Same inbox, same team, same product. We've moved off the shared Emcognito address onto a home of our own. Your email, domains, and DNS are untouched; old links redirect automatically.

  • New

    A name and a home of our own

    The product now lives at folioinbox.com. Bookmarks and links to the old wm.emcognito.com address forward to the new one automatically — nothing to update. Your email address, custom domains, and MX/DNS records are unchanged.

  • Improved

    Passkeys: one quick re-enrollment

    A passkey is tied to a site's address, and ours changed — so a passkey set up on the old domain can't sign you in here. Sign in with your email link as usual and you'll be prompted to add a fresh passkey; the Security page flags any old one that needs replacing. Magic-link sign-in always works as a fallback.

No. 007

AgentDraft now reads like a first-party calendar connection.

The Calendar setup panel now presents AgentDraft as a same-studio integration, with explicit token scope, connection status, rotation, and disconnect controls.

  • Improved

    First-party AgentDraft bridge

    The old numbered setup step became a full integration panel with the AgentDraft mark, same-studio badge, agentdraft.io link, clear connection state, and a scoped-token row that tells you exactly where to paste the Webmail / Folio token.

No. 006

Calendar invites read like the actual invite, not a stub.

The agenda card now carries the full briefing — description, named guests with RSVP status, recurrence sentence, and a Join chip that picks the right video provider even when the LOCATION field stacks several URLs.

  • Improved

    Briefing pull-block

    The agenda card now surfaces the invite description as an editorial pull-block under the meta line — collapsed to a single-line excerpt by default, expanded in place when you click Read all. No more bouncing to Google Calendar to figure out what the meeting is.

  • Improved

    Named guests

    Attendees moved from anonymous coloured dots to named chips with partstat-toned pips. First four guests render inline; the rest collapse to a +N more chip with the overflow names available on hover.

  • Fixed

    Join chip provider label

    Invites whose LOCATION jammed two URLs together with a semicolon (a GitHub thread and the Meet link, for example) were labelling the chip with the wrong hostname. The parser now splits stacked URLs before extraction so the chip always names the recognised provider — Google Meet, Zoom, Teams, Webex, Whereby, and the rest of the known set.

No. 005

Invites land in the inbox with a real agenda behind them.

Calendar invites are now first-class objects in the reading view: RSVP without leaving the letter, see conflicts before you accept, and let any calendar app subscribe to the result.

  • New

    Inbox-side agenda

    A new Agenda view groups every invite that has arrived in the inbox into Today / Tomorrow / weekday rails, with per-identity filtering so a portfolio operator can see one brand's week at a time.

  • New

    RSVP, with conflict warning

    Inbound invites get accept, decline, and propose-new-time controls inline. Accepting an event that overlaps another accepted event surfaces the conflict in a confirm step before the reply goes out.

  • New

    Recurring events from RRULE

    Recurring invites expand by RFC 5545 RRULE, so a weekly standup shows up on every occurrence rather than only the series start.

  • New

    Subscribe-out iCal feed

    Each account can mint a private iCal feed URL that exposes its accepted agenda to Apple Calendar, Google Calendar, or any CalDAV-aware reader — read-only and revocable.

  • Improved

    Time zones and clipping

    Invite times now honour the original TZID on the inbound message instead of being silently rewritten to the server zone, and declined or canceled events drop off the agenda automatically.

  • Improved

    Public Domain Health tool

    The free /tools/domain-health checker now detects DKIM at common provider selectors (Google, Microsoft 365, Mailchimp, SendGrid, Amazon SES, others) instead of penalising a domain whose selector lives outside the usual default.

No. 004

Android availability is now part of the public product story.

The homepage now treats the Android app as proof that the same multi-domain inbox works on the phone operators already use.

  • New

    Android app link on the homepage

    The landing page now links to the Folio Android app on Google Play while keeping web signup as the primary action.

  • Improved

    Mobile release panel

    A new mobile section explains that Android is live, iPhone is coming next, and the same account, identities, passkey sign-in, and auto-From behavior carry across devices.

  • Improved

    App-aware structured data

    Homepage SoftwareApplication metadata now reflects Web and Android availability and points crawlers to the Google Play listing.

No. 003

Clearer setup, safer billing, better sending identity control.

Today's work focused on reducing setup uncertainty and making account state changes more dependable behind the scenes.

  • New

    Native From selector in compose

    Compose now exposes a first-class From dropdown so multi-domain operators can choose the exact sending identity before a letter leaves the desk.

  • Improved

    Expected-vs-found DNS checks

    Domain setup now shows clearer DNS verification differences, making it easier to spot a copied value, stale record, or registrar formatting issue.

  • Fixed

    Tighter DKIM and DMARC verification

    Verification now handles DKIM and DMARC edge cases more carefully, so a domain is less likely to sit in an unclear partially verified state.

  • Reliability

    More resilient subscription handling

    Stripe subscription webhooks now handle duplicate and thin events more defensively, keeping billing status aligned when providers retry or send compact payloads.

  • Improved

    DMARC reporting documentation

    The Manual now explains DMARC aggregate reporting authorization so operators understand why the wizard asks for the records it does.

No. 002

No-card preview and a cleaner Workspace migration path.

This release made the first trial safer and gave Google Workspace switchers a concrete DNS plan before they move mail.

  • New

    No-card preview

    New accounts can start with one domain and 25 sends before adding a card. The card-required trial begins only when the operator chooses to lift those caps.

  • New

    Google Workspace migration wizard

    A public cutover guide now walks Workspace users through a no-downtime MX transition, including overlap, verification, and when to cancel the old tenant.

  • Improved

    Preview-cap follow-ups

    Upgrade prompts and account state copy now match the new preview model, removing stale wording from CTAs and billing explanations.

  • Improved

    Push notification groundwork

    Native push notification plumbing and iOS APNs configuration were wired so the mobile app can notify operators about new correspondence.

No. 001

Public pages received a conversion and clarity pass.

The earliest changelog entry covers the visible product-market surfaces: how the site explains the product, handles capture, and routes readers.

  • Improved

    Landing-page QA fixes

    Tap targets, analytics consent placement, and public-page wiring were tightened so prospects can evaluate and start without small layout snags.

  • Improved

    Newsletter capture polish

    The newsletter flow now gives a clearer success state and avoids pointing readers at a direct email CTA that was no longer part of the public surface.

  • Improved

    Founder and editorial polish

    The public story gained stronger founder framing and magazine-style details that better match the single-reader, many-identities positioning.

II · How to read this page

Not every commit belongs in the ledger.

User-facing changes are written here when they alter setup, sending, billing, deliverability, or the public manual. Internal infrastructure work appears only when it changes the reliability or safety a customer would actually feel.

The success metric is simple: fewer support questions that begin with "what changed?" and more operators completing domain setup, first send, and billing upgrades without asking for context.

Sources