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.