Inspiration
Every shift worker or teammate has received a handoff that said something like “it’s mostly done, you’ll see.” The next person then spends the first hour asking questions: what actually got finished, what’s blocked, and what shouldn’t be touched? A small gap in a note can turn into a real mistake, like someone changing a setting that was half rolled out. We wanted to fix the handoff itself, at the moment it’s written.
What it does
Handoffs guides the sender through four short sections: Done, Stuck, Don’t touch, and First thing to do. It instantly turns the answers into a clean, colorful card the next person can read in seconds.
Next to that card, it shows the messy Slack-style message most handoffs turn into, so the difference is easy to see. You can also paste your own real message to compare. A ghost-proof score flags vague words like “stuff,” “asap,” and “should be fine,” and tells you what’s missing. When the card is ready, you can copy it formatted for Slack, copy it as plain text, print it, or share it with a link.
How we built it
We built the frontend with plain HTML, CSS, and JavaScript, so the whole site works from a single file with nothing to install. The card, the messy-message comparison, and the vague-word checker all update live as you type. We chose a bold neo-brutalist look, with thick outlines, hard shadows, and bright color blocks that match each section.
We also built a full-stack version with a Node.js and Express backend and a SQLite database. It saves handoffs for the whole team, creates short share links, and lets the receiver mark a handoff as “picked up.” The server validates every input, calculates the score, and limits how fast any one person can send requests. The version hosted on GitHub Pages is the frontend-only build, which saves history in the browser and packs share links into the URL.
Challenges we ran into Hosting a backend for free. GitHub Pages can only serve static files, and free Node hosts reset local databases when the service restarts. We split the project into a static version for easy hosting and a full-stack version for real team use. Share links without a server. To make links work on the static version, we packed the entire card into the URL itself. Making the “before” believable. The messy Slack message had to feel like real life, so we generated it from the sender’s own answers by shortening, lowercasing, and adding the usual filler. Judging what counts as vague. The checker needed to catch fuzzy wording without punishing useful, specific notes.
Accomplishments that we’re proud of A complete handoff takes under a minute, and the card updates live as you type. The side-by-side comparison makes the problem obvious without any explanation. One idea works at two levels: a single file anyone can open, and a full-stack app with a database, search, and pickup confirmation. The design is bold and memorable, while staying readable and usable on a phone.
What we learned Specific, short notes help the next person more than long, vague ones. Showing the “before” next to the “after” teaches faster than any instructions. Deciding where something will be hosted early shapes the whole architecture, especially the database. Small touches, like one-click copy for Slack, decide whether people actually use a tool.
What’s next for Handoffs Real logins, so each team has its own private space A Slack integration that posts the card straight into a channel A hosted database so saved handoffs survive restarts on free hosting Reminders when a handoff hasn’t been picked up Reusable templates for different jobs, like hospital shifts, restaurant kitchens, and support teams Smarter suggestions that rewrite vague lines into specific ones
Log in or sign up for Devpost to join the conversation.