Full page width restored
Fixed
-
Pages in the signed-in app use the full width of the window again, as before v0.34.1.
Changelog
Every release that changed something you can notice, newest first: what we added, what we changed and what we fixed.
Pages in the signed-in app use the full width of the window again, as before v0.34.1.
Top bar. Every page now opens with a bar that names your practice and the page you are on, shows whether the page is live, and carries your trial or plan status with its next step, instead of a box above the page.
Theme switch with System. The switch in the sidebar is three icons: System, Light and Dark. System follows your computer's setting and changes with it.
Your account in the sidebar. The bottom of the sidebar shows your initials, name and email, with a sign-out button beside them.
Readable width. On wide screens pages keep a comfortable width instead of stretching fields across the window.
One design for every workspace page. Portfolio, Cases, Team, Settings, Billing, Service status, Audit log and Wishlist now share the same page layout: a title, then titled sections with the same boxes, forms and buttons. Field labels look the same everywhere, form fields keep a readable width and buttons are as wide as their label.
The sidebar fills the screen. On every page, short or long, the sidebar reaches the bottom of the window, and your account, the theme switch and Sign out are always in view.
The theme switch matches the navigation. The chosen theme is marked the same way as the page you are on.
One practice, no switcher. If you belong to one practice, the sidebar shows its name instead of a list and a button that did nothing.
Wishlist sits in the same layout as the other pages, with the suggestion form beside the ideas.
The app connects to its database directly over the private network, so connections are no longer dropped by the network proxy in between.
The server runtime and libraries are updated to their current versions, including security fixes.
Sessions in Settings. See every browser signed in to your account, with its network (last part hidden) and when it was last active, and sign out one or all others at once.
Security emails. You get an email when your password is changed or reset, your authenticator is replaced, new recovery codes are made, someone signs in from a browser not used for 90 days, and when your sign-in email change is asked for or done. The last two go to your previous address with a link to cancel or undo the change.
Replace your authenticator yourself. In Settings, with a code from your present authenticator (or an unused recovery code) and one from the new app.
Support can look at your workspace, with your record of it. When you ask for help, a CompanyGuard staff owner can view your workspace as you see it for up to 30 minutes. They cannot change anything. A banner shows while it lasts, and your audit log records who, when and why.
Show password button on every password field; pasting is always allowed.
Six-month simulation in the repository, run before each release to catch problems a practice would meet over time.
New recovery codes. Recovery codes are now longer (shown as XXXX-XXXX-XXXX-XXXX) and stored so that a copy of our database cannot reveal them. Every earlier set stopped working with this release. Settings shows a notice until you make a new set; please make one and keep it safe.
A password that meets the new rules. Passwords need at least 15 characters, may not contain your email name or domain, your practice name or "CompanyGuard", and may not appear in a known data breach. If your password was set before these rules and does not meet them, you are asked to choose a new one when you sign in.
Passwords are checked against Have I Been Pwned: only the first 5 characters of a hash of the password are sent, never the password itself.
Staff have two roles, owner and employee, and the last staff owner cannot be removed.
Undoing an email change also stops the old password and emails a link to set a new one to the restored address.
Every sign-in starts a fresh session, and sign-in sessions are stored only as a hash.
Passwords saved with older settings are stored again with the current ones at your next sign-in.
A case for filed accounts can now be verified against the newer Companies House record instead of staying "Ready to verify" for good, and each refusal says why.
The daily digest lists only what is new since the last one, and a Companies House outage alone sends no digest.
Alert destinations follow your plan: one whose channel is not in your plan is marked "Not in your plan", cannot be turned on, and is kept for when you upgrade. Settings and Billing say when destinations stop.
Identity evidence that Companies House does not provide no longer opens a case; it stays visible as UNKNOWN. Open cases created that way were dismissed with that reason.
Companies without your own label show their registered name from Companies House everywhere, alerts included. The portfolio reads well on tablets.
"Check Companies House now" no longer says a check is scheduled when one has just finished; it says when the last check ran.
An import goes up to your plan limit instead of refusing the whole file.
Invitations, refusals and the sign-in reply say what happened, in fewer words.
Live updates recover by themselves when the database connection is dropped.
Second-factor codes are limited per account on every route, and the account owner is emailed when the limit is reached.
A server library with a known HTTP/2 weakness is updated to the fixed version.
Case actions are checked against your plan on the server, not only hidden on the page.
Every company check now uses the deadlines and status it reads from Companies House. Since early October each check was wrongly saved as "evidence unavailable", so portfolios showed "Deadline unknown" and no new deadline actions appeared. The next automatic check, within a day, brings every company up to date.
The demo names the step before a source check "Ready to verify", the same as the app.
The changelog lists every release in order: v0.30.0 and v0.31.0 reached production together on 12 October 2026 and now have their own entries.
Check your email after registering
Registering now shows a "Check your email" page with the address the setup link went to, a way to send it again after a minute and a way to correct the address. Every address gets the same answer, so the page never reveals whether an account exists.
From what is due to who handles it
Portfolio lists what falls due: overdue, this week, next week and later this month. Every item in the action inbox links to its case. Cases shows how many there are, with views for all cases, your cases and unassigned ones. Marking an item reviewed says who did it and when, and it can be reopened.
Alerts you can trust
A new alert destination (SMS, Slack, Microsoft Teams, Discord, Telegram or webhook) turns on only after you type back the six-digit code its test message carried, so alerts are never sent somewhere they do not arrive. The practice alert email follows your sign-in email when you change it, and the old address is told.
Recovery codes and a lost phone
Settings has a Security section: how many of your ten recovery codes are left, and a button to make ten new ones, shown once with a download. If you lose your phone and every recovery code, email support from your sign-in address: after checking your practice name and role, we send a link to set up a new authenticator. Your account, password and practices stay as they are.
Live badge
Workspace pages show "Live" while they update themselves, and "Reconnecting" if the connection drops. There is no refresh button: pages are always current. The button on each company now reads "Check Companies House now".
Settings asks to confirm it is you only where it matters
Settings opens straight away. Changing your sign-in email or password, and making new recovery codes, asks for your password and authenticator code if you signed in more than ten minutes ago, and then brings you back where you were, including an email-change link you had opened. Deleting the practice moved from Billing to Settings.
Adding companies
Pasting company numbers adds the valid ones and keeps only the entries that need fixing in the box, with the reason for each. The CSV import accepts the header in any letter case, with or without the label column, and has a template to download.
Casework that explains itself
The case form says how a case closes: choose "Ready to verify", then "Verify with latest source data". Owners and admins can dismiss any case; a member can dismiss a case assigned to them. Dates and times are shown in UK time. The printed dossier keeps technical references out of the way.
Team
Each person sees only the team controls they can use, and the only owner's row explains why it has none. Accepting an invitation while signed in opens the new practice straight away.
Honest states
A company whose Companies House record could not be read says "Deadline unknown", never "No current deadline". Service status reports how current the source data is. Pages with nothing to show say so plainly, without empty tables, charts or page buttons.
Faster public pages
The charting library now loads only in the signed-in workspace, so public pages download less.
A throttled sign-in says to wait instead of "Invalid email or password".
"1 day overdue" instead of "1 days overdue".
The "Skip to main content" link no longer shows in the middle of a page.
Close and sign-out buttons are larger and easier to press; sign out works without JavaScript.
Selects look like selects again.
Light and dark theme
The signed-in workspace has a Light / Dark switch in the sidebar and the mobile menu. Your choice is kept on this device. Public pages stay light.
Sign-in addresses
Sign-in, registration and password pages moved under /app/auth/. Links already sent by email keep working: the old addresses redirect, with the link kept, until 11 November 2026.
A security update for the decimal library.
The pricing table shows what each plan includes at a glance
Included features and included amounts, such as the number of team members, the SMS allowance and how long history is kept, now show a filled green check with dark text. Features a plan does not include keep a muted outline mark, so the two no longer look alike. The pricing and product pages now say plainly that every plan covers the whole evidence workflow and that larger plans add team members, alert channels and longer history.
Buttons side by side line up
Where a trial button sits next to another button, both now have the same height and line up, and the "No card required" terms sit under the row. This affects the demo, product and comparison pages and the closing sections of the pricing, product, comparison and deadline calculator pages.
What each plan includes
Every plan still checks every company, keeps every case and dossier and exports your portfolio. The plans now also differ by team size, alert channels and history: Starter includes 3 team members, email and browser alerts and 12 months of monitoring history; Growth includes 10 team members, adds Slack, Microsoft Teams, Discord, Telegram and webhook alerts and keeps 24 months; Scale has no team limit, adds 100 SMS alerts a month and keeps 36 months. A trial includes everything. If a limit is reached, the page says which plan lifts it. Nothing you already have is removed.
Paying yearly
Plans can be paid yearly at about 15% less than twelve monthly payments, through the same secure Stripe checkout. The Billing page shows how your plan is billed. Yearly payment appears on the pricing and Billing pages once it is switched on.
Deleting a practice safely
Deleting a practice now takes your current password and the practice name, and happens 14 days later. Until then everything stays readable, you can download the CSV export, and you can cancel the deletion from the Billing page. An active subscription is set to end with the period you have paid for, so nothing more is charged. We email you the date.
Reading your records after a payment problem or cancellation
If a payment could not be collected or the subscription was cancelled, your portfolio, cases, dossiers and CSV export stay available to read. Monitoring and changes pause, and the page says why. A cancelled practice can choose a plan again from the Billing page, with everything kept.
Faster pages
The Cases page no longer writes anything when it opens, and the Billing, Team, Cases and dossier pages read your data once instead of twice.
Registration and team invitations are limited per hour, so nobody can use them to flood an address with email.
A company label with invisible joining characters could stop a CSV import; it is now checked like any other label.
Prices of four digits are shown with a thousands separator.
Invited colleagues can create their account from the invitation
A colleague you invite who does not have a CompanyGuard account can now create one straight from the invitation email. The account uses the invited email address, joins your practice with the role you chose, and goes through the usual password and two-step setup. No separate practice or trial is created for them. A colleague who already has an account logs in and accepts as before.
Invitation pages stay focused on joining
The invitation and account setup pages no longer offer a separate trial in the header, so a colleague joining your practice is not pointed at starting a new one.
Spreadsheet exports now also neutralise formulas that begin with full-width or other lookalike characters, so an exported cell cannot run as a formula.
Email addresses with hidden control characters are refused with a clear message instead of failing.
Only owners and admins can open a service exception.
Former members no longer appear as current members in practice details used by support.
Removing a team member, recording a payment update or saving source evidence now reports a problem instead of stopping when something goes wrong.
Free filing deadline calculator
A new free tool at /companies-house-deadline-calculator works out when a company's annual accounts and confirmation statement are due, from its year end or incorporation date. Each date shows the rule that decided it and links to the official guidance. Where GOV.UK and the Companies Act read a February date differently, the page shows the earlier date and explains the other reading. The result has its own address, so you can share it.
Deadline guides
Two new guides explain the accounts filing deadline and the confirmation statement deadline: the rules for first, normal and shortened periods, how the date is counted, the late filing penalties, and what happens when a statement is not filed. Every figure comes from GOV.UK, with the date it was checked.
Company status glossary
A new page at /company-status-glossary explains every company status Companies House shows and every state CompanyGuard gives a company. It is built from the same lists the product uses, so the page and the workspace always agree.
Comparison page
A new page at /compare sets a spreadsheet, the free Companies House email alerts and CompanyGuard side by side, with every Companies House claim linked to its source. It also says when the free options are enough.
Public changelog
A new /changelog page lists what changed in each release, newest first.
Footer on phones
On narrow screens the footer links now sit in two columns, so the page content comes first and the footer stays short.
Company statuses now use the same wording as Companies House on the free check and in the portfolio, for example "Voluntary Arrangement" and "Receiver Action".
A staff action that could not record an email opt-out now shows the failure instead of stopping the page.
Guides hub
All guides now sit under one page at /guides, with breadcrumbs, links to related guides, the product page and pricing, and the date each guide was last updated. The three existing guide addresses are unchanged.
About page
A new /about page says who builds CompanyGuard, where its data comes from and how to reach support.
Evidence rules page
The technical rules behind every result (how often companies are checked, when a deadline counts as upcoming and when source data is treated as out of date) moved from the product page to their own page at /evidence-rules. The numbers on it are read from the code that applies them.
Branded error pages
A missing or failing page now shows a CompanyGuard page with links to the free check, the guides and pricing, instead of a bare error. It works even when the database is unavailable, and search engines are told not to index it.
Product and pricing pages
The product page is now a sales page that explains what CompanyGuard does for an accounting practice. The pricing page shows the plans side by side with one recommended plan, a table of what every plan includes, how paying works, and answers to common questions. Prices and trial terms come from the same source as checkout.
One look across the public site
Every public page uses one set of colours, type sizes and spacing, and one button style. Text and form borders meet the WCAG AA contrast level, and pages scale up cleanly on large and 4K screens. The privacy notice and service information are unchanged word for word, now with a contents list.
Clearer signals for search engines and AI assistants
Every public page describes CompanyGuard the same way: one company (Elixon LTD), one product, prices taken from the plans. Each page has its own preview image when shared. The sitemap and llms.txt include the new pages.
Pages stay correct while connecting
The "reconnecting" notice no longer flashes on the first view of a page before it has connected.
The demo stopped working when it received an incomplete action; it now ignores it.
The free check page could fail to open when its clock setting was wrong.
A link followed by a full stop showed a stray space before the full stop.
The staff console now tells search engines not to index it, like the workspace.
The page details we give search engines are handled more safely and no longer repeated in the page footer.
A complete no-card trial
The trial now lasts 30 days for up to 100 companies, with full functionality and no card. A banner on every workspace page shows how many days are left, and the billing page shows the end date, what happens next and the plan choice, so a paid plan can be chosen at any point during the trial. One 30-day extension can be taken in the last week. Reminders arrive 7, 3 and 1 days before the end, on the last day and once more 3 days later. A trial that would end between 15 December and 7 February ends on 7 February instead.
After a trial ends without payment, the workspace stays readable for 90 days: portfolio, case history, dossiers and CSV export. Monitoring and notifications stop. Choosing a plan restores everything with no new setup. Data of a practice that never paid is deleted 90 days after the trial ends, and every owner is told 14 days before.
Sign-up that always matches the offer
Every page that offers a trial, and the trial start itself, now follow one rule, so a page can no longer promise a trial that sign-up does not give. When the trial is not on offer, pages invite you to create an account and choose a plan instead.
Generated discovery files
robots.txt, sitemap.xml and llms.txt are generated from the list of public pages and the product facts. Search engines and AI assistants may read every public page; the workspace is excluded for all. Sitemap dates follow real page changes.
One source for prices, limits and company details
Prices, plan limits, trial terms and our company details each live in one place, and every page, answer, legal text and email reads them from there. Page titles no longer change after a page finishes loading and no longer repeat the brand.
Analytics you can trust
Website and workspace analytics share one configuration. Campaign tags such as utm_source are kept. Pages opened from private links, the second login step and the staff area are never measured. In the workspace, analytics records only an internal account identifier and never your name, email address or company data. Staff reports show "not measured" instead of zero for anything that could not be collected. The privacy notice describes this.
Faster, live workspace
Switching practice, changing your password and entering your second factor now happen on the page without reloading it. Switching practice in one tab moves your other open tabs too, and changing your password signs out your other devices while keeping you signed in. If you are removed from one practice but belong to another, you move to the other practice instead of being signed out. After this release everyone starts in their first practice once.
Works on every screen
Every public page and workspace screen was checked at every width from a small phone to a 4K screen. Charts no longer push a narrow phone screen sideways, plan names on the billing page use regular text, and page titles sit closer to their description on phones.
One-click unsubscribe
The marketing opt-out page works without reloading and is the same page whichever email it came from. Mail apps that offer an unsubscribe button now stop marketing emails in one click. An opt-out link that cannot be read shows a form to stop marketing emails by address instead of an error.
New browser icon
Browser tabs show the CompanyGuard shield on a transparent background, readable on light and dark tabs. Home-screen icons keep the full square.
An ended trial could still add companies; it cannot any more.
A practice that paid after its trial ended was never refreshed automatically again; refreshes now resume.
Account setup now tells you clearly when no trial could be started and where to continue.
Notification settings accept only the fields a user may change.
Webhook addresses are checked more strictly.
A link or form with an invalid case or assignee now gets a clear error instead of a server error.
Identity verification deadline guide
A new guide explains when existing directors and people with significant control must verify their identity with Companies House, with every date linked to its GOV.UK source, the steps a practice should take and answers to common questions.
Safer two-step login
The second login step is now checked on our servers, expires after a short time and cannot be used again once you are signed in. A code from your authenticator app is still accepted when your phone's clock is slightly off.
Account setup that survives switching apps
When you set up your account, the QR code and recovery codes stay the same if you switch to your authenticator app and come back, reload the page or make a mistake in the form. A wrong six-digit code is reported before the form is sent. Setup links now work for 24 hours and only once, and requesting a new link cancels the old one.
Private links stay private
Pages opened from setup, password reset, team invitation, email confirmation and marketing opt-out links never load analytics, are never stored by shared caches and never pass their address on to other sites. Those addresses are also kept out of our logs and error reports.
Fair login limits
Login and recovery limits now count each visitor's own connection instead of treating everyone as one, so one person repeating attempts can no longer lock others out.
Marketing opt-out always works
An opt-out link from any marketing email records your objection, however old the email is. If the request cannot be saved, you see a clear message with our support address instead of an error page.
A faster, fairer free company scan
The free company scan shows that it is checking Companies House while it waits, never freezes the page, and no longer shows a "Nil" status when the source is unavailable. Anonymous scans have their own share of our Companies House allowance and a short cache, so they can never slow down monitoring for customers.
Forms answer with clear field errors
Every form is now validated by the server, and the message appears next to the field that needs attention. Clearing the email in Settings no longer breaks the page, a team invitation with an invalid address says what is wrong with it, and case decisions explain the allowed reason length and date format.
Safer handling of unusual input
Companies House numbers written with lookalike characters are no longer accepted as another company's number. Text containing control characters is refused with a form error instead of an error page, uploads in other encodings or with broken quotes get a clear message, login accepts your address in any letter case, and alert subjects and daily digests stay within delivery limits for long or multi-line company labels.
Pending invitations stay with managers
Only owners and admins load pending team invitations. A colleague promoted to admin while the Team page is open now sees every pending invitation, not only new ones.
Deadlines, material Companies House changes and source evidence for every client company, in one action inbox.