Generated with HackPilot - AI-powered hackathon project manager
Inspiration
Vibecoding is everywhere now. The part that still breaks is coordination. Cursor, Claude Code, Copilot, whatever. They do not share a thread with each other, and they do not share one with your whole team. Same story gets rebuilt in three places. Merge is our answer: one place to route work and keep people and agents pointed at the same intent so parallel work does not turn into duplicate work and messy merges.
What it does
Merge is a workspace that sits above your editors and agents. You get one clear picture of who owns what, what is moving, and what ships next.
What you can actually use in this build:
- You route tasks. You pick the lane, tool, or person. We are not auto-routing models for you from a black box.
- Context is tied to the repo you opened. Same place as your shell, not a random cloud project.
- Handoffs stay visible when someone jumps tools or hands off to another person.
- The UI feels like a developer platform: featuring session, status, shortcuts, workspace hints, working directory, integrations.
The landing page and pitch deck show a small workflow diagram: Cursor, Copilot, and Claude into a hub, then split, merge, ship on the way out. That represents our story.
How we built it
Frontend ships in this repo: Next.js, React, TypeScript, Tailwind, Framer Motion. Same app has the marketing page and a built-in pitch deck with keyboard nav, a timer, and an embedded live preview in fullscreen so the demo is not a screenshot.
Backend is separate from the browser shell: API integration with the models, realtime auth, Redis, complex model routing, and sessions so clients stay in sync. Details depend on how you deploy it. The split matters because we are not pretending the hard parts live only in React.
Visually we kept one system: mono type, sharp borders, orange accent. Looks like one product.
Challenges we ran into
Product side: more than one human and more than one agent touching the same work means intent drifts fast. Git alone does not fix that when everyone is in a different UI.
Backend side: realtime comms are hard in practice. Ordering messages, reconnects, who is in the room, and not double-applying edits when the network drops. That sits next to normal pain like permissions across tenants and calling Git and vendor APIs without wedging the client.
Build side: the demo path hurt. Browser fullscreen, nested embeds, scroll sync between the deck and the preview. We cut scope until that path stopped embarrassing us on stage, then fixed copy so it matched what you see.
Accomplishments that we are proud of
- One story from problem to solution to live preview without hand-waving.
- We describe the product in plain language. No made-up latency numbers or integration counts.
- You can present from the deck with keys and fullscreen and it mostly behaves.
What we learned
The fight is usually not which model is smartest. It is who holds the thread and how work stays traceable when the room is loud. And if the demo glitches, people remember the glitch. So we spent real time on the embed path.
What is next for Merge
- Integrations where we have real APIs and stable behavior, not a logo wall.
- Handoff history you can actually audit without opening five chats.
- Smarter routing suggestions from how your team already works, once we have signal to base that on.
Built With
- agents
- astro
- css
- javascript
- mdx
- rust
- terminal
- typescript


Log in or sign up for Devpost to join the conversation.