Shipmates helps hackathon participants find teammates inside Discord.
Organizers connect Shipmates to their Discord server, choose a matchmaking channel, and open participant signup. Participants then use friendly Discord slash-command forms instead of pasting long bios or JSON into chat. When enough people have signed up, the organizer publishes a matching round and each participant receives private team suggestions.
Try it: https://shipmates.feedfit.workers.dev
Shipmates is for hackathon organizers who want to make team formation less random, especially at AI-heavy events where many participants can build across product, design, code, data, and storytelling.
It is designed for:
- online, hybrid, and in-person hackathons
- Discord-first communities
- events where participants arrive at different times
- organizers who want explainable recommendations instead of a black-box ranking
- small and early events that need a practical, low-maintenance matching flow
- The organizer opens the hosted Shipmates service and continues with Discord.
- The organizer creates an event and chooses the Discord server.
- The organizer sets the matchmaking channel name, such as
matchmaking. - The organizer installs the Discord app into the server.
- Participants run
/signupin the matchmaking channel and complete guided Discord forms. - The organizer runs
/matching_round previewto check readiness. - The organizer runs
/matching_round publishwhen they want to create a matching round. - Participants run
/matchesto see private team suggestions and Discord mentions for potential teammates.
Shipmates keeps matching activity in the dedicated matchmaking channel so organizers can explain one clear place for participants to go.
The signup flow focuses on signals that are useful for forming hackathon teams:
- what they have built before
- what they can ship during the event
- proof links, such as GitHub, demos, portfolios, or writeups
- desired team contribution, such as AI product builder, UX prototype builder, systems/API integrator, data/eval builder, domain expert, or growth/story/pitch lead
- domain expertise when relevant
- teammate preferences
- event goals and intensity
- AI workflow preference
- track interests configured by the organizer
- timezone and communication preference for online or hybrid events
Shipmates creates explainable team suggestions for groups of 3-5 people. The matcher favors:
- shared track interest
- complementary capabilities
- concrete prior-build evidence
- compatible event goals and intensity
- useful domain expertise
- online collaboration fit when the event is online or hybrid
Participants do not see a public leaderboard. Results are private and are meant to start better conversations, not force final teams.
Participant commands:
/signupstarts or edits a participant profile./profileshows the saved profile privately./matchesshows private team suggestions after an organizer publishes a matching round.
Organizer commands:
/event_statusshows the current event setup./matching_round previewshows whether enough profiles are ready./matching_round publishcreates the matching round./matching_round statusshows the latest published round.
Only the event organizer or Discord users with Manage Server permission can run matching round commands.
Shipmates stores the information participants submit for matchmaking, including Discord user IDs, profile answers, track interests, and proof links. Match results are private Discord responses. Organizers should tell participants what information they are asking for and avoid collecting sensitive personal information.
Shipmates is an early open-source MVP. It is ready for friendly organizer testing, but it should still be treated as an alpha product.
The hosted database has been reset for a clean public test.
- Organizer controls for deleting an event and exporting participant data.
- A participant consent/privacy page linked from the signup flow.
- Better organizer dashboard analytics, such as profile completeness and track demand.
- Scheduled matching rounds, reminders, and signup close times.
- More nuanced matching for teams that already have one or two members.
- Optional organizer review before publishing a round.
- Better support for very large events with batching and clearer free-tier warnings.
- A lightweight feedback loop where participants rate whether suggested teammates were useful.
- Optional AI-assisted profile summarization while keeping deterministic matching rules visible.
- Custom event questions for specialized hackathons.
Shipmates runs as a TypeScript Cloudflare app:
- Cloudflare Workers
- Cloudflare D1
- Workers Static Assets
- Hono server-rendered HTML
- Discord HTTP Interactions
- Vitest tests
Install dependencies:
npm installRun locally:
npm run devRun checks:
npm test
npm run build
npm audit --audit-level=moderateDeploy:
npx wrangler d1 migrations apply shipmates --remote
npm run register:commands
npm run deployRequired Cloudflare secrets:
npx wrangler secret put DISCORD_APPLICATION_ID
npx wrangler secret put DISCORD_PUBLIC_KEY
npx wrangler secret put DISCORD_CLIENT_ID
npx wrangler secret put DISCORD_CLIENT_SECRET
npx wrangler secret put DISCORD_REDIRECT_URI
npx wrangler secret put DISCORD_BOT_TOKEN
npx wrangler secret put COOKIE_SECRETDiscord Developer Portal setup:
- Interactions Endpoint URL:
https://shipmates.feedfit.workers.dev/discord/interactions - OAuth redirect URI:
https://shipmates.feedfit.workers.dev/auth/discord/callback - Install scope:
applications.commands - Gateway intents: not required
MIT. See LICENSE.
