Domo is a progressive web application (PWA) for patients of Sanctuary Kliniek who want to structure and reflect on difficult thoughts and everyday decisions outside of therapy sessions. The project was designed to remedy the lack of an accessible way for patients to independently record their thoughts and to help the clinic have more focused and efficient therapeutic conversations.
Structured logs are created by users by describing a situation and rating four dimensions from 0 to 6: personal feasibility, practical feasibility, want, and trust. The application visualises the resulting log as a bubble, thereby creating a more playful, less clinical experience. Users can view, search, filter, edit, reflect on previous logs, and export them as PDFs to voluntarily discuss during therapy sessions. The app also has a tutorial, information pages, light and dark themes, account management, and support for accessing encrypted logs across devices.
Domo uses end-to-end encryption, since the logs could contain sensitive mental-health information. The information is encrypted on the user’s device before storage, and the user can choose to share it with a healthcare professional.
The product gives patients a low-threshold way to make more conscious and balanced decisions. For Sanctuary Kliniek, it can provide a more structured input for treatment sessions, while also stimulating the patient’s autonomy and self-reflection.
We started with a bubble blower and somehow ended up building an encrypted mental-health platform.
Our client was Sanctuary Kliniek, a psychiatric clinic in Alphen aan den Rijn, which treats patients with a variety of mental-health conditions and from a range of cultural backgrounds. Our main contact was Lennard van Venrooij, psychiatrist, and Manager Innovation at the clinic.
We communicated with the client often and collaboratively. We had regular meetings where we presented the current version of the application, discussed requirements, and took feedback on its functionality and design. Our team also played a consulting role, as the original product concept was relatively broad and not written as a technical specification. We turned the client’s ideas into concrete requirements, user stories, prototypes, and implementation decisions.
The client was heavily involved throughout the project and helped us prioritise features as the product evolved. Also, one of the patients in the clinic anonymously tested a beta version of the application. Their feedback helped us validate the usability of the interface and improve it from the perspective of a real user.
The team was formed by six people: Nout Mulder, Gherardo Ulivieri, Adam van Lith, Bence Válint, Myrthe Spreeuw, and Katherine Liem. We worked with an agile workflow in which Nout was active as the SCRUM Master and partial Product Owner, coordinating SCRUM meetings and client communication, with Katherine managing SCRUM planning and project milestones.
We separated the technical work into frontend and backend teams. The frontend team (Nout, Myrthe, Katherine) focused on the Flutter interface, responsive design, and user-facing features, while the backend team (Gherardo, Adam, Bence) focused on API, database, authentication, encryption, testing, and deployment. We collaborated via regular meetings, GitHub issues and pull requests, and client demos.
The biggest challenges were keeping both sides of the application in sync, handling delayed tasks, and fixing communication and merge issues. We worked around these by having fixed meeting times, breaking down large tasks into smaller ones, and prioritizing the most important features. We are most proud of taking a broad client idea and turning it into a secure, deployed, and usable application.
Languages:
Major frameworks and libraries:
Testing and code quality:
Deployment: