Chatati.de
A privacy-first language exchange platform for Hamburg's international community, designed to feel like a native mobile app, built to take GDPR seriously instead of paying lip service to it.

The Chatati landing page. Clear value proposition, minimal friction to sign up.
The Problem
Hamburg has a large international population: expats, students, newcomers from across Europe and beyond, all wanting to practise a language with someone local.
The existing options don't really solve the matchmaking problem:
- Facebook groups are chaotic and public
- Meetups are hit-or-miss
- Apps are solo
- Most of them happily sell your data in the process
Chatati was built to do one thing well: help people in Hamburg find a language partner, without surveilling them to do it.
The Approach
Treat Chatati as a product, not a portfolio piece. Start narrow: Hamburg, language exchange, and ship something that feels good on a phone.
Two non-negotiables up front: it had to feel like a native mobile app, and it had to respect user data to a degree most sites never attempt. Everything else got designed around those two.
Design Choices
Two parts of the experience got disproportionate attention: how it feels on a phone, and how it treats your data.
Mobile / PWA feel
Chatati is designed to live on the home screen, not in a browser tab.
- Installable as a PWA: add-to-home-screen, app icon, splash screen, standalone display so the browser chrome disappears.
- App-shell navigation with a bottom tab bar on mobile instead of a desktop-style header dropdown.
- Touch targets, spacing, and transitions tuned for thumbs; pages load instantly after the first visit thanks to the service worker cache.

Search, profile, and messaging on mobile. Bottom tab navigation makes it feel like a native app.
Privacy-first as a product pillar
Most community sites treat privacy as a compliance checkbox. On Chatati it's part of how the product is built.
- Analytics: self-hosted Umami: cookieless, no fingerprinting, no third-party requests. No GA, no Meta Pixel, no Hotjar.
- Data minimisation: the signup form asks for exactly what's needed to match people. Nothing optional that silently funnels into a CRM.
- Consent: the cookie/consent banner only appears when there's actually something to consent to. No dark-pattern “Accept all” pretending the Reject button is equivalent.
- Right to erasure: account deletion is a one-click user-facing flow, not a support ticket. When it runs, data is actually removed.
- Data residency: EU-hosted. No data crossing the Atlantic silently.
- No third-party trackers. The network tab is deliberately boring.

Data download, deactivation, and account deletion. All self-serve, no support ticket needed.
Key Decisions
- Mobile-first PWA shell so the app can live on the home screen.
- Self-host analytics (Umami) instead of reaching for Google Analytics.
- Treat GDPR as a design constraint, not a footer link.
- Keep the matching logic simple on purpose: profile, languages spoken, languages wanted, message. No feeds. No algorithm.
- Ship narrow. Hamburg only, to start.
Design and Identity
Language exchange apps tend to feel clinical or overly corporate. Chatati leans into Neo Brutalism as its visual language: thick borders, bold typography, high-contrast colours, and playful shapes. The goal is to make the platform feel approachable and fun, not like another productivity tool. If people are going to practise languages together, the experience should feel like hanging out, not filling in forms.
Custom animal avatars
Not everyone wants to upload a photo of themselves, especially on a platform where you are meeting strangers. Instead of defaulting to a grey silhouette, Chatati assigns one of eight custom animal avatars I made. Each one was designed to feel expressive and personal. It takes the pressure off while still giving profiles a sense of identity.

Eight custom animal avatars. Users who skip the photo upload still get a profile that feels personal.


Profiles strip back to what matters: languages, interests, availability, and a short intro. No noise.
Outcome
A live platform in Hamburg with real users. Not a side project that stalled before launch. It holds up under the constraints it set for itself: fast on mobile, installable, no third-party trackers in sight.
This project demonstrates:
- End-to-end product ownership: problem framing to a live, used product
- Compliance as design: GDPR taken seriously, not papered over
- Mobile / PWA chops: a web app that feels native on a phone
- Restraint: no feeds, no tracking, no feature bloat
It is the centrepiece of the portfolio for a reason.