iPhone showing a messaging app conversation
← Blog·Announcement

Introducing Knotos — Tied Together, Always

V
Van Thuong Dao·May 3, 2026·5 min read

Today we're launching Knotos — a real-time messaging and calling app for iOS. This has been a solo engineering project built entirely from scratch: SwiftUI client, NestJS backend, Socket.IO realtime layer, WebRTC calls, and the infrastructure that holds it all together.

The name comes from the idea of a knot — two threads tied together. The logo is two interlocking rings forming an infinity symbol. Connection that lasts.

Why another chat app?

Existing apps are either bloated with features nobody asked for, or stripped down to the point of being useless. Every major chat app tracks you, sells your data, or buries the core experience under ads and algorithmic feeds.

Knotos does one thing: keep you connected to the people who matter. No ads. No feeds. No surveillance. Just chat and calls, done well.

What's included in 1.0

  • Real-time messaging — instant delivery via Socket.IO with read receipts, typing indicators, replies, and message pinning.
  • Voice & video calls — 1-on-1 calls powered by WebRTC (stasel/WebRTC 147). Low-latency, peer-to-peer audio and video.
  • Voice messages — record and send audio notes with waveform visualisation and in-line playback.
  • Rich media — share photos, videos, and files. Link previews with OG metadata fetched server-side.
  • Group chats — create groups, invite members, set a group photo, pin messages.
  • Contacts & discovery — find friends by username or phone number.
  • Privacy controls — hide last seen, control who can call you, block users.
  • Saved messages — a private space for your own notes, links, and files.

The stack

The iOS client is pure SwiftUI with MVVM architecture. The backend runs NestJS on Node.js with MongoDB for persistence, Redis for pub/sub fan-out and presence, and MinIO for object storage. Socket.IO handles the realtime layer; WebRTC handles peer-to-peer calls.

Everything runs in Docker behind Traefik. Auth uses JWT with bcrypt-hashed passwords stored securely, and tokens live in iOS Keychain — not UserDefaults.

Knotos is available now on iOS 16+. Download on the App Store and join the early community.

What's next

1.0 is the foundation. On the roadmap: Android client, message search improvements, disappearing messages, and end-to-end encryption. We'll write about each of these as they ship.

Thanks for being here at the beginning. If you find a bug or have a feature request, email vanthuong.dao2004@gmail.com or use the in-app report function.