Skip to content

Instantly share code, notes, and snippets.

@jamesmurdza
Last active August 10, 2023 12:48
Show Gist options
  • Save jamesmurdza/25213ecfd479f2c5e9c9a4f92aa3df83 to your computer and use it in GitHub Desktop.
Save jamesmurdza/25213ecfd479f2c5e9c9a4f92aa3df83 to your computer and use it in GitHub Desktop.
Full-stack tech stack 2023

Where to start with full-stack

Which front-end library should I learn?

Library Complexity Community Example Init command
Svelte Low Small To-do list npm create svelte@latest my-app
Vue.js Medium Medium To-do list npm init vue@latest
React.js High Large To-do list npx create-react-app my-app

React is painful to learn, but it's good to know for client projects. The Vue.js learning curve is less steep, and I'm using it for my own projects. I'm now experimenting with Svelte—both as a library to teach to beginners and for my own projects.

Which CSS framework should I learn?

Framework Complexity Features
Pico.css Low Good looking forms, light/dark mode.
Bootstrap Medium Grid layout. Basic UI components.
Tailwind High Grid layout. Quickly design new components.

Does my prototype need a backend?

If you're prototyping fast, I'd first try to see if everything can be done frontend. You'd be surprised what's possible these days with no backend.

For example:

  • Instead of building a data backend, → you can use Airtable or Supabase.
  • Instead of implementing authentication in the backend → you can use Supabase or Netlify Identity.

Example: Web app using REST API and magic link authentication using Vue.js+Supabase

That being said, as soon as you require more functionality than these platforms provide, you'll have to switch over or build a backend. Also, if you render a lot of content dynamically with no backend, your SEO will be 💩.

OK, really, what backend framework should I learn?

This one I don't know. There are popular backend frameworks out there to go with all the frontend libraries, so if you've started with a frontend library, it's easy to continue this way:

  • Svelte → SvelteKit
  • Vue.js → Nuxt.js
  • React.js → Next.js

But keep in mind, it gets complicated fast on the backend, with server-side-rendering, database integrations, authentication integrations, choosing a host, etc. I haven't tried enough to have a strong opinion. But if you're going to go big might also go all the way with...

What about a serious project, with frontend, backend, databases and authentication?

If you'll have at least 1-2 full-time devs, use RedwoodJS. It's mainly an organized framework and code generation tool for building apps with React+GraphQL+Prisma. This is what I'm using now for professional projects that need to grow and outlast myself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment