Skip to main content

CRM / Laravel Development

We build custom CRMs on Laravel 10+ with Filament for the admin layer and PostgreSQL underneath. The pattern is almost always the same: a sales or operations team has been running on a 14-tab Excel spreadsheet plus shared Outlook folders for years, the workflow finally outgrew it, and an off-the-shelf tool like HubSpot or Pipedrive doesn't model how they actually sell. The canonical project on our side: replace a 14-tab Excel workflow with a proper CRM wired into the client's order data, and watch response time on a common operation drop from 30 minutes to 30 seconds.

Best fit
businesses with a stable sales process that off-the-shelf CRM can't cleanly model, teams past 15 users where per-seat pricing starts to bite, EU-based operations with data-residency requirements.
Not a fit
early-stage teams still figuring out how they sell (use HubSpot), or anyone who wants the build finished in a weekend.

Pricing, briefly

We don't publish a price list because the spread on these projects is too wide to be useful, but we'll be open about the shape of it. A bare-minimum CRM with maybe four or five core entities (companies, contacts, deals, activities, users), Filament admin, role-based access, and an import script for whatever spreadsheet you're escaping from runs around 9,000 to 14,000 EUR. That's what we'd quote for a 5- to 10-person sales team that just needs the spreadsheet pain to stop.

Most of what we actually build sits in the 18,000 to 35,000 EUR range. That's where you start seeing custom workflows specific to the business, integrations with existing systems (PrestaShop or WooCommerce order data, accounting software, an inbox), document generation, and a reporting layer the management team will actually look at. Anything past 40,000 EUR usually means we're also rebuilding an inventory or invoicing layer alongside the CRM, or there's a hard data-migration problem from a legacy system that nobody has touched in a decade.

We scope before we quote. The first conversation is free, the second is usually a paid 1,500 to 2,500 EUR scoping engagement where we produce a written spec, a Figma click-through of the admin UI, and a fixed-price quote for the build. If you don't proceed with the build, the spec is yours and you can take it elsewhere. We've had clients do exactly that and it's fine. We'd rather scope honestly than win a project that's underpriced and goes badly for both sides.

What's actually different about how we do this

The first thing is that we use Filament for the admin instead of building custom React. Filament v3 on top of Livewire gets us 80% of what a custom admin UI would do at maybe 20% of the effort, and it stays in step with Laravel's release cycle so you don't end up with a frontend that's two major versions behind by the time you want to add a feature. We've been writing CRMs in Laravel since version 7 and the move to Filament was the single biggest productivity jump we've had in this stack.

The second is PostgreSQL, not MySQL. For a CRM that's going to run reports across deals, activities, and historical state, PostgreSQL's window functions, JSONB columns, and EXCLUDE constraints save us from writing a stored procedure layer we'd otherwise need. The data-residency story is also cleaner: a Hetzner box in Helsinki running PostgreSQL 16 with logical replication to a second region is a 200 EUR/month setup, and it satisfies most EU procurement teams without further conversation.

The third one is more cultural than technical. We don't build a CRM and then walk away. After launch we run a paid office-hours retainer (usually 4 to 8 hours a month) where we fix the small things the team finds in real use, add the report someone wanted in week three of using it, and keep the dependencies up to date. Most CRMs that fail in production fail because nobody owns them six months in, not because the initial build was wrong.

Got a project that needs sorting?

Tell us what's broken and we'll tell you whether we can help.