I decided to build a whole new platform for my course JavaScript based web frameworks that I'm given the coming fall. The site can be seen and tested out on https://jsramverk.me/. The site is built around static html sites generated from Markdown and uses alot of trickery like TurboLinks, inline CSS, defering loading of JavaScript to make the site fast and reliable. The code can be found at the GitHub repo emilfolino/jsramverk.me. Feel free to use the content and techniques used.


A new course

I have been working on a new course Webbapplikationer för mobila enheter (Web Applications for Mobile Devices) since I returned from parental leave after X-mas. Last year we received some criticism of the course, so I have tweaked the course slightly to give a better introduction to the technologies used in the course. It's going to be interesting come study period 4 to see what will be the verdict this time around.


Getting too Comfortable

I am giving a course this Study Period called webapp. In the course we start out building a SPA in vanilla JavaScript. Halfway through the course I introduce a JavaScript framework called mithril. I have noticed that I may have become too comfortable with mithril as a technology as the students struggle hard with things that I find easy in mithril. As a teacher trying to see the assignments through the students' lens is always hard and getting too comfortable with a technology does not aid the process.


Let's Encrypt och Certbot

When I created this site I never for one second wanted it to be without TLS as a HTTPS site. To do this I used the great work done by Internet Security Research Group (ISRG). I used EFF's amazing tool Certbot and after about 10 minutes of fiddling around with my domains I had a green lock in the URL bar. Compared to how much of a pain getting a certificate used to be Let's Encrypt have saved the sanity of many developer.


Loopia and Digital Ocean

I use a Loopia as my registrar for the domain emilfolino.se. The last couple of days have been used for registration and changing the name servers. What I did was registrering a domain in my Digital Ocean droplet and then entering the Digital Ocean name servers in the Loopia customer zone. I then registered three A records in the Digital Ocean admin. One for emilfolino.se, www.emilfolino.se and lager.emilfolino.se. After a couple the changes worked for all three domains. Easy to use, but with a lot of waiting involved.



On the Digital Ocean droplet that this site runs on I use nginx to serve the static files alongside other side projects for example the Lager API used in my course Webbapplikationer for mobila enheter at BTH (Web Applications for Mobile Devices).

I use the H5BP recommendations for caching and it is big part of why the site runs so fast.


Static Site Generation

This site was created with three goals in mind fast, reliable and accessible. I wanted the site to load in less than 200ms without caching. At my computer at BTH I get response times of ~150ms without caching and ~50ms with caching.

So how did I do this?

Most of is down to using the native technologies of the web. Static HTML pages load extremely fast so that is what I use. The HTML pages are created from Markdown in a small compiler script that puts it all together before sending everything to the server.