Getting a group of people to agree on a plan is harder than it has any right to be. Someone suggests an idea in a group chat, a few people react with thumbs up, someone else asks when, three different dates get floated, two people can't make it, the thread dies, and six weeks later you're still not doing the thing.
VagoshIt is an attempt to solve that. One place for the group to propose activities, vote on what sounds good, mark their availability, and lock in a date — without the endless back-and-forth.
You create a group and invite your friends. Inside the group, anyone can propose an activity — hiking on Saturday, dinner next week, weekend trip, whatever. Everyone votes up or down. When something has enough momentum, you move to scheduling: members mark which dates and times work for them on a visual availability grid, and the app surfaces the best overlap.
Once a date is set, it lives on the group calendar. Activities can repeat — weekly, biweekly, monthly, yearly. The calendar shows upcoming occurrences automatically. If a planned activity is coming up today, a "Happening now" banner surfaces it so nobody misses it.
Groups have channels for ongoing conversations. You can save favourite places so recurring hangouts don't need to be described from scratch every time. Activities can have co-organisers — not just one person wrangling everything. And if a great one-off activity is worth repeating, "Plan again" duplicates it with one tap.
There's a full friend system — find people by email or share an invite link. User profiles show what groups you share. The social layer is light by design: it's a planning tool, not a social network. But having a contact list means you're not re-adding the same people every time you spin up a new group.
The roadmap includes push notifications, iCal / Google Calendar export, group discovery, and poll-style voting with custom options. The foundation is solid — features get added as they're actually needed.
The prompt that kicked this off was genuine: "I need an app that helps my friend group actually coordinate instead of dying in group chats." That's a well-defined problem with a well-defined user — me, and every group I'm part of.
The scaffold came together fast: Next.js 15 App Router, Supabase for auth and database, TypeScript throughout. The first working version had auth, groups, activities, and voting. From there it was iteration — what's missing, what's awkward, what would make this something you'd actually open every day?
The hardest piece was availability matching. Building a clean, touch-friendly grid where you drag to mark slots — and then computing the intersection across all group members — took a few attempts to get right. The final version shows your own availability and the group's best overlap in the same view, so you can see immediately whether your Friday evening works for anyone else.
Supporting recurring events sounds simple until you try to implement it. "Show all occurrences of a weekly event on the calendar" means generating them on the fly — you can't store every future date. The calendar renders occurrences from a recurrence rule, which meant building a small scheduling engine that knows how to expand weekly, biweekly, monthly and yearly patterns across the visible date range.
"The best planning tools get out of the way. The goal was: minimum taps to go from idea to scheduled."
This one got a proper domain — vagoshit.com — because it's for a real friend group and a GitHub Pages URL would've made exactly nobody open it. Hosted on Vercel, which handles Next.js deployment as well as anything can.
Next.js 15 App Router with server components where possible and client components for interactive UI. Supabase handles authentication, the Postgres database (with Row Level Security policies), and file storage for avatars. All deployed to Vercel — one push to main and it's live.
The database schema centers around groups, memberships, and activities, with junction tables for votes, availability slots, and channel messages. RLS policies ensure users can only read and write what they should — a friend's group is visible, a stranger's is not.
Got thoughts?
Using it with your own group? Hit a bug? Have a feature you wish existed? Leave a note — no account needed.