The Cross-Platform Requirement
Most professional teams are mixed-OS environments. Some team members prefer macOS; others use Windows; a few may run Linux. Any software that ties the team to a single operating system creates friction: either some team members must use an OS they did not choose, or the team must maintain separate tooling for different platforms.
For a locally installed CRM or business intelligence platform, cross-platform support means:
- The server component runs on macOS, Windows, and Linux — so the organization can deploy it on whatever hardware they have or prefer.
- The client interface works on any OS — typically through a web browser, eliminating the need for platform-specific client applications.
- The database is platform-independent — PostgreSQL is the gold standard here, running identically on all major operating systems.
- Data files (documents, exports, backups) use standard formats readable across platforms.
Architecture That Enables Cross-Platform
Web-Based Interface
The most reliable cross-platform strategy is a web-based UI served by a local web server. Every modern OS has a capable web browser. There is nothing to install on client machines beyond the browser they already have. The server runs on one machine (a dedicated desktop, a server in the office, or even the user's own laptop), and other team members access it through the LAN at a local address.
ONS Data Terminal uses this approach: a Next.js-based web application served locally, accessible at http://localhost:3000 or a LAN IP. Any device on the network with a browser can use it — macOS, Windows, Linux, even tablets in a pinch.
Platform-Independent Database
PostgreSQL runs on macOS, Windows, and Linux with identical behavior. A database created on a Windows machine can be backed up and restored on a macOS or Linux machine without modification. This means the data is not tied to the operating system — if the organization changes its server hardware or OS, the database moves with it.
Standard File Formats
Documents stored by the CRM should use standard formats (PDF, DOCX, XLSX, PNG, etc.) and be saved to the local filesystem with paths stored in the database. No proprietary binary formats that only open on one OS. No cloud-dependent file references. The files are regular files in a regular directory, accessible from any OS.
Deployment Scenarios
- Single-user on laptop: The software runs on the user's Mac or Windows laptop. Database and documents are local. Access is at localhost. Simple, self-contained, zero network dependency.
- Small team on office LAN: The software runs on a dedicated Mac, Windows, or Linux machine in the office. Team members access it at a LAN IP address from their own computers. Data stays on the office server.
- Distributed team via VPN: The software runs on an office server. Remote team members connect to the office VPN and access the CRM at its LAN address. From the software's perspective, all access is local — the VPN makes remote machines appear to be on the LAN.
What to Avoid
- Platform-specific client apps: If the CRM requires a Windows-only or Mac-only client application, it is not truly cross-platform — even if it claims to be.
- OS-tied databases: Some database engines work better on one OS than another, or use OS-specific storage formats. PostgreSQL avoids this cleanly.
- Cloud-dependent features: Some "local" CRMs still require cloud connectivity for specific features (AI processing, file preview generation, sync). Verify that all core features work fully offline on both target platforms.