I Rewrote My Electron App in Tauri β and Claude Did 100% of the Work in Under 24 Hours π
π°οΈ Then: I built google-chat-electron by hand, over months, reading tutorial after tutorial. β‘ Now: I rebuilt the whole thing as google-chat-tauri in less than 24 hours β and I did not write the code. Claude did. π¦ Plot twist: I don't know Rust. Not a little β at all. The AI wrote every line of i

π°οΈ Then: I built google-chat-electron by hand, over months, reading tutorial after tutorial. β‘ Now: I rebuilt the whole thing as google-chat-tauri in less than 24 hours β and I did not write the code. Claude did. π¦ Plot twist: I don't know Rust. Not a little β at all. The AI wrote every line of it. π¦ Result: a ~3 MB Linux installer instead of a bundled Chromium. π§ͺ Status: pre-release. Fun project. Stable version coming after real-world testing. Let's dive in. π A few years ago I wanted Google Chat in a real window β with a tray icon, an unread badge and native notifications β instead of a browser tab that disappears among thirty other browser tabs. So I built it. In Electron. By hand. And it took months. Not because Electron is bad, but because every single thing was a tutorial: How do I make a tray icon that actually behaves? How do I keep the app alive when the window closes? How do I intercept a link and open it in the real browser? How do I package a .deb? A .dmg? An installer for Windows? Why does this work on my machine and nowhere else? π Every answer was a blog post, a GitHub issue thread, or a Stack Overflow reply from 2017 that almost applied. It shipped, people used it, and I was genuinely proud of it. Last week I opened Claude Code and asked it to port the app to Tauri v2. I did not open the Rust book. I did not read the Tauri docs. I described what the app should do, reviewed what came back, ran it on my actual laptop, and reported what broke. Timeline: Time What happened 15:42 git init 17:01 Full Electron β Tauri v2 port committed 17:25 Desktop notifications working < 24h later v0.0.1 tagged and released π 38 commits. ~3,600 lines of Rust and JavaScript. Zero lines typed by me. This is what people mean by vibe coding β and honestly, it felt less like programming and more like directing. My job became: describe the behaviour, test it on real hardware, and say "the tray icon doesn't come back on Wayland." The AI handled the rest. β οΈ The honest caveat: AI wrote it, but a human ran it. Almost every real bug was a platform behaving differently from its own documentation β the kind of thing no model can find by reading docs. That part still needs a person with a laptop and some patience. Here's the thing β Electron ships an entire Chromium browser with your app. Tauri doesn't. It uses the web engine your operating system already has: WebKitGTK on Linux, WKWebView on macOS, WebView2 on Windows. βοΈ Electron π¦ Tauri v2 Browser engine Ships its own Chromium Uses the OS web engine Linux installer size ~80β100 MB ~3 MB π€― Backend language Node.js Rust Memory footprint Heavy β it's a browser Noticeably lighter Startup Boot a Chromium Boot a native window Security model Opt-in hardening Capability-based by default The size difference is the headline number, but the one you feel every day is startup and memory. You're not launching a second Chrome just to read messages from your team. The window opens like a native window, because it basically is one. The trade-off? You inherit the OS web engine's quirks β WebKitGTK on Linux behaves differently from Chromium, and you find that out the hard way. Which is exactly what the testing phase is for. π§ͺ This isn't a "hello world in a webview." It's a real desktop client: π΄ Unread indicator β a dot on the tray icon, the count in the window title, and a badge on the macOS dock or Windows taskbar. π Desktop notifications β with sound. On Linux, clicking one brings the window back. ποΈ Lives in the tray β closing the window hides it; the app keeps running and keeps notifying. πͺ Remembers your window β size, position and maximised state come back where you left them. 1οΈβ£ Single instance β launching again just focuses the window you already have. π Native menu bar β File, Edit, View, History, Preferences, Help, with zoom that persists between launches. π Launch at login β optional, plus "start hidden in the tray." β¨οΈ Keyboard shortcuts β Ctrl+F to search, Ctrl +/-/0 to zoom, Alt+β/Alt+β to navigate, Ctrl+W to hide to tray. π Links open in your real browser β a Docs, Sheets or Calendar link opens where your extensions and logins already live. Only Chat stays in the window. π Signs in normally β personal Google accounts and paid Workspace accounts, in any country. π‘ Says when it can't reach Chat β instead of a blank web engine error page. π§― A way back from a wedged session β Help β Reset App Data signs you out, resets every preference and restarts clean. No analytics. No auto-updater installing things behind your back β it just asks GitHub once a day whether a newer release exists and tells you. You can turn that off. π Available for Linux (.deb + .AppImage), macOS (universal .dmg) and Windows (.exe). Let me be very clear about this part: π This is a fun project. It scratches an itch. It is not a startup. π¦ I don't know Rust. If you open an issue about a borrow checker decision, the AI made it, not me. π§ͺ It's still pre-release. v0.0.1. Linux is where it's been tested most; macOS and Windows builds exist and need real users on real machines. β A stable release is coming once it's been properly tested in the wild. If you use Google Chat on the desktop and you're feeling brave, try it and tell me what breaks. That's genuinely the most useful thing right now. π Months of manual work, then a full rewrite in a different language, on a different framework, in under a day β by someone who can't write that language. That's not a flex about me. It's a data point about where tooling is in 2026. The hard part of this project was never typing the code β it was knowing what the app should do and checking it against reality. AI took the first job. The second one is still ours. π€ π¦ Tauri version (new): https://github.com/ankurk91/google-chat-tauri βοΈ Electron version (original): https://github.com/ankurk91/google-chat-electron π₯ Download the pre-release: https://github.com/ankurk91/google-chat-tauri/releases π Report an issue: https://github.com/ankurk91/google-chat-tauri/issues π Tauri v2 docs: https://v2.tauri.app π€ Claude Code: https://claude.com/claude-code Unofficial app. Not affiliated with, endorsed by, or sponsored by Google. "Google Chat" and the Chat logo are trademarks of Google LLC. Have you migrated an Electron app to Tauri? Or vibe-coded something bigger than you expected? Drop it in the comments β I'd love to read about it. π
Key Takeaways
- β’π°οΈ Then: I built google-chat-electron by hand, over months, reading tutorial after tutorial. β‘ Now: I rebuilt the whole thing as google-chat-tauri in less than 24 hours β and I did not write the code
- β’This story was reported by Dev.to, covering developments in the dev space.
- β’AI advancements continue to reshape industries β read the full article on Dev.to for complete coverage.
π Continue reading the full article:
Read Full Article on Dev.to βShare this article



