Syncworm About

What is Syncworm?

Running a Dune: Imperium tournament means juggling spreadsheets, Discord messages, and manual tracking across weeks of play. Keeping everyone informed, scheduling matches fairly, and avoiding mistakes takes more effort than the games themselves. Syncworm replaces all of that with a single web app.

Syncworm handles the full tournament lifecycle — group draws, match scheduling, result tracking, and bracket progression — so organizers can focus on the games, not the logistics. Every step from player registration to final standings is managed in one place.

For organizers, that means real-time state visible to all players, no manual result tracking, and easy tournament management from any device. Players always know their next match, standings update instantly, and the Discord bot keeps everyone in the loop without extra work.

Key Features

Player availability & scheduling

Enter availability → Auto timezone conversion → Overlap heatmap → Discord timestamp links. Players mark when they can play, the app converts to local timezones, highlights overlapping slots, and generates shareable Discord timestamps.

Live Tournament Tracking

Open matches, current standings, and accurate tournament state — always up to date. Players know exactly where things stand without asking the organizer.

Discord Bot

Connect a Discord channel and the bot watches for result screenshots — scores get entered automatically without any manual work from the organizer.

Format-aware scheduling

Scheduling adapts to the tournament format. Group-phase matches use weekly availability heatmaps; Swiss rounds use time-slot pairing from uploaded spreadsheets.

Multiple tournament formats

Run a classic group stage into knockout bracket, or use the Throne Taker format — Swiss rounds feeding a Top 16 cut with snake-seeded knockout. Format choice drives the entire tournament flow.

Excel bulk import

Upload player availability or full group rosters from Excel. The parser validates the data, creates players, and generates matches — no manual entry needed.

How a Tournament Works

For Admins

Create a Tournament

Set up the format — group size, number of rounds — and share the registration link. Players sign up on their own.

Draw Groups & Start Play

The app draws groups randomly and generates the round-robin schedule. Results come in as players report them — standings update on their own.

Review & Advance

Check standings, resolve any disputes, and advance the tournament to the next phase when ready. The app handles bracket generation and seeding.

For Players

Join & Register

Click the invite link, confirm your spot, and you're in. You'll see your group, opponents, and schedule right away.

Mark Availability & Play

Fill in your weekly availability. The app finds overlapping times with your opponent so you can schedule matches without the back-and-forth.

Report Results & Track Progress

Submit your match result (or let the Discord bot handle it). Standings and brackets update live — you always know where you stand.

Built With

Next.js

Next.js

The React framework running the show — server rendering, routing, the whole deal.

Supabase

Supabase

Postgres database + auth in a box. Stores everything from player accounts to match results.

Drizzle ORM

Drizzle ORM

Type-safe SQL queries that make the data layer surprisingly pleasant to work with.

Vercel

Vercel

Where the app lives. Zero-downtime deploys, edge network, the usual good stuff.

Railway

Railway

Keeps the Discord bot running 24/7 as a separate service alongside the main app.

A note from the developer

Syncworm is built and maintained by one person. I started it because organizing Dune: Imperium tournaments in our community meant spreadsheets, manual tracking, and way too many Discord messages. I wanted something better, so I built it.

If you've played in a tournament organized through Syncworm, there's a good chance we've played against each other — my gamertag is smartini.

Bug fixes always come firstFeature requests welcomeBuilt with care, not deadlines

Questions or feedback?

Get in touch