Aug. 12, 2026 · 4 min read

SSR is just so much simpler

Trying out MVC / MVT frameworks after mainly working with frontend frameworks like React or Angular

react programming

I've mainly worked in my career and education with the classic React/Angular frontend and an API backend web applications. I've used PHP a few times, but have largely forgotten it. Recently I've started to look more into similar frameworks like Ruby On Rails, Django and Laravel and the development experience is so good!

Frontend frameworks are often a too big of a caliber for websites

React and other similar libraries are often teached too early and they're too big of a caliber. If I were to design something like an e-commerce website or a simple dashboard, etc now I would 100% choose a backend framework with server-side rendered html. It just makes life so much easier, there's no reason to split the project into two repositories one for some kind of a web API and another one for the frontend. The most productive thing is in my opinion the easiness of displaying data from the backend on an html website. In a SPA you have to first call some kind of an API or create one yourself, then verify the response, handle the edge cases and finally display some data on a screen. In a Django MPA just pass the data directly from the view to the template, so simple!

SSR also can have custom components

A big plus of frameworks like React is reusability. You can creade a Card.tsx or a PopUp.tsx component and then reuse it multiple times. In a framework like Django it can be easily achieved using the {% include %} template tag. For example when using Django one can do something like this:

<div class="myCard">
	<h1>{{title}}</h1>
	<p>{{preview_text}}</p>
	<img src="{% get_media_prefix %}{{img_src}}" alt="{{title}}">
</div>

And then in a different HTML file:

{% include "blog/components/card.html"  with title=post.title img_src=post.preview_img preview_text="abcdefg" %}

In React, you'd have to probably use few useState hooks, useEffect to load the data, etc. Here it's much more straightforward.

Authentication and Authorization

Authentication is arguably one of the most important things in the backend / web development world. Nobody wants a random user to access some personal information. In SSR verifying if a user is authenticated or authorized to see something comes down to a simple if statement.

{{user.username}} Profile
{% if user.is_authenticated and user.id == profile_id %}
	change profile picture, view personal statistics, etc
{% else %}
	 this profile is private
{% endif %}

In React, you also have to send the request when the website loads to check if the user is logged in, parse it and then do some conditional rendering.

Frontend frameworks are sometimes still a better choice

If I were to design a heavy business application actually I'd rather use React or Angular instead of some backend framework. Integrating with a lot of 3rd party APIs, doing complex visualizations, business logic and more will be easier with a SPA framework. Doing the same with Django or PHP will also require a lot of vanilla JS and that would be hard to maintain. However, for simple apps like dashboards, stores, blogs PHP or Django is just so much better. I have no idea why like React is the default choice for many small projects, your web app can still look nice with some modern CSS and a drop of JS, and the development will be much smoother.

But what about Next.js?

I've used Next.js a few times, it's a good improvement on React, particularly on SEO, first page render time and less client JS, but I feel like there's so much going on there that it's an overkill. I generally like to know what's going on in the project, but with Next there's so much stuff especialy the use client and use server directives, proxying, optimizations that I feel like I'd need a phd in JS and Next.js to understand it all. Maybe it's just my experience but when building web apps from the ground up maintaining both Next.js for frontend and a backend felt clunky. I just like to have everything in one place. There's a reason PHP is still used in 70% of websites (whose server-side programming language we know :) )