design system

HTML

|  By: kanyi

What is a framework in development? Combining front-end tools

When it comes to building a project, you essentially have two options when selecting a framework; either build a custom framework or use an existing framework.

Selecting a front-end tech stack

The Two Paths: DIY or Framework?

When it comes to building a project, you essentially have two options.

  • The first is a custom combination of tools tailored to your needs. A DIY approach.
  • The second is to use a pre-selected set of tools from the developer community, AKA a framework.

Building your custom stack. #DIY

Building a custom stack is an excellent choice for those who enjoy the hands-on approach. This option suits hobby projects, learning, or practice. Popular combinations include:

Vanilla’ Stack: HTML, CSS & JavaScript.

The most basic stack because it contains the three foundational tools of development. This stack of tools is what everyone is familiar with when starting to code.

“Vanilla” refers to using the plain, core features of a programming language or tool without relying on external frameworks, libraries, or abstractions. It emphasizes leveraging built-in capabilities for simplicity, control, or to avoid dependencies. The term is often used to clarify context—e.g., “vanilla JavaScript” means raw JS (no React, Vue, etc.), while “vanilla CSS” means no Tailwind or Bootstrap.

Example Conversation: Vanilla JS & React JS
  • You: “Hey, should we use React for the landing page? It’s just a simple contact form and hero section.”
  • Me: “Nah, React is overkill here. Let’s keep it vanilla. We can use plain JavaScript for the form.”
  • You: “But won’t vanilla JS take longer? React’s state management would make the form easier.”
  • Me: Vanilla JS is faster here. No setup, no dependencies. Plus, the client wants this lightweight—vanilla keeps it under 50KB.
Vanilla tech stack

Small Application: React, JSX and Tailwind

Instead of using HTML, CSS or JS, you can build apps using libraries that improve the developer experience, like JSX instead of vanilla HTML, TailwindCSS instead of vanilla CSS & React instead of vanilla Javascript.

This stack is an upgrade from the foundational tools for more ‘complex’ apps, and it improves the developer experience, which you will see later on.

Small app tech stack

Simple Website: Bootstrap, HTML & JQuery

For a simple website, you can use vanilla HTML, Bootstrap instead of vanilla CSS and JQuery instead of vanilla Javascript

Simple website tech stack

Customized Website: HTML, TailwindCSS, & AlpineJS

For a more customized-looking website, you can use vanilla HTML, TailwindCSS instead of vanilla CSS & AlpineJS instead of vanilla Javascript

Custom website tech stack

Making it reusable

Let’s say you build a complete website using any of the above stacks, and now you want to build a second one. Instead of starting from scratch, you could copy the files from the complete website and use them to make the second website…

…You have just created a simple custom framework for building sites. You have concluded that the files are all you need for a website, so those files become the framework for any new website (obviously, you will have to edit the file contents to match the new website’s content).

This is an overview of what a framework is. So, anytime you hear someone say framework, imagine it as someone’s idea of the tools and tech you need to build a project.

Third-party framework, AKA someone else built it.

This is when you copy someone else’s idea of a tech stack.

There are many frameworks in existence—arguably as many as there are developers with ‘complete’ projects. However, we’ll only mention a few popular ones, such as Laravel, MEAN, MERN, Django, etc.

Major frameworks will have all five foundational elements integrated.

Laravel tech stack infographic
Django tech stack infographic
NextJS tech stack infographic
  • MERN: CSS (any), HTML (JSX), JS (React), DB (MongoDB), LANG (NodeJS – ExpressJS)
  • MEAN: CSS (any), HTML (custom HTML), JS (Angular), DB (MongoDB), LANG (NodeJS – ExpressJS)
  • MEVN: CSS (any), HTML (custom HTML), JS (Vue), DB (MongoDB), LANG (NodeJS – ExpressJS)

Other frameworks not included above are Ruby on Rails, Flask, Symfony, Blazor, etc.

Beyond the Basics: Extra Technologies and Tools

Thus far, we have listed the five foundational aspects of web development, HTML, CSS, Javascript, Databases and a Programming language. On top of these fundamentals, other tools, best practices and technologies exist that assist with development. For example, Git, npm, sass, less, HTTP, etc.

Each element serves a specific purpose; as we delve deeper, it will all come together and make sense. Moving forward with this series, we will use the Vanilla stack, HTML, CSS and JS (which is what you are familiar with) as the foundation and add on to it so that everything makes sense.

Remember, the key to mastery lies not in mastering every tool available but in selecting the ones that fit with your project. Happy coding!

easy cute code