To get started deploying a site on Skynet, create a folder with an
Uploading a site to Skynet using the siasky.net uploader
This works for static sites, along with client-side rendered Single Page Applications. Check out our Skynet Introduction Workshop for a more in-depth walkthrough.
"homepage": "."to your
package.jsonbefore you build, then just upload your build folder!
Official Documentation and SDKs
- SDKs –
SDKs marked with * above are partial implements – only
skynet-jsimplements the registry, SkyDB, MySky, and resolver skylinks. It is our recommended SDK for the time being.
- Load skynet-js Gist –Code snippet for loading
skynet-jsin browser, without build tools and without relying on a specific portal.
- Deploy to Skynet Github Action – Github action that deploys a directory to Skynet and comments on pull request with a skylink url. See Automated deployments on Skynet for using with Handshake.
- SkyDeploy – Command-Line Tool for easily deploying web apps on Skynet and setting the skyns records to point your HNS domain to the new version
- Upload2Cloud – Windows Explorer integration for sending files and directories to Skynet. Python script available.
- Skystandards – A proposal for data standards to be adopted in Skynet applications in such a way that users can share and use their data in different Skynet apps
If your website is structured to be client-side, then hosting it on Skynet is straightforward. If not, it is likely your website will need to reconsider some parts of its architecture to be fully-functional on Skynet.
If you're considering developing on Skynet, take a look at the Skynet Guide's Skynet Basics section to learn some basics or reach out on our Discord server in the
Many of these will be incorporated into our Developer Guides, but in the meantime, some things to keep in mind:
- For skapps, it's best to use and link URLs that are a subdomain of the portal domain. That means either using an HNS name as a subdomain like
<skapp>.hns.siasky.netor a Base32-encoded subdomain.
- If linking to code host on Skynet that is external from your project, you should use immutable skylinks when possible so that later updates don't risk breaking your code.
- To be a proper "skapp," your application shouldn't rely on external, centralized services to function. This means external requests to APIs for on-network storage or computation that would make your skapp's data not interoperable with other skapps. Web3 apps that use wallets to interact with blockchains are a good example of relying on external, decentralized services.
- Do not hardcode a specific portal domain into your code! This can be helpful for local development, but be sure to remove this before deploying to Skynet. Otherwise, the code is forced to use a portal other than the one it is being served from and works against the decentralized design of Skynet.