Which Front-End Technology Would You Choose for a New Meteor Project Today?

React, for sure.

There are some other frameworks that edge out on performance, one notable one being Famous UI, which was built around CSS and GPU optimizations.

But the composability that React introduced means real reusability; which means that components get better with time. And the critical mass of use that Facebook gave, means that code assistants and LLMs can auto-generate great React code.

1 Like

React.

The svelte generator is 2 major versions behind, otherwise I’d probably pick svelte.

edit: If blaze had first-class support, I might pick blaze. This is based on the fact that when I’m working in rails, I just use erb rather than react. I almost always pick the “path of least deviation” when working - staying as close to the default as possible helps a lot when looking for help and helping other people.

4 Likes

I gave to admit I would use Vue although I still love Blaze. Vue has the advantage of being close to Blaze while not forcing you to wrap all logic in hooks.

Tailwind integration is perfect and state management is not a headache. Plus there are many similar component libraries and composable out there as you know from react.

Finally, I like Vue being a pure community effort and not having a big corpo behind it.

3 Likes

Was a Blaze diehard. Switched to React and never looking back.

Did build stuff in Svelte but still like React more

3 Likes

React is the king now. Not because it runs faster or consumes less memory, it’s because it’s too popular, and we feed AI lots of React’s content.

3 Likes

React or Preact with Signals for state management.

4 Likes

Svelte.

It’s a win-win for enjoyment and performance. I think it’s also the one that aligns most closely with Meteor’s ethos.

All modern ones (svelte, vue, solid) have converged to using signals so the choice becomes largely what syntax you like.

React is legacy at this point. Maybe they’ll move to signals as well or maybe those that like the react-like syntax will move to solid. Here’s a video that highlights the difference between the approaches, aka vdom diffing (react) vs fine-grained signals (svelte, vue, solid): https://youtu.be/YQT26cnCKqo?si=-X0E1MrFyTQd3Z4_

I don’t think the AI training data argument holds water. It’s demonstrably false, here’s one example: @bholmes.dev on Bluesky

More broadly, kowtowing to training set data would mean no more innovation. I don’t think that’s likely and would be a sad world.

Yeah, Meteor’s lack of support for package.json exports is holding this back. zodern opened a PR here. I hope that will be resolved shortly by either that PR or the ongoing work to integrate a modern bundler, otherwise you can use meteor-vite, see ceigey’s repo here.

5 Likes

chatGPT thinks (hopefully not hallucinating) there are indications that React may implement signals at some future time.

2 Likes

React. Why? Because I know it, I work efficiently with it, and it has enough inertia to not vanish overnight. The reason is not because it is better than Solid or Vue or Svelte, etc. I don’t know enough to make that judgement.

2 Likes

React, My project originally used Vue, but I paid a high cost to migrate to React. The main reason is that React is better suited for complex applications, whereas Vue quickly becomes extremely difficult to maintain as complexity increases.

1 Like

I’m in the Vue camp myself.

2 Likes

SolidJS for me. I find it close to but better than Blaze; see Meteor + SolidJS demo - #9 by edemaine
(though some features like dev mode aren’t working thanks to the lack of package.json exports feature in Meteor)

I hear Svelte is basically Solid now, though, so it’s probably a good choice too. :wink:

2 Likes

Don’t use React. React is one of the most outdated frameworks these days, and does not align with modern standards. Choosing React today will leave your code base in a poor state for the future.

React code ships as CommonJS for goodness sakes (we’ve been on ES modules for a long time already), and React Hooks is a minefield of issues and bugs that even experienced devs will get blown up in, and that beginners don’t stand a chance against.

Modern frameworks that you should check out are those that are aligned with modern web standards, such as custom element libraries like Lit and Lume Element, and frameworks that fully embrace the modern paradigm of Signals and Effects, such as Solid.js, Vue, Angular, Svelte, Lume Element, and more. These frameworks lead to code that is less buggy, less clunky, and easier to understand, organize, refactor, and maintain.

1 Like

Oh, and if you don’t know! Meteor’s ReactiveVar and Tracker.autorun are the same as Signals and Effects in other newer frameworks, just named differently.

For example Tracker.autorun is the same as createEffect in Solid.js, and ReactiveVar is the same as createSignal in Solid.js.

Choosing any framework that is closely aligned with Signals and Effects means you are choosing a framework that aligns well with Meteor’s own paradigm.

Think about that for a second.

Using something else like React only adds another (unideal) paradigm to the mix, and meshing them together is not a good idea, it is going to make your code uglier and more scrappy.

The integration of Solid.js in Meteor (or Lume Element which is written with Solid.js) leads to a much better fit for the mental models Meteor already has (signals and effects), and the package that @edemaine created for Meteor’s reactivity to work in Solid, and vice versa, leads to a much more cohesive experience than anything that can be achieved by cramming React into Meteor.

The only reason Meteor unfortunately has React in its first tutorial is Meteor’s hope to attract people due to popularity, while tossing merit aside (no offense). React is a bad choice on its own, and using React in Meteor is considerably worse.

2 Likes

React in 2025 is like Angular in 2015. mic drop

That is how I feel lately. Today I would build with SolidJS (because of my knowledge of React and my preference of HTML in JS rather than the other way around).

It’s hard to take the SolidJS comments seriously when the solidjs.com website doesn’t load on either Chrome or Safari on my Mac Mini. Meanwhile, Material UI (React) has built in ARIA support for 508 accessibility requirements.

1 Like

embarrassing

I personally would be on the Vue side of things.

  • First class vite integration
  • Proxy based reactivity
  • Composables
  • Comprehensible/transparent lifecycle
  • No enforced “hook order”
  • Integrates well with basically anything
  • Teleport, (named) Slots
  • Manual DOM manipulation for total exceptional edgy edge cases
  • Fells natural to adopt if you come from Blaze
  • No corporate entanglement
1 Like

Vue will at least load on my Mac Mini, so it’s got that going for it. ¯_(ツ)_/¯