Long anecdote (sorry) from an older developer, who started full-stack and ended up frontend only:

I'm exclusively a frontend developer now, and I LOVE it. But it wasn't always that way.

Back in the 90s, I started as just a "programmer"/"web designer" (there wasn't a clear difference back then), chasing volunteer gigs on Craigslist as a teenager, which turned into unpaid internships and then one-off paid gigs for small businesses. That was back in the days of Perl/cgi-bin and eventually PHP, etc. Through the years, I learned a lot of typical backend stuff (databases, Bash, protocols, APIs, HTTPS, caches, DNS, virtualization, etc.), but also learned HTML/CSS/JS as they were invented and improved. I pretty much self-taught most of it, which was a lot easier to do then because things didn't move as fast, my younger mind was more plastic, and -- importantly -- people were willing to give juniors a chance.

For most of that time we didn't really have the option of specializing, and my first full-time web dev job (around 2013) had only 2 programmers for the entire small ecommerce company. The two of us were responsible for everything from the frontends (in AngularJS 1.0 and PHP/Laravel + jQuery + Bootstrap at the time) to the backend (Redis + Varnish + PHP Postgres + glue code + a homebrewed CMS we wrote in AppleScript and Filemaker because that's what the boss was used to, sigh) to random IT things like managing our email server (until we insisted on a migration to GMail), SPF rules, firewall, fail2ban, DNS, etc., macOS backups, etc.

We had various monitors (Monit, etc.) set up to detect whenever a particular daemon crashed (and they crashed a lot, because we were noobs), but we'd auto-restart it or failover to the other VM on the other coast, running off a slaved DB, rsync on a timer, and a synced Redis cluster. I think we somehow achieved something like less than 2 hours of downtime a year, which was pretty good for two junior self-taught devs with no formal training, and a web services budget of about $300/mo all-in. We just Googled a LOT and learned many best (and many not-so-good) practices on our own.

I was paid $15-$25/hr at that job, and I was very happy. Before that, I was logging burned trees and building hiking trails, surrounded by mosquitos, rain, and smoke for $6/hr.

Fast forward a few years, and eventually I discovered Next.js while trying to find a better replacement for Drupal (which I will NEVER use again). I taught myself modern Javascript (ES6+) and React and absolutely fell in love with Next, despite (or maybe because of) having grown up with decades of handling state and transactions on the backend. I was 10x more productive in that stack than I had ever been, and Vercel turned what used to take weeks/months of config and debugging into 2-3 clicks and $20/mo. I decided that my next job would be frontend only.

Eventually I got a six-figure job doing only frontend work at a mid-sized corporation, and it was glorious for a while. In contrast to many developers, I LOVED the UI/UX part of the job and would work alongside UX to tweak every modal, color, font, etc. CSS by this point was second nature (but flexbox still is and probably will forever be difficult). It was a blast not having to touch the backend anymore (I never really enjoyed it, it was just the boring shit I had to get running so I can focus on playing with the UI). That job paid a lot more than my first one, but ironically I had way less responsibility. Eventually, though, management changed and added a ton of Agile bullshit and useless bureaucracy and meetings and I quit.

These days, if I needed a light backend, I'd just write it as a route handler in Next.js (https://nextjs.org/docs/app/building-your-application/routin...), a serverless function (on Vercel of Cloudflare), or use some SaaS API/managed DB. At small biz scale, IMO there's no reason to go down to the metal anymore, or really even down to the level of AWS (as opposed to higher-level abstractions over bare clouds). Even for the client, it's much cheaper to pay for those vendor-supported services than extra hours of dev time. For heavier backends, I'd team up with a backend person (like the other person of that 2-person team I started in, who did the opposite and became a backend AWS architect instead, never touching UI) or just not take those jobs.

I don't hate the backend, I just love the frontend, and I'm old & experienced enough now where I get to be somewhat selective (though not in this economy, of course, lol).

-------------

Having done a bit of both sides, I don't think either side is necessarily more or less technically demanding (at least not when you're just building a generic website or dashboard). There's just different skills and challenges, and I don't necessarily mean just "code vs design", but even just code things like scaling + memory safety on the backend, or JS datetime and time zones on the frontend, or making SVG and Canvas work well together over JS/HTML/CSS.

I just love the visual & creative side of things, and don't really care about things like data structures or algorithms (beyond what I need to make sure the code is reasonably performant and readable). I didn't learn how to use binary trees until 20 years into my career, but at the same time, I'm way more fluent in Figma, Photoshop, Illustrator, and GIS (maps) than most devs.

I've also met many other developers, including others who started in the backend and moved to the front, or who started in the front and then decided they love the back instead. It's as much personality as it is skillset, in my experience.

I'm really glad the field was able to diversify & specialize into backend and frontend so that people like me can focus on the pretty shiny parts and leave the hardcore coding to someone else. But of course, as soon as that happened, AI took over everything and now there's no frontend or backend, just AI and breadlines, lol. Alas.