When NOT to Use a Framework

By Mark Sullivan2026-04-19~9 min read

The internet tells beginners to start with React. The internet is wrong. Here is why writing plain code first builds better engineers.

The Pressure to Start With a Framework

Open any learn web development in 2026 tutorial and you will be three weeks into React before you have written your first plain-JavaScript loop. Why? Because that is what jobs ask for.

The problem: you can build apps with React without ever understanding how the underlying language works. Then when something breaks at a level React does not abstract, you are stuck.

Why Plain Code First Is Better

  1. Frameworks abstract. Abstraction without foundation is fragile. When the abstraction leaks (and it always does), you need to know what is underneath.
  2. Frameworks change. React's state-management story has shifted three times in five years.
  3. The first job interview tests fundamentals. Even React developer roles ask about closures, scope, and the event loop.

What to Build in Plain Code First

  1. A counter - click a button, number goes up. Teaches DOM and events.
  2. A todo list - add and remove items, save to localStorage. Teaches arrays, objects, persistence.
  3. A weather app - fetch from a public API. Teaches async, JSON, error handling.
  4. A simple game - Tic-Tac-Toe or Snake. Teaches state machines and the event loop.

The second and third are in our projects collection.

Signs You Are Ready for a Framework

  1. You have built three plain-JS apps that have at least one stateful interaction each.
  2. You can explain what state means in one sentence.
  3. You can explain what reactivity means.
  4. You can articulate one frustration with plain DOM code that a framework would solve.

If you check all four, the framework will feel like a relief.

Which Framework, When You Are Ready

  • React - biggest job market. Steeper conceptual ramp.
  • Vue - gentler ramp. Smaller job market.
  • Svelte - feels closest to plain JS. Smallest market but growing.

For most beginners I recommend plain JS, then Svelte (to feel reactivity click), then React (because the job market is real).

The Same Argument for Backends

Should I learn Django or Flask? Write a small server in plain Node.js or plain Python with the standard library first. Then frameworks will look like conveniences rather than a black box.

The classic Node http module or Python's http.server are the right starting points.

The Caveat

This advice is for people who want to understand programming. If your goal is to ship something specific (a personal site), pick the easiest framework and ship.

The Real Cost of Adopting a Framework Too Early

Let me put numbers on the cost. A junior who learns React without first writing plain JS will:

  • Memorize useState without understanding why state outlives a function call.
  • Use useEffect as a magic box that "runs sometimes."
  • Be confused the first time a closure captures a stale value.
  • Ship bugs they cannot diagnose because the framework hides the source.

Each item costs a week of confusion. Multiply by all the frameworks they will adopt over their career and you have years of avoidable struggle. Two months of plain JS up-front saves all of it.

Frameworks Have Real Tradeoffs

For every problem a framework solves, it imposes a constraint. React makes UI updates declarative but introduces re-renders, hooks rules, and reconciliation. Django gives you a free admin panel but also opinions on URLs, models, and templates that you must obey. These tradeoffs are usually worth it - but only if you understand the problem they solve.

If your beginner project does not have the problem the framework solves (e.g., a static portfolio does not need React), the framework is pure overhead. Plain HTML and CSS will be smaller, faster, and easier for you to maintain.

A Sane Stack Progression

For a beginner aiming at web roles, here is the order I would recommend:

  1. Plain HTML + CSS - one weekend.
  2. Plain JavaScript with the DOM - two weeks. Build the counter and todo list from our projects.
  3. Fetch + JSON - one week. Build the weather card.
  4. One framework (React or Svelte) - one month. Rebuild the same projects.
  5. Build tooling (Vite, package management) - learn as needed, not before.

By the end you understand the stack from the bottom up. You will out-debug the bootcamp grad who jumped straight to React.

Frequently Asked Questions

When is it OK for a beginner to start with React?

When you have a specific React job lined up and need React-specific skills fast. Otherwise, two months of plain JS first will save you a year of confusion.

Is jQuery still worth learning?

No. Modern browser APIs cover what jQuery used to add. Learning the native DOM API directly is a better investment.

What about meta-frameworks like Next.js or SvelteKit?

Save them for after you understand the underlying framework (React, Svelte). They add server-side rendering, routing, and build tooling - layers that make sense once you have hit the problems they solve.

Do I need TypeScript to get hired?

Increasingly, yes. But not in your first three months. Get comfortable with JavaScript first. TypeScript is a productivity layer on top, not a replacement for the language.

Key Takeaways

  • Frameworks abstract. Without foundations, the abstractions feel like magic and break unexpectedly.
  • Two months of plain JavaScript or plain Python first prevents a year of confusion later.
  • The signal you are ready: you can articulate one frustration with plain code that a framework would solve.
  • Recommended order: plain JS → Svelte (to feel reactivity click) → React (because the job market is real).
  • If your goal is shipping a specific thing rather than learning programming, ignore this advice and grab the easiest framework.

M
Mark Sullivan
Lead writer - 8 yrs full-stack

Mark started coding in 2017 after switching from financial analysis. He has built production systems in Python (Django) and JavaScript (Node + React) at two startups, and has taught intro programming at his local community college since 2022.