An attempt to implement a BBS based purely on a decentralised technologies
This is my first actual attempt to participate to a hackathon, so I decided to go for a fun project instead of competing for any prizes.
This is an attempt to implement a 90s BBS vibe using decentralised technologies.
Users connect with their wallet, and then there is a Forum section where users can post their messages and a chat section where they can talk to each other. I also planned to implement a files section, but the implications were too big for a hackathon project so I decided to leave it for another time.
My background is in infrastructure and backend so this was the first time I did anything with js/react/etc so I used Cursor to write most of the code. My only involvement was to figure out how the waku SDK actually works, since the docs/examples and the actual SDK don't really match.
In the end, I didn't do as much as I wanted since juggling the having a full time job and a family with kids did not leave much space for the project. At least I had some fun!
The UI is next JS/react, using wagmi and rainbowkit for the wallet authentication. The core of the project is waku, which is used as a messaging bus for all components.
Chat is straightforward, all users produce and consume the same topic and the messages are displayed on the screen. I started with that so I could get a feel of how waku works and how to get the SDK to talk to the network.
The Forums section took things to the next level. There is a waku topic that publishes thread details. All users subscribe to it and they can see what threads have been created, or create their own.
When a user clicks on a thread they get the messages. Each thread has its own waku topic where the message metadata are published (who/when/subject). The actual content of the message is stored on EthSwam using the bee-js library and their public gateway (no stamp needed for files up to 10MB).

