Skip to content
villenadericPublic

About

Local commission, invoice, and expense tracker for freelancers. Native desktop app for Windows, macOS, and Linux, built with .NET and Avalonia.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

FCMS Pro

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.

Why local-first

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.

Screenshots

Download

Get the latest release for your operating system from the Releases page.

Platform File
Windows .exe installer
macOS .dmg
Linux .deb or .AppImage

About the security warning on first launch

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.

Features

  • 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

Your data stays local

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.

Built with

  • Avalonia UI for the cross-platform interface
  • .NET 8
  • Entity Framework Core with SQLite
  • PdfSharpCore for PDF generation
  • xUnit and Moq for testing

Building from source

Requires the .NET 8 SDK.

git clone https://github.com/villenaderic/FcmsPro.git
cd FcmsPro
dotnet restore
dotnet build
dotnet run --project src/FcmsPro.Avalonia

Database 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.Tests

Building installers yourself

Each 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.

Reporting bugs

Please open an issue. The bug report template asks for your version and operating system, which helps a lot. Screenshots help even more.

Contributing

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.

Documentation

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.

How the website updates itself

The official website (https://villenaderic.github.io/FcmsPro/) updates automatically without manual edits:

  1. Tag Trigger: Pushing a tag vX.Y.Z builds the release installers and publishes a GitHub Release with notes extracted from CHANGELOG.md and SHA256SUMS.txt.
  2. Site Deployment: .github/workflows/pages.yml triggers via workflow_run after the release completes, queries the GitHub Releases API with GITHUB_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.
  3. No Commit Loops: Generated files exist only in the deployed Pages artifact; nothing is committed back to the repository.
  4. Client-Side Freshness: release.js in the visitor's browser loads pre-rendered HTML instantly, checks ./data/release.json (with fallback to api.github.com), and updates the UI live if a newer release exists.

License

MIT. See LICENSE.

About

Local commission, invoice, and expense tracker for freelancers. Native desktop app for Windows, macOS, and Linux, built with .NET and Avalonia.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages