/
The Bande landing page: the headline Less chaos in the group chat, More time together, beside a demo group of ten illustrated people and a cooking night with their answers
Case Study

Bande: group plans without the group-chat chaos

A private planning app for family, friends and clubs. Plans, answers, decisions, costs and calendars live in one calm place, and guests answer by link without an account.

Bande is my own product: a private place where family, friends and clubs plan things together. Everyone sees who is in, who is unsure and who has not answered yet. Dates and dishes are decided with a tap, shared costs get settled without awkward reminders, and guests answer from a link without creating an account.

Product · Design · Development · AI-assisted engineering

The Bande overview for Anna: plans that need her, a plan to confirm, an unclaimed item to bring, money owed, upcoming birthdays and ideas for next time
The overview starts with what needs you: a plan to confirm, something nobody has claimed yet, money and birthdays.
A cooking night plan in dark mode: date block, host, cost per person, the answer buttons I'm in, Maybe and I'm out, decided polls and a map
Dark mode sits on true black. The warm accents are lifted so they glow instead of turning brown.
A plan on a phone with the date, host and answer buttonsThe overview on a phone in dark modeThe month calendar on a phone
On a phone the same screens move their navigation to the bottom, within reach of a thumb.

The starting point

Groups of people who like each other run their shared life in a group chat. That works for chatting and fails for organising. Plans drown in the scroll. Nobody knows who has not answered, so the organiser chases people one by one. Choosing a date turns into a long negotiation that ends with whoever wrote last. Money for shared things is tracked in someone's head, and good ideas are mentioned once and forgotten.

Bande is built around two people. The organiser should feel in control without doing all the chasing. Everyone else should be able to answer, vote and pay back in seconds, from a link, on a phone, without learning anything new.

Answers you can trust

Every plan shows who is in, who might come, who is out and who has not answered, with faces grouped by answer. Counts are distinct people, plus-ones are shown separately, and an unknown answer is never displayed as a zero. One tap sends a reminder to everyone who is still missing.

Not everyone will sign up, and Bande does not require it. Organisers can add people by name, such as a grandmother who will never create an account, and enter their answer for them. The plan keeps track of who entered it. A guest invited to a single plan answers through a personal link and sees nothing else of the group.

Deciding together

A date poll with three proposed dates, yes, if need be and no answers per date, and a scored ranking that marks the best date
A date poll: yes earns two points, if need be one. The best date is marked as the votes come in.

Decisions come in the forms groups actually need: date polls with yes, if need be and no, single and multiple choice, approval votes, rankings counted with the Schulze method and explained in plain words, and short surveys. Polls close at their deadline. A tie waits for the organiser, and a follow-up question can stay locked until the first one has a result: first the date, then the dish.

Money without awkwardness

A plan can carry a cost per person that people accept together with their yes. For everything else there are expenses that work like Splitwise: several payers, equal splits, shares, exact amounts or percentages, a currency per expense and a full history of changes. Settling up suggests the fewest transfers. People pay back by scanning a GiroCode in their banking app or through a prefilled PayPal link, and the person who receives the money confirms it. Bande records who owes what and never moves money itself.

One calendar for every group

My calendar in agenda view: plans from three groups in November, each with its group colour and my answer, beside a month overview and group filters
My calendar brings every group together, with my answer on each plan. Nobody else ever sees this combined view.

Each Bande has its own calendar with month, week and agenda views. Your personal calendar combines all of your groups, colour-coded, and a private subscription link puts your plans into Apple, Google or Outlook calendars. Recurring plans like a weekly run can be answered, moved or cancelled one occurrence at a time.

The Isar-Bande group page: ten members with illustrated faces, open decisions with their current leaders and a shared rhythm
A group page with its members, open decisions and a shared rhythm.

Ideas for what to do next

Illustrated idea cards on the landing page: ramen night, theme day, book club, match at the stadium, flea market, mountain hut weekend, escape room and pottery workshop
Explore offers ideas across twelve areas, each with its own illustration in light and dark.

Most groups end up at the same restaurant. Explore suggests ideas that go further, from a learning day to a weekend in a mountain hut, plus what's on in Munich: concerts, football, markets and exhibitions, updated daily. An idea can be saved for later, put to the group as "who's in?", or turned into a plan with a bring list and polls already filled in.

The Rhythms page: live music once a month, baking three times a month, an hour outside without a phone twice a week and hiking once a quarter, each with progress and an I did it button
Rhythms keep the things you enjoy from slipping, at your own pace.

Rhythms are the newest part of Bande: gentle goals such as live music once a month or an hour outside without a phone twice a week. They can stay personal or be shared with a group, and they suggest matching ideas when one is still open.

Private by design

The privacy section of the landing page: Keep your Banden separate, with separate groups, guests who see only their plan, sign-in without a password and private exploring

Each Bande is its own private world. Your friends never see your family's plans, not even that they exist. Sign-in works without a password, through an email link or a passkey. Searches and viewed suggestions are not stored per person, and popularity only appears once at least five groups have planned something. Visibility is enforced in the database queries rather than by hiding things in the interface, and database tests check what each kind of member and guest is allowed to read.

A warm, drawn look

Bande looks like a friendly invitation rather than a productivity tool: a warm cream page, cards drawn with a two-pixel ink outline, four colour families of amber, terracotta, olive and navy, Nunito with Space Mono for small labels, and the odd sparkle. The design system was composed from two kits generated with Identity Forge, my design engine: one supplies structure and type, the other colour. Every colour, size and motion value comes from one token module, and automated checks reject raw colour values in components.

Everyone gets an illustrated face built from layered SVG parts, and an avatar builder lets people change every detail, from hair to glasses. Larger faces blink and glance around on their own rhythm and smile when their person says yes, and a small sparkle marks the moment everyone has answered. Reduced motion turns all of it off in one place.

How it was built

Bande went from a written brief on 10 October 2026 to a public test at bande.io one week later, on 17 October, and has kept shipping since. By the Rhythms release on 23 October it had 841 commits. I worked as product owner and design lead: I wrote the brief, chose the visual direction and accepted each milestone. AI coding agents did most of the implementation from written work orders with clear ownership. One lead agent owned the database schema, configuration and design tokens, while others built named parts of the interface against those contracts.

A change only counted as done when the full gate passed: linting, type checks, unit and token tests, locale and colour scans, schema drift checks, authorization tests against a fresh database, a production build and a real browser run. That browser run captures every main screen in English and German, light and dark, at four widths. The app screenshots on this page come from one of those runs and show synthetic demo data.

Stack

Next.js 16 with server rendering, React 19 and TypeScript 6. Tailwind CSS 4 with shadcn/ui on Base UI, and Motion for animation. Drizzle ORM on PostgreSQL, Better Auth for email links and passkeys, next-intl for English and German, React Email and MapLibre GL. A separate TypeScript worker runs scheduled jobs such as poll deadlines and reminders. Playwright drives the browser gate. Bande runs in Docker on a Hetzner server.

Try it at bande.io. It is free for now, and it will never sell your data.