Jj's web stream

Adventure of my Micropub client and server

The experience of developing a Micropub client and server plus adding support for webmentions on top of adapting Pelican to be used programatically to generate my blog has been amazing. Tonight I just added offline support to the client, which allows me to "tweet" and publish on my blog while I'm offline and sync later.

I ended up learning and using a number of technologies I hadn't before:

  • Pyramid for backend
  • VueJS for the client
  • Making an SPA
  • Lots of CORS drama
  • IndieAuth support all the way
  • Sync events on service workers
  • IndexedDB and localStorage
  • Offline support for client
  • Microformats
  • Pelican deep internals - Static blog generator
  • the Js Fetch API instead of good old XHR
  • Lots ES6 new fancy syntax, will surely surely break in older browsers :)

And among other adventures:

  • Implementing by following w3c spec
  • Testing to play in harmony with many other indieweb endpoints (webmention.rocks, brid.gy)
  • Going through all the deploy/logs/montoring story
  • LetsEncrypt!
  • Python3 bytes vs strings, It will bite you, but it's for your own good!
  • 100% mobile web support, installable as an app icon
  • Ain't nobody cares about Edge and browsers I cannot test.

What I still need to do is learn how are js apps "compiled" in 2018 to make my client be just one bundle since I don't need to have separate requests for CSS and JS on my SPA.

I will also need to finish writing lots of (backend only :-/) tests for my server implementation, some readme files at the very least and make it all public.

I wanted to write what I learned every night, but I didn't have a finished product to blog with yet! ha.

Shared on:

Jj Avatar of Jj