In development · open on the webBirthday gift serviceOpen on the web in 2026

Service in development

HappyBirthTown

A pixel town friends build together and hand over as a birthday gift

One person opens a town and friends arrive on a link while the birthday person sees nothing. The town starts as empty plots: each friend who leaves a letter, a photo, or a drawing gets a tree of their own, friends water one another's trees, and walking, jumping, and arcade scores together bring balloons, flower paths, and lights. Nobody has to be online at the same time, and every friend who left something stays in the town as a character. At midnight on the birthday the whole town blooms; the birthday person walks in, reads the letters, and a tree they have looked at bears fruit. Each town also carries the birthday person's name, a photo wall, and a yard of small pixel drawings from friends, made in that town's own materials, and plays its own music on its own instrument. The town stays open through the birthday and the day after, then remains as a chronicle — a time-lapse of the days it grew and a roll of everyone who grew it. Each town has its own workshop, where friends spend coins found in the town — never money — on a decoration for the birthday town; as the gifts reach four, eight, and twelve, the decorations already standing gain leaves, flowers, ribbons, and lights, and each one shows the name and character of the friend who left it, while public visitors see it unattributed. The whole gift can be tried without an account: the front page opens all twelve towns as an example birthday, where the scene can be photographed and shared.

HappyBirthTown is still in development. On the web, the front page opens every town as an example birthday anyone can walk without an account, and a birthday person's published open house can be visited there. A real gift — opening a town, inviting friends, handing it over — runs in the iOS app, which is in testing and not yet in a public store. The example people, letters, and photos are not real customers' gifts.

Service development record

How scattered birthday wishes became a town to hand over

The product takes the birthday wishes that drift past in a message thread and turns them into a place friends build together and give once, to see what the birthday person is left holding.

  1. 01Observation & evidence

    Wishes that scroll away

    Question examined
    What is left once a birthday has been celebrated in a group chat?
    Decision made
    Build a place friends fill together and hand over, instead of collecting the messages more neatly.
    Evidence used for the decision
    Once wishes mix into the conversation and scroll past, the day survives only in separate memories, and there is no form left to hand to the person whose birthday it was.
  2. 02Problem & principle

    Wishes recorded by taking part, not by paying

    Question examined
    What has to stay unsellable so the size of a celebration is not measured in money?
    Decision made
    Make every cosmetic permanently unsellable and unlock it only through acts of participation.
    Evidence used for the decision
    Once anything is purchasable, the visible signal reverts to spending power, which is the exact gap the product was built to remove.
  3. 03Hypothesis & scope

    Friends and family rather than a fandom

    Question examined
    Who should the first users of this town be?
    Decision made
    Move the primary target from idol fandoms to friends-and-family birthday parties, and size capacity and cost around that.
    Evidence used for the decision
    A fandom premise means hundreds crowding one party and spiking on particular dates; friends and family means 10 to 40 people spread evenly across every day. The relationships that would be invited also already exist, which keeps the path to a second party short.
  4. 04Experience & system

    A gift that completes without anyone online at once

    Question examined
    What has to be true of the system when the people making the gift are never in it at the same time?
    Decision made
    Take the realtime server out of the journey: friends add what they leave in any order, the town is drawn from those contributions, and each friend stays in it as a character after leaving.
    Evidence used for the decision
    The first version was a live party on an on-demand room server, and its last synchronous anchor — the 10 pm group photo — had already been removed. The gift model finished that move: preparation stays hidden from the birthday person, the handover happens once, and a general visitor sees an open house on the web with nothing to install and nothing private in it.
  5. 05Launch & learning

    One real gift still has to be handed over

    Question examined
    What has to be true before a birthday gift can actually be given here?
    Decision made
    Put one real gift — opened, filled, handed over, kept as an album — ahead of more world content, and make an account worth having by what it lets someone find again.
    Evidence used for the decision
    The web is open with nothing to install, all twelve towns can be tried without an account, and a general visitor can walk any open house. Opening a town starts in the app, which is built and internally checked but listed in neither store, and no real gift has been handed over yet — so nothing is claimed about how a birthday person receives one.
Signals used for the next decision
Current focus
Whether a town friends filled reads as a gift when the birthday person walks in
Current stage
Gift towns on the web · twelve towns open to try without an account
Next decision
One real gift handed over, then the store listings

These are inputs for the next operating or validation decision, not outcomes already achieved.

Technology used to build it

  • TypeScript
  • Canvas rendering
  • Web Audio
  • PWA
  • Capacitor (Android·iOS)

Conditions remaining before live operation

  • Hand over one real birthday gift end to end, from opening the town to the album it leaves behind
  • Make the gifts someone prepared, joined, or received findable again from their own list — the reason an account is asked for
  • Let a host see a gift finished by one or a few friends before committing to open one, so a small group knows it is enough
  • Show each friend the scene their letter, photo, or decoration ended up in, and the birthday person's reply after the handover
  • Finish the Play and App Store listings, since opening a town starts in the app

Change history

What changed in this service

Dated by when the change shipped in the product, not by when this page caught up. Lines are added rather than replaced, so what the service withdrew stays readable next to what it gained.

  1. Added

    Let the decorations in a birthday town grow with the gift: once a town has four, eight, and twelve gifts, the decorations already there add leaves, flowers, ribbons, and lights. Each town's workshop now shows its goods in colour beside what they look like placed and fully grown.

  2. Added

    Put a name to every decoration a friend leaves: the birthday person can tap one to see who left it and that friend's character at the time, and the same list carries into the album. Public visitors see the scenery without names.

  3. Added

    Put the camera in the try-it mode: any of the twelve example towns can be photographed and shared as a polaroid stamped with the town's name and the date, with no account and no gift.

  4. Added

    Made the gift a town that grows. It starts as empty plots; a friend who leaves a letter, a photo, or a drawing gets a tree, friends water one another's, and moving together and arcade scores add balloons, flower paths, and the keys to better plots. The town blooms at midnight on the birthday, and when it stops the next night a chronicle remains — a time-lapse and a roll of everyone who grew it.

  5. Added

    Gave every town an exhibit made for one person: their name in the town's own material, a photo wall, and a yard of small pixel drawings friends leave with a line each. It began on the plaza and now runs in all twelve towns, and the pieces stay in the album.

  6. Added

    Gave each of the twelve towns its own piece, derived from the birthday song, and its own instrument — an accordion in Paris, a gayageum in Seoul, a carousel organ at the funfair. Walking up to a player on the map brings that spot's music forward, and the music rests between pieces.

  7. Added

    Reworked the three arcade games — the run, the cake stack, the candles — so difficulty rises through a round and each ends by saying what to try next, and redrew them as one arcade.

  8. Added

    Made the funfair's ring toss something you actually throw: three rings, a moving marker, and a ring that lands on the peg or bounces off. A ring that lands leaves a wish on the pile by the booth.

  9. Added

    Added a companion to the seaside try-it town who walks alongside, introduces the sea, the sand, and the plaza, and can be called back from the map. Seaside only for now.

  10. Added

    Gave the map a second half: below the full-screen town map, what kind of town this is, what has gathered so far — letters, photos, decorations, friends — and a list of things to do, each of which sends the character running there when tapped.

  11. Added

    Changed how a constellation is drawn. Instead of a free line across the sky, a stroke now joins star to star, the stars it passes light up, and only which stars were joined is kept.

  12. Added

    Opened the try-it mode from three towns to all twelve, with no account. The visitor stands in the birthday person's place, and the friends in the town speak to them.

  13. Withdrawn

    Retired the live party as the way a town is opened. New towns are gifts that friends fill in their own time and hand over once; the realtime room server remains only to keep parties and albums already held readable.

  14. Withdrawn

    Removed the 10 pm group photo everyone had to be present for — the last place in the product that asked people to be online at the same moment.

  15. Added

    Replaced it with a photo that has no moment: fill a spot on the plaza at any hour and pick a pose, a polaroid prints for whoever filled it, and the day's picture completes itself at midnight.

  16. Added

    Opened the funfair, ballpark, cinema, zoo, and concert towns, bringing the town count to twelve. They can be walked now; hosting a party in them is still locked.

  17. Added

    Made the day after a party open on the same invite link — an album with the party's own picture as its cover.

  18. Added

    Turned souvenirs into tools: pick one up and it lands straight in your hand, doing what only that town allows — a surfboard rides the sea, skis cross the snow, a kite climbs as you walk. Spares pass to whoever is next to you.

  19. Added

    Made the first move at each of the four places that take a wish a gesture instead of a text field — hang it, press and release to send it, time it to stack, hand it over. Words became the second step.

  20. Added

    Let candles, neon, and bulbs keep their own colour after dark, instead of being flattened into the night along with the sky.

  21. Added

    Put the town inside the invitation, so the card shows where the party will be held.

  22. Added

    Added a dark mode covering every screen from the front page inward. Anything that leaves the town — invitations, cards, photos — stays on the light board.

  23. Added

    Gave each town a second palette, so the same place can be seen as another season.

  24. Added

    Added a third arcade game — placing candles on a turning cake — after the run and the cake stack.

  25. Added

    Let candles spread into a wreath around the plaza once the cake is full, so filling it opens the next goal instead of ending the game.

  26. Added

    v1.0: day, night, and season following the birthday person's timezone, living NPCs, decorations guests place together, and sound synthesised on the spot from no audio files at all.

The question I want feedback on now

When several people prepare one birthday gift together, what has to reach the birthday person for it to feel properly given — and what makes it feel empty?

Leave feedback