Inspiration
Most meeting tools are built to remember what people said. We wanted to explore a different question: what if the meeting could produce something useful while people were still talking?
Teams often spend meetings describing dashboards, sketching product ideas, debating metrics, or asking how a change might affect existing systems. The actual prototype or analysis usually comes later, after the energy and context of the conversation have disappeared.
There is another problem too: the transcript does not understand the company. It does not know which definition is official, which table contains the right field, who owns the data, or what depends on a proposed change.
Handy brings those two ideas together. DataHub provides connected company context, while Handy turns the live conversation into dashboards, interfaces, checks, decisions, and working prototypes that everyone can see and discuss in real time.
What it does
Handy is a shared workspace for building during live meetings.
Someone can say, “Show retention by workspace size,” and Handy streams a working dashboard onto the shared canvas. It can include charts, metrics, tables, filters, and interactive controls—not just a description or static image.
Everyone sees the same prototype and can evaluate it before the conversation moves on. The room chooses a visual direction, which becomes Design DNA for later interfaces and the final recap.
DataHub gives Handy real company context instead of generic model guesses: actual schemas, field names, metric definitions, lineage, ownership, quality signals, governance rules, and previous decisions. This allows generated dashboards to use the company’s terminology, follow real data relationships, respect sensitive fields, and reveal downstream impact instead of producing something that only looks plausible.
How we built it
Handy is a Bun and TypeScript monorepo with a React and Vite frontend, a Bun WebSocket server, and shared Zod schemas for the complete event protocol.
The frontend is designed as a live workspace rather than a conventional meeting page. It combines a transcript sidebar, accepted context, summaries, fact-checks, participant presence, settings, and an infinite prototype canvas. A floating control dock handles audio and transcription without taking attention away from the work being created.
One server-side Room owns the shared meeting state. Every guest receives the same typed WebSocket events, which keeps transcripts, agent activity, prototypes, cursors, decisions, and meeting state synchronized.
A lightweight router evaluates each meaningful transcript update and decides whether the room needs a summary, fact-check, or prototype. The prototype agent receives the intent, relevant transcript, accepted file context, and a recent screen frame when the speaker refers to something being shown.
The generated HTML is streamed token by token and rendered inside a sandboxed iframe. This allows the interface to appear progressively instead of making the room wait for the complete document.
The DataHub layer is designed around a read–act–write loop. Topic changes retrieve focused organizational context, every agent works from that same context, and useful meeting outcomes return to DataHub as structured knowledge. The planned judge scenario uses DataHub’s showcase-ecommerce datapack to demonstrate real schemas, dashboards, glossary terms, ownership, governance, and cross-platform lineage.
Challenges we ran into
One of the hardest problems was making generated UI feel like part of the conversation. A prototype that arrives after the discussion has moved on is just another post-meeting artifact. We had to stream and render the interface progressively while keeping incomplete HTML isolated from the rest of the application.
Real-time collaboration created another set of challenges. Transcript events, participant updates, agent responses, prototype tokens, and meeting controls can all arrive concurrently. We added run identifiers and cancellation checks so an old agent response cannot appear after the meeting has been cleared or the topic has changed.
Generated dashboards also need to be more than visually convincing. A beautiful dashboard with invented metrics, incorrect fields, or broken relationships can make a meeting worse. Selecting the right DataHub context—without overwhelming every agent with the entire graph—is one of the most important parts of the remaining integration work.
We also had to keep the interface usable while many things were happening. The transcript, context, prototype, fact-checks, participants, and controls all compete for space. The UI went through several iterations to become flatter, quieter, and more focused on the live artifact.
Accomplishments that we're proud of
We are proud that Handy creates real, runnable interfaces rather than images or written suggestions. The generated prototypes can contain working layouts, dashboards, charts, controls, and application states that the room can inspect immediately.
We also built a genuine shared experience. Hosts can invite guests, participants can see the same prototype stream, and the entire room stays synchronized through one typed event system.
The Design DNA loop is another part we are proud of. The first prototype becomes both an artifact and a preference question. Once the room chooses a direction, later interfaces inherit that visual language instead of starting from a generic design every time.
Finally, fixture mode runs the complete meeting workflow without external credentials. It exercises the transcript, router, summaries, prototype generation, visual selection, recap, and export flow, making the project easier to test and demonstrate.
What we learned
We learned that an interface can be a thinking surface, not merely the output of a meeting. People react differently when they can see and click the idea they were just discussing.
We also learned that real-time generation is not only about speed. The output must arrive quickly, remain visually coherent, use the right company language, and stay synchronized for everyone in the room.
The DataHub work reinforced another lesson: more context is not always better. The useful context is the smallest set of definitions, relationships, owners, constraints, and earlier decisions that can change the current outcome.
Finally, we learned that meeting knowledge should not end as a transcript. Decisions, changed definitions, prototype context, findings, and unresolved questions become much more valuable when the next person or agent can inherit them.
What's next for Handy: Live meetings, with context.
We want Handy to become the workspace companies open for every important meeting—not just to record the conversation, but to turn it into real work.
As people speak, Handy creates real-time dashboards, interfaces, prototypes, evidence, and decisions grounded in company knowledge. Our goal is to make building together as natural as sharing a screen.
Built With
- agent-context-kit
- bun
- cerebras
- datahub
- docker
- docker-compose
- elevenlabs
- gemma-4
- html5
- lucide-react
- ollama
- radix-ui
- react
- shadcn/ui
- tailwind-css
- tavily
- transformers.js
- typescript
- universal-llm-client
- vite
- web-speech-api
- webgpu
- websockets
- zod
Log in or sign up for Devpost to join the conversation.