Steem for web developers

I have been developing and learning, exploring Steem blockchain for some time now and have implemented few mobile applications as well as web applications. The more I learn and develop the more I get excited about future and possibilities. There are a lot of resources and blog posts about Steem blockchain and how it works, it is easy to get overwhelmed in a sense that economics and technological advancements are complex and wide. In this article I attempt to explaining Steem from a web developer’s point of view.

If you are a web developer, you know how a web sites and apps with it’s client server architecture works at a very high level.


Traditional web development structure

As you can see in above diagram, there are three layers in general. Bottom layer where all the data is stored in database and middle layer where you process data coming from top layer as well as bottom level. Top layer is user interface, website, mobile app, webapp, etc. what actual user sees.

Database in traditional web apps is private and mostly can be accessed from one source how service provider chooses to present it. These data is not fully transparent and censored, violate user's right in some cases. Now let us look into how web (d)apps would look like with Steem.


Steem web dapps

Second diagram is slightly different if noticed. Bottom layer has Steem distributed database that is open and transparent. Businesses that are utilizing this data will have their own private database. This private part of data mostly used for user's privacy and some internal operations. Although one can avoid using this by completely storing everything on Steem blockchain, it is not scalable in long term and brings unnecessary blockchain bloat since most of these data is temporary (not permanent).

Middle layer, is where we have intermediary libraries to interact with Steem blockchain. Just like we have in traditional web development. Used to process incoming and outgoing data for better performance.

Top layer is as usual what actual user sees, just like here on Steemit/Busy/eSteem. These are front-ends that gives user ease of usage and interaction through Steem Blockchain. There are more than 100 tools/services that is processing Steem data in many different ways and building Steem web dapps.

Differences are not that big if you are a web developer, you should be able to quickly grasp and build web dapps.


To build web based dapps, you can use handful of libraries Piston Steem, Steemjs, Steem.js, go-steem which connects to your blockchain node and fetch/submit data. So you can just include this library in your famous js framework like angularjs, reactjs, etc and start building.

Reputation, fast block times (3 seconds), custom operations, internal market, social features, account histories, etc. many of these features can be utilized to build numerous dapps. There are lot of details about the inner workings of the blockchain which I haven't covered in this post. Hope this post gives a good high level idea of what Steem is and how it can be used to build decentralized web and mobile applications.

I plan on writing more posts/tutorials on dapp development on Steem this year. Follow me @good-karma! Thank you for ever growing brilliant Steem community developers @xeroc, @fabien, @furion, etc. and many more to come!

Please leave a comment, feedback, questions below. Thank you for reading!


Further Reading:


Vote witnessgood-karma#20

H2
H3
H4
3 columns
2 columns
1 column
18 Comments
Ecency