I’ve been looking into blockstack recently and was wondering if anyone could explain or send me resources about how exactly applications in blockstack are run client-side. My understanding of client-side applications is that the client needs to download that application so that the application is actually on the client’s device. When I go into the blockstack web browser on google chrome, though, I’m not actually downloading any of the applications.
My understanding is that this is an important feature of blockstack because it means that the user never has to send out their data to run applications if they’re run client-side, but I don’t understand how this works.
If the business logic is running in your web browser, then it’s client-side. Your data gets loaded and stored to Gaia, and is encrypted before it leaves your device to ensure privacy.
I still don’t understand how this works. Could you send me some resources on how this is done, specifically with how blockstack is different than typical applications in this aspect, or even just point to a place in your code where this is done?
Correct me if I’m wrong, but my understanding is that the browser loads the application logic from some server like it does anywhere on the internet, but then the business logic (i.e. reading and writing to the user’s data) is only performed in the browser.
Also, does running applications client side effect efficiency? It seems that requesting data from multiple places would make programs in Blockstack slightly slower than traditional applications.
Have you checked out our documentation and white papers already? Those are the best places to start:
I’d note per your first comment in this thread that the Blockstack Browser itself doesn’t download any applications; it just links to them. They will download once you visit them e.g. https://app.dmail.online/
Thanks for getting back to me. Yes I’ve read your white papers and checked out some of your documentation. Your white papers, as with most white papers, don’t go into detail about how exactly your technology works which is why I’m here.
I think I’m starting to get a grasp of how applications run client-side, but if there’s any areas of the documentation I should specifically look at, or other helpful resources you could send my way that would be great.
I’d suggest this section of the documentation in particular:
Have you tried following those instructions to build your first app?
It may be helpful to refer directly to the blockstack.js documentation as well: https://blockstack.github.io/blockstack.js/
Thanks for sending. I completed the tutorial and now feel like I have a pretty good grasp on it.
Another quick question. I was recently introduced to server side rendering as a way to make web apps load quicker, be more seo friendly, etc. If blockstack apps run client-side then is server side rendering impossible with blockstack apps?
no, because SSR simply renders the webpage.
the webpage should still be doing the sign-in, file handling, etc. logic after it’s rendered. blockstack.js stores things in the localstorage anyways which is not usable by the SSR application.