DEV Community

Medea
Medea

Posted on

Should I build the same project in multiple web frameworks?

I’ve been thinking about a learning + portfolio experiment and wanted to get some opinions from people who’ve tried similar things.

The idea is simple:

build the exact same small project in multiple web frameworks (frontend and/or backend), keeping the features as identical as possible.

The goal wouldn’t be to master every framework, but to:

  • understand the trade-offs between them
  • see how opinionated each one is
  • compare setup time, DX, and code complexity
  • get better at spotting patterns that transfer between frameworks

I feel like this could be a really good way to level up beyond just “learning one stack”.

The questions I’m stuck on

1. Is this actually a good idea?

Or does it end up being shallow learning compared to going deep into one framework?

2. What’s the best project to use for this?

I want something:

  • small but real
  • mostly CRUD
  • not too UI-heavy
  • easy to keep consistent across frameworks

Some ideas I’ve considered:

  • a simple notes app
  • a todo app with basic auth
  • a link shortener
  • a minimal blog (posts + editor)

If you’ve done something like this before, I’d love to know:

  • what project you used
  • how many frameworks you tried before it stopped being useful
  • whether it helped long-term or just felt repetitive

Any advice appreciated

Top comments (6)

Collapse
 
htho profile image
Hauke T.

I think it's a good Idea. I do a similar think when I learn a new (OOP) Language: I make a simple LinkedList<T>. It's nice to see the differences in syntax between i.e. Java, JavaScript, TypeScript, PHP, C++

I suggest you create a set of End-To-End tests you can run against all your implementations.
This way you really see if all behave the same.
It is very likely that you add more tests with each implementation you make, and that you even need to change implementations that you thought were "done".

Collapse
 
bradtaniguchi profile image
Brad

I think the only nuance is how you define "exact same".

Maybe the same high level requirements, but how you go about them can change to lean into a frameworks ecosystem/capabilities/features.

The classic example of React, Angular, Vuejs (or any of the fancier alternatives like svelte, or "meta-options" like nextjs) usually leads to Vuejs seeming like the most sensible option unless you try to "overkill" your app with fancy features.

what project you used

I always use the same "flash card" app. Even saying it you already have an idea of what core features it needs.

how many frameworks you tried before it stopped being useful

I only try the frameworks/technology that are inclined to be used for this sort of project, and to only use the ones I plan on using. (Like I've never done this with vuejs because I don't plan on using it)

whether it helped long-term or just felt repetitive

The key I feel like is keeping the scope as small as possible (like don't do auth) and time window short. I've done one of these in just a few hours of fast and dirty work to get the idea and threw it in the trash the same day.

You also don't have to execute everything, you could even do this once and just refer to how you'd do this in another framework, as what's said above they all do stuff similarly.

PS. There is also a distinction to be made between opinionated and un-opinionated options. You can go read Angular's docs and learn about all the new and old ways to do about 90% of everything you could do more or less out of the box. React on the other hand doesn't care how you do everything but the UI. There's some standards (classically create-react-app, or more sensibly vite or fancier with nextjs) but you could go any which way within each choice. You could do this experiment with the same framework multiple times, but different approaches as well.

Collapse
 
dariomannu profile image
Dario Mannu

Most frameworks keep copying the same concepts from each-other, so spending too much time on those alone may create a bit of a one-sided view of the world...

Collapse
 
pengeszikra profile image
Peter Vivo

Maybe the not too UI heavy criteria is do not force framework to capable handling a challenging maybe async events and interactions. So my advice is a simple game which have a game play and player settings form screen.

Collapse
 
razbakov profile image
Aleksey Razbakov

I would recommend you to start with vuejs.org/tutorial/
This tutorial includes building a simple todo list app. It will give you the very important basic knowledge. To level up you will need to read the whole guide. Once you are comfortable with Vue, learn Nuxt.js. Vue is the easiest js framework to start with. Other frameworks are very similar.

The mastery comes from solving complex problems, they didn't appear to me right away, only when I started building complex projects and started creating my components. Here I prepared a few challenges based on my experience.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.