For a while now, I'd say around 6 months, I have started using a React "fork" called Preact. Now while they are extremely similar, I do want to go over in detail why I personally have switched to using it, instead of normal React, and how exactly you can switch if you feel like doing so for your next project.

Bundle Size

In terms of bundle size, the Preact package is actually larger than the React package by a few kilobytes. However, this is due to good reasoning, if we take into consideration all the react core packages:

react: 6.3kb minified | 2.6kb gzipped
react-dom: 114.5kb minified | 35.9kb gzipped

this is fairly large, the Preact package is around 9kb in terms of bundle size, however it contains: Hooks, DOM code, the core Preact library, among other things. So in reality it is much, much smaller.


Preact strives to be as backwards compatible with react as possible, most code that works in React, should also highly likely work in Preact. The only real "opposing force" to this that I've noticed is instead of doing import {createState} from '@react/hooks'; for example, you'd instead do import {createState} from 'preact/hooks'; but that's not big of a change, two characters at most.

I've brought up the point that Preact aims to be as backwards compatible with React as possible, this is taken a step further with their preact/compat module, this simple module that comes with the project allows you to do stuff that React would normally do in a lot of cases, but within Preact. In my opinion this is not only a good thing for developers wanting to switch, but for developers who like to use React's documentation over Preact's.

Virtual DOM

While React's abstraction over the DOM is great, using their Virtual DOM, it does have some downsides, it can ever so slightly slow down your webapp or page due to having to register things in the Virtual DOM before they get to the real DOM.

Preact removes a lot of the abstraction, and instead registers real events and hooks to make sure you're as close to the DOM as possible, while providing a still simple but powerful abstraction layer to make the development experience quite clean and easy to use. Due to this preact can be used in the browser without any transpilation steps.

Simplicity over Complexity

One thing that has always annoyed me with React is the fact they abstract over simple things such as class in html, or recommend you not to use it at the least. This is not a problem in Preact, you are absolutely free to use things such as class, and for. On top of this, Preact passes props, state, and context all to the render() function for ease of use.


Due to Preact's nature and paradigm, it's completely possible to make components without complex integration, allowing you to create "widgets" that you can use on other websites, without having to worry about all the boiler-plate code, this is similar to Angular Elements.


While React does take up most of the framework market, compared to other frameworks such as Angular, Vue, Svelte, and others, it's downfalls in my opinion are another story, I believe whole heartedly that Preact solves a lot of the issues that are currently in React, and may be a step forward in terms of the direction and overall aim for the framework. While some people may have never even heard of the framework fork, I personally will keep using it, either until it dies off into the void, or becomes slower, or larger, than React already is, and I don't think that'll happen anytime soon.