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.
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.
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.
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.