Skip to content

ysqander/shipmates

Repository files navigation

Shipmates

MIT License Hosted service Discord first

Shipmates illustration

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

Who It Is For

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

How It Works

  1. The organizer opens the hosted Shipmates service and continues with Discord.
  2. The organizer creates an event and chooses the Discord server.
  3. The organizer sets the matchmaking channel name, such as matchmaking.
  4. The organizer installs the Discord app into the server.
  5. Participants run /signup in the matchmaking channel and complete guided Discord forms.
  6. The organizer runs /matching_round preview to check readiness.
  7. The organizer runs /matching_round publish when they want to create a matching round.
  8. Participants run /matches to 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.

What Participants Are Asked

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

How Matching Works

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.

Discord Commands

Participant commands:

  • /signup starts or edits a participant profile.
  • /profile shows the saved profile privately.
  • /matches shows private team suggestions after an organizer publishes a matching round.

Organizer commands:

  • /event_status shows the current event setup.
  • /matching_round preview shows whether enough profiles are ready.
  • /matching_round publish creates the matching round.
  • /matching_round status shows the latest published round.

Only the event organizer or Discord users with Manage Server permission can run matching round commands.

Privacy Notes

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.

Status

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.

Potential Improvements

  • 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.

For Maintainers

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 install

Run locally:

npm run dev

Run checks:

npm test
npm run build
npm audit --audit-level=moderate

Deploy:

npx wrangler d1 migrations apply shipmates --remote
npm run register:commands
npm run deploy

Required 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_SECRET

Discord 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

License

MIT. See LICENSE.

About

Shipmates helps hackathon participants find teammates inside Discord.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors