A desktop app for freelancers to track commissions, invoices, quotes, payments, and expenses. Runs entirely on your own machine. No account, no server, no subscription.
Built with Avalonia UI on .NET 8. One codebase, native builds for Windows, macOS, and Linux.
Most commission and invoice tools for freelancers are subscription SaaS products with your financial data sitting on someone else's server. FCMS Pro takes the opposite approach: everything runs on your own machine, in a single SQLite file you control. No account to create, no monthly fee, no risk of a company shutting down and taking your records with it.
Get the latest release for your operating system from the Releases page.
| Platform | File |
|---|---|
| Windows | .exe installer |
| macOS | .dmg |
| Linux | .deb or .AppImage |
This app is not code signed, since that requires a paid certificate. Windows will likely show a SmartScreen warning ("Windows protected your PC"), and macOS will show a Gatekeeper warning ("cannot be opened because the developer cannot be verified"). This is normal for small independently distributed apps and does not mean anything is wrong with the download, as long as you got it from this repository's own Releases page. On Windows, click "More info" then "Run anyway." On macOS, right click the app and choose "Open," then confirm.
- Dashboard with income, balances, overdue items, and due-soon warnings at a glance
- Clients with profile pages, activity history, and file attachments for signed contracts and briefs
- Commissions with status pipeline tracking, search, sorting, and optional recurring schedules
- Payments & Income with automatic balance tracking and instant refund handling
- Expenses with category tracking and support for recurring subscriptions
- Analytics & Tax Summary with income breakdowns and full-page PDF tax and quarterly summary exports
- Goals for monthly and yearly freelance income and expense targets
- Global search across clients, commissions, payments, and expenses, triggered by pressing
/anywhere - Automatic local backups on exit with a configurable retention count, plus manual JSON export and import
- Soft delete and Trash with a 30-day recovery window for deleted records
- App Tour guided onboarding walk-through for new users
- Software Updates with Ed25519 cryptographic signing, on-demand checks, and What's New notes
FCMS Pro stores everything in a SQLite file on your own computer. There is no server, no account, and no telemetry. This also means backups are your responsibility. Use the built in backup and export feature regularly, since there is no cloud copy to restore from if the file is lost or corrupted.
- Avalonia UI for the cross-platform interface
- .NET 8
- Entity Framework Core with SQLite
- PdfSharpCore for PDF generation
- xUnit and Moq for testing
Requires the .NET 8 SDK.
git clone https://github.com/villenaderic/FcmsPro.git
cd FcmsPro
dotnet restore
dotnet build
dotnet run --project src/FcmsPro.AvaloniaDatabase migrations are already checked into src/FcmsPro.Data/Migrations and are applied
automatically on first launch. There is no manual migration step for a normal run.
Run the test suite with:
dotnet test src/FcmsPro.TestsEach platform has its own packaging script under installers/. Windows packaging needs Inno
Setup and must run on Windows. The macOS .dmg needs create-dmg and must run on macOS. The
Linux scripts need dpkg-deb and appimagetool. See RELEASE_CHECKLIST.md for the full process,
including how the automated build in .github/workflows/ works if you want to set up your own
fork's releases.
Please open an issue. The bug report template asks for your version and operating system, which helps a lot. Screenshots help even more.
Feature requests and pull requests are welcome. For anything nontrivial, opening an issue first to discuss the approach is a good idea before writing code.
docs/USER_GUIDE.md covers onboarding and every module in detail. CHANGELOG.md has the full
release history. See docs/SITE_ARCHITECTURE.md for details on how the website and release pipelines operate.
The official website (https://villenaderic.github.io/FcmsPro/) updates automatically without manual edits:
- Tag Trigger: Pushing a tag
vX.Y.Zbuilds the release installers and publishes a GitHub Release with notes extracted fromCHANGELOG.mdandSHA256SUMS.txt. - Site Deployment:
.github/workflows/pages.ymltriggers viaworkflow_runafter the release completes, queries the GitHub Releases API withGITHUB_TOKEN, pre-renders all version numbers, download links, file sizes, SHA-256 checksums, release history, and documentation into static HTML, and deploys directly to GitHub Pages. - No Commit Loops: Generated files exist only in the deployed Pages artifact; nothing is committed back to the repository.
- Client-Side Freshness:
release.jsin the visitor's browser loads pre-rendered HTML instantly, checks./data/release.json(with fallback toapi.github.com), and updates the UI live if a newer release exists.
MIT. See LICENSE.