Today I would like to introduce SteemWatch, the notification center for Steem that I have been working on recently.
About SteemWatch
SteemWatch is a web application that anybody can sign into and start receiving notifications about various interesting events happening on the Steem blockchain. All that is needed is some initial configuration, which is pretty simple and easy. And the gains are great. No need to keep refreshing steemit.com to check for new articles any more, no need to keep refreshing steemd.com to see whether someone has voted for your post. SteemWatch will simply let you know when these events occur.
Long Story Short
It has been already some time since I started playing with Steem using Go. You might have noticed go-steem/rpc, which is a Steem client library for Go, or #steemreduce. But my plans have always been greater, if you can call this project a greater plan :-) Step by step I learned about Steem and how to approach it programatically. And once I had enough time I jumped onto SteemWatch and haven't stopped until now, basically. I am sure I missed tons of great articles on Steemit, but I think that it was worth the effort.
How to Use the Web Application
The notification center is basically divided into two parts:
- In the
Events
section you can tell SteemWatch what events you are interested in. Right now you can choose between user mentioned, story published, story voted, comment published, comment voted. There are various matching rules that can be set for each event kind. - In the
Notifications
section you configure the notification dispatchers so that SteemWatch is actually able to send out notifications on your behalf. Right now only Slack is available as a notifier, but more modules will come at some point.
To sum it up, to make SteemWatch work for you, you need to enable some events by setting one or more matching rules and also enable one or more notifiers (the Slack notifier for now). In case you don't want to receive notifications any more, there is a button for disabling the Slack notifier.
Demo Time
Let's see what we can do with SteemWatch for now.
On the first picture you can see what happens when a new story is published and the Slack notifier is enabled.
Once a story is published, we may also be interested in the votes.
Project Status
I really wanted to get something out so that people can start using it, so I obviously had to trade speed for robustness and code quality. The whole thing seems to work, but don't be surprised in case something goes wrong and some notifications are lost. For now SteemWatch is simply a best effort thing, no durable queues and stuff. When something breaks, SteemWatch will not try to redo the operation. On the other hand, in case SteemWatch crashes, it should still start processing blocks where it left last time.
So, please, be patient with SteemWatch and me as well :-) Any feedback is greatly appreciated as well.
Issues and Bugs
In case there is an issue, the best thing would be to open an issue directly in the source code repository. In case you don't have a GitHub account, you can also visit steemwatch
channel on Steem Slack.
Technologies Being Used
SteemWatch is written in Go on the backend (using go-steem/rpc and some parts of #steemreduce ). The front-end part is implemented in Angular 2 using TypeScript. MongoDB is being used to store data since I didn't find any use for a relational database, at least for now.
Supporting the Project
Even though this is a pet project of mine, I am investing quite some spare time into it along with resources to have the system running online. In case you like the project or you are going to be using it, consider upvoting this post or even sending some STEEM to me directly. Any support is greatly appreciated.
There is also space for sponsoring new features of SteemWatch and use STEEM for that. Let's use STEEM as a real currency at last! Just let me know on Steem Slack in the project channel or just PM me.
In case you want to support the project using your programming skills, the time will come when this is possible for sure. For now there is so much technical debt that I really need to spend some time refactoring before anybody else can really contribute.
Future Roadmap
Not too much time, but I am going to give it my best, so:
- Improve logging so that I can actually see clearly what is wrong when something is wrong.
- Introduce more event kinds, particularly to receive a notification when you are @-mentioned in an article or a comment.
- Distinguish between content created and content edited. Right now there is no distinction so you can experience multiple notifications for a single story.
- Keep improving the code base.
- Keep improving anything according to the feedback from the community.
- Have fun and be happy because I am finally working on a project that makes sense.
We have donated 500 STEEM to you on behalf of the SteemServices project. Glad to see some integration with Slack!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Yay, thank you. Used it to power up for the first time :-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
love to see people like you @steemservices that support the community and their development!!!
STEEM ON !
love GOD love EACH other <3
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Slack is constantly beeping for me just now as SteemWatch is sending notifications for this post being upvoted. So it is empirically proven that it works, and also thank you very much for all the upvotes :-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
steemd.com
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This looks very cool! I will try it out; thanks!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This is great
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This looks awesome! I'll be using it for sure!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I was able to get this working; thanks!
I did notice that on the Slack page, when you are setting up the Incoming WebHook, there is a choice of channels to post to. Not being all that familiar with Slack, I looked at that list a minute, before realizing the first choice is
Which I guess is really the only place you SHOULD be posting to! Maybe mention this somewhere in the docs, for other Slack Noobs. Or maybe its just obvious! :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Glad to hear that :-)
The fact that you should post message privately to you is somehow mentioned in the Slack notifier section, but I guess I could make it more obvious at one point. Thanks.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
And also nobody is actually saying you cannot create a chat root for you and your friend and set up common notifications. I could for example start watching for #steemwatch tag and insert interesting content into SteemWatch channel on Steem Slack so that everybody can see that. Which actully makes me think that just a single integration per service won't really do in the future...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Awesome to see a notification system being worked on!!! I couldn't have asked for more :')
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
great initiative!
there's a telegram bot for people without slack too (search for noteefi)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I was just thinking about this yesterday so thank you.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
The site seems to be down. A 504 Gateway Time-out error is displaying.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I am on it, sorry for the inconvenience!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Fixed temporarily. The machine seems to be running out of file descriptors.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Actually it should just work now. The limit was simply too low, which should be fixed now.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit