
Show HN: Toc Messenger – A distributed messaging app that syncs - lewisl9029
http://toc.im
======
lewisl9029
Hi HN,

Toc is a project I've been working on for more than a year now. I'd love to
hear what you guys think about it. =)

Toc is a proof-of-concept distributed messaging app designed from the ground
up to support user data synchronization for use across multiple devices. It
uses Telehash for its messaging stack, and is built on top of an Om-inspired
architecture oriented around a central app state tree, that gets encrypted
using a custom encryption layer for persistence locally, and then synchronized
seamlessly between devices using remoteStorage.

Originally, Toc started as our group's fourth year Computer Engineering design
project at the University of Waterloo. After we graduated in May, I wanted to
polish it up a bit before releasing, but evidently went a bit overboard and
ended up working on it for another six months (albeit with a healthy dose of
procrastination sprinkled throughout that period).

There's a more thorough technical overview and project history on the GitHub
page if you're interested in more details:
[https://github.com/lewisl9029/toc](https://github.com/lewisl9029/toc)

Toc is only a proof-of-concept, and has a list of awful issues that makes it
rather unsuitable for long term general use. However, I'm hoping that by
releasing Toc, we can bring more attention to the awesome technologies for
building great decentralized applications that Toc uses, and inspire more
developers to take another serious look at building distributed apps, as I
hope we have demonstrated with Toc that a decentralized app can in fact have
great UX if you design your apps with UX in mind from the start.

With that said, I am now officially looking for work. If you have any openings
for a ClojureScript frontend project, or a React project that makes heavy use
of functional techniques and immutable data, I'd love to hear about it. You
can reach me through the email on my GitHub profile[1], HN profile[2] or
through my Toc account[3]. ;) (disclaimer: that last option might not be
completely reliable)

[1] [https://github.com/lewisl9029](https://github.com/lewisl9029)

[2]
[https://news.ycombinator.com/user?id=lewisl9029](https://news.ycombinator.com/user?id=lewisl9029)

[3]
[http://toc.im/?inviteid=9b0d50b86dd596aa8c7a94bd116c2ed4a24f...](http://toc.im/?inviteid=9b0d50b86dd596aa8c7a94bd116c2ed4a24ffb0f2d88d44231d3747f655fb27a)

