Tech
In this page I’d like to talk about the tech that I use or that had influenced me.
Currently crazed-about tech: Astro
Astro
Astro at first glance seems to be just a simple HTML generator, but it’s actually a lot more powerful than that. Astro allows you to create beautiful static pages and at the same time allows you to define islands of interactivity (“Astro Islands”) within static content. Islands allow you to control where and when specific content gains interactivity—on load, upon scrolling to it, etc. I believe Astro is one of the solutions to the bloating of modern web frameworks.
JAMstack
Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup.
Basically what JAMstack says is keep static parts of your website separate from the dynamic parts, which I’ve already been doing for years. And static webpages can also be built from dynamic parts, such as when you have a blog or online store, which further separates the concerns of code and content.
Special mention: Qwik and Qwik City
Qwik is another one of the solutions to the bloating of modern web frameworks. It works by processing components on the server and resuming its state on the client. Qwik calls this resumability as opposed to the hydration of components on the client where the components are rendered again on the client to reattach interactivity to the DOM.
Current text editor: Visual Studio Code
VS Code is hands-down the editor for me as I got annoyed by Atom showing an unresponsiveness dialog every time I started it up. Plus it packaged a node.js debugger, which was beneficial for me as I pursued node.js development.
Special mention: Neovim
I also learned Neovim and it’s nice to have an editor that has almost endless customization capabilities.
Current favorite webserver framework: Fastify
Fast and low overhead web framework, for Node.js
What I like about Fastify is that every part of it has been optimized to run in a potentially fast and performant manner. It has impressive benchmarks against Express and Hapi.
Pre-loved webserver frameworks
Hapi
What I like about Hapi is that things that used to be just middleware in Express are already built into it. Its configuration-style declaration is really compelling to use.
Express
The OG webserver framework for node.js.
Gatsby.js
While the concept of Gatsby.js was sweet at its time, the prospect of using GraphQL for everything became less and less attractive as TypeScript rose into popularity.
Next.js
Next.js is undoubtedly the most popular framework of the modern age. Unfortunately, I’m finding it harder to justify React (and by extension Next.js) due to problems with its design, while Next.js bloating up webpages isn’t scaleable.
Reading material:
- Thoughts by EmNudge: React is holding me hostage
- Blog post by Miško Hevery: Our current frameworks are O(n); we need O(1)
Current favorite programming language: TypeScript / JavaScript
Years ago, JavaScript only made sense to people who do fancy things with webpages. Today, tools such as node.js enable JavaScript to be used to develop software on various platforms.
Although JavaScript is still not the ideal language I seek (which is yet to be invented), it’s the closest to one I can dream of today. It does have its flaws but language features can just be cherry-picked out of this amazing language.
TypeScript is a beautiful marriage of dynamic typing and static typing. Optional typing made me program in “JavaScript” more carefully. It does make me think twice about what I type.
Current favorite programming language framework: node.js
Node.js is an executable program that runs JavaScript. It does so on top of V8, the same JavaScript engine that runs Chromium (the basis of Google Chrome). It is the thing that made JavaScript usage skyrocket until now.
Current browser: Floorp
As Google and Mozilla dive deep into advertising hellholes I find it hard to justify using either Google Chrome or vanilla Mozilla Firefox. I find Firefox forks to be a good web browsing alternative while not having an annoying preference to YouTube autoplaying. (Yes, Vivaldi still autoplays YouTube because of hardcoded Google code.)
Current source control software: Git
Git is really simple to use and it became much more popular than the alternative, Mercurial.
Current favorite source control provider: GitLab
GitLab and Bitbucket has provided free private repositories for a lot earlier than the leader GitHub. I’ve decided to make a full switch for my private repositories from Bitbucket to GitLab. GitLab’s most attractive feature for me is its CI, which easily trumps Travis CI (which doesn’t — didn’t? — provide CI services for private repositories too) because it was built-in to the service.
Current operating system: Arch Linux
While I spent a lot of time and effort configuring Arch Linux, I really still believe it’s all worth it. Arch Linux doesn’t have bloat unlike other Linux distros (that come with some bloat), thus you’re forced to configure each and every software you install, and be conscious about what they are and what they do.