Nacre: Stream commandline output to the Web

Example Nacre data feed

Website Source

Some time ago I stumbled upon seashells.io through HackerNews. The application lets users pipe commandline output to the Seashells backend and view the output in realtime via a shareable link.

For a long time the underlying server code remained closed-source. I appreciated the utility of the application but felt uneasy about piping personal data to a closed server (over an unecrypted TCP channel, nonetheless!). I jotted down “Write open-source implementation of seashells.io” in my projects log and forgot about it, as one does.

Towards the end of my sabbatical from working at Amazon Pharmacy I rediscovered the project and decided to give it a go in Go. WebSockets were new to me, and spinning up a TCP+HTTP service in Go seemed like a good way to brush up on the basics for the upcoming job hunt.

As chance would have it, shortly after I completed the project the “official” Seashells server was open-sourced!

Introducing nacre

I built and deployed nacre to complement @anishathalye’s original work on Seashells. The server code can be found on GitHub, as can Anish’s original implementation. See the project website for usage details and examples.

What’s in a name?

Nacre is another word for mother-of-pearl, the inside (“source”) of some Seashells.