SAFE Developer Hub (

To support developers MaidSafe is also introducing a new site, called the SAFE Developer Hub available at It will be the location for information about applications being developed, provide advice and guidance on the technical framework for the SAFE Network and its APIs. Combined with the SAFE Network Developer Forum, the SAFE Developer Hub will enable developers to share ideas and expertise to improve the effectiveness of application development.

The Portal will focus on three key areas:

1.Consolidating information: MaidSafe will create a landing page for all topics related to development. This will guide users through key aspects of the SAFE Network such as the Authenticator, Vaults and the network flavours of local, mock and testnets.

2.Clearing pathways for developers: The site will start out with a bootstrapping guide focusing on four key areas: understanding the SAFE Network; Developing on the platform; Testing applications; and deploying applications.

3.Preferred programming language/platform: Developers can easily access their preferred platform and programming language via icons on the site and link to each of the GitHub repositories for each of the components. It will also have links to the RFC’s (Request for Comments) and information about licensing and the various defensive patents MaidSafe has in place.


Should we post any comments / corrections / suggestions here or is there another place?


Another correction that should be made is on the “Develop” page:

The Network Types section has 3 cards for Mock Routing, Local Network, and Actual Routing. All 3 cards say the same thing about mock routing.

Also, just a wee nitpick, the Data Types section at the bottom says

The SAFE Network provides two data types to store and retrieve data Mutable Data and Immutable Data:

I think there should be a colon before “Mutable Data” to give the reader a break, but also my suggestion would be that you don’t need to list them there, because the cards underneath them are titled anyway. So, I think that

The SAFE Network provides two data types to store and retrieve data:

would be fine, since the cards underneath the text will actually name and describe both types.

Apologies again if I sound really nitpicky and critical, I think this developer site is a fantastic idea and will be a great resource :smiley:


should be fine to post here too if it’s easier. I’m sure @Krishna @bochaco @Shankar will be keeping an eye here too.


I spotted those too - and a few others which I PM’d to @dugcampbell and @SarahPentland. Not sure who is in charge

1 Like

OK - I’ll put them here!



Network-wide sign-on

You don’t need to roll-your-own account management solutions, users log in once at the network level. With SAFE you have no passwords left to lose!

Suggestion. This reads strangely. How about:

You don’t need to roll-your-own account management solutions, users log in once at the network level. With SAFE you have no more passwords to lose!

Suggestion: The link in the top toolbar is “Core Technology” but the page it links to is headed “Core Developer”. Core Technology would seem to be the better title. It should be one or the other.

The Community link in the Toolbar is to Safedev forum but the Community link in the bottom bar is to Safenetforum. I would have two links in the bottom bar, one to each forum, ore else just one to the Safedev forum.


Crust is a low level networking library (and protocol) much like TCP, UDP, etc. but optimized for peer-to-peer connections and

Change optimized to optimised

Sits on top of Crust, this is our overlay networking and routing layer and forms the brain of the SAFE Network. It aims at forming a decentralised Internet and routing information within it.

Slightly strange wording, maybe:

Routing sits on top of Crust. It is our overlay networking and routing layer and forms the brain of the SAFE Network. Its purpose is forming a decentralised Internet and routing information within it.

SAFE App is the component that provides access to SAFE Network for frontend Apps in a user friendly way via FFI.

Hypenate ‘front-end’ for consistency

Self-Encryption is based on the convergent encryption algorithm. It produces the same encrypted output for the same plaintext input. This property allows to deduplicate files on the network level. Files are split up into multiple chunks, stored on the network at the same predictable location, based on the encrypted chunks’ hashes.

This property allows to -> This property allows us to
deduplicate files on the network level -> deduplicate files at the network level

The result of the encryption process is a data map that holds keys to the encrypted data chunks and is stored securely on the network.

Question: I though the data map was stored on the client??


Firebase. But these are centralized solutions that you

centralized -> centralised

What’s more, securing your users data is built right into the network.

users -> users’

specific containers or Mutable Datas and you’re off.

Reads strangely. Mutable Data files, entities, items… ???

Before browsing on the SAFE Network, users need to create an account via the Authenticator application.

Question: Is this true? Surely you can browse without an account? I think it should be 'Before storing data on the SAFE Network or using an app

The Authenticator, enables users to securely authenticate themselves onto the SAFE Network

Delete comma after Authenticator

registers their own safe–prefixed url-scheme. The process for authentication is as follows:

registers its own safe-prefixed url scheme. The process for authentication is as follows:

The application can create its own container, and request access to default containers or other applications’ containers through the authorisation request.

Delete comma after container

Network carousel
Missing content: Local Network and Actual Routing both have the Mock Routing blurb

Suggestion: Local Network - Should include a link to

Suggestion: Mock Routing section should link to info as to how to set the Mock Routing flag or download the appropriate version of the browser.

The SAFE Network follows a common pattern of providing default containers for storing different types of user’s data.

Change user’s to users’ or simply user


By the way the SAFE Web App Tutorials look very good. Are there plans to do any more? As a suggestion, I think the process would be even easier to understand with the inclusion of the graphic of the authentication process that @bochaco used in his presentation.


Yes that one…! :+1:

1 Like

Normally no, applications store data maps on the network.

But in theory someone could create an app that stores only chunks on the network but keeps the data maps elsewhere. It could be useful for super paranoid users who don’t want any traceable links between the chunks.


Yes I think I was confusing myself there!

Yes, self_encryption is an independent crate that allows this. There is even an example that works completely outside the network and stores both the chunks and the data map in files on the local disk.


Another minor thing: MondoDB should be MongoDB


I think it is still missing something; it shows how to create a new mutable data object and manipulate it using the handle returned during creation (mdHandle), but it doesn’t show how to store this handle and retrieve it on subsequent uses of the app. I think I was told the way to do that was with serialization of the MD?

The link to gives a 404.

The scrolling seems off. It sometimes doesn’t respond (might be my erratic scrolling behaviour) and refreshing the page causes to be scrolled back up.

Great website overall!

1 Like

Hi @bzee, we renamed the app_developer page to start_developing page as to make it consistent with the main nav link.

Please try with

1 Like

This looks great.Cant wait to get some time and have a good look at this

Ah, I see. The homepage still refers to the old link under ‘Build your idea’, which is how I got there.


Yes, you can browse without an account, so this excerpt must be rephrased like you suggest.

Hi @bzee, we fixed this issue in this PR

1 Like