Overview
Telknit is a chat app for people who miss the internet of AIM and IRC, built on Matrix, the open and federated chat network. Matrix is powerful but hard to get into, and Telknit's job is to make it feel friendly: a strict Windows 98-era visual language, spaces with text and voice channels, and the small touches of old chat apps like nudges, call rings, and voicemail. It's live at telknit.com with a small group of friends while I keep building and testing.
Key Features
- Spaces and channels: Text channels, voice channels, and pages (posts with per-post comment threads), organized into spaces.
- Voice, video, and screen sharing: Real-time calls through LiveKit, with noise suppression, live call rings, and voicemail when nobody picks up.
- End-to-end encryption: Encrypted rooms and DMs, with a plain-language privacy doc that says exactly what is and isn't protected.
- Federation without lock-in: A Telknit account is a normal Matrix account. You can join rooms on other servers, and you can open your account in any other Matrix client at any time.
- Threads, emotes, and roles: Matrix threads with unread badges and deep links, custom space emotes, Discord-style role grouping with custom colors, and role pings.
- Moderation: Per-channel slow mode and space-wide word filters.
- Push notifications everywhere: Web push, Android, and iOS, including the awkward cases like notification taps that arrive before the app has finished syncing.
- Every platform: The web app, Electron desktop apps for Windows, macOS (signed and notarized), and Linux, and Capacitor apps for iOS and Android with native push, badges, and deep links.
Architecture
Telknit itself is a stateless Next.js app with no database of its own. Everything persistent lives in a Synapse homeserver backed by PostgreSQL, and LiveKit handles real-time audio and video. I run both on a VPS.
Telknit-only features ride on namespaced custom events (com.telknit.*) layered over standard Matrix, so other clients degrade gracefully. If someone calls you from Telknit while you're on Element, you don't get a ring you can't answer. You get a voicemail and a plain-text note that they tried to reach you.
How I Built It
I designed the architecture, the visual design language, and the user experience. Claude Code wrote most of the code under my direction. Telknit is where I took what I learned building HomePageAgain and tightened my agentic workflow: work split into small, scoped passes by area (threads, push, roles, moderation), each one checked against a device-testing checklist before it ships.
Technical Highlights
- Next.js 16, React 19, TypeScript, and Tailwind CSS 4
- matrix-js-sdk with MSC3440 threads and MSC2545 image packs
- LiveKit for voice, video, and screen sharing
- Web push, FCM, and an APNs-to-FCM bridge for iOS
- Electron desktop builds in CI for Windows and Linux, with signed and notarized macOS builds
- Crash screen and client error beacon for observability
- Virtualized member list rows for large spaces
