9-Month Development Summary (March 2025 – December 2025)

This document provides a comprehensive breakdown of all new features, improvements, and bug fixes implemented in the Base platform over the past 9 months. Each item includes detailed context about what was built, what problem it solves, and how users can benefit from it.

NEW FEATURES

1. Global Search

Federated Search Across All Modules

A powerful new search capability that allows users to search across the entire platform from a single input field. Previously, users had to navigate to individual modules (Jobs, Companies, Invoices, etc.) and search within each one separately. Now, users can type a search term once and see results from Jobs, Companies, Invoices, Projects, Contracts, Vessels, Ports, and Files all in one unified results view.

What it solves: Eliminates the tedious workflow of checking multiple modules to find related information. For example, when searching for a vessel name, users instantly see all jobs, invoices, and files related to that vessel without navigating between screens.

What users can do:

  • Search for any keyword and get results across all modules instantly
  • Find related records across the platform without switching between pages
  • Quickly locate jobs, invoices, companies, vessels, or any other entity by name, number, or description
  • Access search from the sidebar for quick access from any page

Enhanced Search Matching

Improved the search algorithm to better match against charges, expenses, and job descriptions. The search now understands context and returns more relevant results when users search for financial terms or job-related content.

What it solves: Previous search would miss relevant results when searching for charge descriptions or expense notes. Now, if a user searches for “fuel” they’ll find all jobs with fuel charges, expenses with fuel in the description, and any related records.

2. Payment Management & Reconciliation

Payment Import from Accounting Software

Users can now import payment data directly from their connected accounting platforms (QuickBooks Online and Xero). Instead of manually entering payment information, the system pulls payment records from the accounting software and matches them to corresponding invoices in Base.

What it solves: Eliminates double data entry. Previously, when a customer paid an invoice and the accountant recorded it in QuickBooks, someone had to manually update Base to mark the invoice as paid. Now this happens automatically through the import.

What users can do:

  • Import payment batches from QuickBooks or Xero
  • See which payments have been received and matched to invoices
  • Reduce manual data entry for payment recording
  • Keep Base and accounting software in sync

Payment Reconciliation Workflow

A new dedicated workflow for reconciling imported payments with outstanding invoices. Users can review imported payments, match them to the correct invoices, and handle partial payments or overpayments.

What it solves: When payments don’t automatically match (due to amount differences, missing references, or partial payments), users need a way to manually reconcile. This workflow provides a clear interface for matching payments to invoices and resolving discrepancies.

What users can do:

  • Review all unmatched payments in one place
  • Manually match payments to invoices when automatic matching fails
  • Handle partial payments and allocate across multiple invoices
  • Track reconciliation status for audit purposes

Payment Status Automation

Payments now trigger automatic status changes on related jobs and invoices. When a payment is recorded, the system can automatically update job statuses, send notifications, and trigger other configured automations.

What it solves: Previously, recording a payment was just a data entry action. Now, receiving payment can automatically close out jobs, notify relevant team members, and update dashboards – reducing manual follow-up work.

What users can do:

  • Configure automation rules for payment events
  • Automatically change job status when payment is received
  • Trigger notifications when invoices are paid
  • Create workflows that respond to payment milestones

3. Vessels & Fleet Management

Complete Vessels Module

A full-featured module for managing vessel information. Users can create, edit, and organize vessel records with detailed specifications, documentation, and operational history. Each vessel record can store vessel type, dimensions, registration details, and other maritime-specific information.

What it solves: Maritime and port services companies need to track which vessels they service. Previously, vessel information was scattered across job notes and custom fields. Now, vessels are first-class entities that can be linked to multiple jobs, tracked over time, and reported on.

What users can do:

  • Create and maintain a database of all vessels serviced
  • Link vessels to jobs, projects, and port calls
  • Store vessel specifications and documentation
  • Track which jobs and services have been performed on each vessel
  • Filter and report by vessel across the platform

Fleet Management

Group vessels into fleets for easier organization and filtering. A fleet represents a collection of vessels owned by the same company or operating together.

What it solves: Large clients often have multiple vessels, and users need to see activity across an entire fleet rather than individual vessels. Fleet grouping enables fleet-level reporting and filtering.

What users can do:

  • Create fleet groups and assign vessels to them
  • Filter jobs and invoices by fleet
  • See all activity for a customer’s entire fleet in one view
  • Report on fleet-level performance and revenue

Vessel Map View

A real-time map visualization showing vessel positions. Users can see where vessels are located geographically, which is particularly useful for port operations and logistics planning.

What it solves: Operations teams need situational awareness of vessel positions to plan services, coordinate with port authorities, and schedule work. The map view provides at-a-glance visibility of the fleet.

What users can do:

  • View vessel positions on an interactive map
  • Click on vessels to see details and linked jobs
  • Plan operations based on vessel proximity to ports
  • Share vessel location views with team members

Vessel Timeline

A chronological view of a vessel’s history with the organization. Shows all jobs, port calls, and services performed on a vessel over time.

What it solves: When a vessel returns for service, operations teams need quick access to history – what was done last time, any outstanding issues, and relationship context. The timeline provides this historical view.

What users can do:

  • View complete service history for any vessel
  • See when jobs were performed and by whom
  • Track maintenance and service patterns
  • Reference previous work when quoting new jobs

Vessel and Fleet Permissions

Granular permission controls for who can view and edit vessel/fleet information, and who can assign vessels to jobs and projects.

What it solves: Not all team members should have access to vessel data, especially for sensitive client information. Permission controls ensure the right people see the right data.

What users can do:

  • Control which user roles can view vessel information
  • Restrict who can assign vessels to jobs
  • Hide vessel inputs from users without appropriate permissions
  • Maintain data security for client fleet information

4. Ports & Terminals

Port Calls Feature

Track and manage port calls – when vessels arrive at and depart from ports. Port calls are linked to jobs, vessels, and terminals, providing a complete picture of port operations.

What it solves: Port service companies need to track vessel arrivals and departures, coordinate services during port stays, and report on port activity. Port calls provide this operational tracking.

What users can do:

  • Record vessel arrivals and departures
  • Link port calls to jobs and services
  • Track vessel time at port
  • Report on port call frequency and duration
  • Plan operations around scheduled port calls

Terminals and Berth Management

Manage port terminals and berths where vessels dock. Track which berths are available, which are occupied, and manage berth assignments.

What it solves: Port operators need to manage limited berth space, coordinate vessel assignments, and track utilization. This module provides berth-level visibility and management.

What users can do:

  • Define terminals and berths within ports
  • Assign vessels to specific berths
  • Track berth occupancy and availability
  • Plan vessel movements between berths

Port Files Tab

A dedicated section for storing and organizing files related to ports – permits, regulations, terminal maps, contact lists, and other port-specific documentation.

What it solves: Port operations require access to various documents like port regulations, terminal layouts, and contact information. Centralizing these in the port record ensures easy access when needed.

What users can do:

  • Upload and organize port-related documents
  • Share port documentation with team members
  • Access port files directly from port records
  • Maintain current versions of port permits and regulations

Port API Integration

External API integration for looking up port names and information. When users enter a port, the system can validate and auto-complete port information from an external maritime database.

What it solves: Ensures consistent port naming across the platform and reduces data entry errors. Users don’t have to remember exact port names or codes.

What users can do:

  • Auto-complete port names as they type
  • Validate port information against maritime databases
  • Reduce data entry errors
  • Maintain consistent port naming across the organization

5. Advanced Custom Formula Fields

Formula Concatenation

Formula fields can now concatenate (combine) text values, not just perform mathematical calculations. Users can create formulas that combine multiple field values into a single output.

What it solves: Users needed to create calculated text fields that combine information from multiple sources. For example, creating a “Vessel Summary” field that combines vessel name, IMO number, and flag state into a single formatted string.

What users can do:

  • Create formula fields that combine text from multiple fields
  • Build formatted display strings automatically
  • Concatenate job information for reports and documents
  • Create dynamic descriptions based on other field values

Formulas on Documents

Formula custom fields now render correctly on generated documents (invoices, quotes, purchase orders). The calculated values appear in the document output, not just on screen.

What it solves: Previously, formula fields would show blank or incorrect values when documents were generated. Now, the calculated results appear correctly in generated PDFs and printed documents.

What users can do:

  • Include formula calculations in invoice line items
  • Show computed totals and summaries on quotes
  • Create dynamic document content based on calculations
  • Generate documents with accurate formula-based values

Enhanced Formula Processing

Improved handling of formulas with large numbers, negative values, and edge cases. Fixed issues where formulas would show “NaN” (Not a Number) instead of proper values.

What it solves: Users reported formula fields showing errors or incorrect values, especially with large numbers (thousands), negative values, or when referenced fields were empty. These edge cases are now handled gracefully.

What users can do:

  • Use formulas with large currency amounts without display errors
  • Create formulas that handle negative numbers correctly
  • Trust that empty fields won’t break formula calculations
  • See proper number formatting in formula results

6. API & App Integrations Platform

API Key Management

A self-service system for generating and managing API keys. Organizations can create API keys for external applications to access Base data programmatically.

What it solves: Integration developers and IT teams needed a way to generate API credentials without contacting support. Self-service API key management enables faster integration development.

What users can do:

  • Generate API keys for external applications
  • Manage multiple API keys for different integrations
  • Revoke API keys when no longer needed
  • Track which API keys are in use

OpenAPI Specification & Documentation

Comprehensive API documentation following the OpenAPI (Swagger) standard. Developers can explore available endpoints, see request/response formats, and test API calls.

What it solves: Developers building integrations with Base needed clear, comprehensive API documentation. The OpenAPI spec provides machine-readable documentation that works with standard development tools.

What users can do:

  • Explore all available API endpoints
  • See exactly what data each endpoint expects and returns
  • Generate client code automatically from the spec
  • Test API calls in an interactive documentation interface

App Management

Register and manage third-party applications that connect to Base. Track which apps have access to organizational data and manage app permissions.

What it solves: As organizations connect more external applications, they need visibility into what’s connected and what data each app can access. App management provides this control and visibility.

What users can do:

  • View all connected third-party applications
  • Manage permissions for each connected app
  • Disconnect apps that are no longer needed
  • Track app activity and data access

7. Job Templates

Reusable Job Templates

Create templates for commonly used job configurations. Templates can include pre-filled fields, default charge codes, assigned team members, and other job settings.

What it solves: Many organizations create similar jobs repeatedly (recurring services, standard operations). Templates eliminate repetitive data entry by pre-configuring common job types.

What users can do:

  • Create templates for recurring job types
  • Pre-configure charges, expenses, and line items in templates
  • Set default values for custom fields
  • Create jobs from templates with one click
  • Maintain consistency across similar jobs

Template Manager Interface

A dedicated interface for creating, editing, and organizing job templates. Templates can be categorized and organized for easy access.

What it solves: As organizations build up template libraries, they need a way to organize and manage them. The template manager provides a clean interface for template administration.

What users can do:

  • Browse and search available templates
  • Edit existing templates to update defaults
  • Organize templates by category or type
  • Preview template configurations before creating jobs

8. Job Types

Organization-Specific Job Categorization

Define custom job types specific to your organization. Job types provide standardized categorization that can drive workflows, reporting, and defaults.

What it solves: Different organizations categorize jobs differently based on their business. Job types provide a flexible, organization-specific categorization system that can be customized to match any business model.

What users can do:

  • Create custom job type categories
  • Assign types to jobs for better organization
  • Filter and report by job type
  • Configure different behaviors for different job types

Migration from Legacy Custom Fields

Automatic migration of job categorization from legacy custom fields to the new job types system. Existing data is preserved while gaining new functionality.

What it solves: Organizations that used custom fields for job categorization can now benefit from native job type features without losing historical data or requiring manual re-entry.

What users can do:

  • Migrate existing custom field categories to job types
  • Preserve historical categorization data
  • Gain new job type features for existing data
  • Clean up redundant custom fields after migration

9. Status Configuration & Workflow

Status Groups

Organize job statuses into logical groups (e.g., “Open”, “In Progress”, “Completed”, “Cancelled”). Status groups enable higher-level reporting and filtering.

What it solves: Organizations may have many detailed statuses, but often need to report on broader categories. Status groups provide this summarization without losing status detail.

What users can do:

  • Group related statuses together
  • Report on status group totals
  • Filter by status group instead of individual statuses
  • Create dashboards using status group summaries

Automation Locks

Lock certain automations to specific status transitions. Ensure that automations only fire when status changes happen in the expected sequence.

What it solves: Automations could sometimes fire unexpectedly when statuses were changed out of sequence. Automation locks ensure workflows run only in the intended order.

What users can do:

  • Define valid status transition sequences
  • Prevent out-of-order status changes
  • Ensure automations fire predictably
  • Maintain workflow integrity

Status Configurator UI

A visual interface for configuring status workflows, groups, and automations. Drag-and-drop status configuration with visual workflow preview.

What it solves: Status configuration was previously complex and required support assistance. The visual configurator makes it self-service and intuitive.

What users can do:

  • Visually design status workflows
  • Configure status transitions with drag-and-drop
  • Preview how statuses will flow
  • Make status changes without support tickets

10. Excel Export & Email System

Excel File Exporting

Export any table data to Excel format with full formatting and structure preserved. Exports include all visible columns, respect current filters, and maintain data types.

What it solves: Users needed to get data out of Base for external analysis, sharing with clients, or archival. Excel export provides a universal format that works with any spreadsheet software.

What users can do:

  • Export any table to Excel with one click
  • Include current filters and sorting in exports
  • Export custom field data alongside standard fields
  • Create reports for external sharing

Email Excel Exports

Send Excel exports directly via email without downloading first. Recipients get the Excel file attached to an email sent from Base.

What it solves: Users often export data just to email it to someone else. Email export combines these steps, saving time and ensuring recipients get the data without manual file attachment.

What users can do:

  • Email table exports directly to colleagues or clients
  • Schedule regular export emails
  • Share filtered data views with external parties
  • Maintain audit trail of what was shared with whom

Enhanced Export Columns

Added additional columns to exports including data that wasn’t previously available in export format. Charges, expenses, and other detailed data now export with complete information.

What it solves: Users complained that exports were missing important data columns. Enhanced exports include all the information needed for complete reporting.

What users can do:

  • Export complete charge details including all custom fields
  • Get expense data with full categorization
  • Include related entity information in exports
  • Create comprehensive reports with all available data

11. Notification & Inbox System

Redesigned Inbox Screen

A completely redesigned inbox interface with improved organization, faster loading, and better notification management. Notifications are grouped logically and easier to act on.

What it solves: The previous inbox was cluttered and slow. The redesign provides a cleaner interface that loads faster and makes it easier to find important notifications.

What users can do:

  • See notifications organized by priority and type
  • Mark notifications as read/unread in bulk
  • Filter notifications by category
  • Access the inbox from any page via the sidebar

Infinite Scroll Performance

Optimized infinite scroll loading for the inbox. Notifications load smoothly as users scroll, without page jumps or loading delays.

What it solves: Users reported janky scrolling and slow loading when viewing many notifications. Infinite scroll optimization provides smooth, fast notification browsing.

What users can do:

  • Scroll through notifications without delays
  • Load historical notifications seamlessly
  • Browse large notification volumes efficiently

Activity Timeline Improvements

Enhanced activity timeline display with better skeleton loading states. The timeline shows a smooth loading experience instead of blank space while data loads.

What it solves: The activity timeline would show blank space while loading, which looked broken. Skeleton loading provides visual feedback that content is coming.

What users can do:

  • See loading progress in activity timelines
  • Experience smoother page loads
  • Understand that content is loading rather than missing

Notification Settings on Membership

Configure notification preferences when users are added to organizations. New members get appropriate notification settings from the start.

What it solves: New users would either get too many notifications or miss important ones because defaults weren’t set. Membership-level notification settings ensure appropriate configuration from day one.

What users can do:

  • Set notification defaults for new members
  • Configure what notifications new users receive
  • Ensure consistent notification setup across the team

13. Support Access

In-App Support Button

A persistent support button that provides quick access to help resources, documentation, and support contact options from any page in the application.

What it solves: Users had to leave the application or search for contact information when they needed help. The support button provides instant access to help resources.

What users can do:

  • Access help documentation without leaving their current page
  • Contact support with one click
  • Submit support tickets with context automatically included
  • Access chat or email support as preferred

14. Dashboard & Analytics

Query Caching for Dashboard

Implemented caching for dashboard queries to dramatically improve load times. Dashboard data is cached intelligently and refreshed in the background.

What it solves: Dashboards were slow to load because each widget queried the database separately. Caching reduces database load and provides near-instant dashboard rendering.

What users can do:

  • Load dashboards instantly instead of waiting
  • See data immediately with background refresh
  • Navigate between dashboards quickly

Invoice-Based Dashboard Cards

Dashboard cards now show metrics based on invoice data rather than estimates. Cards reflect actual billed amounts and invoice statuses.

What it solves: Dashboard metrics were sometimes confusing because they mixed estimates with actuals. Invoice-based cards show definitive financial metrics.

What users can do:

  • See actual invoiced revenue on dashboards
  • Track invoice status totals (draft, sent, paid)
  • Get accurate financial snapshots

Custom Dashboard and Project Cards

Customizable dashboard cards that can be configured per organization. Different organizations can see different metrics on their dashboards.

What it solves: Not all organizations care about the same metrics. Customizable cards allow each organization to see what’s important to them.

What users can do:

  • Configure which metrics appear on dashboards
  • Create organization-specific dashboard layouts
  • Focus on the KPIs that matter most

15. Document Generation

Formula Fields on Documents

Custom formula fields now render correctly on generated documents including invoices, quotes, and purchase orders. Calculated values appear in the final document output.

What it solves: Formula fields would show as blank or wrong values on generated documents. Now calculations display correctly on all document types.

What users can do:

  • Include calculated totals on invoices
  • Show formula-based line items on quotes
  • Generate documents with dynamic calculated content

Document Template Routing

Route document generation to specific saved templates. When generating documents, users can select from their organization’s template library.

What it solves: Users needed to manually configure document formatting each time. Template routing allows one-click generation with saved formatting preferences.

What users can do:

  • Save document formatting as templates
  • Generate documents using saved templates
  • Maintain consistent document appearance
  • Switch between templates for different purposes

16. Exchange Rates & Currency

Line Item Exchange Rates

Apply exchange rates at the individual line item level, not just the document level. Each charge or expense can use a different exchange rate if needed.

What it solves: Multi-currency jobs where different charges were incurred on different dates needed different exchange rates. Line-item rates provide this precision.

What users can do:

  • Apply date-specific exchange rates to individual charges
  • Handle multi-currency jobs accurately
  • Match exchange rates to the date costs were incurred

Currency Conversion for Job Documents

Automatic currency conversion when generating job documents. Documents can be generated in the customer’s preferred currency with automatic conversion.

What it solves: Jobs with costs in one currency needed to be invoiced in another. Automatic conversion eliminates manual currency calculations.

What users can do:

  • Generate invoices in customer’s currency regardless of cost currency
  • Apply exchange rates automatically during document generation
  • Maintain audit trail of applied exchange rates

Exchange Rate Display on Invoices

Show the applied exchange rate on invoice documents so customers can see the conversion used.

What it solves: Customers want transparency about exchange rate calculations. Displaying rates on invoices provides this clarity.

What users can do:

  • Show exchange rates used on invoice documents
  • Provide transparency to customers on currency conversions
  • Maintain documentation of applied rates

Exchange Rate Page Improvements

Enhanced the exchange rate management page with features including disabling future dates (can’t set rates for dates that haven’t happened), links to related documents, and improved graph display.

What it solves: The exchange rate page was basic and had usability issues. Improvements make rate management more intuitive and prevent data entry errors.

What users can do:

  • Manage exchange rates with an improved interface
  • See which documents use each exchange rate
  • View exchange rate history graphically
  • Prevent accidentally entering future-dated rates

🔧 BUG FIXES & IMPROVEMENTS

17. Jobs Module Fixes

Quick Copy Job Number

Added one-click copying for job numbers. Click a copy icon next to any job number to copy it to the clipboard instantly.

What was wrong: Users had to manually select and copy job numbers, which was tedious when referencing jobs in emails or other systems.

What’s fixed: Single-click copying makes it effortless to copy job numbers for use elsewhere.

Job Duplication Performance

Improved the job duplication feature to run faster and handle more complex jobs with many line items, charges, and related data.

What was wrong: Duplicating jobs with lots of data was slow and sometimes timed out.

What’s fixed: Job duplication now handles complex jobs quickly and reliably.

Duplicate from Table

Added ability to duplicate jobs, charges, and expenses directly from their respective tables without opening the full record.

What was wrong: To duplicate an item, users had to open it first, then find the duplicate action.

What’s fixed: Right-click or action menu duplication directly from tables saves clicks and time.

Archived Jobs in Exports

Excluded archived/cancelled jobs from charge exports by default. Users can still include them if needed, but the default behavior excludes them.

What was wrong: Exports included archived jobs, inflating totals and cluttering reports.

What’s fixed: Exports focus on active jobs by default, providing cleaner reports.

Custom Field Sorting on Job Table

Custom fields can now be used as sort columns on the job table. Click any custom field column header to sort by that field.

What was wrong: Users couldn’t sort jobs by custom field values, limiting the usefulness of custom fields for organization.

What’s fixed: Full sorting support for custom fields makes them as useful as built-in fields for organizing job lists.

All Charges Export Button

Added an “Export All Charges” button to the job table toolbar. One click exports all charges across visible jobs.

What was wrong: Exporting charges required navigating into jobs or using complex filter combinations.

What’s fixed: Quick access to charge exports directly from the job list.

Job Year Parameter Fix

Fixed an issue where the current year wasn’t being passed correctly when building job numbers, causing incorrect job number sequences.

What was wrong: Job numbers could generate with wrong year values in certain edge cases.

What’s fixed: Job numbers always use the correct year value.

Editing Vessels/Ports/Fleet on Jobs

Fixed issues preventing proper editing of vessel, port, and fleet assignments on existing jobs.

What was wrong: Users couldn’t change vessel or port assignments after job creation, or changes wouldn’t save correctly.

What’s fixed: Vessel, port, and fleet fields can be edited reliably on existing jobs.

Guest Permissions for Job Details

Fixed permission checks so guest users see appropriate job detail sections based on their access level.

What was wrong: Guest users either saw too much or too little information on job detail pages.

What’s fixed: Guest access is properly scoped to show only what they should see.

Jobs Per Page Display

Fixed an issue where the “250 per page” option wasn’t displaying correctly on job tables.

What was wrong: Selecting to view 250 jobs per page would show fewer or cause display issues.

What’s fixed: All “per page” options work correctly.

Job Table Matching Job Details

Ensured that custom field visibility and values shown on the job table exactly match what’s shown on job detail pages.

What was wrong: Custom fields would sometimes show different values on the table vs. the detail page due to different data fetching.

What’s fixed: Consistent custom field display across table and detail views.

NaN Errors in Job Displays

Fixed formula fields and calculated values showing “NaN” (Not a Number) instead of proper values in job displays.

What was wrong: Empty fields or certain number formats would cause formulas to display NaN.

What’s fixed: Proper handling of edge cases prevents NaN display.

Custom Fields on Job Table Visibility

Fixed custom fields not appearing on the job table even when configured to be visible.

What was wrong: Users would add custom fields and enable them in table settings, but they wouldn’t appear.

What’s fixed: Custom fields appear correctly when enabled in table configuration.

Remove Block for Adding Job Items

Removed an unnecessary restriction that prevented adding line items to jobs in certain statuses.

What was wrong: Users couldn’t add charges or expenses to jobs that had reached certain statuses, even when it was operationally necessary.

What’s fixed: More flexible item addition that doesn’t block legitimate workflows.

Job Duplication Bug

Fixed various issues with job duplication including missing data, incorrect values, and relationship issues.

What was wrong: Duplicated jobs were missing some data or had incorrect relationships to other entities.

What’s fixed: Job duplication creates complete, accurate copies.

18. Invoice & Accounts Receivable Fixes

Invoice Create Error Fix

Fixed errors that would occur when creating new invoices in certain scenarios.

What was wrong: Creating invoices would sometimes fail with validation errors or crash the page.

What’s fixed: Reliable invoice creation in all scenarios.

Exchange Rate Display on Invoice Generation

Exchange rates are now displayed during invoice generation so users can verify the conversion being applied.

What was wrong: Users couldn’t see what exchange rate would be used until after generating the invoice.

What’s fixed: Transparency during invoice generation about currency conversion.

Comma Formatting for Numbers on Final Invoice

Numbers on final invoices now display with proper comma separators for thousands.

What was wrong: Large numbers displayed without separators (1000000 instead of 1,000,000), making them hard to read.

What’s fixed: Proper number formatting for readability.

Final Invoice Fixes

Multiple fixes to final invoice generation including data accuracy and format issues.

What was wrong: Final invoices had various issues with calculated values and display.

What’s fixed: Accurate, well-formatted final invoices.

Total Invoices in Dashboard

Fixed incorrect totals showing on the dashboard for invoice counts and values.

What was wrong: Dashboard showed wrong invoice totals due to query issues.

What’s fixed: Accurate invoice metrics on dashboards.

404 Errors in AR Module

Fixed navigation issues causing 404 (page not found) errors when accessing certain AR records.

What was wrong: Some invoice links would lead to 404 pages, requiring users to navigate manually.

What’s fixed: All AR links work correctly.

Project Revenue on Table

Fixed incorrect revenue calculations displaying in project tables and related job tables.

What was wrong: Revenue figures didn’t match actual invoiced amounts.

What’s fixed: Accurate revenue display matching actual invoices.

Currency Correction for AR Invoices

Fixed currency handling to properly convert and display multi-currency invoices in AR.

What was wrong: Invoices in different currencies weren’t converting properly for AR totals.

What’s fixed: Correct multi-currency handling in accounts receivable.

Get Invoices for Payments

Fixed invoice retrieval to properly load payment-related information.

What was wrong: Invoice data was missing payment status or payment history when loaded.

What’s fixed: Complete invoice data including payment information.

Project Invoice Dropdown

Fixed dropdown selection issues when choosing projects for invoices.

What was wrong: Project dropdown wouldn’t load options or would show wrong projects.

What’s fixed: Working project selection on invoices.

AR Invoice Dropdown

Fixed similar dropdown issues specific to AR invoice forms.

What was wrong: Dropdown menus on AR invoices weren’t functioning properly.

What’s fixed: All dropdowns on AR invoices work correctly.

Get Invoice Include Fix

Fixed data loading to include all related information when fetching invoices.

What was wrong: Invoice pages were missing some related data like line items or customer info.

What’s fixed: Complete invoice data loads including all related records.

Due Date on AR Invoices

Fixed due date calculation and display on accounts receivable invoices.

What was wrong: Due dates were calculated incorrectly or not displaying.

What’s fixed: Correct due date calculation based on payment terms.

Export for Members and AR Invoice Tables

Fixed export functionality for member lists and AR invoice tables.

What was wrong: Exports would fail or produce incomplete data for these tables.

What’s fixed: Complete, accurate exports from all tables.

19. Accounts Payable Fixes

AP and AR Tables Update

Comprehensive updates to both AP and AR table displays for consistency and improved functionality.

What was wrong: Tables had various display inconsistencies and missing features.

What’s fixed: Improved, consistent table experience across AP and AR.

AP Version 6.3 Update

Major update to accounts payable module with accumulated improvements and fixes.

What was wrong: AP module had accumulated technical debt and minor issues.

What’s fixed: Comprehensive refresh of AP functionality.

Custom Fields on AP Invoice Edit

Fixed custom fields not displaying or saving correctly when editing AP invoices.

What was wrong: Custom field changes on AP invoices weren’t being saved.

What’s fixed: Custom fields work correctly throughout the AP workflow.

AP Invoice Permissions Issue

Fixed permission checks that were preventing authorized users from accessing AP invoices.

What was wrong: Users with correct permissions were blocked from certain AP actions.

What’s fixed: Permissions properly allow authorized access.

19. Project Fixes

Project Invoice Approval

Fixed issues with the project invoice approval workflow.

What was wrong: Approvals weren’t processing correctly or were blocked unexpectedly.

What’s fixed: Smooth invoice approval workflow for projects.

Project Cards Fix

Fixed display issues with project summary cards on various pages.

What was wrong: Project cards showed incorrect values or didn’t load.

What’s fixed: Accurate, reliable project card displays.

Project Table Cost and Profit

Fixed calculations for cost and profit columns in project tables.

What was wrong: Cost and profit calculations were using wrong data or formulas.

What’s fixed: Accurate cost/profit calculations based on actual job data.

Project Unique to Organization

Ensured that project codes/numbers are unique within an organization rather than globally unique across the entire application.

What was wrong: Two different organizations couldn’t use the same project code.

What’s fixed: Project codes are organization-scoped, allowing reuse across orgs.

Status Added to Get Projects

Added status information to project queries so status can be displayed and filtered.

What was wrong: Project status wasn’t loading efficiently, requiring extra queries.

What’s fixed: Project status loads with project data efficiently.

Billing Pack on Project Invoice Approval

Fixed missing billing pack option on project invoice approval screens.

What was wrong: Billing pack feature wasn’t available during project invoice approval.

What’s fixed: Full billing pack functionality in project workflows.

20. Charges & Expenses Fixes

Duplicate from Table

Added ability to duplicate charges and expenses directly from table views without opening the record first.

What was wrong: Duplicating charges required opening the charge, finding duplicate action, then saving.

What’s fixed: Quick duplication from table context menus.

Date Format on All Charges Button

Fixed date formatting in the “all charges” export to use consistent, readable format.

What was wrong: Dates exported in inconsistent or hard-to-read formats.

What’s fixed: Consistent, sortable date formatting in exports.

Export All Job Charges Button

Fixed issues with the export button for job charges not working or producing incomplete exports.

What was wrong: The export button would fail or miss some charges.

What’s fixed: Reliable, complete charge exports.

All Charges with New Line

Fixed charges display to properly show line breaks and formatting in notes.

What was wrong: Charge descriptions with multiple lines would display as run-on text.

What’s fixed: Proper line break rendering in charge displays.

Tax Rate in Values

Added tax rate information to charge value displays and exports.

What was wrong: Tax rates weren’t visible in charge tables or exports.

What’s fixed: Complete tax information visible on charges.

Performance Indexes for Charges

Added database indexes to dramatically speed up charge-related queries.

What was wrong: Pages with many charges loaded slowly due to database query times.

What’s fixed: Fast charge loading through optimized queries.

Update Related Expense

Fixed issues when updating expenses related to charges.

What was wrong: Changing an expense wouldn’t properly update related charge references.

What’s fixed: Expense changes correctly sync to related data.

QB Charge Code Lineup

Fixed alignment between charge codes in Base and their QuickBooks equivalents.

What was wrong: Charge codes weren’t matching correctly when syncing to QuickBooks.

What’s fixed: Proper charge code mapping for accounting sync.

Reorder Custom Fields

Fixed custom field reordering on charges and expenses to properly save order changes.

What was wrong: Dragging custom fields to reorder them wouldn’t save the new order.

What’s fixed: Custom field order saves correctly and persists.

21. Companies Fixes

Types Column on Company Table

Added a company types column to the company table showing each company’s type categories.

What was wrong: Company types weren’t visible in table view, requiring users to open each record.

What’s fixed: Company types visible at a glance in the table.

Archive Company Fix

Fixed issues preventing company archival from working correctly.

What was wrong: Archiving a company would fail or not properly hide the company.

What’s fixed: Company archival works as expected.

Company Details Error Fix

Fixed errors occurring when viewing company detail pages.

What was wrong: Opening some company records would show error messages.

What’s fixed: All company details load correctly.

Company Form Zod Validation Error

Fixed form validation errors when creating or editing companies.

What was wrong: Company forms would show validation errors on valid data.

What’s fixed: Form validation correctly accepts valid input.

Company Copy Route

Added functionality to copy/duplicate company records.

What was wrong: Users couldn’t duplicate companies, requiring manual re-entry.

What’s fixed: Company duplication available.

22. Contracts Fixes

Contract File Table History

Fixed file history display in contract file tables.

What was wrong: File version history wasn’t loading or displaying correctly.

What’s fixed: Complete file history available in contract records.

Contract Export and Search

Fixed export and search functionality in the contracts module.

What was wrong: Contract searches weren’t returning correct results, exports were failing.

What’s fixed: Working search and export for contracts.

Contract Files Table

Fixed various issues with the contract files table display.

What was wrong: Files weren’t displaying correctly, actions weren’t working.

What’s fixed: Fully functional contract files interface.

23. Custom Fields Fixes

Custom Field References and Caching

Optimized how custom field definitions are loaded and cached for better performance.

What was wrong: Custom fields caused excessive database queries, slowing page loads.

What’s fixed: Efficient caching reduces query load.

Negative Numbers in Custom Fields

Fixed handling of negative number values in numeric custom fields.

What was wrong: Negative numbers would display incorrectly or break calculations.

What’s fixed: Proper negative number support.

Custom Field Required Issue

Fixed validation for required custom fields to properly enforce when values are needed.

What was wrong: Required fields could be submitted empty, or non-required fields blocked submission.

What’s fixed: Correct required field validation.

Custom Field Column Permissions on Form

Fixed permission checking for custom field columns on forms.

What was wrong: Custom fields would appear when they should be hidden based on permissions.

What’s fixed: Custom field visibility respects permissions.

Date Custom Field Filter

Fixed filtering by date-type custom fields.

What was wrong: Date filters wouldn’t return correct results or would fail.

What’s fixed: Working date-based custom field filtering.

Is Not Filter on Date Field

Fixed the “is not” comparison operator for date custom fields.

What was wrong: Filtering for dates that are NOT a specific value didn’t work.

What’s fixed: All date comparison operators work correctly.

NaN Issue on Large Numbers in Formula Fields

Fixed formula fields showing “NaN” when dealing with numbers over 1,000.

What was wrong: Thousand separators in numbers were breaking formula parsing.

What’s fixed: Formulas handle formatted numbers correctly.

Blank Fields Showing NaN

Fixed formula fields that reference empty fields showing “NaN” instead of blank or zero.

What was wrong: Empty field references broke formula calculations.

What’s fixed: Empty fields are handled gracefully in formulas.

Single Select and Multi Select Not Nullable

Fixed validation for single-select and multi-select custom fields to properly allow empty values.

What was wrong: Dropdown fields couldn’t be saved empty even when not required.

What’s fixed: Optional dropdown fields can be left empty.

Custom Fields from Other Orgs

Fixed a bug where custom fields from other organizations could appear in field lists.

What was wrong: Data isolation wasn’t complete, showing cross-org field definitions.

What’s fixed: Strict organization scoping for custom fields.

Custom Field Hidden Issue

Fixed custom fields appearing on job forms when they should be hidden based on table configuration.

What was wrong: Hidden custom fields were still showing up on forms.

What’s fixed: Hidden field configuration applies to forms correctly.

Job Details Section Custom Fields

Fixed hidden custom fields showing as empty in job details sections due to reordering.

What was wrong: Reordering custom fields caused hidden fields to show as blank entries.

What’s fixed: Hidden fields are truly hidden, not shown as blanks.

Formula Issue Cannot Find DB Model

Fixed formulas that reference data models that couldn’t be located in the database.

What was wrong: Certain formula references would fail due to database lookup issues.

What’s fixed: Robust formula reference resolution.

Updating Invoice/Quote/PO Breaking Formula CF

Fixed formula custom fields that would break when the parent document was updated.

What was wrong: Saving changes to documents would corrupt formula field values.

What’s fixed: Formulas remain intact through document edits.

24. Table Configuration Fixes

Table Height Sizing

Fixed table height calculations to properly size tables to the available screen space.

What was wrong: Tables would be too short or too tall, not using screen space efficiently.

What’s fixed: Tables size correctly to available space.

Hidden Columns Bug

Fixed hidden columns reappearing after page refresh or navigation.

What was wrong: Column hiding preferences weren’t persisting correctly.

What’s fixed: Hidden column settings persist reliably.

Optional Chaining in Serverside Table

Fixed crashes in server-side tables when encountering null or undefined values.

What was wrong: Missing data would crash table rendering.

What’s fixed: Graceful handling of missing data.

Custom Fields Grabbing Wrong Table Config

Fixed custom fields loading configuration from the wrong table definition.

What was wrong: Custom field settings for one table would affect another.

What’s fixed: Correct table configuration scoping.

Filter Issue for Custom Field Values

Fixed filtering by custom field values returning wrong results.

What was wrong: Custom field filters weren’t querying the database correctly.

What’s fixed: Accurate custom field filtering.

25. User Management & Permissions Fixes

Login/Logout Features

Added improvements to the login and logout experience.

What was wrong: Login/logout flows had usability issues.

What’s fixed: Smoother authentication experience.

User Access Template Fix

Fixed issues with user access template configuration and application.

What was wrong: Access templates weren’t applying correctly to users.

What’s fixed: Templates apply correctly to control user access.

User Template Permission Update

Fixed updating user templates to properly change permissions in the members table.

What was wrong: Changing template permissions wouldn’t affect existing users.

What’s fixed: Template changes cascade to members correctly.

User Template Issue General Fix

Addressed various issues with user template functionality.

What was wrong: Multiple minor template issues affected usability.

What’s fixed: Reliable template functionality.

Invitation Capitalization Fix

Fixed case sensitivity issues with email invitations.

What was wrong: Invitations could fail if email case didn’t match exactly.

What’s fixed: Case-insensitive email invitation matching.

Email Lowercasing in Get User

Standardized email handling to lowercase for consistent matching.

What was wrong: Email lookups could fail due to case differences.

What’s fixed: Consistent lowercase email handling.

Permissions for Button (Admin and Owner Only)

Added proper permission checks for admin-only buttons and actions.

What was wrong: Some admin actions were visible to non-admin users.

What’s fixed: Admin-only features properly restricted.

Users with Account Can Join Organization

Fixed the flow for existing users joining new organizations.

What was wrong: Users with existing accounts couldn’t join new orgs through invitations.

What’s fixed: Existing users can accept org invitations.

Column Permissions in App

Fixed column-level permission checking throughout the application.

What was wrong: Column permissions were inconsistently applied.

What’s fixed: Consistent column permission enforcement.

Request Table Added to Access Template

Added the requests table to access template configuration options.

What was wrong: Request table permissions couldn’t be configured via templates.

What’s fixed: Complete permission coverage including requests.

26. Organization Fixes

Delete Organization Feature

Added ability to delete organizations (admin only with proper safeguards).

What was wrong: Organizations couldn’t be deleted, only deactivated.

What’s fixed: Full organization deletion when needed.

Duplicate Organization Route

Added functionality to duplicate an organization with its settings.

What was wrong: Setting up new organizations required manual recreation of settings.

What’s fixed: Clone existing org settings to new organizations.

26. Integration Fixes

QuickBooks Fixes

  • Fixed QBO import issues
  • Fixed QB sync errors
  • Fixed JS Connor transaction timeout issues (multiple fixes for timeout costs)
  • Fixed charge code lineup with QB

What was wrong: Various QuickBooks sync issues caused data mismatches and sync failures.

What’s fixed: Reliable QuickBooks synchronization.

Xero Fixes

  • Fixed currency handling when pushing invoices to Xero
  • Fixed Xero callback authentication

What was wrong: Xero sync would fail on currency mismatches and authentication issues.

What’s fixed: Reliable Xero integration.

Stripe Fixes

  • Fixed Stripe automation issues
  • Fixed Stripe with zero products edge case
  • General billing/stripe improvements

What was wrong: Stripe payment processing had edge case failures.

What’s fixed: Robust Stripe payment handling.

27. Document & Template Fixes

Document Generation API Update

Updated the document generation API for better reliability and features.

What was wrong: Document generation had limitations and occasional failures.

What’s fixed: Improved document generation reliability.

Body Not Bleeding to Template Postmark

Fixed email template rendering where body content wasn’t appearing correctly.

What was wrong: Email content would be missing or formatted incorrectly.

What’s fixed: Complete email content rendering.

Generate Purchase Order Fix

Fixed PO generation that was failing in certain scenarios.

What was wrong: PO generation would fail with validation errors.

What’s fixed: Reliable PO generation.

Edit PO Rates Error

Fixed errors when editing rates on existing purchase orders.

What was wrong: Changing rates on POs would fail or save incorrect values.

What’s fixed: Correct PO rate editing.

Custom Form Template Fix

Fixed issues with custom form template rendering.

What was wrong: Custom form templates wouldn’t render correctly.

What’s fixed: Proper custom form display.

Logo on Custom Form Fix

Fixed organization logos not appearing on custom public forms.

What was wrong: Custom forms showed no logo or wrong logo.

What’s fixed: Correct logo display on public forms.

28. Exchange Rate Fixes

Currency Fix When Invoice Pushed to Xero

Fixed currency handling during Xero invoice sync.

What was wrong: Currency conversions were incorrect when syncing to Xero.

What’s fixed: Accurate currency handling in Xero sync.

Exchange Rate on Templates

Fixed exchange rate display and application on document templates.

What was wrong: Templates weren’t using correct exchange rates.

What’s fixed: Correct exchange rate application to templates.

Bulk Add Exchange Rates Update

Improved bulk exchange rate entry functionality.

What was wrong: Bulk rate entry had usability and save issues.

What’s fixed: Smooth bulk exchange rate management.

29. Email & Notification Fixes

False for Mailers If Absent

Fixed handling when mailer configuration is missing.

What was wrong: Missing mailer config would crash instead of gracefully degrading.

What’s fixed: Graceful handling of missing email configuration.

Blank Mailer Catch

Added error handling for blank mailer configurations.

What was wrong: Empty mailer settings would cause errors.

What’s fixed: Proper error handling for missing mailer setup.

30. Payment Fixes

Minor Payments Bugs

Fixed various small issues in the payments module.

What was wrong: Multiple minor issues affected payment UX.

What’s fixed: Polished payment experience.

Payment Method from Webhook

Fixed payment method detection from incoming webhooks.

What was wrong: Webhook payments weren’t being categorized correctly.

What’s fixed: Correct payment method tracking from webhooks.

31. Credit Note Fixes

Credit Note Issue Fix

Fixed general issues with credit note creation and management.

What was wrong: Credit notes had various functionality issues.

What’s fixed: Working credit note functionality.

QB Credit Note Push Fix

Fixed syncing credit notes to QuickBooks.

What was wrong: Credit notes wouldn’t sync to QB correctly.

What’s fixed: Reliable credit note sync.

QB Invoice and Credit Note Customer Reference

Fixed customer reference linking on QB-synced invoices and credit notes.

What was wrong: Customer references were missing or incorrect in QB.

What’s fixed: Correct customer linking in QB sync.

32. Allocation Fixes

Extra Form Error in Allocation Removed

Removed a spurious error that would appear when saving allocations.

What was wrong: A form error would display even when the save was successful.

What’s fixed: Error only shows when there’s an actual problem.

33. Sharing & Collaboration Fixes

Share Link Modal Staying Open

Fixed the share link modal not closing after copying link.

What was wrong: Modal required manual close after action was complete.

What’s fixed: Modal closes automatically after sharing.

Custom Share Form Error

Fixed errors occurring on custom share forms when no shares had been sent.

What was wrong: Form would error before any shares existed.

What’s fixed: Graceful handling of empty share state.

34. Port & Vessel Fixes

Vessels/Fleets Not Being Org Blocked

Fixed data isolation so vessels and fleets are properly scoped to organizations.

What was wrong: Cross-organization data leakage was possible for vessel data.

What’s fixed: Strict organization isolation for vessels and fleets.

Fix Vessels/Ports Stuff (General)

Addressed various issues with the vessels and ports modules.

What was wrong: Multiple minor issues in maritime features.

What’s fixed: Polished vessel and port experience.

Map Vessels Fix

Fixed vessel display on map interfaces.

What was wrong: Vessels weren’t displaying correctly on maps.

What’s fixed: Correct vessel map display.

More Visible Map

Improved map visibility and contrast.

What was wrong: Map was hard to read in certain conditions.

What’s fixed: Clear, readable map interface.

Port Fixes

Various fixes to port data and display.

What was wrong: Port information had display and data issues.

What’s fixed: Accurate port data display.

Berth Table Depth Issue

Fixed an issue with berth table trying to render nested object data.

What was wrong: Complex berth data caused rendering errors.

What’s fixed: Proper berth data handling.

34. Form & Validation Fixes

Form Reorder Effect Fix

Fixed issues when reordering form fields that would cause incorrect behavior.

What was wrong: Reordering fields would break form behavior.

What’s fixed: Smooth field reordering.

Date Picker Fix

Fixed date picker component issues.

What was wrong: Date picker had selection and display issues.

What’s fixed: Working date picker.

Remove Breaking Log

Removed a logging statement that was causing application crashes.

What was wrong: Debug logging was left in production code.

What’s fixed: Clean production code without debug artifacts.

Custom Form Fixes

Multiple fixes to custom form rendering and submission.

What was wrong: Custom forms had various issues.

What’s fixed: Reliable custom form functionality.

Shareable Form Fix

Fixed issues with publicly shareable forms.

What was wrong: Public forms wouldn’t load or submit correctly.

What’s fixed: Working public form sharing.

35. Miscellaneous Fixes

Year to Date View Not Sticking

Fixed date range filter not persisting the “year to date” selection.

What was wrong: YTD selection would reset on page refresh.

What’s fixed: Date filter selections persist correctly.

Check for Null User

Added null checking for user references to prevent crashes.

What was wrong: Missing user data would crash pages.

What’s fixed: Graceful handling of missing user data.

Fix Editing from Table Cell

Fixed inline editing directly in table cells.

What was wrong: Inline edits wouldn’t save or would save wrong values.

What’s fixed: Working inline table cell editing.

URL Object Issue Fix

Fixed URL handling that was showing “[object]” instead of actual URLs.

What was wrong: URLs were being converted to objects incorrectly.

What’s fixed: Correct URL handling and display.

Avatar on Dropdown Tabs

Fixed user avatar display in dropdown navigation tabs.

What was wrong: Avatars weren’t loading or showing wrong images.

What’s fixed: Correct avatar display.

Fullscreen Button Move

Repositioned the fullscreen button for better usability.

What was wrong: Fullscreen button was in an awkward location.

What’s fixed: Better button placement.

Microservices Fixes

Various fixes for microservice integrations.

What was wrong: Microservice calls were failing or returning errors.

What’s fixed: Reliable microservice communication.

35. Performance Improvements

Faster page loads across jobs, inbox, dashboards, and exports, especially for teams working with large datasets.