A SAFE Blog App (based on Solid/LDP) - how should it work?

I’m working on a port of a simple Solid blog app called SolidBlog and would like some feedback on how it should work.

This app doesn’t exist yet, so don’t try following any links!

The area I’m not sure about is how a user creates and published a blog, where they go to create it and how to create the URL for others to visit it.

So let’s say that to create a blog you:

  • log into your SAFE account
  • you visit the app at, say safe://solidblog
  • it asks you to select or create a public id for the blog

You could then start writing blog posts and publish them at a public id you own, added to the SolidBlog URL. For example: safe://solidblog?blogname=happybeing where happybeing is a public id which you own. So only you can edit the content that displays at that URL. From this point on, to edit your blog you as author would also use the second form of URL, so that SolidBlog knows where your blog posts are stored and where to publish new ones.

And to create and publish a new blog you can just start with the first URL safe://solidblog and then choose another public id for the new blog.

I think that’s fairly easy to understand and implement, but I’m not sure if it’s how people would expect or want it to work.

For those who have published blogs it feels a bit like wordpress.com or medium.com hosted blogs, whereas a self hosted blog has a copy of the software running in your own domain. So this is like happybeing.wordpress.com instead of having a WordPress blog at happybeing.com

How do you feel about the safe://solidblog and safe://solidblog?blogname=happybeing thing as a blog author? How do you feel about it as a blog reader?

I’d like to hear what you think, and feel free to suggest alternatives too. Then I’ll worry about how to implement them. :slight_smile:


Great idea Mark! I would be okay with both ways I guess.


The way you’ve explained it makes perfect sense to me. That is how I would write/post a blog. Be it WP or medium. Cracking idea btw


tbh i’m neither a regular blog reader (except from maidsafes blog :smiley: ) nor a blogger … so an unqualified feedback here :wink:

same here - both would be perfectly fine

hmhmmm - even more elegant i think would be: safe://solidblog.happybeing - but that would result in an additional “dns” being created and the name could already be occupied by someone … hmhmm … so using the solidblog-domain and then pointing to a certain block makes sense i guess …? (that was roughly your motvation to not do the other option?)


I’m wondering about both:

  • safe://solidblog?blogname=happybeing


  • safe://blog.happybeing

The latter would require a copy of the safe://solidblog app code to be uploaded (automatically by the app) to your space, whereas the former doesn’t need to do that. In the first example, you are using the original app at safe://solidblog and don’t need a copy.


As a blog author, I think safe://solidblog?blogname=happybeing is fine, as long as I am not picky with the URL branding.

As a reader, I think I would prefer to read safe://blog.happybeing ( for instance ) , it is easier to remember and to share.

Maybe the app at : safe://solidblog could prompt the writer for a service and domain name, create these if non existent, and publish the whole thing where needed : safe://(service).(domain)

( side note : I still didn’t manage to get a working ID on solid … firefox won’t give me the certificate )


hmmm - can you edit your blog on safe://blog.happybeing then …?

e.g. for printing it on a taxi


This appears to be a general problem - looks like Firefox have stopped supporting the keygen HTML tag or something.


Hey @happybeing, nice topic, I like design discussions :).
How about having the safe://solidblog app to create a tiny (HTML) wrapper upon the creation of your own blog happybeing which is just a wrapper safesite created at your public ID safe://myblog.happybeing (or any public id you choose) that internally loads the safe://solidblog?blogdata=<data MD xorname> content?

In this way the blog data can be stored in a random address, the wrapper site will be stored at your public id which html content is created containing the blog data address hard-coded in it. So you can then access your blog with either safe://myblog.happybeing or thru the original app’s site safe://solidblog?blogname=myblog.happybeing, or perhaps with safe://solidblog?blogdata=<your blog data MD xorname> or even safe://solidblog/<your blog data MD xorname>.


In this case the owner of safe://solidblog has power to delete the blogs that live in his domain ?

EDIT - I suppose it depends how and by who the data was created.

1 Like

Thanks @bochaco and @nice - these are interesting.

Another idea for safe://blog.bochacho and safe://happyblog style URIs is to create an MD owned by the blog author (ie bochaco or happybeing) and populate it with the Immutable Data references from of the current solidblog website. No need to upload, just copy the reference to each immutable data (file) into the new MD.

So you get a copy that can’t be affected by the owner of solidblog, and you only pay for the MD, not the immutable files of the website.

This is the best compromise I can think of so far. Minimal cost to clone the blog website code, no way anyone can mess with that other than the blog author (who controls the account which owns the clone MD). The author can then customise the cloned website too.

I’m still not sure though. In the first instance I’ll use the parameter scheme because it’s easier for the PoC, but I think it’s nicer to do away with that.

If anybody fancies working on some part of this I have an outline design and development plan now, so can share that and once I’ve got the basics working, I think others could start to jump in with code or front end stuff.

First priority is a simple proof of concept that shows how a Solid app can work with SAFE, with minimal changes. Then we could build a better version and make a decent blog platform. And start porting other Solid apps - I’m optimistic that this will be easy for each app once the Solid+SAFE architecture is in place, and they have quite a few apps to try out (see Solid App List).


…or the solid blogsite can already publish its library/framework code as ImmutableData for each version of it? …and personal blogs can make use of the version the user wants and trusts without needing to copy/clone it but just referencing/including/importing it.
EDIT: …it seems I just rephrased your proposal, I thought you were suggesting to have personal blogs to clone the ImmutableData


or use something like this :

so the blog at, say safe:://blog.joe uses the code that solidblog published in an immutable somewhere


Yes, @bochaco & @nice that is what I was trying to say! Just insert the Immutable Data refs into a new MD owned by the blog author.

Three great minds :slight_smile:

PS I’ve edited to try and make it clearer, sorry for the confusion.