A night, and what stays
Drawing pairs is a solved problem, and free tools already do it. What a group keeps returning to is its own story: who leads the season, who always beats whom, the night someone won 6 to 0. So the product decision was to cover the whole night, then keep it.



Five decisions that shaped it
Most of the product follows from a few calls made in the first days. Each one traded something away.
Setting up the night
Creating a tournament takes three steps: who plays, the format, and a check before the draw. The whole group shows as small chips, so picking eight people is eight taps. Each format (Americano, Mexicano, Copa PP) explains in one line what changes, with its own pixel badge.
The same step asks how much court time is booked and shows how long the night will take, how many courts it needs and each round on a strip. When it doesn't fit, it suggests rounds and a set length that do.
Made for the court
Scores get entered standing by the glass, phone in one hand, often on weak signal. Modo Quadra (court mode) is a screen for that and nothing else: the round that is on opens by itself, each match is a card with the score pad already in it, one tap per pair, then Save.
It vibrates on save and offers Undo, refuses a score with no winner, moves to the next round when one closes and keeps the screen awake. A save shows at once and reaches the server behind it; if the network fails, the screen says so.

Modo TV
Modo TV is for the club's screen or a laptop on the bench: the whole table and the current round fit without scrolling, set large enough to read from the court, with a QR code so anyone can follow on their own phone. On an upright tablet the table goes on top; on a narrow screen it stacks. When a score comes in, the winners celebrate and the losers sulk.
Tendência and Palpitômetro
A group night is half banter, so two features feed it. Tendência (the trend) gives each match a read from the group's history, worded so nobody is put down: “Even match”, or a challenge for the pair with less chance (“3+ games, and winning is a Zebra”, the group's word for an upset). The favourite is never named and there are no percentages; the numbers stay on the server. After the match only good news shows: a Zebra, or “Above the trend” for a pair that lost but beat the challenge.
Before it shipped, it was tested against the group's past nights: it leans on about 6 in 10 matches and is right on about 3 in 4 of those. In the Palpitômetro (the picks meter), each player logged in to the group picks who wins every match, round by round, before the first score; the crowd's count shows only after your own pick. Whoever gets the most right is the night's Profeta (prophet). No betting, no prize.

A pixel identity, drawn in code
The look comes from arcade scoreboards: pixel type, lime on near-black, used sparingly so the scores stay the loudest thing on screen. There are no image files behind the drawings. Each sprite is written as rows of characters, each letter a colour role, so one trophy becomes gold, silver and bronze by swapping the palette. The kit has 57 icons, 6 of them animated.


Your own player
Each player builds an 8-bit version of themselves in steps: face, hair, clothes, extras, plus height, racket hand and a pose. A seed picks every layer, so the same player is drawn the same way everywhere, from a small row in the ranking to the podium. Some extras are earned: only players with the Zebra badge get the striped glasses.
A logo for every night
Each tournament gets a pixel logo built from its own data: name, group, date. The editor has four templates, seven shapes, colour themes or any colour (with a warning when contrast gets poor), more than fifty icons, mascots and animated details. Surprise me picks a combination that works, and every change can be undone. One spec gives a square, a story, a wide version and a seal, and an animated GIF.
Badges are drawn the same way and earned from results, never handed out: Champion, Unbeaten, On Fire!, Golden pair, Streak, Clutch, Zebra, Prophet and Attendance.




Badges that move
The rarer badges and the night's highlights get a character of their own, animated, on the profile, in the unlock screen and in the GIF that goes to the group. The Zebra and the Profeta, and the scenes on the invite and the login e-mail, are my own pixel art.

Zebra
Won a match the history didn't point to

Profeta
Most right in the night's Palpitômetro

Embalado
Five or more wins in a row

Sangue frio
70% or more of the close matches

Invicto
Won every match of a night

Quem leva?
Calls the group to the Palpitômetro
Things that move
Motion is used where the night has a moment: the podium rises on a floodlit court and the champion lifts the trophy; on the product page the table reorders as invented scores come in; the night's logo sparks and bounces. Between rounds there is a pixel padel minigame, doubles against the computer in three levels, with a ranking between players and between groups. Logged in, you play as your own player.
Made for the group chat
The group already lives on WhatsApp, so PPadel feeds the chat instead of competing with it. The list, the draw, the result, the podium, the highlights and each player's card go out as images drawn in the browser on a canvas, with the app's own fonts and players: 1080 × 1350 for the feed, 1080 × 1920 for stories, or an animated GIF.
One large button changes with the device: Send to the group on a phone, Copy image on a computer. Every image carries the name and the link, which is the only way PPadel reaches new people today.




The data underneath
Rankings and badges only work if people trust them, so the model was designed around one rule: nothing derived is stored. Standings come from the matches every time, so correcting one score fixes every table, ranking, record and profile that depends on it. Badges are computed from results for the whole group at once, because some depend on everyone (the golden pair).
Same tie-break as before
Wins, then game difference, as the group already counted. The history since mid-September was imported and recounted match by match, and each night had to match the old app's table.
People apart from groups
A member is one person; a membership gives them a role in a group: owner, organiser or player. The model is already multi-group, though only one group uses it.
Fair draws at any size
Super 8 and 12 use fixed rotations where everyone partners everyone once. With 9 to 11 players the rest rotates; in Mexicano only the first round is drawn and the next ones come from the table.
Live without a socket
Spectators poll a small version tag, not the page; the page reloads only when a score actually changes.
Charts from the same matches
Each profile reads the season from the matches: form, place per night, rank over time, games per match, close matches, wins by round, pairs, the nemesis and the favourite opponent. The group gets its own numbers. Every figure has an “i” that says what it counts.
Seven days with an AI agent
I made the product calls, designed the screens and the pixel system, and directed the build. Claude Code, an AI coding agent, wrote the code with me: nearly every one of the roughly 220 commits between 4 and 10 November 2026 is co-authored with it, about 32,000 lines in all. Each decision is written down as a comment next to the code, and a check script of 674 lines covers the draws, rest rotation, Mexicano, substitutions, logins and sessions.
The release notes in the app list every change by date, in Portuguese, for the players themselves.
What isn't proven yet
PPadel works for one group: about twelve people who know me. Nobody outside that circle has run a night with it on their own. Only I can create a group, there is no payment and no revenue, and it is free during the beta. Free tools already draw pairs; whether a group would pay for its history and its look is still a guess.
Before going further I asked for a full audit of the product, the code and the market. Its verdict: a promising opportunity, not yet proven. The next step is not code. It is giving the link to three to five groups that don't know me and seeing whether they keep using it without help.
What I learned
- Speed moved the bottleneck. With an AI agent, several features shipped in a single day, so building stopped being the hard part. Knowing which of them a second group would need became the hard part.
- Breadth before proof has a cost. The logo editor, the minigame and the stickers make the nights richer, but the audit flagged them as surface to maintain before a second group has shown up.
- Designing for one real group is a strong brief. Each weekly night put every change in front of the people who use it. It is also why the product still speaks that group's language, which the next groups will notice.
In use
One group of about twelve players, on its weekly nights
Open to others
Not yet: new groups start with a message to me
Before charging
Database migrations, a full privacy policy and terms, sign-up
Today everything in a group is public by default, and there are no per-player privacy settings yet; that is on the list too. The example names on this page come from PPadel's product page; the real group's names, faces and results stay out of it.








