My stack going into 2023
It's the new year 🎉
In retrospect I'd say 2022 was the most eventful year for frontend web development. We got edge functions, Astro, Qwik, the death of CSS-in-JS, and the obligitory new animation library. That being said, here's what I'm using, keeping an eye on, and dropping going into 2023.
Let's see how this changes by the end of the year 🤭
What I'm using 👌
Frontend framework: Svelte
So I've always been a React developer since Day 1. That said, I freakin' love Svelte. It's minimal, it's fun, and the best part: no hooks bullshit.
Svelte is going to be my frontend framework of choice on side-projects purely on developer experience. Sure it's nice that it's compiled and has no virtual DOM but mainly in it for it's closer-to-native JS for programming interactions and stuff.
Meta framework: Astro
This was a tough choice. Originally I had NextJS here and while Next is an incredible framework, I had to pick Astro for two reasons: partial hydration and integrations. It's super fast and really easy to extend. The developer experience with Astro is also great and I just love the Astro community ❤️
CSS Framework: TailwindCSS
Do I need to explain myself here? Fine. I've been an early adaptor of Tailwind since 2019. I remember introducing it to the team at my startup to much reluctance and virtual groans. 3 years later and I'm tied to this framework for all my CSS needs.
Utility-based frameworks are 100% the move going into 2023, whether that applies to styling, JS functionality, etc.
So Backend-as-a-Service (or BaaS) is an increasingly popular topic for frontend developers because it makes backends trivial to implement and work with. I'm choosing to go with Pocketbase because of its focus on simplicity first.
I mean, the whole app runs off of one SQLite database and offers full user authentication, an ORM for interacting with the database, and an admin UI.
It's the perfect little battery for side-projects and it takes a prominent spot as my BaaS go-to!
What I'm keeping my eyes on 👀
As a Svelte fanboy, I was elated to see SvelteKit 1.0 get launched before year end. I immedietly got hands dirty with it by building a small README generator app (which I'll retroactively include here once it's done). I think as SvelteKit matures, it will replace my metaframework of choice.
If there was one BaaS to rule them all, I'd say Directus would take the throne. Directus is a combination of everything you'd want in a backend. It does content management, user management, asset management, webhook workflows, and I'm keen to see where Directus keeps expanding its product.
It's also completely open-source so you can host it on your own hardware and determine your own pricing.
They also have a cloud tier if you don't want to deal with VPSs 😅
Built by the creator of framer-motion. Motion One looks like a really promising replacement to the "traditional" web animations library, GSAP. It leverages the new Web Animations API for better performing animations. Not to mention, the entire library shaves of kilobytes of bundle size compared to GSAP.
I'll be keeping my eyes on the features that @mattgperry will be adding. Right now, GSAP still stands as the de jure leader in web animations and features.
So I learned about ReScript from a friend back at my startup who was big into the OCaml space and functional programming. Prior to that I've never even heard of functional programming however looking through ReScript's documentations, its syntax, and its philosophies, I immediately picked it up.
I'm not sure what it is about functional programming but something about how clean, logical, and programmatic it is really hits all the right spots in my programmer brain.
As it stands, ReScript has yet to see widespread adoption in the JS/TS community and I feel bullish on it growing in the community throughout this year.
What I'm dropping 🔥
Yeah this was long overdue. I actually stopped using Gatsby at the beginning of 2022 (still was using it for a client's project). I just think we have better solutions nowadays (like Astro or Next) that do what Gatsby can do but in a much more elegant way. One of the main turn off points for me was Gatsby's forceful use of graphql as an internal API for everything. I love GraphQL but sometimes it's just easier to reason about things with plain ol' REST APIs.
I used to think that if your site wasn't a PWA then it wasn't fully SEO optimized. I think that may have stemmed from the fact that the Lighthouse Audit shows you a PWA category.
Turns out, it really doesn't matter for SEO. Sure PWAs may increase site performance by doing caching with service-workers but I find the time and process it takes to set one up to be cumbersome and for minimal gain considering Vercel has global CDNs that minimize load times anyways.
I hate Firebase. End of story.