
A website for a mental-health clinic with online therapy-appointment booking built in

Project goal
To give a long-established mental-health clinic a website that helps someone find the right specialist and book with them in a few quiet steps, wired into the systems the clinic already runs on.
Our scope
UX/UI design
Web development
Project duration
February-June 2024
Technologies used
Laravel
Backpack CMS
Next.js
Client
CPP Sp. z o.o.
A clinic with more than twenty years of practice behind it
Centrum Pomocy Profesjonalnej has been helping people in Warsaw since 2002. It was founded by psychologists and certified psychotherapists, then grew to take in psychiatrists, sexologists, family therapists and addiction specialists. The clinic works with adults, children and teenagers, in its own offices as well as online, from diagnosis through to long-term therapy. It needed a website that matched that breadth. We designed and built it.

Designing for someone who is reaching out on a difficult day
This is not a shop. We did not design it like one. Someone who lands on this site is often doing so at a low point, unsure who they need to see or what the right words for it even are. So the whole thing is built to reduce friction and anxiety at the same time: plain language, an obvious path from a problem to the person who treats it and no more steps than the moment can bear. Difficult terms and abbreviations carry quiet tooltips, because nobody should have to look up a specialty while working up the nerve to book. We went through five rounds of wireframes and five of UI design to get that right, then wrote the specs and handed a working prototype to the developers.

Finding the right specialist, which is the hardest part
Most people arrive knowing what hurts, not who to call. The site is organised around that. Someone can move from what they are struggling with to the specialists who treat it, filtering by specialty, by service or by where they are, then read a profile properly before deciding. Search cuts across the therapists, the services and the knowledge base at once. Specialists are ordered so the ones with time to see you surface first, which quietly matters when someone needs an appointment soon rather than eventually.

Booking a visit in a few steps, on the clinic's real calendars
The booking flow is the heart of the project. A patient picks a service, a specialist and a slot. What they see is not an approximation. Availability comes live from the clinic's own scheduling system, so the times on offer are the times that exist, whether the visit is in one of the offices or online. Payment happens in the same run, with the appointment summarised before anything is confirmed. If a payment never arrives, the booking releases itself, which puts the slot back within reach of the next person instead of leaving it stranded.

Wired into the systems the clinic already runs on
None of that would work as a copy of the truth, so we integrated rather than rebuilt. Scheduling, availability, services and locations live in Calendesk, the system the clinic already uses, with the website reading and writing against it. That in turn is connected to MyDr, the medical software behind the practice. The result is one chain from a patient picking a slot on the website through to the specialist's calendar and the clinic's records, with nobody retyping anything in the middle. Visits booked online are labelled automatically for the team.

A knowledge base that helps before anyone books anything
Not everyone who visits is ready to make an appointment. That is fine. The clinic publishes a knowledge base drawing on its specialists' experience, sorted by theme, from building habits to relationships and exams. It is useful on its own terms. It also does the quiet work of showing a hesitant reader that there are people here who understand the thing they are dealing with.

A CMS the clinic runs itself, in two languages
Behind the site sits a Backpack CMS built around how a clinic actually changes. The team manages specialists, services, specialties, offices and pricing, publishes to the knowledge base with a proper editor and keeps the offer pages current, all without a developer. The site is bilingual, with DeepL wired into the CMS so a Polish entry can be carried into English without the team retyping it. Even the cache can be cleared from the panel when something needs to appear right away.
Outcome
What the clinic has now is a website where someone can go from a vague sense that they need help to a confirmed appointment with the right specialist, in a few steps, on real availability, in the room or online. Behind it, one chain runs from the booking through to the calendar and the records, so the team spends its time on patients instead of admin. We have kept developing it with the clinic ever since.
Visit cpp.plLet's talk about your project idea!
Tell us about your project. We’ll help you plan the architecture, scope, and execution.
© Webalize 2026


