What is?

<fireflies> is a decentralized, TUI (Terminal User Interface) based, messenger that allows communication between multiple clients via the local-network. The idea was born during the preparation for the 8th –SAAR-HACKATHON– and has been partially implemented over the course of two days.

While having fun is always one goal during hackathons, we also saw this idea as a chance to build something with emotional depth. Technology can preserve memories, but what if we choose to let them fade? <fireflies> lets you communicate and share without leaving a trace - only a fleeting artifact shall remain.

Details

As of right now, it is only a MVP that serves as a proof of concept :D This page might update with further project progress.

(MVP) Functionality and Architecture

Go + –BUBBLETEA–

Executing <fireflies> creates a user session, which serves as a client. Each client is able to host its own hub within the local network. hubs are based on websockets, which allow for two-way communication and run within their own go-routine. This project, in general, uses a lot of concurrency. Clients are capable of

  • hub - hosting, broadcasting, discovery and
  • text based communication within hubs

at the same time. To send and receive messages one needs to join another hub through discovery, while discovery is only possible if the other hubs owner is broadcasting. The lifetime of a hosted hub is tied to the created user session (or optionally the kill command), which allows for temporary, decentralized local communication networks.

Future work

We aim to continue our work during the next iteration of the –SAAR-HACKATHON–, which might include:

  • a public repository - once our codebase is actually clean :D, we seriously need a more grounded API between TUI and backend
  • a demo
  • vaults - temporary storage for file exchange
  • minigames? [¬º-°]¬
  • network graph rendering
  • > try clicking the logo, maybe more than once