News

One Codebase, Three Businesses: The 4D System Behind Kiewiet

Kiewiet Rijwielverhuur on Terschelling runs a bike rental, a luggage transport service, and a ferry booking desk from a single integrated 4D application. Here is how we built it — and why 4D was the right choice.

One Codebase, Three Businesses: The 4D System Behind Kiewiet

Most booking systems are built for one thing. Book a table. Reserve a rental car. Buy a ticket. Kiewiet needed something different: one system to manage bike rentals, island-wide luggage pickup and delivery, and passenger transfer bookings — with a storefront tying them together.

We built it in 4D, and it handles all three without compromise.

Why 4D

4D is not a household name in the web development world, and that is exactly why we sometimes recommend it. For complex, data-intensive back-office applications — particularly in European SME and operational contexts — 4D offers something that general-purpose web stacks do not: a tightly integrated database, application server, and development environment in a single product.

There is no ORM layer to fight. No impedance mismatch between your data model and your query language. No deployment pipeline involving six separate services. You define your tables, write your methods, and the system runs.

For Kiewiet, this meant we could build extremely dense business logic — overlapping rental periods, route-based luggage scheduling, seasonal pricing rules, availability calendars — without the overhead of orchestrating a microservice architecture that would be overkill for the problem.

What the system handles

The Kiewiet application manages three distinct operational streams from a single back-office:

  • Bike rental: Fleet availability, multi-day bookings, customer records, deposit tracking, and seasonal rate tables
  • Luggage transport: Route planning across island zones, pickup time windows, weight and volume constraints, and driver assignments
  • Ferry transfers: Timetable integration, group bookings, and passenger manifests

These are not three separate modules bolted together. The data is genuinely shared — a customer who books a bike also has their luggage transferred and their ferry crossing registered, and the back-office sees all of it in one record.

The web interface

The customer-facing booking flow is built in PHP with a clean JavaScript front-end. 4D exposes an internal API that the PHP layer consumes, keeping the presentation layer fully separated from the business logic. This means we can iterate on the website without touching the core 4D application, and the 4D system can be updated without breaking the front-end.

Running on an island

Ameland is a Wadden Island with seasonal tourism peaks. In summer, Kiewiet processes hundreds of bookings a week. The system needs to be reliable, fast, and operable by staff who are not software engineers. We put considerable work into the back-office UI — clear forms, sensible defaults, and a calendar view that makes availability obvious at a glance.

The result is a system that the Kiewiet team runs themselves, without calling us for routine operations. That is what good business software looks like.

Back to news
Share:

More

Related Articles

Want to work with us?

Get in touch and let's discuss your project.