Why Steemit Is Awesome For Developers
Imagine if Facebook had an open API where everything happening was completely transparent. Or if Twitter provided a real-time firehose feed to everyone, without any restrictions. It would be the dream for developers.
With Steemit this is not only reality, it's an integral part of what makes the platform run. All posts and actions are stored on the decentralized Steem blockchain.
Steem is a public utility – especially for entrepreneuers. Because it’s a blockchain – and an advanced blockchain with 3 second block times, storage for posts, votes, comments, profiles and follows – it’s an open databse for entrepreneuers to tap into. Whether they would like to build their own social media application or build services that support the apps that have already appeared, the opportunities are unrestricting and we’re beginning to see many entrepreneurs take advantage. - @ned [source]
Open and transparent
The Steem blockchain is the database of Steemit. Whether you read a post, make a comment or upvote a story the actions go through it. Since the blockchain is "hosted" on decentralized nodes you can tap into it and see all events in real-time.
The steemit.com website doesn't have any special privileges or access to hidden data. In theory you could build your own front-end which does the exact same things. I recommend you take a look at the Network tab in your browser and see what calls to the blockchain API is happening as your browse around.
Listening to the blockchain doesn't require any type of authentication. You just jack on your node and start receiving events. This means there's no-one controlling your access and you don't have to worry about breaking any rules or building something that violates some Terms and Conditions. If you have an idea you can just build it.
A common fear for developers depending on third-party APIs is that the API will be shut down or confined. We've seen a lot of big services limiting their APIs and completely destroying businesses in a trice. You're always at the hands of the API provider.
Steem's decentralized nature and blockchain technology make sure this will never be the case. Hard forks can change the algorithm but unless the whole blockchain is compromised there's no risk of limitations ever happening.
Free of charge
You don't need to pay anything to access the data. You don't need to worry about quotas. It's completely free and at your disposal.
Building Steemit applications
The Steemit developer community is already thriving and we're seeing amazing stuff being released every day. Getting started is extremely easy and the barrier of entry low.
Accessing the blockchain
The most common way to access the blockchain is by using any of the public APIs people are providing, e.g.:
Both of these can be accessed directly from the client's web browser, which means you don't even need your own backend when building web applications.
Another popular way of building applications is using @xeroc's Piston tool/library.
Setting up your own node
In case you don't want to be dependent on a middleman you can quite easily set up your own node and API. You need your own server but it doesn't require much configuration and there are several good guides:
@roelandp has a curated list of tools at SteemTools.com and a lot of new projects are being posted in the #steemtools tag. Be sure to add yours!
I love developing Steemit apps and I'm sure there are even more benefits than the ones I've listed above. Let me know in the comments if you have another good argument as to why Steem is an awesome developer platform.
Steemroll.io is an umbrella site for my own Steemit projects such as:
Give me a shout if you have any feedback or suggestions!
Thanks for this. Been looking for references on steem blockchain development for days. Yours is the most comprehensive so far. Great post!
That's cool to hear. Thanks a lot! I'll probably write an article specifically dealing with building stuff as well, with concrete examples and such.
that'd be good. i will definitely check it out.
If you're looking for some code in PHP, I just published some stuff I was playing around with last night: https://steemit.com/steemit/@lukestokes/code-to-analyze-the-top-100-followed-accounts
There's a github link as well to some more code I've posted on and played around with. I hope that helps!
awesome, man. thanks. i will check it out.
woo, I didn't know all these, I already have something in my mind, thanks for sharing.
No problem! Glad to inspire other coders to build Steemit things. :D
Very helpful post. I have just begun to post on steemit so there is so much that I don't know. I really appreciate the links and information.
Yes, the transparency of the blockchain changes everything in my opinion. Very informative post.
Thanks a lot for the post, really helpful.
As a developer myself I look forward to experimenting and playing with the public blockchain APIs. The websocket one looks especially awesome.
Time to strike while the iron is hot ...
is there any examples of how to communicate with backend via a web application say angular or Vue or React???
Wow, that explains it nicely. I wish I was a app developer. seems like a good nich to be in along with steemit
That article was way over my head but i read it anyway. One day this will not be over my head anymore!
thanks for your post. I have lots of Ideas but the developers i work with have not been exposed to block chain.
But they are getting exposed now.
@lantto Where can I download the "./steem.min.js" file?
I want to learn about the API and make some little projects on it, but I can't find much info on how to install.
Great post, thank you for this. It is very helpful for a noob like me!