const me = {
building: "chatbank.fun — decentralized social chat on Lens",
stack: ["TypeScript", "React", "wagmi", "viem", "Lens Protocol", "XMTP"],
interests: ["self-custodial UX", "social graphs", "edge LLMs", "agent infra"],
focus: "open social — own your followers, own your messages",
}- 💬 shipping chatbank.fun — self-custodial chat with treasury-backed creator payouts
- 🧪 experimenting with on-device inference (
mlc-llm-edge) - 🔌 maintaining typed wrappers around Lens v3 + WalletConnect
- 📚 reading: distributed systems papers, Karpathy's zero-to-hero series
| layer | pick |
|---|---|
| language | TypeScript (strict everywhere) |
| frontend | React + Vite |
| chain | wagmi / viem / Reown AppKit |
| social | Lens Protocol v3 |
| messaging | XMTP for E2EE DMs |
| inference | MLC + WebGPU for local |
| testing | Vitest + Playwright |
| lint | Biome |
- chatbank — decentralized social chat on Lens ·
#8B5CF6 - xmtp-js — typed XMTP SDK wrappers
- lens-protocol-sdk — Lens v3 client
- wagmi-hooks — reactive eth hooks
- vercel-ai-sdk — streaming chat UIs
- reown-appkit — modern WC modal
- mlc-llm-edge — local LLMs on consumer HW
- the right unit of social is the relationship, not the post
- a chat client is just an agent UI with low latency
- self-custody only works if the UX hides the keys
- prompt engineering is just programming with worse error messages
- 🌐 chatbank.fun
- 🐦 ping me on Lens
- 📨 hi at chatbank dot fun
own your conversations · ship the URL · violet only




