I thought it might be a fun idea to share my digital “tool belt” so to speak. So let’s explore my go-to libraries and frameworks for my personal projects.
Static Site Generator
I strongly believe that about 80% (or even more) pages on the internet should be static sites. There just isn’t a reason for a simple blog, a portfolio or a small-to-medium business website to be dynamic. All users see the same content, and that content doesn’t change for months, sometimes years at a time.
Static sites are fast and easy to host, good for SEO and convenient to build and maintain. There used to be the issue with content management, but that has largely been solved by headless content management systems (CMS). Just like the hassle of changing repeating elements or keeping the content separate from the markup has been made convenient by the plethora of static site generators out there.
Personally, I like using Astro to build my static sites. It allows me to use my preferred frontend framework of choice when needed, but is flexible enough to incorporate other technologies should a project require them. In addition to that, it even provides room for further growth should a site ever need to become dynamic.
For managing the content itself—like writing this blog post, for example—I built my own headless CMS, Mattrbld. It makes it really convenient to work on posts or fixing typos on the go, and has allowed me to give clients a way to change the content on their websites—without having to worry about the design or breaking something.
Frontend Framework
Way back when I first started getting serious about building web applications and more complex websites, so around 2013 / 14, I went through a phase of trying out all sorts of frameworks. Riot, React, Angular, Ember, Blaze, and eventually Vue.
Similarly to how I switched from Python to JavaScript sometime in my early developer journey and never looked back, I have never found a frontend framework that I liked as much as I like Vue. It just clicked. Vue powers the frontends of nearly anything I build, and I have never missed anything from those other frameworks. It’s intuitive, fast, and stable. It even has a quite established ecosystem, although I prefer to build my own solutions.
Along with Vue come Vite and Sass, as well as a plethora of other libraries, but listing them all would blow this post out of proportion. So I’ll just focus on some of the more interesting ones.
Working with Dates
I’m afraid the newer built-in time and date management and formatting technologies will make this one obsolete sooner or later, but for the longest time, I have relied on date-fns for those kinds of tasks. Come to think of it, I probably have built more date-picker widgets with it than I should have. 😅
Rich-Text Editors
I have a thing for building my own rich-text editors. They’re just complex enough to be fun, but not too exhausting, and it can be extremely rewarding to type in an editor that works and feels exactly the way you want it to.
For the longest time, I used Quill to build them, but the project fell asleep for half a decade (or more?), so eventually I switched to Prosemirror, the holy grail. It’s more complex to work with, but it also allows for much more advanced use-cases.
Quill has been updated to the long awaited 2.0 release recently, however, so I might take another look, especially for projects which still use it.
Databases
Ever since using Meteor.js (kind of crazy that’s still around, I thought it had died a few years ago), I liked NoSQL better than SQL databases and stuck with MongoDB on the backend. To be honest, though, I feel like that is overkill for most of what I do, so I might be looking into using SQLite more.
In the frontend, where there is just IndexedDB, I use Dexie as my go-to wrapper, because working with pure IndexedDB is apparently horrible (I haven’t tried that yet though, I just liked the sugar Dexie provides and never had issues with it).
Backend Framework
People who know me know that I try to do as little on the backend as possible. Just like with static sites, I believe 80% of apps don’t require a backend. Local-first is the way to go and when I needed sync in the past, I found ways around using a backend. But when building a social network like Untold Stories, there just was no escaping it reasonably.
So after a lot of research and consideration, I eventually landed on Feathers.js. Similar to JavaScript and Vue, it just clicked. I love its simplicity, and I love how powerful it is. It has continuously evolved and got even better over the years, all while staying grounded and independent.
Looking more into its most recent version is actually what gave me the idea for this post, because I feel like too few people know about it and I wanted to spread the word a little.
The Cat is out of the Bag
That’s it, that’s the secret glue that holds together all my projects. With these tools at my disposal, I feel like there’s nothing I can’t do—there’s a reason I keep saying the web is the future. Of course, there’s always something changing in the web development world and I do like looking into new tools and libraries, so this list might become outdated in a few years. Looking at the last decade, however, I feel like it’s stayed remarkably consistent.
What are your favourite tools, frameworks and libraries that you enjoy using outside of work? Feel free to let me know on Mastodon and as always, thank you for reading!