In the last years, JavaScript had an incredible growth, complex apps, frameworks and languages that compile to JS have been developed to create rich and complex web UIs and experiences. I started to use React at work in 2017 in a webapp that truly required the use of that library. I enjoyed working with React and used it whenever I had a chance. That's how I ended up writing mi personal website in React, in retrospective a terrible idea since my web wouldn't load at all without JavaScript, affecting SEO and reducing load speeds.
Today, I finally rewrote this website adding some big changes I have been planning for a while:
- The web is generated statically using Kotlin
- The website no longer requires JavaScript to render
- The articles are written in Markdown
- Internalization support for the Kotlin templates and Markdown articles
- Templates are defined using the Kotlinx HTML DSL. (Similar to JSX but strongly typed)
- There is a dev server that reloads webpages as code changes (inspired on react-hot-loader)
These projects and ideas have influenced the design of my website:
- htmx AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes and reclaim HTML as the Hypermedia to be exchanged between browser and HTTP Server
- Gemini Protocol: Gemini is a lighter and simpler protocol than HTTP with mandatory Transport Layer Security and privacy focus (JavaScript does not exist)
- The Small Web: Aral Balkan and Laura Kalbag are building tools to promote independent web avoiding the centralized web and the problems it creates for democracy and society
- website < 14kb endtime.dev's article on the significant performance improvement that smaller web pages gain.
So there you have it, I think this changes will allow me to experiment and create more easily. We shall see...