Every web developer should understand “fullstack”

If you are in web development, there really is no exuse not to generally understand the languages and protocols the web is built on.1

Part of why people compartmentalize the web is because its standards and features are so expansive. With almost a hundred status codes (and 418 I’m A Teapot isn’t exactly helping), media queries for printers2, and a million different Javascript-based frameworks, it’s no wonder that the frontend devs don’t want to deal with the backend on top of all this. And for the same reason, backend developers understandably stay the hell away from this abomination.

But rather than learning everything webdev related, you should try to do as much as you can using as little as you can. You don’t need Tailwind when CSS variables exist, you shouldn’t POST to ajax.php when you can just set up an endpoint for the same page you sent the GET request to for a form (come on, forms aren’t proper APIs anyway), and you shouldn’t use cloud-based databases like Firebase because that surrenders control and incurs extra complexity. Web development can be a simple process — you’re just requesting and sending data according to established protocols — you just have to commit to making it so.

I’ve been saying “frontend” and “backend” developers this whole time. However, a more accurate way to characterize them is “people who don’t fully understand the web”. There’s no shame in admitting it! The internet is filled with awful advice, bloated and unnecessary Javascript frameworks are presented as the norm, and servers are blackboxed instead of being treated as just another Linux machine, just with certain ufw rules set. But if you commit to using a small subset of the web’s features, avoid Javascript unless absolutely necessary, and understand the principles of client-server authentication, creating full-fledged websites on your own will not be too far off.