Show HN: Actual Chat – Blending text and voice into a single medium
Hi HN, I’m Alex, co-founder of Actual Chat (https://actual.chat). We build a chat platform that blends text and voice into a single medium. Ultimately, we believe it's our responsibility to handle the transition between what's convenient to produce and what's convenient to consume. We want to make communication more productive, convenient, and less stressful.

Actual Chat is quite new — we launched silently just 1.5 months ago. Currently it works well in P2P / family / small group communication scenarios but lacks some features that are desirable for larger groups — “Places” (think Discord servers / Slack companies) and threads in particular. On a positive side, we did a lot to make our app is easy to extend, so these gaps won’t stay intact for long.

Your feedback is highly appreciated, especially if you end up trying the app. You can find it on the AppStore, Google Play, and Windows Store by searching “actual chat” there (there are links on our website as well). The web app is almost as capable as the mobile versions, but the experience it offers feels much more valuable when you’re on mobile. So if you can, try it on mobile.

If you are interested, below is our story + some technology-related details.

— Our story —

It started around 2014. I was the CTO of a startup, which had just gone through its Series A. Most of our developers were remote, so Slack was our primary communication channel. It worked decently well, except for a few things:

- Many SaaS products are feature-rich, leading to longer conversations regardless of the topic. And postponing a discussion is difficult at this stage: whatever pops up is urgent.

- 10+ hours difference with developers means you frequently respond on mobile, where texting is painful. And calls outside of certain hours are rare: the default assumption is that it's inconvenient for one or another participant. Moreover, many discussions are incident-related (infrastructure, bugs, processes, etc.), so it's crucial to ensure everyone involved is on the same page, making text communication preferrable.

That’s when I started thinking it would be cool to have a chat platform where deciding between texting or talking wasn’t a dilemma, and the context was preserved regardless of the communication method. And it quickly became clear it goes far beyond just work-related talks:

- There are numerous situations where talking would be preferable, but texting is the only option. E.g. late evening text replies are quite common.

- Service calls are a disaster, especially in U.S. — the wait time, the robots, the follow-up calls with necessity to repeat literally everything…

- Even frequent exchanges like, “Hey, I’m heading to Costco, need anything?” where the follow-up is easier spoken than typed, or may require a brief brainstorming - “Oh, remember our neighbors are visiting us on Sunday?”

That’s how 8 years later (2 years ago) me and my co-founder decided to implement a new chat app.

— Technology —

To make it short, I’ll post just one point here: Actual Chat is based on Fusion (https://github.com/servicetitan/Stl.Fusion) - think MobX / computed observables, but distributed. In Actual Chat, the state it manages spans from our servers to every client app, creating an eventually consistent “state mesh”. The unified state management, where clients and servers use exactly the same abstraction to “observe” the changes happening to any bit of content, is quite a challenge from the technology standpoint. IMO it alone deserves a brief look.

P.S. Thank you for reading up to this point!