Free is the licence, not the running cost
The software costs nothing and always will. A server, a database and the hours to look after them cost what they cost. On a small team that is usually far less than a seat licence, and it is not zero.
Paid extras are added, never taken out
The open-source code has no licence key, no tier flag and no seat counter, and it stays MIT licensed. Any paid features RunCode builds will live in our hosted app as additions on top of it, never as pieces removed from the free code.
There is no payment processor
Invoices go out and you record payments when the money arrives, including partial ones. There is no gateway and no Pay now button. The word Stripe appears once in the codebase, as a label on a payment you record yourself.
Email is for tickets, not a mailbox
Mail arrives through Amazon SES and becomes a ticket, and your replies on a ticket go back to the customer as threaded email. Outside a ticket there is no compose-and-send, and no IMAP, Gmail or Microsoft 365 connection, so this is not a replacement for your inbox.
Files are capped per file
Storage is your own disk, so there is no quota to buy. A single attachment over 25 MB is refused, and an import file or lead upload over 5 MB is refused, which is a real limit rather than an unlimited claim.
Bulk import covers three lists
Leads and contacts import from any .xlsx or .csv, and tickets from a CSV, in the web app and the phone, with a preview before anything is written. Accounts, deals and the rest go in through the API, which is where the paid migration comes in for a whole CRM.