TogethrWe
A social and team management app for youth and amateur sports teams
React · Vite · TypeScript · Framer Motion · PWA
What it is
A mobile-first social and team management app for youth and amateur sports teams, built for a client. The pilots run with 13-to-17-year-old squads. The core loop is positive peer recognition: teammates award each other Swag Coins for character and contribution, which build a public player identity: an avatar, earned gear, a playable player card. Coaches and parents get role-shaped versions of the app.
What it does
Five tabs whose contents change by role: players get chat, the team, the locker room, video and a penalty-shootout game; coaches trade the game for weekly drills and an anonymous team-pulse view; parents get logistics and their child's page.
The running of the team is the half that has to work before any of the rest earns its place. Schedule and roster are shared, but each role is handed the slice it actually needs: a coach's home is the administrative view — what is next, who has not RSVP'd yet, the shape of the season — while a parent's is logistics only, meaning the next event, whether their child is down as going, what they owe, and everyone's number. The schedule leads with the league table and sits beside the squad list; contact details render through a single gate, so who may see whose phone number is one function rather than a rule re-implemented on five screens. Coaches set weekly drills from a seeded library of skills and fitness work or write their own, assign them to the whole squad or to named players, and can see who has proven the work with a clip. The manager takes fees and the game-day rota.
The coin economy is built to resist gaming: peer picks cap at eight per trait, anything self-reported pays only with a photo or clip attached, and signed shoutouts between players are worth zero, because reciprocal rewards are the farming loop to keep out. Safeguarding lives in the reducer, not the interface: chat rooms derive from role, and the one room the app refuses to create is a parent alone with someone else's child. There are no rankings of kids, no GPS, and video pixels never leave the phone.
There is a second surface for the adults running the club. /manage is a laptop-first console sharing the same store as the phone app: the roster, the fixture list and league table, outstanding invoices, and the invites that get families onto the team. It exists because the desk work of running a squad — chasing unpaid subs, filling a game-day job, finding out who still hasn't replied about Thursday — is miserable on a phone, and it is a different job from the recognition loop the players use.
How it's built
React, TypeScript and Vite as an installable PWA. It is demo-grade and honest about it: no backend, no accounts, all state on-device with fictional seed data, and one load/save boundary in the store that is the single swap point when a real backend lands.