Full stack frameworks in 2020

charlieharper

Expert Member
Joined
Jun 1, 2007
Messages
3,861
Reaction score
1,976
Location
South Coast, KZN
With all the hype being around static frontend framework SPA's like React / Vue and separate backend API's (usually written in Node) these days, does it still make sense to build new web applications with traditional full stack frameworks like Django, Laravel & Rails?

My 2cents:
The last since 2016 I've been building apps mostly in Django and sometimes Rails.

Then came 2018 and I starting learning React + Nodejs and it's absolutely lovely and I almost exclusively used that for every project - I built quite a few applications used internally by businesses (think SaaS) -- Frontend SPA is being served statically with Netlify and backend runs on Heroku. For a few landing pages, I've used GatsbyJS to build SEO friendly static react apps (think blogs).

But then upon starting a new personal project a few weeks ago, whilst staring at the default React page after running npx create-react-app app I was suddenly rethinking Frontend Javascript frameworks.
By design, what I'm about to develop would not be internal software, it will have user auth, and it would be great if a good amount of auto generated sub pages got thoroughly crawled by Search Engines (eg Google), even though data can change pretty dynamically, etc.

Initial thought to setup React as a Server Side Rendered (SSR) application... But it looked rather painful and figured learning to set that up + deploying might not be worth the time.... Then I looked at NextJS, which looks like a great React Framework, but from reading the documentation, the server side state management, combined with SSR authentication, also not the smoothest process yet, I figured it might be a bit too much. Probably overkill.

Then I resentfully installed Python and Django, just to play around and see if I can remember how to use Django templates & vanilla javascript and dare me to say, jQuery.... then I ended up building the entire web app in no more than 30 hours and it works absolutely great, no regrets, does exactly what I want it to do, Google picks up all the pages beautifully and it's incredibly stable.
About to deploy it to production.

This totally made me realise that even with all the hype around the SPA's and JAMStack, perhaps, full stack frameworks still have its place - or am I being stupid for thinking that?
 
The only reason why I don't like using NodeJS, is because of hosting it easily, you have to use Heroku, which isn't local. I have been sticking to Laravel, cause you can easily host it on even shared hosting.

To answer you original question, I think it's your choice and as long as the client is happy, it doesn't matter what you use.
 
The only reason why I don't like using NodeJS, is because of hosting it easily, you have to use Heroku, which isn't local. I have been sticking to Laravel, cause you can easily host it on even shared hosting.

To answer you original question, I think it's your choice and as long as the client is happy, it doesn't matter what you use.

I have been hosting on local linux VPS's in the past for local clients, that ran NodeJS backends amongst others.

But I agree, most hosting providers, esp Local have PHP (eg Laravel / WordPress) hosting down to a fine art, where you can drag and drop / FTP onto server and it works.... Python, Node, Ruby, etc are a bit trickier.
 
Also, think of the devs that don't know devops. :p And Local Linux VPSes are more expensive than shared Linux hosting.
 
This totally made me realise that even with all the hype around the SPA's and JAMStack, perhaps, full stack frameworks still have its place - or am I being stupid for thinking that?

Depends on your needs, but SPAs you are doing quite a few things. You're bare boning your hosting needs, because all the rendering is happening on the client side, so you need a toaster to serve the JS files.

Just dump them onto S3 and avoid server hosting altogether.

One of the bigger side effects is enforcing a a non-coupled auth/backend integration strategy. Opening up doors to manage multiple teams (WEB team, android team, iOS team and the backend services team).

You also get "out the box" PWA options.
 
I'm a Vue fan, I find it way nicer than using React (both simpler and generally faster). For any larger project I'd definitely use Vue or Nuxt.js (if you need server side rendering for indexing, though usually Google can actually index Vue sites for a while now) with an API, if you just need a CMS, something like https://strapi.io/ is good, I'm also quite a large fan of ponzu: https://github.com/ponzu-cms/ponzu but it all depends on waht you need to.

If I need to do a small, quick and mostly barebones project though, I'd probably still use Wordpress / PHP, it's fast and easy to use, and most users will have encountered WP before.
 
The answer as always is “it depends” :)

these days I would say our company is doing 50/50; static SPA (nuxt) speaking to an api, or traditional server rendered (.net core razor pages) with vue components for the more “complicated”/dynamic bits.

I would say that 100% of the admin/business process apps that we have built this year have been static SPA -> rest/graphql api however.
 
Also, think of the devs that don't know devops. :p And Local Linux VPSes are more expensive than shared Linux hosting.

Well, most devs know how to Google.... I went from barely knowing how to navigate terminal, to setting up a Django production server (Ubuntu Server) with relative ease. https://www.digitalocean.com/commun...h-postgres-nginx-and-gunicorn-on-ubuntu-16-04

I just prefer to use Heroku now days as it doesn't get easier than git push heroku master, for which I wrote a zsh alias, deploy to deploy to production.
 
Last edited:
I'm enjoying Flutter with Firebase as the backend. Took a bit of getting used to at the beginning coming from a PHP background.
 
In terms of your first question, I'd say yes, it makes sense, because boilerplate is commonplace, and re-inventing that wheel is obviously not something people want to do with their time. Even with highly bespoke systems, a solid backend framework should be reached for, imo. In my case, it's always Laravel.

From a frontend perspective, I'd be biased in saying yes here too – I'm a big Vue fan, and have been digging into Svelte of late, simply because it's super-appealing. But, it's obviously always going to depend on the purpose, on what’s being built. If vanilla works in your case, then sure, why not. But I've worked on one too many projects where skipping a tool that speeds things up was a no-go.
 
Top
Sign up to the MyBroadband newsletter
X