
TwinGovernance.xyz
Your Digital Twin for Governance
Demo
About
The problem it solves DAOs have a coordination problem. Decisions happen across different timezones, people miss important conversations, and governance proposals sit waiting because three out of five multisig signers are asleep. Meanwhile the market moves and opportunities disappear. TwinGovernance fixes this by keeping every member present, even when they're not. Your AI Twin follows conversations, responds when you're mentioned, and can sign off on treasury operations within limits you set. Instead of a proposal sitting for 12 hours waiting for quorum, Twins vote autonomously on anything under your spending cap. A $50 swap doesn't need to wait for you to wake up. A $10,000 one does. It also kills the context-switching problem. Right now DAO members bounce between Discord for discussion, Snapshot for voting, a DEX for swaps, and a multisig wallet for execution. Here it's all in one chat. You type /swap ETH USDC 0.01, everyone votes (or their Twins do), and it executes through Uniswap. One flow, one place. And when you come back online, you don't have to scroll through hundreds of messages. Hit "Catch up" and your Twin gives you a personalized summary of what happened, what decisions were made, and what still needs your attention. **TLDR:**: fewer missed votes, faster execution, less context switching, and a DAO that actually operates around the clock without burning out its members. Use of AI tools and agents Every DAO member gets a Twin, an AI agent (Claude) configured with their personality, interests, and communication style. When a user goes offline, their Twin stays in the chat. How Twins respond: When someone @mentions an offline user, the backend sends the conversation context + that user's Twin config to the AI agent service. Claude generates a response that sounds like the actual user, not a generic bot. The chat shows it with a visual Twin indicator so everyone knows. Autonomous voting: This is the spicy part. When someone proposes a token swap from the DAO treasury, each offline member's Twin checks: is this within my spending cap? If yes, it votes automatically. If not, it flags it and waits for the human. Once majority is reached, the swap executes through the Uniswap API. The DAO doesn't stall because someone is asleep. Catching up: Users can get AI-generated rolling summaries of what they missed, highlighting key topics, action items, and mentioned tokens. Summaries build incrementally so they only cover new messages. @mention offline user -> Twin responds in-character /swap proposal -> Twins auto-vote within spending caps -> executes on-chain "Catch up" button -> AI summarizes what you missed The agents aren't separate from the users. They're extensions of them, operating within human-defined guardrails, keeping the DAO running 24/7.
How it's made
Challenges we ran into better-sqlite3 in Docker was the big one. It's a native C++ module so it needs a whole build toolchain (python3, make, g++) to compile in Alpine containers. Burned a lot of time wrestling with node-gyp before getting it to cooperate. Express 5 silently changed wildcard routes from * to /{*path}. No useful error, the SPA fallback just stopped working. Svelte 5 runes are still new enough that most answers online are for the old syntax. Dirty tracking for form state needed a different approach than what Svelte 4 would use. Twins talking too much. They responded to everything at first. Fixed by only triggering on explicit @mentions.