I was inspired to build Signals after moving to a new city and finding it hard to connect with new people. It occurred to me that I pass the same strangers every day who share my interests and hobbies - we live in the same building, go to the same gym, enjoy the same cafes or play the same sports. Despite an epidemic of loneliness, crowded cities and all of us carrying devices which constantly broadcast our location to private companies... it seems harder than ever to connect with one another in meaningful ways. Signals presents an opportunity to re-think social media to put connection at the heart.
What it does
Signals is built as a DAO, meaning that its users control how it operates and are incentivised through the Signals Token to interact with the map and maintain the quality of the data. Currently it supports leaving three types of signals - Chats, Trades and Events. Any user with sufficient tokens can see the state of the system, and make proposals on how Signals should be run.
Some ideas of how to use the Chat Signal:
- Finding a language exchange partner
- Meeting someone to play sports with
- Searching for a lost connection... someone who's number you regret not asking for
- Communicating and organizing with neighbors
- Creating a public forum page for your business or cafe
- Reporting incidents, repairs and local infrastructure problems
- Looking for lost pets
Signals also supports the Event Signal. You can use this to broadcast an event taking place - maybe a talk, meetup, party, book launch or anything really! There's also the option to make the event ticketed and to set the number of available tickets.
With the Trade Signal you can list goods and services for sale, the way you would on Gumtree or Wallapop. Perhaps you're looking for a cleaner, nanny or teacher, leaving a trade signal is the perfect way to find someone. It also encourages people to buy second hand, which is good for the planet.
How I built it
I decided to build this in Rust, as I really wanted to learn and improve in this language. I also used React, Typescript and Leaflet.js for the front-end. I knew there would be so many features I wanted to add, so I spent a good proportion of time in the planning stage, coming up with and MVP and using wireframes to know where to focus my efforts. I also used Kyle Peacock's Webpack starter kit which was sooo useful <3
Challenges I ran into
It was a challenge just to get the whole thing finished in time, and to not let the scope creep too much that it wouldn't be useable or finished. I was also very aware that communicating the idea and the necessity of it was vital, so working on the branding, marketing and copy was new to me.
Accomplishments that I'm proud of
I'm proud that I finished it, and did everything myself. I even managed to squeeze in a few extra features like ticketed events (buying and checking tickets) and searches (both searching signals and functionality to search for places on the map itself)! I've built something that I'd actually use, and that when I speak to people I hear they are missing something like this in their lives - so I'm proud of the idea as much as the code!
What I learned
I've learned so much about Rust, working with maps, and of course the Internet Computer. I really loved developing something completely decentralized. I've learned a lot about the ICP ecosystem <3
What's next for Signals
I'd like to integrate a DAO Launcher into the app, to allow users who have discovered each other to easily launch templated DAOs to govern their communities, spaces or projects. But I have many many other ideas for it, which you can see over on the Github Page.
I'd love the opportunity to develop these ideas further, and implement a production ready version of this app. I've loved building on the ICP and have felt very inspired by the idea of building a completely decentralized application. Thanks so much for reading if you made it this far. I'm always very happy to hear feedback and of course - to make new connections - so feel free to reach out.
Who am I? I'm a full stack developer, I've worked helping to build a 3D graphics library, a blockchain and most recently building backend and payment systems for millions of users at Sketch. I'm really passionate about trying to use blockchain to solve real world problems, and building beautiful products which benefit people. I'm currently in the process of turning my ideas into something more concrete, I hope to find a path to be able to sustain myself building in this space... so, if you know of any, or want to link up, let me know. You can find me on any of these links.