Anand Chowdhary

In 2016 I sketched a tiny idea in my notes wrap

In 2016, I sketched a tiny idea in my notes: wrap multiple chat web apps in a Swift container, add tabs, sprinkle a little JS, ship. It felt hacky, but the core insight was simple. Aggregation beats fragmentation. Start with webviews, aim for coherence. 👇 Context from November 29, 2016: Messenger had no Mac app, so Goofy stepped in. I wanted the same shape for WhatsApp and Skype. The MVP was WKWebView tabs with light DOM hooks for unread counts and notifications. In spirit it was just iframe the web clients and call it a day. Why it was tempting: webviews got you to works fast. Inject selectors, shim notifications, persist sessions, push a build. The costs showed up quickly. DOM tweaks broke features. Injected JS, cookies, and permissions were messy. ToS risk was real. OS fit stayed shallow, with ad hoc background sync, Keychain use, and notification behavior. The idea grew up. Winners moved from render and scrape to unify and integrate. Build a shared model for contacts, threads, delivery and read state. Abstract auth flows. Treat each network as a transport behind one UX. Some bridges were unofficial, others used blessed endpoints. By 2025 you see full clients like Texts by @KishanBagaria and @Beeper (from my YC batch), both now at Automattic. The lesson for me: the value is not the tab container. It is the coherence layer. Identity mapping, durable storage, consistent semantics across protocols. Hard problems remain. E2EE narrows what a bridge can see. Many services bind identity to phone numbers or device keys. Reliable integration needs background agents, solid key management, and clear product choices on what to simulate and what to degrade gracefully. Open questions I am still chewing on: 1) Will interoperability efforts make scraping obsolete, or just shift the work to a higher layer, especially with LLM scraping? 2) Can we design user controlled bridges that respect E2EE threat models and still honor ToS? 3) Is the steady end state a unified client, a federated protocol, or an OS level service like Apple Messages? Here’s the original note from 2016: https://github.com/AnandChowdhary/notes/blob/main/notes/2016/recreate-goofy-for.md