Evening all, I wasn’t expecting to have another update so soon, but I couldn’t sleep tonight so I smashed through some work instead.
At the moment, most of these calls are mocked, so the safe://phantom website won’t be functional - I’m waiting on a couple of very minor updates in the next week from the SAFE development team to unblock me (and anyone else doing SAFE browser-based development), so while what you’re seeing has all been coded in entirety, the underlying SAFE network libraries are all using mock data for my own testing purposes.
There is now a posts listing page, accessible after selecting an NRS to edit:
At the moment, the save post / publish post buttons do nothing, but all the Markdown → HTML work has been done, so making those work will be minor, I just need to do some more mocking work first to enable it.
And here is the post listing page if you click the back button:
I’ve decided that posts will be stored as raw markdown, with a small amount of HTML issuing a REL canonical, at their respective post URL, for instance:
- Crawlers can simply load just
/post/draft-post which will contain the text-only markdown version of the page, but the canonical URL will point to:
This means that despite it being a single page app, crawlers shouldn’t have any issue indexing the content of the website.
Compressed, I am totalling 67KB, + 44KB of font files, so 111KB, uncompressed I am totalling around 230KB. I’ve managed to get it so small by being absolutely ruthless with dependencies, at the moment I have no dependencies which aren’t required for VueJS to function (for instance, writing my own Markdown parser as tersely as possible, writing my own SAFE network libraries, my own Promise library, my own cache library - with the position of caring more about code-size than ease of development).
I don’t see any reason why I shouldn’t be able to keep the compressed (what is sent over the network) size under 150KB and the uncompressed size under 260KB for the final project.