<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Folio — Changelog</title>
    <link>https://folioinbox.com/changelog</link>
    <atom:link href="https://folioinbox.com/changelog.xml" rel="self" type="application/rss+xml" />
    <description>Public release notes for Folio: new features, reliability fixes, and migration tools for one operator running many businesses.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 28 Jul 2026 10:26:46 GMT</lastBuildDate>
    <item>
      <title>No. 017 — A domain another project already claimed can now finish setup on its own.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-07-27</guid>
      <pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 016 — Replies land where the sender asked — and setup warns you before mail moves.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-07-23</guid>
      <pubDate>Thu, 23 Jul 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 015 — The Spam list holds still under your cursor.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-07-20</guid>
      <pubDate>Mon, 20 Jul 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 014 — Leave AWS WorkMail without exporting a thing.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-07-13</guid>
      <pubDate>Mon, 13 Jul 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 013 — A denser inbox, and fewer dead ends on the way in.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-07-06</guid>
      <pubDate>Mon, 06 Jul 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 012 — A new front page, a new inbox, and formatting you can find.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-06-29</guid>
      <pubDate>Mon, 29 Jun 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 011 — Tougher on spoofed senders — and we show our work.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-06-22</guid>
      <pubDate>Mon, 22 Jun 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 010 — See who's forging your domains — and who's passing.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-06-16</guid>
      <pubDate>Tue, 16 Jun 2026 12:00:00 GMT</pubDate>
      <description>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@&lt;your-domain&gt; 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@&lt;your-domain&gt; 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.</description>
    </item>
    <item>
      <title>No. 009 — Prove deliverability before you switch — and a roomier free preview.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-06-05</guid>
      <pubDate>Fri, 05 Jun 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 008 — Emcognito WebMail is now Folio — at folioinbox.com.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-06-04</guid>
      <pubDate>Thu, 04 Jun 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 007 — AgentDraft now reads like a first-party calendar connection.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-31</guid>
      <pubDate>Sun, 31 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 006 — Calendar invites read like the actual invite, not a stub.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-18</guid>
      <pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 005 — Invites land in the inbox with a real agenda behind them.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-16</guid>
      <pubDate>Sat, 16 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 004 — Android availability is now part of the public product story.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-12</guid>
      <pubDate>Tue, 12 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 003 — Clearer setup, safer billing, better sending identity control.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-11</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 002 — No-card preview and a cleaner Workspace migration path.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-10</guid>
      <pubDate>Sun, 10 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
    <item>
      <title>No. 001 — Public pages received a conversion and clarity pass.</title>
      <link>https://folioinbox.com/changelog</link>
      <guid isPermaLink="false">folio-changelog-2026-05-09</guid>
      <pubDate>Sat, 09 May 2026 12:00:00 GMT</pubDate>
      <description>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.</description>
    </item>
  </channel>
</rss>
