I bought Seedly to stop renting a CRM and own my stack. It's deployed on my own infrastructure with a real client running on it.
Out of the box it's much deeper than I expected: calendars with availability and round-robin, a visual workflow automation builder, invoicing and estimates with Stripe Connect, forms, pipelines, contacts and conversations, telephony with a dialer and call logging, client portals, and proper multi-tenant sub-accounts with roles and permissions. Most of what I assumed I'd be building was already there.
The real test was what happened when I needed something it didn't have. My client runs a phone tree (press 1 for service, ring the on-call tech, take a voicemail if nobody answers) and needs the missed calls to trigger follow-up automations. That doesn't ship. So we built it into the existing workflow builder, and the codebase made that far easier than it had any right to be: clear structure, sensible boundaries, and comments that explain why something works the way it does rather than restating the code. When we needed a new calendar type for how they actually dispatch technicians, same story, it slotted in without touching what was already working.
There's a substantial test suite too, which matters when you're modifying someone else's code and want to know what you broke.
It's not no-code and doesn't pretend to be. You need to be able to build. But if you can, you're not waiting on anyone's roadmap. When my client needed something, we shipped it that week.