Tally - Devpost Project Story
Inspiration
A few months ago my reading group started a challenge. Twelve books in a year, all of us, one shared spreadsheet to track it. For about two weeks it was the best part of my week - I'd open the sheet just to see who'd pulled ahead, watch the numbers creep up, feel a little jolt when someone passed me.
Then the sheet broke. Someone's edit access vanished. A column got dragged into another. One person stopped updating, so the next person figured why bother, and within a month the whole thing was a dead document nobody opened. The challenge didn't end because we stopped caring. It ended because the tool we cared through fell apart.
What stuck with me wasn't the failure - it was the two weeks before it. We loved watching each other climb. We hated being the unpaid admins keeping a fragile sheet alive. The thing people loved and the thing people hated were bolted together, and when the hated half collapsed it took the loved half with it.
So I asked one question: what if you kept the part everyone loves, and made the part everyone hates simply not exist? That question became Tally.
What it does
Tally lets anyone start a group challenge in about a minute, share a single link, and give everyone a live leaderboard worth coming back to.
You pick a template - reading, fitness, habits, or your own custom goal - and it arrives already shaped right, with the correct unit and feel. You get one link. Your friends open it, sign in once, pick a name, and they're on the board. Then everyone logs progress with a tap and the leaderboard reorders in real time as people climb.
The details are where it stops being a tracker and starts being a game you're in. Daily challenges rank by streak, not total, so showing up every day is what wins. Badges fire live off the data. A weekly AI recap reads the week's logs and roasts the group, gently, to pull everyone back. And you can attach a photo to a log, or flag an entry that looks off - light verification that scales with how much the group actually needs it. A book club needs none; a public challenge needs more.
The whole thing is built so a stranger can land on the homepage, tap into a live demo, and understand it in under ten seconds - no signup standing in front of the value.
How I built it
I built Tally as a real, deployed web app, because the entire point was that a stranger could use it today, not watch a video of it.
The front end is Next.js with TypeScript and Tailwind, on Vercel. Supabase does everything stateful: Postgres for the data, Realtime for the live board, Auth for identity, Storage for proof photos and covers. The leaderboard's animated reordering is Framer Motion. The weekly recap runs server-side on the Groq API. I connected the GitHub repo to Novus so it could map the real routes and flows and watch how people actually move through it.
Every choice traces back to one idea: the link is the product. Create, invite, join, and log are separate routes, so it's genuinely multi-user. Identity is a real account, so your progress follows you across devices instead of dying in one browser.
Novus is installed on the live app and has already mapped our personas, product areas, and key flows.
Challenges I ran into
The hardest one was philosophical: a multiplayer app is at its weakest the moment it's most exposed - the first visitor lands on an empty board and leaves. I fixed it by making the first thing anyone sees a pre-seeded, live public challenge they can join in one tap. Creating your own is the second move, not the first.
The second was "any challenge" without becoming mush - a tool for every goal is a tool for no one. Templates solved it: opinionated starting points, generic engine underneath. I also had to admit not all challenges are the same shape, which is why a 100-mile month and a 30-day streak are ranked differently.
And then the unglamorous half: a framework security advisory mid-build that forced a version bump, and making the app deploy cleanly even with missing environment variables. Not exciting, but it's the line between "works on my laptop" and a live URL a judge can click.
What I learned
The winning move was subtraction, not addition. My best decisions came from cutting - noticing people loved one half of the spreadsheet and removing the other. I also learned that "shipped" is itself a feature: the empty states, the seeded demo, the stable deploy are what turn an idea into a product.
What's next for Tally
Strava and Goodreads integrations so challenges verify themselves. Describe-a-goal-in-a-sentence creation. An offline-capable app for logging without signal. Scheduled email recaps. And a small plan for organizers running bigger groups. The north star doesn't move: keep the part people love, delete the part they hate.
Built With
- framer
- groq
- motion
- next.js
- novus
- supabase
- tailwind
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.