Brand-new dashboard home: rebuilt from scratch — overview tiles with trend indicators, a costs summary chart with legend and tooltip, an active trips widget, a tasks widget you can tick items off from, and an alerts widget. Loading skeletons and per-widget error handling mean one failing widget no longer takes the whole page down. The dashboard reads from local data, so it works offline.
Boats
New add-boat wizard (rolling out behind the new_add_boat_form flag): four clear steps — basic details, boat model, personalised details, and licence.
Boat model picker with photo cards, paging through nine models at a time, a proper "no matches" state, and the option to create a model from scratch if yours isn't listed.
Dedicated panels for ownership & purchase, location & comms, power/engines & tender, and licence.
Country flag picker, and a success screen that hands you back to your boats.
A view-only boat details page, with personalisation editable from the boat's own page.
Manage the boat's cover photo and files from the boat page.
Delete a boat, with a confirmation that spells out everything deleted alongside it.
The boats list now reads off the device.
Logbook
A costs card on trip details, totalling everything filed against the trip and its logs; add or edit costs directly in the add-trip and edit-trip forms, or file a new cost against a trip in one step.
A photos & files card on trip details, with a dialog showing every attachment (counting through the trip's logs too); file sections added to both the add-trip and edit-trip forms.
A six-tile KPI row under the map, including a new average-speed tile; a custom fields section with inline editing, and the ability to open the edit drawer straight to a given section.
Full-text search across logs, plus a search box on the trip-logs filter bar; autologged entries hidden from both the all-logs screen and the trip logs table; an "include autologs" toggle when exporting.
Costs
Multi-currency costs with exchange rates, a currency select field, and automatic repricing when a cost is edited.
Tasks
The status column now sorts by workflow order instead of alphabetically.
Updated
General
Files are now referenced by UUID everywhere (covers, thumbnails, downloads, previews) — this is what makes offline file handling reliable.
Account details and settings now read from the REST API.
Boats
The add-boat wizard and its header are centred on the same width and capped at 1600px; the header rule runs edge to edge.
Basic details laid out in two columns; model search and the create action sit on one row; create-model steps use ruled sections; model results are drawn as photo cards.
Personalisation is split into cards, led by engines; the boat header was rebuilt on the trip header's bar.
The build year is asked for on the first step and is now required.
The licence summary moved under the menu action.
Fixed
General
Data sync: JSON columns upload correctly, the search index rebuilds when its columns change, and a deleted trip properly releases its files and costs.
Boats
A boat with no licence is badged as disabled, and a free boat is placed on the free licence; the downgrade warning is gone from the free licence card.
The engine editor opens before the engine is added, and seat counts are re-read when the licence UI opens.
The flag picker no longer lists a suggested country twice.
A model you just created now shows its cover on its picker card.
An empty success screen sends you back to the first step instead of stranding you.
Deleting a boat now works even for boats with the most data recorded against them.
Logbook
The trip costs total now includes costs recorded on the trip's logs.
The cover placeholder fills the whole cover area.
v4.10.0 - New Simplified Onboarding Flow
Sep 02 2026
Added
General
New onboarding flow: "Choose your units" and "Select your currency" steps on the web, sharing the same currency list, unit previews and step numbering as mobile, finishing on a success screen. The old setup form has been retired
Updated
General
Onboarding: now follows the app theme and has an entrance animation, built on new shared selection components (choice rows and option cards)
Profile and settings: are saved through the REST API
Decimal and digit-grouping symbols: are configurable in General Settings, and the two are kept from matching (conflicting) each other
Setup fail: you now get an explicit error instead of a silent stall, and the currency list shows a loading state (with a fallback) rather than "no currencies"
TypeScript: consolidated to a single version 6 pin across the monorepo
REST API: schema regenerated with the new profile and settings endpoints
PowerSync: sync-stream priorities and joins corrected
Shared onboarding step config, currency list and unit preview strings extracted so web and mobile stay in step
Fixed
General
Add your boat: now takes you to the boat picker rather than the wrong destination
Setup completion: the flow no longer wedges and it waits for setup to actually finish before moving on
Leaving the success screen replaces history: so the back button can't drop you into onboarding again
Step counter: counts only the steps that actually exist, so the progress bar can reach the end
Usage readings flow from your logs: linking an operations log to an inventory item updates the item's current usage automatically from that log (and refreshes again if you unlink it). Changing a reading by hand writes its own operations log entry, so the history stays complete either way
Inventory
Inventory maintenance tracking: inventory items now have a Maintenance section where you record a current usage reading (engine hours, mileage, etc.). You set a starting reading when creating an item and can update it later from the edit form
Usage history timeline: each item shows a connected timeline of every usage reading recorded against it, and each entry links straight through to the operations log it came from. The log opens in a drawer stacked on top of the inventory drawer, so you never lose your place
Usage readings flow from your logs: linking an operations log to an inventory item updates the item's current usage automatically from that log (and refreshes again if you unlink it). Changing a reading by hand writes its own operations log entry, so the history stays complete either way
Checklists
Custom fields on checklists: manage them from a drawer in the page header, fill them in while creating a checklist, and view them on the checklist details page (above the files section)
Copy a public checklist to your boat: public/community checklists can be copied into your own checklists, bringing their items with them
Updated
General
Next.js upgraded to 16.3.2 across the web apps
Custom fields package: lost its entire online-first half - everything now runs offline-first, including the My Boats drawer
Turbo build caching enabled in CI
Tasks
Cleaned out deprecated task form components plus a large amount of unreachable legacy alerts code — smaller bundle, fewer dead paths
Checklists
Public checklists rebuilt on the new REST API: a proper details page, a clear "unavailable" state when a checklist can't be opened, permission handling for the available actions, and a design unified with the rest of the checklists area (cards, table view and details all match now)
Removed the old checklist export action, which no longer fit the new flow
Costs
Cleaned out deprecated cost form components plus a large amount of unreachable legacy alerts code — smaller bundle, fewer dead paths
Fixed
General
The app shell is no longer served with indexable metadata pointing at a self-redirecting canonical URL
Logbook
Trips
Trips finishing in the future stayed listed as active: trip status is now derived consistently everywhere (list, details header, dashboard widget, create/edit), including right after you edit a trip. The "End trip" button enables/disables correctly too
Inventory
Current usage is only saved when you actually edit it, so opening a form no longer rewrites the value
Usage history sorts correctly regardless of how timestamps were stored, and readings carry the log's own date/time rather than the moment they were saved
Tasks
Old task links opened nothing: links from the alerts page and the calendar still used the old numeric backend IDs after those pages were migrated. They're now resolved to the record's UUID and open the right drawer
Alerts
Old alert links opened nothing: links from the alerts page and the calendar still used the old numeric backend IDs after those pages were migrated. They're now resolved to the record's UUID and open the right drawer
Costs
Cost amounts had inconsistent limits: every cost amount field now shares the same maximum
v4.8.0 - New Checklists, Global Custom User-fields, Many Fixes
Aug 21 2026
Added
General
A new File-picker has been redesigned and redeveloped from scratch: including search, sorting, file-type restrictions and uploading from inside the picker itself. It now replaces the old file-picker everywhere
Every number input now has a sensible maximum that matches what the database actually accepts, thus limiting potential input-errors
The developer/API documentation section moved out of TheBoatApp (it now lives on TheBoatDB, where the API actually operates)
Logbook
Trips
Custom fields: you can now create your own fields and manage them fully (create, rename, edit, delete). Fill them in when adding a record and edit them any time after. Everything works offline, and subscription-tier limits update as soon as you add a field
Custom fields: widget added on the trip details page
Inventory
Custom fields: you can now create your own fields and manage them fully (create, rename, edit, delete). Fill them in when adding a record and edit them any time after. Everything works offline, and subscription-tier limits update as soon as you add a field
Tasks
Custom fields: you can now create your own fields and manage them fully (create, rename, edit, delete). Fill them in when adding a record and edit them any time after. Everything works offline, and subscription-tier limits update as soon as you add a field
Costs
Custom fields: you can now create your own fields and manage them fully (create, rename, edit, delete). Fill them in when adding a record and edit them any time after. Everything works offline, and subscription-tier limits update as soon as you add a field
Updated
General
New file picker — rebuilt from scratch with search, sorting, file-type restrictions and uploading from inside the picker itself. It now replaces the old picker everywhere.
Logbook
Unification of the trip-status: Active / Recording / Finished, with the same badge everywhere throughout TheBoatApp
Checklists
A new Checklists module has been redesigned and redeveloped from scratch: a dedicated checklist details page, an items editor that saves as you type, categories and notes, a cover image, rename/duplicate/delete, plus linked files and costs
Files
The Files section shows a file count, and clicking a file card opens a details modal with a preview
Costs
Costs are now shown as cards instead of a timeline, with a counter on the section header
Fixed
General
The Add-files button now works while you're offline
Cleared out all remaining TypeScript errors
Logbook
Trips
Removed unused trip components
Checklists
Checklist cards no longer show raw HTML in their description
Costs
Clicking inside the cost form or on a file card no longer collapses the section around it
A cost amount can no longer be saved as 0 or left empty
Deleting a linked cost now also offers to delete the cost record itself