Coopen Free audit →

Coopen / Work / El Muelle

Client case study

Their own agency online — on nobody else's codebase but ours.

El Muelle is a real-estate agency on the Argentine coast and the first white-label deployment of our property platform. They get their own site, their own brand and their own database — running on exactly the same code as every other deployment.

1 = 1one deployment per client
White-labelbranding lives in their own database
ARS + USDexpenses tracked in both currencies
EdgeCloudflare Workers · D1 · R2
El Muelle property search with the listing grid and the coastal map

The challenge

A small agency needs the same software a large one does — portfolio, contacts, bookings, contracts — but cannot pay for a system built from scratch, and will not accept looking like a template.

The usual answer is to fork the code per client. That works for exactly one client. By the third, every bug has to be fixed three times, and the two that were not fixed are the ones the client finds.

What we built

What we built

  • Their brand, not a skinName, colours and content live in their own database and are editable without a redeploy — the code ships identical everywhere.
  • Property portfolioListings with photos, status and the operations attached to each one.
  • Contacts with preferencesWhat each person is looking for is stored as data, so the system can cross it against the portfolio instead of someone remembering.
  • A calendar you operate by clickingPick the range on the calendar itself — first click opens, second closes, order does not matter. Every booking belongs to a real contact, not to a name typed into a box.
  • Expenses in two currenciesARS and USD side by side, which is how the business actually runs on the coast.
  • Access by invitationTheir team gets in through an invite link, with each agency strictly walled off from every other one.

One codebase, many agencies

The rule we hold to is that a client never gets a fork. What changes between deployments is data and configuration — never source. A fix written once lands for everybody.

Even the sign-in is a setting: a deployment can plug into our shared accounts or run completely on its own, decided by configuration rather than by a different build. That is what lets the same product be sold inside and outside our ecosystem without maintaining two of it.

Separation that is not a promise

In a multi-tenant system the real risk is not someone guessing a password — it is one line of code that trusts an id sent by the browser. Every query is scoped against membership in the same statement that fetches the row, and every reference in a request body is validated before anything is written. Somebody else's record does not come back as "forbidden"; it comes back as "does not exist".

The stack

Built on Cloudflare's edge

The whole platform is one Worker: API, interface, database and photo storage. Adding a client is a deployment, not a project.

Cloudflare Workers Hono React D1 (SQL) R2 (photos) Multi-tenant

Want your business online like this?

Same idea, any industry: your brand, your data, on software that keeps improving because it is not frozen in a fork. Tell us what you do.