All casesVaskekonerne A/S

CASE · VASKEKONERNE A/S

Eight solutions. One circuit.

Vaskekonerne A/S is a cleaning and property-services group outside Copenhagen, and a Gazelle company in both 2024 and 2025. They do not sell from one website. They sell from eight. So we did not build eight websites — we built one bespoke system: eight solutions that are independent from the outside, and one admin panel behind them where all eight are written. Underneath, they share one database, one media library and one login.

8

solutions

1

admin panel

1

shared database

9

independent deploys

vaskekonerne.dk
The front page of vaskekonerne.dk
vaskekonerne.dk — the group site. Seven more solutions and one panel run on the same engine.

The brief

Eight independent divisions, without eight times the work

Someone searching for tile cleaning should land on tile cleaning. Someone buying limescale remover should land in a shop. Someone who needs property service should not have to go through a group website first. Eight separate websites would fix the shopfront — and hand back eight logins, eight updates and eight places to correct a phone number. The office is small. It had to be built once.

01

Divisions that do not look alike

Someone landing on the tile-cleaning site should not feel they are on a group website with the logo swapped out. Photography, colour, menu, services and copy belong to the division.

02

One editor’s desk

The same person edits the group front page, adds a product to the webshop and updates a service on a division site — without logging in eight times.

03

A hotfix must not take the rest down

Putting eight sites on one codebase usually means all eight go down together. That could not be the price of sharing a database.

A Vaskekonerne employee maintaining the grounds of a housing association

The system

Eight solutions and one panel, wired to one core

Each solution is its own codebase with its own build, its own domain and its own certificate. What they share is the middle: one PostgreSQL database, one media library, one set of logins. Content and settings flow outwards to the eight public sites; enquiries, orders and edits flow back in. They share data. They do not share fate — push one of them and the rest keep serving as if nothing happened.

Administrationspanelet

Writes to all eight

Shared core

One database · One media library · One login · One ordered set of migrations

Vaskekonerne A/Svaskekonerne.dk
Rengøringsproduktervaskekonernerengoeringsprodukter.dk
Ejendomsservicevaskekonerneejendomsservice.dk
Grøn Servicevaskekonernegroenservice.dk
Fliserensvaskekonernefliserens.dk
Tagrenderensvaskekonernetagrenderens.dk
Rengøringvaskekonernerengoering.dk
Grøn Ejendomsservicegroenejendomsservice.dk
Content and settings outEnquiries, orders and edits in
Nine pipelines — eight solutions and the panel. Push one, the rest stand still.

Shared on purpose

  • One PostgreSQL database
  • One media library for images, documents and video
  • One block library for building pages
  • One admin panel
  • One outgoing mail setup
  • One ordered set of migrations

Separate on purpose

  • Own repository per solution
  • Own build pipeline
  • Own domain and certificate
  • Own sitemap, robots and SEO
  • Own cookie banner and tracking
  • Own release schedule

The eight public divisions

Same engine. Eight different first impressions.

These are live sites, not mockups. Every one of them is written from the same admin panel and served from the same database — and none of them look like a template with the logo swapped out. Change the domain, and the theme, menu, services, photography, cookie banner and tracking change with it.

Swipe through all eight

1 / 8

vaskekonerne.dk
Vaskekonerne A/S — Screenshot from the live siteLive site
Vaskekonerne A/SGroup siteThe group site: the seven companies, service areas, jobs and quote requests.
vaskekonernerengoeringsprodukter.dk
Vaskekonerne Rengøringsprodukter — Screenshot from the live siteLive site
Vaskekonerne RengøringsprodukterWebshopCleaning products sold direct: catalogue, cart, payment and shipping.
vaskekonerneejendomsservice.dk
Vaskekonerne Ejendomsservice — Screenshot from the live siteLive site
Vaskekonerne EjendomsserviceService divisionProperty service for housing associations and building administrators.
vaskekonernegroenservice.dk
Vaskekonerne Grøn Service — Screenshot from the live siteLive site
Vaskekonerne Grøn ServiceService divisionGrounds, planting and seasonal upkeep across Zealand.
vaskekonernefliserens.dk
Vaskekonerne Fliserens — Screenshot from the live siteLive site
Vaskekonerne FliserensService divisionTile, terrace and facade cleaning, priced per job.
vaskekonernetagrenderens.dk
Vaskekonerne Tagrenderens — Screenshot from the live siteLive site
Vaskekonerne TagrenderensService divisionGutter and downpipe cleaning, with documentation.
vaskekonernerengoering.dk
Vaskekonerne Rengøring — Screenshot from the live siteLive site
Vaskekonerne RengøringService divisionCleaning for private homes, offices and move-outs.
groenejendomsservice.dk
Grøn Ejendomsservice A/S — Screenshot from the live siteLive site
Grøn Ejendomsservice A/SService divisionIts own company name and its own logo, on the same engine.

Grøn Ejendomsservice A/S does not even carry the Vaskekonerne name. Same engine, same panel, entirely its own identity.

Two details worth a closer look

Seven companies on one front page

Seven companies on one front page

The group site presents each company in its own card, with its own logo, its own colour and its own rating — all edited in the same panel, all pulled from the same database.

Customers upload their own before and after

Customers upload their own before and after

The webshop runs a monthly campaign where customers upload photos and video of their result. The comparison slider, the uploads and the prize draw are all part of the solution.

The admin panel

One editor. Eight divisions. One login.

The admin panel is not a settings page bolted onto a website. It is a system of its own, and the only one allowed to write to the eight solutions. The editor picks a division at the top and the whole menu changes with it: a webshop has stock, orders and discount codes; a service division has services and areas; the group site has companies, jobs and enquiries. Nobody logs into a division site to fix a sentence.

What each type of division gets

  • Pages
  • Media library
  • Settings
  • Integrations
  • Newsletter
  • Live visitors
  • Policies
  • Enquiries
  • Companies
  • Team
  • Jobs
  • Applications
  • Areas
  • Partners
  • Email templates
  • Products
  • Categories
  • Orders
  • Stock
  • Shipping
  • Payment
  • Reviews
  • Campaigns
  • Discount codes
  • Services
  • Areas
  • Menu
  • Neighbour scheme

28 areas. One login. No developer.

Access can be scoped: an editor can be given one division, several or all of them.

This is the one part of the system we do not show a screenshot of. The panel has no public front door, and that is the point.

How it connects

The two paths that make the money

Both start on a division the customer found on their own. Both end in the same place in the engine room.

A quote request

Someone wants their patio cleaned.

  1. 1They fill in the form on vaskekonernefliserens.dk and maybe attach a photo
  2. 2The division site passes it server-side to the group API
  3. 3It is written to the shared database, stamped with the division it came from
  4. 4The mail goes out through the group mail setup
  5. 5It lands in the panel inbox alongside every other enquiry

The reply goes out from one place. The customer still thinks they are writing to Fliserens.

A webshop order

Someone buys the limescale remover the crews use in the stairwells.

  1. 1The cart lives on the webshop — no forced account
  2. 2The address is looked up, so it is right from the start
  3. 3Stripe takes the money — and only then does the order exist
  4. 4Stock is drawn down and Shipmondo gets the pickup point, label and tracking
  5. 5The confirmation goes out on the same mail setup as the quotes

Same database, same mail, same panel as the quote requests.

Why it holds

Stripe
is the gate: no payment, no order.
Shipmondo
is the hands: once the order exists, it has to ship.

They never talk to each other. They talk to the system, one at a time and in that order. If one of them drops out, everything after it stands still — which is why there is no such thing as a half-finished order in there.

The editor

Nobody has to call a developer to change a page

A page is a stack of blocks. The editor picks a block, writes the text and drags in an image — and can put a full-screen video straight into a hero without going near an external video service. More than twenty block types are shared between the group site and the divisions. The webshop has its own on top of those.

Blocks

Hero with videoTextImage leftImage rightTwo columnsNumbersBefore and afterReviewsGalleryTimelineServicesAreasCall to action

Same page model, eight divisions. A block built once shows up everywhere it is allowed.

vaskekonerne.dk
Page0/5

What shipped

Everything that is in the system

Not a roadmap. This is live and in daily use.

Front page and subpages from the CMS, with a hero image or looping video
Each of the seven companies presented with its own quote form
Service area pages for local search
Quote requests with file attachments
Job postings and applications
Newsletter with explicit consent
Catalogues as page-turning flipbooks
Invoice, offer and customer pages behind token links
Maintenance mode with PIN access
Cookie banner with Consent Mode
Google review badge driven from settings

64 features shipped, across eight solutions and one panel.

The point of all this

What it means on a Tuesday morning

One phone number, one place

Change it once in the settings for the division it belongs to. Not in eight codebases, not in eight CMS logins.

A new division takes days, not months

Copy the template, add a row to the database, point the domain at it. The content is written in the admin panel the office already knows.

Every lead in one inbox

Eight fronts, one place to answer from. The source is stamped on each request, so they know which division actually sells.

One change hits one site

A build on one solution does not touch the others. They keep serving as if nothing happened.

The customer sees eight companies.

The office sees one panel.

That is the whole idea. Not eight websites, but one bespoke system — built so the next division is not a new project, and so no single division can ever switch off the others.

The company behind the system

The Vaskekonerne office
A Vaskekonerne crew on the job
A Vaskekonerne employee working on a property

In their words

What the owners say

We had grown into a group of separate companies, and the websites had grown with us — in every direction at once. Ceptiv did not just rebuild them. They understood the business first, then built something where the companies still look like themselves and we only maintain one system. Updating a price or a phone number went from a whole afternoon to a minute.
NMNick Malmqvist PedersenBoard member and co-owner, Vaskekonerne A/S
What matters to me is that the office can run it without calling anyone. Our people write the pages, answer the enquiries and handle the shop from the same place, and nothing has to go through a developer. It has been stable since day one, and when we add a new company we know it takes days.
DSDamiana Sarah Seiffert PastoreCEO and co-owner, Vaskekonerne A/S

Built with

Next.js 16React 19TypeScriptTailwind 4PostgreSQLStripeShipmondoNode 22

Do your divisions pull in eight directions too?

Tell us what you are running today. You get a fixed price and a delivery date before anything is built.