~ Just Vibin' by Pixel and Code
← back
002 / 005 · Live · 2026

AIOChat

All your chats in one place, without the tab graveyard.

Electron electron-store React TypeScript Verdent Vite WebContentsView API Zustand

About this project

I got tired of Alt-Tabbing between five different apps just to have a conversation. WhatsApp in one window, two Telegram accounts in another, Discord somewhere behind that, Slack hiding in the corner — it was a mess. So I built AIOChat, a macOS wrapper that puts all of them in a single window with a clean sidebar.

The interesting bit is the isolation. Each account gets its own sandboxed browser session, so you can be logged into three different Telegram accounts at the same time without them knowing about each other. It’s the same trick browsers use for private tabs, just taken further. WhatsApp, Telegram, Discord, Instagram, Slack — all running independently, all switchable with one click.

Under the hood it’s Electron with native WebContentsViews (not the dodgy tag). That matters because WhatsApp in particular fingerprints the hell out of your browser environment and refuses to show the QR code if anything looks off. Getting it to behave required spoofing navigator.userAgentData, populating navigator.plugins, neutralising window.process, and a bunch of other annoyances that were genuinely fun to figure out.

You can drag accounts to reorder them, add multiple accounts per service, and the whole thing persists across restarts. It ships as a signed DMG for Apple Silicon. It’s not on the App Store as it’s for personal use (between my husband and I).

Details

Type

Passion Project

Stack

Electron electron-store React TypeScript Verdent Vite WebContentsView API Zustand

Key features

// 01

Multi-account per service

Run three Telegram accounts side by side, each with completely isolated sessions and login state.

// 02

Drag-to-reorder

Rearrange accounts in the sidebar however you like; order persists.

// 03

WhatsApp fingerprint bypass

Full Chrome environment spoofing so WhatsApp Web actually loads instead of silently failing.

// 04

Native macOS feel

Hidden-inset title bar, vibrancy, traffic-light buttons, proper window behaviour.

// 05

Lazy view loading

WebContentsViews are only created when you first click an account, so startup is fast and there are no IO race conditions.

// 06

Persistent accounts

Accounts and their sessions survive app restarts via electron-store.

Next project

Story Architect

$ Just Vibin' by Pixel and Code S A S I S
W LI E