SAFEpress: A Web App that builds websites/blogs on SAFE Network

@joshuef @Blindsite2k

I totally agree these things are doable. The devil is in the detail as usual, and getting enough hands and eyes on this project to sort all those details out. This makes it quite a significant project. Just look at WordPress.

Right now we have myself and @joshuef, and I’m not a very productive software guy at this point.

I’m hopeful though that even just two of us will be able to make something useful, but if we can interest others in helping, SAFEpress could become a very popular app indeed, and would make a big impact on SAFE by populating it with masses of existing and new content, and easy to build SAFE web apps with existing web skills.

Help Wanted!

Until more helpers (not just devs - see GitHub - happybeing/safepress: SAFE Network website creator - CMS / blog. A SAFE Web App that creates websites/web apps on SAFE) join though I plan to focus on building and proving core functionality and using this to create test websites that we can then use to attract interest and helpers to the project.

Target

Let’s try and have something running in time for the first fully functional REST API on a public network!

Ways To Help

Helping includes discussing things here, or reading the Outline Design I posted above yesterday. Or getting involved with research, design, and documentation when the time comes, and obviously it’d like more devs too! :-). Oh, and we’ll need a website of course :-), sooner the better. I can provide the hosting.

Still not sure how you could help? PM me for a chat :). Just hearing of your interest will be a real practical help.

2 Likes

SAFEpress is not about generating static websites, that was an area @joshuef had been looking at for himself, and which will provide useful knowledge for us.

SAFEpress is a CMS for building dynamic websites that run on SAFE whether imported from WordPress, Drupal, etc. or built directly in SAFEpress. So no extra work for the website dev to get dynamic content.

2 Likes

Hi, I’m a wordpress website builder. I love this idea … so much so that I had it myself a couple of months ago! :wink: Too bad for me I’m too busy with other things.

Some curious questions:

This would be built as a browser ‘plugin’ – so not an extension. What language would it be written in? Maybe RUST?

Wordpress has thousands of themes. And wordpress itself supports some basic themes. But out in the wild there are many amazing paid themes that can do just about anything. Also, as a web-dev myself I only use paid themes as the built-in and free ones are just too limiting. If I were to read the tea-leaves of wordpress, I think it will see a lot of these advanced theme features pulled into the core such that you can do just about anything … and so over time, there won’t be a need for separate ‘themes’ anymore. So … wondering if SAFEpress could one-up wordpress by taking one of these super fancy-pants paid themes and integrate it’s features into the plugin – still allowing alternate themes if web-dev wants, but using this core theme as a default and hence greatly speeding up site delivery -as theme doesn’t have to be downloaded. This ‘core’ theme can continue to be updated and improved.

On that note, would it also be possible to cache locally very commonly used script libraries - main one being jquery, to speed up download? I think it would be awesome if SAFEpress one-up’s the existing internet making page loading much much faster in addition to more secure.

Cheers

4 Likes

Great minds think alike @TylerAbeoJordan :-). Some great points here, and I’m already sensing (well hoping really :-)) we might soon need a SAFEpress forum as we can’t discuss everything in one thread and too many threads here will get in the way. Mean time we can start new threads for some discussions. I’d love to talk more about your WordPress theme ideas so if you want to elaborate we can spin that into a new thread.

Regarding the plugin (or add-on or extension), that is not SAFEpress, but how SAFEpress talks to SAFE. So its just the MaidSafe plugin that gives us a Javascript client side API which in turn talks to SAFE REST API. Its been discussed on the forum before and there is a proof of concept demo that shows how it will intercept “safe:” prefixed URLs and load them from SAFE. I don’t know what they’ll write it in.

So to summarise, to use SAFEpress and any other dynamic SAFEpress created website or web app, the user will need a web browser that supports the SAFE REST API, which in the first instance means having a plugin installed in their normal web browser. The standard SAFE plugin being built by MaidSafe.

SAFEpress, and any websites and web apps built with it, will just be client side HTML/CSS/Javascript, but all loaded off SAFE directly (as if it were a normal web server), and which treat SAFE network as a simple cloud storage service. Since SAFE is NoSQL, SAFEpress will need us to implement a layer (a Javascript library loaded by each HTML page) which handles database operations that maintain an index of pages, posts, users etc. and anything else needed to support dynamic page generation (list pages in a category for example). The Outline Design gives a teeny bit more detail on this.

If you’d like to say more about your vision for using WordPress themes please do, or if not just now, can I come back to you for ideas at some point?

1 Like

Okay, that clarifies much for me – I had assumed that you were going to build a derivative of the MaidSafe plugin. I guess I’m not clear on how the MaidSafe plugin would work with SAFEpress though - how does it load the SAFEpress HTML/CSS/Javascript? If SAFE:// links to any SAFEnet content, then maybe SAFEpress content must all be loaded on the fly instead of being client-side from the beginning? Hence no-speed enhancements from pre-loaded code as I was hoping, unless there is the possibility of writing an extension with the core code later that the plugin can use.

My vision for the theme is really simple - just evaluate a few top themes (I’m sure we can put together a shortlist) and then combine the best features into a core ‘default’ theme for SAFEpress – @frabrunelle might have some thoughts here as well. That said, I guess I’m assuming that SAFEPress would adopt an API that would utilize a theming as well as a plugin system, although I don’t see that expressly stated in the Outline Design - only “The SAFEpress core API is equivalent to the WordPress core API, and not normally touched by a website developer.”

1 Like

Are you thinking of speed enhancement for website development or website visitors? If the former, then yes this is something we can accommodate. I wrote some notes to self, to that effect earlier :-). I’m not sure of implementation, but the intention would be to support local development that can be saved to SAFE, or published on SAFE, but which can reside locally if desired. Enabling not just faster web development, but offline web development.

Simple ahem, off you go sir! :-). I think it would be great, but it will need someone to do this, and it would be best if it was someone who knows this stuff well and already has ideas about what the best bits are. I realise of course you might not want or have time to do this. Just want to keep the invitation open because I think it would be a great way for you to influence and add to the project.

Well, that’s all open. I’m going to aim simple until we have enough hands on board to attempt something more complex. So we won’t be designing for themes and plugins right from the start, although I certainly want to do what I can to ensure this can be done later. I think the outline design mentions plugins and widgets, so the intention is there, but it’s only a first draft for comment, and I am not an expert on these things, so just doing my best to figure out a vision, and how to implement it.

I’m more than open to ideas from those who have the experience and interest to influence and contribute, I really hope more people will see the potential here and jump in.

Today I registered some domains, so I’ve even thrown some cash at this now. BTW do you know of any online tools for generating nice placeholder pages for a new domain? I searched but didn’t find anything.

Even if that’s the case, with something like jQuery on Safe://jQ/jquery.min.js which would be a super popular file, this would inherently be cached into the SAFE network, so you’d get a form of ‘pre loading’ there, and I’d wager it would be even more effective than current CDNs for something as popular as jQuery.

3 Likes

@happybeing I think it’s worth considering just what exactly is ‘dynamic’ in the sense for SAFE.

If we have a system which allows for a front page that always shows the latest posts on a SAFE News-Style site, is that dynamic? As this can be done and generate static files so as to seem dynamic, but actually the files you’re serving wouldn’t be. This is doable.

Search: As i said, search can be overcome in a fashion also. Not something deep like Google. But same site search of a few hundred pages. That’s doable.

Having someone log-in and see specific content etc… that’s the sort of place where I see a sticking point, where a database is needed etc. And if we’re not falling back to using Olde Net, it’s going to have to involve local storage for users, ideally on their SAFE (perhaps with a webDB caching relevant data on the site).

@joshuef

I’m not quite able to see the issue yet. Not saying it isn’t there, but can you elaborate a very specific case so I can consider it. You see, there is a database there, and if necessary access to it can depend on the user who is involved, so while I’m not sure we can do what your alluding to, I can’t yet see what would not be possible. I am pretty sure that by dynamic content, I do mean dynamic content :smile:.

I don’t mean we can do anything and everything, but I am sure we can do a lot more than a static website, and I am not seeing yet what it is you are thinking we can’t do. For example, I expect:

  • visitors will be able to browse and post a comment
  • users who have registered as authors will be able to create and post blog articles

In either case this can be allowed to be with or without administrator/owner authorisation. This is dynamic in the sense that third parties can affect the public website.

Maybe there are things you have in mind that aren’t covered by this kind of ability?

I am following this thread for a while now. I have been woriking for over almost 10 years on a CMS started as a 100% Flash based app, changing to dynamiclly generated html5/javascript content. For now it’s backed by mysql. But I can make it as static or dynamic as I want. Change datastorarge protocol, create autogenerated websites like the Grid. Automatically responsiveness…
I am not very commercial and have no big investors behind me so I can do what i want with it. Maybe it’s something for SafePress, because I am an IPO buyer and have faith in the project. I you are interested It’s still Dutch only www.webplays.eu

Hey @bvmvcd, good to hear from you. This looks very impressive and could be a great basis for a SAFE CMS. Being flash puts it outside my competence so I wouldn’t know what to do with it. Maybe you could find a way to replace the MySQL backend with something that sits on SAFE?

Wait I’m confused, why would someone need to log into the site? Rmember people this is the SAFE network, we’re already all logged in. It’s all decentralized. Stop thinking like a centralized entity. You don’t store comments/posts/likes whatever at a central point. You store them with the owner that created them. So when you “register” with the site basically you give them some kind of token or something to tell them you exist and then you create comments that are stored on YOUR safespace. This avoids censorship (or not). Some websites might opt that in order to register you need to allow them to delte posts or allow moderation. But the point is you’re already logged in. You aren’t creating the posts on the central space.

2 Likes

So pumped at the feedback on this thread! I think this would be a huge bridge for moving traffic to the SAFE Network!!! I don’t think the hosting companies would know what hit them if the functionality is as easy as an import/export!!! So excited for this idea…well done!!!

1 Like

I think this is relevant feedback for the Outline Design so I’ve noted it.

  • Its a good point that people are already logged in (can just use MPIDs to validate any privileged features such as owner, admin, author, subscriber for a blog). I hadn’t thought of that doh! :slight_smile:

  • decentralising content as you describe, or not, depends on the nature of the site. I see what you describe as like a decentralised twitter or social network. Everyone owns their tweets/posts/comments, and can decide who can see them etc. Whereas if I am running a blog or a business website, I want to control who can create a post, I want to review changes, and I want to review and possibly delete comments, and so on.

Both centralised and decentralised models will exist side by side. SAFEpress is to help build/import traditional websites and blogs, which implies the owner(s) control the content. I’m torn between this and a decentralised twitter or facebook type app, because I think that’s very exciting too. I certainly hope someone will be tackling those too.

1 Like

Auto login (clients can sign / verify in background) No need for making up passwords etc. in the new world. Clients (anonymous or public) can be recognised by the public key or public name (via dns) so all very easy, but different. Easy to maintain sessions over logins etc. via this method.

7 Likes

@Blindsite2k I’m not saying anyone has to log in to anything. Just that this was going to be one of the trickier processes in the whole gamut of website management.

Or so I thought, until yourself and @dirvine. Hmmm.

Still, I wonder how we go about storing the info on permissions for a specific site…

This MPID lark would take care of who, but the what exactly they are allowed to do would normally need a DB to verify against.

@happybeing this is where I’m not sure a centralised couchDB makes sense if we’re moving things to safe to decentralise. As far as I understand couchDB always needs a server to sync to in the end. Or?

I’m thinking all this could be sorted if we are able to finely control who has access to read write a file / directory? or is it only private/public. If we can, then most authentication can be done via reading / writing a JSON file and storing it somewhere specific (NoSQL-ish; that only those authorised can write to). After that, most anything else your app can do could be be verified against these files and synced. It might not be the fastest, but maybe works?

Or are there SAFEr ways to be doing all this?

This is an interesting thread and makes me wonder? (warning we are in sprint so after this sprint is complete)

How could we arrange a bi-weekly dev mumble session? What I mean is we have a bunch of MaidSafe devs in the lounge of our mumble server and have an open to all session? This could be curated by @Viv (who can be mean when you get off track, but very valuable thing to do) and have people like @ustulation @BenMS @Peter_Jankuliak @Krishna_Kumar @Ross at least in attendance (to cover a wide area). The rest of the devs would also get involved, but those mentioned are very much aware of the forum and what people are looking for. @prakash Mahmoud Brian and everyone else (yip bored naming everyone) will benefit greatly from more ‘customer’ contact, so this is a win win situation.

Myself and @nicklambert would be certainly there to ensure we are delivering what is required and providing resources where we can to help out.

So not a teaching session at this stage, but a brainstorm with some inside information session. We can see where it goes from there. [edit and I am not saying which direction the teaching would be going :wink: I know I will learn valuable things]

Timezone may be an issue, but we can overcome that. Mumble is very clear and simple for anyone (or everyone) to record so should be easy to put it on the forum every session for everyone to hear?

Let me know what you think, I appreciate we have all but ignored you recently as a community, we had to to get our feet in front, we are almost there now, so this is time to engage I feel.

12 Likes

It seems to me that this app needs the ability to write an encrypted client-log for each visitor (maybe with the site owners public key). The site owner can then review the log and add clients (or remove them) from access-control lists that the app then uses to give permissions to clients.

1 Like

Also worth considering that in a fully decentralised network, users can hold their own session info / log. These can be in structuredData types now, just select a type_tag for your site and allow users to make use of it and store their own info.

1 Like

I think you should consider a SAFE website’s contents a collection of references to data. You decide what data your site references to or not. So when people post a message on your site, they upload that data to the SAFE network and send the address of that data to your site so it can reference it (or not).

Sending such an address to the site could initially be done through SAFE messaging. That approach still requires a server to receive the message, confirm that the content of the data (file type for example) is acceptable to your site, and then adjusts your site’s data (on SAFE) to include the reference. Later on this can hopefully be replaced by a smart contract, so the network can handle this for you.

If you want to manually delete a message from your website you simply remove the reference to that message from your site’s data.

When a client opens your site it GETs your site data. In it, the references to other SAFE data should probably be tagged so they can be resolved (GET) by the client’s browser and displayed appropriately.

1 Like