Repository
https://github.com/jrawsthorne/livesteem
Introduction
For the past few weeks I've been playing with the possibilities of hivemind and one I came up with was a live chat app. Last week I created a poll on dpoll which showed that some people liked the idea and would use such a thing. The following is what I've come up with so far and how I plan to develop it in the future. The current version is live at https://livesteem.jakerawsthorne.co.uk so give it a try and see what you think
What is the project about?
The project is a new STEEM interface unlike any that exists currently. The idea is very simple, a chat interface that you're used to that is powered by the STEEM blockchain.
You can login with Steem Keychain using the login button at the top right. Just enter your STEEM username and confirm with keychain.
Currently, there is a root post and all direct comments on that post show up as messages in the interface. I plan to expand this in the future.
You can also write a new comment in the box at the bottom and it will appear after Steem Keychain has broadcast the comment on the blockchain. Other users will see it after it has had 1 confirmation on the blockchain.
Technology Stack
The frontend is written in react with nextjs. As the backend is a graphql server, apollo client is also used on the frontend for queries, mutations and subscriptions. I've also incorporated the new hooks feature of react using a wonderful library called react-apollo-hooks. Steem Keychain is also used for authentication although there are currently no server side operations that require authentication.
As mentioned, the backend is powered by graphql using Hasura on top of the postgresql database created by Hivemind. You can find out more about how this is achieved here
Roadmap
- Different channels, potentially based on steem tags
- Upvotes integration
- Inline replies like slack
- Images, videos, emojis etc
How to contribute?
The project is open source on github so you can submit pull requests and issues there. I'm looking for suggestions for new features as well as someone with the css skills necessary to create a nice looking chat interface.