Skip to content

Client project

Rent-a-Clean: a platform for booking cleaning services

For a client, I built a web platform and iOS and Android apps for booking cleaning services. The client sends a request, partners send offers, and the whole arrangement happens without a phone call.

The apps are published on the App Store and Google Play under the client's own developer account, so they belong to the client.

Get in touch

The brief

The client wanted one place where people book cleaning and related services, and where providers, the platform's partners, receive requests and answer with an offer. Booking had to work on the web and in a mobile app, with card payments and invoices, in Croatian and English.

What was built

  • a public website with a service catalogue, from flat cleaning to gardening
  • a web app for clients and partners
  • mobile apps for iOS and Android
  • an admin panel where the platform owner approves partners and edits services
  • a blog and site content that are edited without a developer
Rent-a-Clean on the web: choosing a service and a time slot
Rent-a-Clean on a phone: the home page with ordering and links to the apps

How a booking works

The client picks a service, an address and a time. On the web they can start without an account: they fill in the whole request, and registration is asked for only when they send it. The request then waits for offers from partners who cover that area.

The partner gets a push notification and sends an offer. The client accepts one and pays by card. After that they follow the job status, message the partner and leave a review at the end. Cleaning that repeats, say every week, is booked once.

Partners

A provider applies as a partner through the website, and an admin reviews and approves the application. The partner then picks the areas they work in on a map, receives requests from those areas, sends offers and runs jobs from the web or mobile app.

My role

I ran the project end to end: screen design, the web platform and both mobile apps, the server and database, the App Store and Google Play releases, and maintenance. The client had one person for everything technical, and changes went straight from agreement to a new version.

The apps are published on the App Store and Google Play under the client's own developer account, so they belong to the client.

Everything users see exists in Croatian and English, on the web and in the apps. Notifications about new offers, accepted jobs and status changes arrive by email and as push notifications, so neither clients nor partners have to keep checking the app.

Testing and maintenance

The platform has automated tests: Vitest for business logic and the API, Playwright for the web app in a browser. The mobile apps are tested on real devices, an iPhone and several Android phones, one of them set to Croatian. I continue to maintain the platform and extend it as the client asks.

Technology

The web and mobile apps share the same data schemas and the same API.

  • Web: Next.js, React, TypeScript
  • Database: PostgreSQL, Prisma
  • Mobile apps: React Native, Expo
  • Sign-in: Better Auth, with email, Google or Apple
  • Payments and saved cards: Stripe
  • Invoices and fiscalisation: Solo (Croatian service)
  • Email: Resend
  • Push notifications: Firebase Cloud Messaging
  • Site content: Sanity
  • Web hosting: Vercel

What this project shows

The same kind of system fits any business where a client orders a service and a provider confirms it: turnover cleaning between holiday guests, repairs, servicing, garden care. If your bookings still run on phone calls and messages, this is what the alternative can look like.