What shipped

Every release, in plain language.

Steerd ships continuously. Each entry below is one release, written for the person doing the work rather than the person who wrote the code.

Invoicing

  • On mobile, you can now create and edit invoice drafts in a guided editor and preview the real invoice PDF before issuing it.
  • You can now create invoices through a step-by-step wizard, choose the client within the flow, and reopen existing drafts in the wizard.
  • You can now send invoices and payment reminders from Steerd, keep a timeline of those sends and reminders, avoid duplicate sends after a lost response, and see the latest send or reminder on the invoice list.
  • Invoice settings now support configurable number patterns, numbering tokens inserted at the cursor, per-client prefixes, per-prefix counters, one save across routed settings sections, and next numbers tied to the correct year and series.
  • Invoice PDFs and e-invoices now include configurable seller footer disclosures, register details, legal representatives, small-business disclosures, and valid XML text handling, and the finalize checklist accepts the Kleinunternehmer identification number where it applies.
  • You can now set an invoice service period as a day, month, custom range, or none, with better phone layout, safer navigation away from drafts, and restored dates when changing back from None.
  • Steerd now refuses stale invoice edits and finalize attempts instead of silently overwriting or deleting newer data, and invoice draft autosave keeps retryable or unresolved edits on screen.
  • Invoice pages now have a clearer action bar and overflow menu, direct PDF downloads on finalized invoice rows, icons on payment actions, a send-language override, and fixes for billing dialogs and source selection in the wizard.

Time tracking

  • On mobile, you can now track time with a local stopwatch, file stopped time into a week, edit time entries, and delete entries.
  • Time entries within a day now use the same order by start time, end time, and visible name across the month view, day drawer, and week grid.

Clients and projects

  • On mobile, you can now add, complete, and reopen tasks on projects and organizations, and add activity notes with unsent drafts kept on your device.
  • Editing clients, organizations, contacts, employees, and projects now preserves existing data more reliably, keeps VAT and e-invoice address fields through save cycles, picks up server changes when you have not edited a form, and searches beyond the first page of picker results.
  • Estonian OÜ is now available as a legal form, and team badges remove legal-form suffixes more consistently.
  • Organization favicons can now be refreshed, are stored in a normalized image format, update their URLs when the stored image changes, and stop showing a cached current response when the icon is no longer stored.

Documents

  • On mobile, you can now list and open projects, invoices, and CVs, including opening invoice and CV PDFs in your device viewer.
  • You can now preview PDFs in Steerd with a sandboxed in-app viewer that supports page navigation, zoom, text selection, and copy.

CVs

  • Anonymized CVs now keep the redacted-photo marker when rendered through templates, and CV drafts are validated on save while still allowing an existing over-size draft to be saved or reduced.

Travel and expenses

  • On mobile, you can now list and open trips, create draft trips, add expenses, attach photographed receipts, and retry an expense submission without duplicating it.
  • You can now file trips through a step-by-step wizard, resume drafts, safely switch between draft autosaves, discard drafts from a canceled flow, and retry trip actions without duplicate submissions.
  • Users with time access can now choose granted projects when filing trips, and travel CSV exports hide client and project names from people without the matching bookkeeping permission.

Inbox and email

  • Inbox messages now render HTML email more faithfully, show remote images by default unless blocking is enabled, load embedded images, and can regenerate older stored snippets.
  • Inbox search now uses one date-ordered list that searches automatically, has the same pagination controls as the normal list, scopes filters correctly, and keeps the conversation pager within view.
  • Inbox conversations now show paperclip indicators when they include attachments, let you download inbound attachments or save them to Files, and preserve sent-file snapshots after a mailbox is disconnected.
  • Mail deleted from the inbox is no longer brought back by a mailbox sync of the same message.
  • Email-ingestion proposals created from unusual sender headers can now be confirmed instead of leading to a refused confirmation.
  • Integration settings now show compact connection rows with actions in a menu, hide Gmail connection until it is available, require the mailbox password before IMAP host or port changes, and only store App Store icons from Apple's artwork source.

Developer platform

  • The mobile app now has a signed-in experience with theming, secure access to your Steerd data, customizable middle tabs, clearer setup error messages, and update notices when an app version is no longer supported.
  • On mobile, you can now view your dashboard summary, browse and upload files, and list, open, create, and edit organizations and contacts.
  • On mobile, you can now search across records from Home, open supported results, view notifications, and mark notifications as read.
  • Repeated create requests after a lost response can now resolve to the same saved record instead of creating a duplicate.
  • The in-app assistant can now help from your current page, show proposed changes for review before applying them, display named records and outcomes in its activity, and let you reopen or delete past conversations.
  • Assistant replies can now appear as they are generated, with better protection for echoed provider keys and fewer delays during longer assistant turns.
  • Error responses are now more consistent, and a stale or unusable team selection is refused instead of silently switching you to a different team.
  • The web app no longer triggers unsafe-eval Content Security Policy reports from browser-side validation.

Account and billing

  • You can now create your own teams, leave teams you belong to, keep using Steerd with no team selected, and schedule an owned team for deletion with a fourteen-day cancellation window.
  • On mobile, you can now access phone-friendly billing, team, contacts sync, API key, and audit log settings.
  • Admins can now set daily assistant token limits for the team and per member, and users can set a daily limit for a personal provider key with price estimates shown in Settings.
  • AI provider credentials can now be saved and tested even when a provider model list is unavailable, with clearer model-list errors, support for OpenAI reasoning models with your own keys, and plan access labeled as AI assistance.
  • Settings now hide or make sections read-only when your role cannot use them, and restricted roles are no longer shown a Free plan label just because billing details are hidden.
  • You can now choose your own date format, time format, and first day of the week in Settings, with a live preview of the saved preferences.
  • Sign-in and password reset refusals now use localized messages, expired or used reset links take you to request a new link, and language detection handles empty headers and non-language tags more accurately.
  • New team owners are now offered a resumable five-step onboarding wizard for business identity, address, tax setup, and optional product-interest questions without blocking access to Steerd.
  • You can now opt out of product analytics in Settings, and Steerd stops analytics capture for opted-out profiles.
  • Profile avatar uploads that are removed, replaced, or abandoned before saving are now released right away instead of waiting for nightly cleanup.

Fixes and polish

  • The invoice and travel wizards now separate discarding a draft from leaving while keeping it, and both include a back action that saves before leaving.
  • Forms, dialogs, cards, wizards, invite text, phone editor headers, and the week toolbar received accessibility and layout fixes that improve descriptions, scrolling, headings, disabled states, previews, and small-screen fit.

Inbox and email

  • Forget deleted mail now works from any connected mailbox that received the message, not only the one the deletion happened to record, so the next sync can import it again. Mail deleted before this release keeps the old behavior.

Developer platform

  • A saved AI provider key is now sent only to the host of the endpoint it was saved with, so it can no longer be redirected to a different host. A key you enter yourself is still tested against the endpoint you enter with it.

Invoicing

  • The Ready to invoice panel now has a capped height, keeps exact backlog totals, and can be collapsed while still showing the total waiting to be invoiced.
  • Invoice finalization now uses separate database capacity from ordinary API requests and no longer fetches decorative logos while holding invoice locks.

Documents

  • You can now preview .docx files directly in the file viewer instead of downloading them first.
  • You can now change an attachment's document type after upload on projects, organizations, employees, and contacts, except for document types reserved by Steerd.
  • Attachments on projects, organizations, employees, and contacts can now be opened in the inline preview viewer instead of only downloaded.
  • Public API clients can now retry file and attachment uploads with an Idempotency-Key without creating duplicate uploads or orphaned stored objects.

CVs

  • You can now reorder CV sections with drag-and-drop or keyboard controls, and the same order is used in browser, PDF, and Word outputs.
  • You can now hide a CV section from the finished document without deleting the content saved in that section.

Travel and expenses

  • Travel expense CSV exports now use the requested language for headers, delimiters, number formatting, and filenames. Short mileage descriptions no longer round down to 0 km.

Inbox and email

  • Imported mail can now be deleted one message or one conversation at a time without disconnecting the mailbox. Deleted imported mail stays out of future syncs unless an admin clears that suppression.
  • The Reply button now shows when an account cannot send before you open the composer, including whether sending is not configured, the sending mailbox is missing, or the plan does not include email integration.
  • Connected mailboxes can now import new messages automatically through scheduled sync.
  • Mailbox settings now show when a configured IMAP folder can no longer be found and give admins a direct action to choose a folder.
  • If a mailbox is reconfigured while a fetch is in progress, mail from the old configuration is no longer stored under the new configuration.
  • Opening a conversation now keeps the message and reply area on the page instead of squeezing them into an internal scroller. Selecting or deep-linking to a conversation also scrolls it into view.
  • Sent reply attachments are now shown when reading conversations and stuck-send records, in the same order they were composed.
  • The AI draft rate option can now quote a selected employee's rate instead of only the signed-in user's rate. The option is shown only to users allowed to see employee rates.
  • The Gmail connection flow now asks Google to show its consent screen in the language currently used in Steerd.
  • The AI draft answers section now includes explanatory text and is announced as a form section, so it no longer reads like an empty field.
  • Outbound replies now return a retryable send-capacity response when storage reservation contention would otherwise keep send slots occupied.
  • You can now unblock ignored senders from the ignore confirmation or from integration settings. Steerd now clarifies that unblocking affects future mail only.

Developer platform

  • Main lists now use Previous and Next pagination with 25 rows shown by default instead of a Load more button.
  • AI settings can now show available models for supported providers and test the selected model before it is used.
  • Public API idempotent write replays now return an authorization-changed error when the caller's permissions or project access have narrowed since the original request.
  • The App Store Connect integration is available again.

Account and billing

  • Settings and permission pages now show readable labels for all capabilities instead of raw translation keys, with a fallback label for newly added capabilities.
  • Changing your account email now updates both your sign-in email and the profile email used on Steerd pages and outgoing account mail.
  • The audit log now distinguishes automatic Steerd actions from actions by deleted users.
  • Duplicate team invitations created at the same time now return the normal duplicate-invitation response instead of a server error. Invite-related selectors also have accessible names.
  • Console invitations are now emailed to the invited address, and the console reports whether the email was sent while still showing the accept link.

Fixes and polish

  • Rows in the Files list now keep size, uploader, date, visibility, and action columns aligned even when some actions or visibility badges are not shown.
  • Several visual issues were fixed: the project attention filter no longer changes size when active, the Editorial CV summary no longer uses a drop cap, and the team invitation language hint no longer wraps under a narrow selector.

Start using the ones you just read about.

Free to start, and every release above is already in it.