My Tech Stack in 2023
⌛️ Published: Mon, 27 Feb 2023 00:00:00 GMTMy tech stack has changed quite a bit over the years. I often found myself looking at what the biggest tech influencers used, and mirrored that, without thinking about why I made those decisions and why those technologies were indeed better. This led to me taking a step back to look at what I truly value in a technology stack for the web:
Key Considerations
Developer Experience (DX): Developer experience is often overlooked in favour of performance, but is an integral part of picking your technologies. I like to use tools that feel intuitive while also not getting in my way for times I want more control.
Portability: This will be a key factor for sure, but I hate vendor lock in more than anything when building out solutions for something. Being able to move to another provider, easily migrate my database, and so on, is a huge factor when I make a decision now.
Scalability: This is a huge one, as I am not talking about one form of scalablity. Sure, I would like any system I design to be able to scale to any number of requests without falling flat on its face. The other kind I am interested in is scaling to more contributers. A system needs to be simple and logical enough so that anyone can hop on and contribute with minimal onboarding.
The Solution - SVP!
I’m calling this the SVP stack… because every cool stack has a fun acronym right? This stands for SvelteKit, Vercel, Prisma. Let me explain:
SvelteKit is the first part, and arguably one of the coolest. It is a Metaframework built by Rich Harris and the rest of the Svelte contributors, and runs with the Svelte framework in the background. Svelte, unlike frameworks like Vue, React, and Angular, is compiled down to JS and is not shipped to the user on first load. This close-ness with the browser’s native behaviour is what makes Svelte so powerful. That and how it “magically” handles reactivity in a way that would make React fans wet themselves, and you have one of the best developer experiences you can in the full stack JS world.
Vercel may not need any introduction, but I will go over it anyways. Vercel is a hosting platform built by the Next.js team that fully embraces Serverless and Edge compute. It allows for easy integration with Github for deploys and requires no config for CI. It provides developer previews and tools to review UI changes with your team. Needless to say, this is the easiest way to host at scale with SvelteKit, and is on here for its lack of configuration hell it puts you through.
Prisma is an ORM or Object-relation mapping tool which sits between your code and almost any DB you want. In my case, I use Planetscale for its serverless mySQL databases, but this is where the re-usability comes in. You can use a local DB, Planetscale, Firestore, and your scheme and relationships are included in your repo, independent of the DB you choose. Even better: you can provide a mechanism to seed data if the initial data is important for your app. If you use Typescript (which you should), you get type safety and intellisense for your DB along with easy to use functions for CRUD operations. Prisma is a no brainer to level up your database experience.
So… should I use it?
I mean, I definitely think so. That being said, I would strongly recommend you go through a similar process, since your needs may differ. My way, and tech influencers ways, are not the be-all-end-all. What works for you and how you write code will differ from me, so I encourage you to go through the same process and explore your needs and how you can meet them with the wide range of tools available.