
Create React App (294Mb) Compared with Re-Frame (72Mb) - cutler
A new create-react-app project currently weighs-in at 294Mb with a 293Mb node_modules folder containing 1017 modules. A new Clojurescript Re-frame project, by contrast, totals 72Mb of which node_modules makes up 12Mb containing 23 modules. A bit of a raw deal with CRA, don&#x27;t you think,  considering Re-frame gives you immutability for free and a full complement of built-in Clojurescript functions?
======
quickthrower2
The size of developer dependencies on their machine is not an interesting
metric, as most developers will have a decent internet connection. 1Mbps would
be OK you could download this overnight then you are all good.

More interesting is:

* Build time

* Minified Production Bundle Size

* Developer Productivity

* Cross Browser / Old Browser Support

* + what romanovcode said :-)

------
johncoltrane
Well, the use case for create-react-app is for JavaScript/React developers to
create a new JSX-based React application and most of those JavaScript/React
developers…

\- have no idea what you are talking about,

\- have no desire to use/learn anything else than JavaScript or something
really close like TypeScript and will barf at the sight of ClosureScript's
syntax,

\- like their JSX and will barf at the sight of reagent's syntax,

\- are used to infinitely large node_modules directories anyway.

The promise of re-frame is definitely interesting, but comparing directory
size won't get you far when the real obstacles to adoption are elsewhere.

------
romanovcode
This is very weak argument. Nobody cares.

What matters:

\- Size of .js files that are served to the user

\- Speed and productivity of development

\- Libraries, tutorials and documentations

\- Maintainability of the project

~~~
tcbasche
For me personally the productivity would just plummet.

Everyone uses Javascript, no-one uses Clojurescript. That statement in itself
is one of the most powerful reasons to pick one framework over the other.

------
tcbasche
I have absolutely no idea what this readme is even talking about

[https://github.com/Day8/re-frame](https://github.com/Day8/re-frame)

------
galfarragem
Is a minified reframe app smaller than a react/redux app or a elm app?

~~~
fnordsensei
Given that any ClojureScript app includes the Clojure core APIs, you have a
constant size tacked on to any app as compared to raw JS. Of course, this is
amortized as the app grows more complex.

Here's one comparison. Smaller than React/Redux, but larger than Elm:
[https://cdn-media-1.freecodecamp.org/images/DRmH8Fz15DLxXguz...](https://cdn-
media-1.freecodecamp.org/images/DRmH8Fz15DLxXguz9d8NR0eVanX0U9xW9jom)

The constant size of the API is emphasized when you look at the number of
lines of code for the same app: [https://cdn-
media-1.freecodecamp.org/images/Y7vQUAUrMzGi8l3K...](https://cdn-
media-1.freecodecamp.org/images/Y7vQUAUrMzGi8l3K2VZujbrZYqAIPfKwYXZj)

~~~
galfarragem
> any ClojureScript app includes the Clojure core APIs

Shouldn't be also the case of Elm apps? But they are tiny. Probably Re-frame
wrapping React (and Redux?) doesn´t help at all. Why not being native (like
Elm) or kind of a Svelte wrapper[1] to keep apps small? I really like Clojure
expressiveness but I hate waste.

[1] [https://clojureverse.org/t/create-web-app-with-shadow-
cljs-a...](https://clojureverse.org/t/create-web-app-with-shadow-cljs-and-
svelte/4720/3)

~~~
fnordsensei
I'm not expert on Elm, but to take a guess, I'd say that it's about different
tradeoffs. And "waste" is conditional, if (like you wrote) you're actually
making use of the dynamism, immutable data structures, meta programming
facilities and whatnot, it's not waste.

------
JimmyAustin
222mb of space on my development machine machine is so little I wouldn't even
think about it.

