Expiro home
Changelog

What's new in Expiro

Updates, improvements and fixes.

27 September 2026 v0.93.0

Contracts in, in minutes

  • Paste your contracts as a list in whatever shape you have them - rows from a spreadsheet with or without the header, or one contract per line - and fix anything in the preview before it is saved.
  • Dates are never guessed: a date like 03/04/2026 that could be read either way is flagged, with one switch for day first or month first. Accounts in the US start month first.
  • The import tells you before saving how many contracts fit your plan.
  • Add many contracts at once in a grid: Tab moves across, Enter moves down, one save. A row with a mistake stays for you to fix while the rest are saved.
  • Upload a contract PDF on the contract form and its end date, notice period and auto-renewal are filled in, with the sentence each came from. It is read on our own server - nothing is sent to any other service and no AI reads it.
  • The billing page shows the free plan and marks the plan you are on. Going back to free, or moving to another paid plan, happens in the billing portal, so your subscription changes instead of a second one starting.
  • Fixed: after cancelling, the billing page said your subscription had already ended. It now says until when you keep your plan and still lets you undo the cancellation.
  • Fixed: the features page and the comparison pages gave the wrong number of alert channels.
  • Security and stability improvements.
26 September 2026 v0.92.0

Free to start, paid to grow

  • Expiro now has a free plan with no end date: renewal alerts for up to 5 contracts, by email and one chat channel, plus the calendar feed.
  • Every new account starts with 30 days of Growth. When the trial ends the account moves to the free plan instead of locking: nothing is deleted, and alerts carry on for the 5 contracts with the nearest deadline.
  • When a subscription ends, the account moves to the free plan too, instead of becoming read-only.
  • Starter now has unlimited contracts, and Growth now includes 5 users instead of 3. Prices are unchanged.
  • The API is part of every paid plan. On the free plan it answers with a clear message rather than an error.
  • Fixed: the plan card on the freelancer, consultant, recruiter and team pages, and the banner at the end of every blog post, showed a line of code where the trial length should be.
  • Security and stability improvements.
26 September 2026 v0.91.0

Say exactly what it is

  • The loading bar at the top of the page is now marked as decoration, so screen readers skip it.
  • Security and stability improvements.
26 September 2026 v0.90.0

The console others learn from

  • Fixed: when a subscription ends, your account now stays yours to read. Everything is kept: you can still sign in, open and export every contract, and choose a plan again at any time, including the one you had. Renewal alerts stop and nothing new can be added until you do. Before this, an ended subscription quietly turned back into a trial, so alerts kept arriving and you were later told a trial had expired.
  • Fixed: adding contracts through the API now follows the same rule as the app: an account whose trial or subscription has ended can still read its contracts, and gets a clear answer when it tries to create one instead of the contract being added anyway.
  • Fixed: on a phone, the "Get started" checklist on the dashboard fits the screen. Its buttons used to stick out past the edge of each step.
  • Fixed: on a narrow phone the top bar of the app fits the screen again; the theme switch was cut off at the edge.
  • Fixed: a file you cancel on the import screen now disappears at once.
  • Security and stability improvements.
26 September 2026 v0.89.1

Patch fixes

  • Fixed: on the last day of your trial the sidebar and the dashboard said your trial had expired, although it was still running. They now say it is the last day, and the day before, the sidebar no longer says "1 days left".
25 September 2026 v0.89.0

The console says what needs you

  • Security and stability improvements. Expiro now runs on updated framework versions and an up-to-date base system, and the code your browser loads from us is checked against published security advisories before every release.
12 September 2026 v0.88.0

The number is real or it is not

  • Fixed: replies to our emails now reach us. Every alert, digest and onboarding email was sent from an address with no mailbox behind it, so anybody who hit Reply got nothing back and no bounce we could see. Everything now comes from support@expiro.io, which is read, and replying to any email we send is a way of reaching a person.
  • Fixed: the renewal reminder email showed a block of raw formatting characters instead of the contract name, client and dates. It had done since the end of May.
  • Fixed: dragging more than five files onto a contract refused all of them and said nothing at all. It now says the limit is five per contract.
  • Fixed: the spreadsheet import refused a file with a word only a developer would recognise, and silently dropped a second file if you picked two. Both now say what happened and what to do about it.
  • Fixed: the trial countdown in the sidebar could say your trial had expired when we simply had no end date for it. It now says nothing rather than something wrong.
  • Your dashboard no longer slows to a crawl while a large import is running. It was reloading everything on the page once per contract added, so a five hundred row import meant thousands of queries against a page you were still looking at.
  • Every signed-in page moved under /app - your dashboard is now at expiro.io/app/dashboard. Old links, including the ones in alert emails we sent months ago, still work and always will.
  • Security and stability improvements.
11 September 2026 v0.87.0

Nothing gets through

  • Your free trial is now 90 days instead of 14. Alerts fire at 90, 60, 30 and 7 days before a notice deadline, so a two week trial could never show you one unless a contract happened to be due in exactly that window. Ninety days is long enough for the product to actually do its job while you are still deciding.
  • Trial emails now name the deadline that is coming, not the number of contracts you have added. Instead of "you are tracking 6 contracts" you get the contract by name, the date you have to give notice by, how many days that is away, and how many others are in the same month. If nothing is close enough to matter, the email says nothing about it rather than inventing urgency.
  • If your trial ends and a notice deadline arrives afterwards, you now get one short email telling you the date and saying plainly that your alerts are paused. One per contract, once, ever. Cancelling your account still means silence, because cancelling is a decision.
  • Fixed: extending a trial from the staff console set it to a fixed number of days from today instead of adding days to it, which on a longer trial took time away rather than giving it.
  • Fixed: several pages could stop responding and reload themselves during a deployment. They now stay up.
  • Security and stability improvements.
11 September 2026 v0.86.2

Patch fixes

  • Fixed: if you added a contract during setup and then clicked Dashboard, you were sent back to the first step of setup, every time. The contract was saved and everything else worked, but the dashboard itself could not be reached. It can now, as soon as you have a single contract.
  • The setup form now asks whether a contract renews automatically, and how much notice you have to give. Both used to be hidden behind Show advanced options, and without them Expiro watched the end date rather than the notice deadline - which is the date that actually decides whether a contract renews. Nothing has changed for contracts you have already added.
11 September 2026 v0.86.1

Patch fixes

  • Your dashboard now shows the notice deadline, which is the date that actually decides whether a contract renews. A contract ending in 28 days with a 30 day notice period has already renewed itself - the end date still looks comfortable and the deadline passed two days ago. Until now that was only visible by opening each contract one at a time, because every list was sorted by the end date instead.
  • Contracts whose notice window has closed are now shown separately from those you can still act on, so the ones you can do something about are not buried among the ones you cannot.
  • After a CSV import, the summary now says what was found rather than only how many rows were read: how many contracts have already passed the notice deadline, and how many close within 30 days.
  • No change to when alerts are sent. Those were already counting from the notice deadline; it was the screens that were not.