©Bernhard Romano
© Bernhard Romano

On this page

Get in touch

Backend deployed · iOS beta planned

Wingmate

An airport social app for people stuck at the same gate. No faces until both people agree. Seat numbers stay private. Profiles disappear when you land. Bernhard designed it and builds all of it himself: backend, AI, iPhone app, tests and infrastructure.

Real app · recorded live · 28 sec

189airports in 75 countries
198automated tests before every deploy
6app languages
1person building it end to end

Latest update · 19 Sep 2026

Latest release

Four releases in two days, covering design updates, subscriptions, referrals and privacy controls.

DesignWarm redesign

New W8 logo and loader, departure-board yellow, rounder type, and a liquid-glass tab bar in six languages.

FeatureSmart filters

Filter the terminal by age (with a deal-breaker option), destination and intentions. Filters are saved to your account.

SubscriptionWingmate Pro

€4.99 a month with a 7-day free trial, cancel in the app, and renewal checks. Terms and Privacy were rewritten to match.

GrowthReferrals

Invite a friend and you both get 30 days of Pro once they finish sign-up. Annual limits help reduce abuse.

CommunitySecurity wait times

Travellers in a terminal vote on how long security took, and everyone sees the live count.

PrivacyFlight privacy

Flight numbers are only visible to people on the same flight. A "Show my flight" switch hides it completely.

The product

Three rules the whole app is built around

A dating app loses trust the moment a photo or a seat number reaches the wrong person. So these rules live in one module, and the tests check every one of them.

RULE 1

Mutual reveal

You browse anonymously. A face only shows once both people have chosen to reveal.

RULE 2

Seat & flight privacy

Seat numbers stay hidden until both people agree. Flight numbers are only shown to people on the same flight.

RULE 3

Gone after landing

Trip data expires when the flight lands. It's designed to end at the gate.

Engineering

What's under the hood

Offline chat

People keep chatting in airplane mode

A custom Swift plugin connects matched travellers phone to phone over Apple Multipeer Connectivity. Uses Curve25519 for key agreement and ChaChaPoly for end-to-end message encryption, with deduplication when offline messages sync after landing.

AI

Claude with a safety net

The Claude API suggests profile lines as schema-validated output. Requests are rate-limited, and a local fallback provides a profile suggestion if the model request fails.

Testing

Automated tests gate deployment

$ pytest backend/tests test_reveal.py mutual reveal test_expiry.py two expiry clocks test_offline.py offline pass & sync test_flight_privacy.py same flight only test_subscription.py Pro & free trial test_filters.py saved feed filters 198 passed

Real data

Type a flight number, and the trip fills itself in

A live flight-data API fills in the trip from a flight number. The airport list covers 189 airports worldwide, up from 45 in Europe.

Security

Self-directed security review

His own review covers rate limits and Google ID-token verification, with remaining findings tracked for remediation before the public beta.

Operations

Automated deployment and monitoring

Every push to main is tested and deployed to Fly.io automatically. Sentry monitors application errors and Litestream continuously backs up the database.

Next

What's next