Question: I'm serving as a tech lead for a student group's charity project. We're building a website which puts a bunch of homelessness resources in one place. There are two goals to the project: create a useful website, and let students learn as they build it.

The group is comprised of all levels of college CS student. Most have never done web dev or worked with any of the associated technologies. People get uneasy when I mention using a JS framework.

I want to make sure they get out of it what they came in for -- which by all reports is learning -- but I'd prefer that they enjoy it and don't quit (which would be totally fair, cause they are volunteering their time). 

The group has been asking why we should use a framework. I say 

* testing
* reusability
* dealing with state

They feel that learning multiple things at once could be bad, and that this would be overkill. Honestly, I'm not sure if it would be overkill. It could be. But learning vanilla JS is certainly less valuable than learning React.

Am I being dense? More importantly, would the project better reach it's goals by using a framework, or not?

Answer: 
I believe that *after* getting to know html and css, starting with Vanilla JS or with a framework are both the same thing to a new student that knows nothing, he'll be learning new things from the beginning so if you think learning a framework is more valuable than starting with Vanilla JS then go ahead start with a framework.

When it comes for professional working, most of the jobs require working with frameworks.

Now some people will ask "but how do you want to teach them a framework without giving them the basics of JavaScript?". That's a wrong question. Again, to a new student they both aren't related. Vanilla JS is *not* considered the basics of a framework, the basics is JS yes but why not learn JS *through* the framework. PS that's how i learned about the new ES features, started with react native directly.
You have to understand that the learning curve for learning a JS framework like `React` is more complex than simply learning **Vanilla JS**. Learning an arrow function for example is much easier than learning an arrow function plus functional components, state, props, hooks and third party Redux. However, if you are allowed to segregate students based on their aptitude for learning new stuff then you might consider the more advance ones assigning them learning this stuff. You might also assign others in doing simply testings.

Also, I don't know if you tried [SvelteJS](https://svelte.dev/). `SvelteJS` is much closer to vanilla JS and use normal CSS (no JSX) and the learning curve is definitely lower than learning React or even VueJS.