Writing a blatant Telegram clone using Qt, QML and Rust. And C++

One dev tries to clone Telegram in a weekend — fans swoon over the look, geeks brawl over tools

TLDR: A developer tried to recreate Telegram’s polished chat app look, hit tool headaches, and paused the project. Comments erupted into a UI love fest, editor wars (Qt Creator vs VS Code), and wild pitches for decentralized “torrent-style” chat—underlining the clash between beautiful design, privacy goals, and real-world dev pain

A lone coder set out to copy Telegram’s slick chat app vibe using a mashup of tools, then promptly hit the brakes—cue the internet peanut gallery. The dev gushes over Telegram’s design, gripes about slow builds, and ping-pongs between tools while dreaming of a Matrix-powered future. The crowd? They showed up with feelings. One top comment crowned the holy trinity: Telegram for looks, Signal for privacy, WhatsApp for everyone, turning the thread into a beauty vs. safety vs. popularity showdown. Another replied, essentially: let’s tear it all up and make a torrent-style chat so friends host their own servers. Chaos energy.

Then came the tool wars. One camp cheers, “Qt Creator forever,” dragging VS Code for tripping builds. Another piled on with JetBrains’ RustRover woes: everything rebuilding twice like a bad time loop. Meanwhile, a designer crowd chimed in to stan QML (a UI language) as “a joy,” dunking on Microsoft’s XAML for being wordy, with whispers that Slint (another UI system) might be even better.

Between jokes about becoming a “Full Stack Film Developer,” the drama boiled down to this: people love Telegram’s feel, hate the dev grind, and dream of a privacy-first, self-hosted future. The clone didn’t ship, but the comments absolutely did — with memes, tool beef, and big ideas

Key Points

  • The project aims to build a native Telegram-like desktop app using Qt/QML with Rust.
  • Initial work used cxx-qt for full Qt access but encountered slow builds due to expensive code generation.
  • VS Code’s cargo check behavior differed from terminal usage, causing cache invalidation and rebuilds.
  • Switching to qmetaobject-rs enabled immediate QML rendering and faster build times.
  • Hot reloading remains a key unmet requirement; the project was paused after limited progress.

Hottest takes

"Telegram: Best UI. Signal: Best privacy. WhatsApp: Largest userbase." — ekjhgkejhgk
"I can't abide VSCode." — LorenDB
"It would be great to create a torrent like protocol for chat." — dev_l1x_be
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.