Tradeoffs

"Tradeoffs". That is something you will hear about all the time when it comes to software development. Should we use x technology or y? The answer always comes down to the tradeoffs. Today, I want to write about two tradeoffs in particular. Tradeoffs from the frontend or the backend.
Frontend vs Backend ideology
Frontend and backend development is obviously two different worlds. So much so that entire careers have been based on whether you wanted to be a "frontend" or "backend" deveoper. In the last 5-10 years frontend development has really skyrocketed and this can be most clearly seen in the way that frontend frameworks has taken off. I always like to see the meme 0 days since new JavaScript framework.

I, myself, started out as more of a frontend developer than a backend developer. However, when I got started the backend was a lot more approachable when it came to web development. You knew you needed a server and you at least had to FTP stuff up to the server to be able to view it on the web.
These days things are abstracted. Just point your repo to Vercel, or Netlify, or AWS Amplify and it will deploy it for you. This ability to split the backend knowledge and the frontend knowledge so completely is what I believe has given rise to two completely different ideologies comming towards each other. The "fullstack" frontend dev and the "fullstack" backend dev. The fullstack frontend dev wants to have a good frontend dev experience and dip their toes in the water of backend. Thus you have frameworks like Nuxt, Nextjs, Sveltekit, etc. Then you have the fullstack backend devs who want some of that reactivity without touching JavaScript. So you get Livewire, Liveview, HTMX, etc. These technologies say "don't put your state on the frontend. Keep it all on the backend where it belongs.
Tradeoffs. That is what you get from both of these perspectives. From the frontend side of things, I believe that you get what you want at the expense of complexity. On the backend, you get simplicity at the cost of either interactivity or latency or maybe even developer experience. Neither of these two statements are 100% true. You have some frontend "fullstack" frameworks that attempt to keep things more simple and there are backend fullstack frameworks that get interactivity done well and are not simple but I'm generalizing here. These are the tradeoffs. Either of these "fullstack" solutions have tradeoffs as well between a monolithic application with backend and frontend mixed vs separate frontend and backend. Tradeoffs.
Examples
Let's take two examples. Let's say that I am developing a website for a company. They want a landing page, some blog posts, maybe a contact page. The company is locally based to a region and doesn't have any international customers. This is a great case for a more backend focused monolith. We can keep the data on the server, we don't need high interactivity and we don't need global distribution. We can stick it behind Cloudflare to get some more regional distribution of static assets and we are good to go. Simple, easy to develop, easy to deploy.
Now, let's say that I am developing an application with rich interactivity. Maybe a mobile game or a social media app. Maybe global distribution of the frontend is very important to me. I might then choose a SPA framework like Vue or React. This will allow me to have rich interactivity with the user who has local state to work with, even if my backend is far away. (There are caveats here obviously, but this is a simple example.)
Tradeoffs in the real world
So, what does this mean for you? Well, it means that you need to be aware of the tradeoffs. You need to develop a deep understanding of a few of these "archetypes" of stacks. Pick a backend stack like Laravel or Elixir Phoenix and dive deep. Pick a frontend framework like Nuxt or Sveltekit and undersand it well. Find the rough edges, understand the tradeoffs and when you come to a new project you will be able to make an informed decision instead of blindly spouting that one of these is better than the other in all circumstances. They are not and very often the best solution is to use a mixture of both.
Now, I'm going to draw a conclusion that maybe you won't see how it fits but trust me it does. If you can't see the tradeoffs here, how will you see the tradeoffs that you are getting when it comes to AI? There are tradeoffs here and it isn't just between speed and quality of code produced. When we came at things from a frontend perspective an entire industry SaaS products was required in order to keep frontend developers ignorant of the backend. Deployment solutions, auth providers, db as a service. These are all outcomes of people not knowing or even wanting to know backend things. There are now new industries popping up around AI saying you don't need to know how things work, just prompt your way to success. What is the thing we aren't seeing here? We are not seeing an acknowledgement of the tradeoffs and there are many, some of which it is too early to even see. Time will tell. Just remember, there are always tradeoffs.
Published: Fri Mar 21 2025
