I started consulting for firms and medium-sized businesses about seven years ago. Like many independent consultants, my work didn't begin with a polished sales pipeline or an elaborate CRM. It began with conversations. Networking. Referrals. The occasional cold email that somehow landed at exactly the right time.
Opportunities grew into projects and those projects grew into long-term relationships. Along the way I found myself working across infrastructure, backend systems, research, cloud architecture and product engineering. Every engagement looked slightly different, but they all shared one thing in common: they required organization. Not just of code, but of the business around it. As my client base grew, so did the number of moving pieces I had to keep track of.
Management meant a couple of things. I had to know what products I was dealing with and what their timelines were. I had to communicate my process and keep track of the requirements my clients had. It also meant that I had to share adequate documentation , keep track of dues against those projects and identify the profitable partnerships all while keeping reconciliation and reports on the table. This had to be present and easily reconcilable at 3 AM without fumbling through a random drive.
The Growing Pile of Tools
At first, everything lived where it naturally accumulated. Emails, spreadsheets, Google drive, a folder of PDFs, a random note or quote. It worked, for a time.
The emails were certainly great. Until clients decide that every reply deserves a new subject line. The proposal I shared two months ago is now buried beneath five unrelated conversations and twenty forwarded attachments. Sure, clients could come up with their system during the product development phase. I would be their productive guest. However, this would be their own tracker (not mine) and it would add a burden to those that have no systems in place.
Notion seemed like an obvious answer. I could build whatever format I needed. Tables, notes ,templates, kanban boards - everything was there. Then its management kept getting in the way. Recording a payment somehow involved navigating pages, databases and templates that had little to do with the task at hand. It now takes five minutes to log an entry that I should have as a tab.
Conveniently enough, I had just started the Infrastructure at Home series and running my own infrastructure had fundamentally changed how I thought about software. What really goes on behind the scenes? Who owns the data that keeps my business alive? What is the cost of convenience?
InvoiceNinja had a lasting impression; projects, clients, expenses, documents, transaction, taxes and vendors. Opinionated yet modular enough for my use. I could build around the platform and create my invoices all in one place. To be more exact, an invoicing application that had support for projects.
InvoiceShelf took a different approach (and what a breath of fresh air on the user experience). No projects, true, but I could always center my process around items the software provided. Fast. Modern. Simple. Partial payments, reconciliation and updates all felt natural (PWA support was a nice touch).
A few months down the line, I started asking a few questions whose answers I was uncertain.
Where do I keep the project timeline?
How do I associate technical documentation with a client engagement?
How do I organize one project that consists of ten deliverables without pretending they're ten unrelated invoices?
How do I keep architecture diagrams, contracts, meeting notes and deliverables connected to the work they're actually part of?
Could I customize the email templates without opening a shell and editing files inside a Docker container? Can I preview during my updates?
The more I used it, the more I realised that I was missing context. I was looking for invoicing software when I should have been circling the life-cycle of my services. I had missed the journey; the conversation, the proposal, the documentation, implementation, reviews, deliverables, followups, reporting and the busy parts in between. I had started my thought process on invoicing when I should have started earlier.
No. I did not need an ERP. I needed a light workspace without row limits. I did not need a cloud solution either (some specialized tools are better kept as is). I certainly did not need to start chatting with my clients and having them create accounts - that is an operational burden I do not need. I wanted a space where client engagements naturally accumulated. I could have my projects, their documents, quotes, payments, reports and automations bundled on infrastructure I owned. 'Where did I save that PDF?' needed to change to 'Here is the reference' .
Why OpenCore
Infrastructure should be ownable - and verifiable. If someone wanted to run Foundry on their pi or homelab, they should be able to. Likewise, if an agency wanted ownership, they shouldn't need the permission to do so.
Sustainability, on the other hand, demands revenue. What needs to be paid for, isn't ownership - it's convenience, collaboration and operating at scale. Managed hosting, enterprise identity providers, audit logs, advanced template design, client portals, multi-workspace management and commercial support all fall into that category. Convenient, yes, but it should not determine whether anyone can own the software that runs their business.
We could go with free-forever and no-paid-tier but it doesn't scale reliably for a solo-founder. InvoiceShelf's 2.x line hitting feature freeze earlier this year is a reminder that even excellent open-source software eventually collides with the realities of time, funding and maintenance.
So where does the line actually fall? The workflow that made me start Foundry in the first place; clients, quotes, projects, invoices, payments, documents, reports - stays free and unlimited in the self-hosted version, permanently (licensed under AGPLv3).
The commercial offering exists to make Foundry easier to operate and scale - not necessary to use. That's the line - the part I wish I had when I started my business.