What is Stencil and what are its top alternatives?
Top Alternatives to Stencil
Svelte
If you've ever built a JavaScript application, the chances are you've encountered – or at least heard of – frameworks like React, Angular, Vue and Ractive. Like Svelte, these tools all share a goal of making it easy to build slick interactive user interfaces. Rather than interpreting your application code at run time, your app is converted into ideal JavaScript at build time. That means you don't pay the performance cost of the framework's abstractions, or incur a penalty when your app first loads. ...
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...
Polymer
Polymer is a new type of library for the web, designed to leverage the existing browser infrastructure to provide the encapsulation and extendability currently only available in JS libraries. Polymer is based on a set of future technologies, including Shadow DOM, Custom Elements and Model Driven Views. Currently these technologies are implemented as polyfills or shims, but as browsers adopt these features natively, the platform code that drives Polymer evacipates, leaving only the value-adds. ...
React Router
React Router is a complete routing solution designed specifically for React.js. It painlessly synchronizes the components of your application with the URL, with first-class support for nesting, transitions, and server side rendering. ...
styled-components
Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅 ...
Angular CLI
A command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications. You can use the tool directly in a command shell, or indirectly through an interactive UI such as Angular Console. ...
Ant Design
An enterprise-class UI design language and React-based implementation. Graceful UI components out of the box, base on React Component. A npm + webpack + babel + dora + dva development framework. ...
Angular Material
Sprint from Zero to App. Hit the ground running with comprehensive, modern UI components that work across the web, mobile and desktop. It allows to create material styled angular apps fast and easy. ...
Stencil alternatives & related posts
- Performance33
- Reactivity27
- Javascript compiler (do that browsers don't have to)26
- Components23
- Real Reactivity21
- Lightweight21
- Simplicity20
- Fast as vanilajs19
- Near to no learning curve17
- Use existing js libraries14
- Compiler based14
- All in one13
- Scalable12
- Composable11
- Very easy for beginners10
- SSR10
- No runtime overhead9
- Ease of use8
- Built in store7
- Typescript4
- Templates4
- Best Developer Experience4
- Start with pure html + css3
- Speed1
- Event Listener Overload1
- Hard to learn1
- Learning Curve1
- Complex1
related Svelte posts
Hi there!
I just want to have a simple poll/vote...
If you guys need a UI/Component Library for React, Vue.js, or AngularJS, which type of library would you prefer between:
1 ) A single maintained cross-framework library that is 100% compatible and can be integrated with any popular framework like Vue, React, Angular 2, Svelte, etc.
2) A native framework-specific library developed to work only on target framework like ElementUI for Vue, Ant Design for React.
Your advice would help a lot! Thanks in advance :)
- Components737
- Virtual dom645
- Performance552
- Simplicity477
- Composable433
- Data flow171
- Declarative156
- Isn't an mvc framework121
- Reactive updates111
- Explicit app state109
- JSX28
- Learn once, write everywhere20
- Uni-directional data flow17
- Easy to Use16
- Works great with Flux Architecture14
- Great perfomance9
- Built by Facebook6
- Feels like the 90s4
- Speed4
- Scalable4
- Functional3
- Javascript3
- Easy to start3
- Server side views3
- TypeScript support2
- Great migration pathway for older systems2
- SSR2
- Fast evolving2
- Simple, easy to reason about and makes you productive2
- Fancy third party tools2
- Excellent Documentation2
- Scales super well2
- Just the View of MVC2
- Server Side Rendering2
- Awesome2
- Cross-platform2
- Hooks2
- Rich ecosystem2
- Split your UI into components with one true state1
- Props1
- Fragments1
- Sharable1
- Every decision architecture wise makes sense1
- Permissively-licensed1
- Super easy1
- Beautiful and Neat Component Management1
- Has functional components1
- Very gentle learning curve1
- Closer to standard JavaScript and HTML than others1
- Sdfsdfsdf1
- Strong Community1
- Has arrow functions1
- Allows creating single page applications1
- Simple1
- Start simple0
- Requires discipline to keep architecture organized31
- No predefined way to structure your app19
- Need to be familiar with lots of third party packages18
- JSX6
- Not enterprise friendly6
- State consistency with backend neglected1
- One-way binding only1
related React posts









I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.
It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.
Polymer
- Web components52
- Material design30
- Backed by Google21
- HTML14
- Components13
- Data Binding11
- Open source5
- It uses the platform4
- Designer friendly. HTMLX concepts3
- Like the interesting naming convention for elements1
- Last version is like 2 years ago? that's totally rad1
related Polymer posts
At Beamery we had a large, AngularJS app, built over several years. Our clients were happy, but we were not. We had several problems: Building new features was slow. AngularJS doesn’t scale nicely. Features clash with each other. Isolation doesn’t come as standard, you have to work hard to keep features separate. It takes time to get it right. #Hiring was hard, for all the reasons listed above. The app was slower than it needed to be because AngularJS was never built for speed. We wanted to render half a million contacts, and Angular was fighting us all the way.
As time went by it become harder to find developers who would willingly choose AngularJS over React Angular 2 , Vue.js , Aurelia or Polymer .
So we faced a choice. We could throw it all away and start again, we could upgrade to Angular 5, or the awesome option - we could use micro frontends. We chose the awesome option.
For developing our #frontend applications, we decided to use Vue.js . Being such an easy to learn library, compared to React for example, it made everything so easy. At first we started with Polymer but the existing tooling and small community at the time made us look for alternatives.
- Because there's not alternative12
- Extremely easy to use2
- Similar implementations for React and React Native2
related React Router posts















ReactQL is a React + GraphQL front-end starter kit. #JSX is a natural way to think about building UI, and it renders to pure #HTML in the browser and on the server, making it trivial to build server-rendered Single Page Apps. GraphQL via Apollo was chosen for the data layer; #GraphQL makes it simple to request just the data your app needs, and #Apollo takes care of communicating with your API (written in any language; doesn't have to be JavaScript!), caching, and rendering to #React.
ReactQL is written in TypeScript to provide full types/Intellisense, and pick up hard-to-diagnose goofs that might later show up at runtime. React makes heavy use of Webpack 4 to handle transforming your code to an optimised client-side bundle, and in throws back just enough code needed for the initial render, while seamlessly handling import
statements asynchronously as needed, making the payload your user downloads ultimately much smaller than trying to do it by hand.
React Helmet was chosen to handle <head>
content, because it works universally, making it easy to throw back the correct <title>
and other tags on the initial render, as well as inject new tags for subsequent client-side views.
styled-components, Sass, Less and PostCSS were added to give developers a choice of whether to build styles purely in React / JavaScript, or whether to defer to a #css #preprocessor. This is especially useful for interop with UI frameworks like Bootstrap, Semantic UI, Foundation, etc - ReactQL lets you mix and match #css and renders to both a static .css file during bundling as well as generates per-page <style>
tags when using #StyledComponents.
React Router handles routing, because it works both on the server and in the client. ReactQL customises it further by capturing non-200 responses on the server, redirecting or throwing back custom 404 pages as needed.
Koa is the web server that handles all incoming HTTP requests, because it's fast (TTFB < 5ms, even after fully rendering React), and its natively #async, making it easy to async/await inside routes and middleware.
I'm creating a website with React in my free time, and this is my first time doing this. So far, I've worked with React and React Router, but migrating to Next.js or Gatsby would cover Routing and SEO, which I currently cannot work with. Most things I read say that Next.js is the best solution, but I am trying to decide whether it is worth the time and effort to recreate the site for SEO and speed purposes. Does anyone have suggestions?
styled-components
- Very easy to use and integrate7
related styled-components posts
For Stack Decisions I needed to add Markdown in the decision composer to give our users access to some general styling when writing their decisions. We used React & GraphQL on the #Frontend and Ruby & GraphQL on the backend.
Instead of using Showdown or another tool, We decided to parse the Markdown on the backend so we had more control over what we wanted to render in Markdown because we didn't want to enable all Markdown options, we also wanted to limit any malicious code or images to be embedded into the decisions and Markdown was a fairly large to import into our component so it was going to add a lot of kilobytes that we didn't need.
We also needed to style how the markdown looked, we are currently using Glamorous so I used that but we are planning to update this to Emotion at some stage as it has a fairly easy upgrade path rather than switching over to styled-components or one of the other cssInJs alternatives.
Also we used React-Mentions for tagging tools and topics in the decisions. Typing @
will let you tag a tool, and typing #
will allow you to tag a topic.
The Markdown options that we chose to support are tags: a
, code
, u
, b
, em
, pre
, ul
, ol
, li
.
If there are anymore tags you'd love to see added in the composer leave me a comment below and we will look into adding them.
#StackDecisionsLaunch















ReactQL is a React + GraphQL front-end starter kit. #JSX is a natural way to think about building UI, and it renders to pure #HTML in the browser and on the server, making it trivial to build server-rendered Single Page Apps. GraphQL via Apollo was chosen for the data layer; #GraphQL makes it simple to request just the data your app needs, and #Apollo takes care of communicating with your API (written in any language; doesn't have to be JavaScript!), caching, and rendering to #React.
ReactQL is written in TypeScript to provide full types/Intellisense, and pick up hard-to-diagnose goofs that might later show up at runtime. React makes heavy use of Webpack 4 to handle transforming your code to an optimised client-side bundle, and in throws back just enough code needed for the initial render, while seamlessly handling import
statements asynchronously as needed, making the payload your user downloads ultimately much smaller than trying to do it by hand.
React Helmet was chosen to handle <head>
content, because it works universally, making it easy to throw back the correct <title>
and other tags on the initial render, as well as inject new tags for subsequent client-side views.
styled-components, Sass, Less and PostCSS were added to give developers a choice of whether to build styles purely in React / JavaScript, or whether to defer to a #css #preprocessor. This is especially useful for interop with UI frameworks like Bootstrap, Semantic UI, Foundation, etc - ReactQL lets you mix and match #css and renders to both a static .css file during bundling as well as generates per-page <style>
tags when using #StyledComponents.
React Router handles routing, because it works both on the server and in the client. ReactQL customises it further by capturing non-200 responses on the server, redirecting or throwing back custom 404 pages as needed.
Koa is the web server that handles all incoming HTTP requests, because it's fast (TTFB < 5ms, even after fully rendering React), and its natively #async, making it easy to async/await inside routes and middleware.
related Angular CLI posts









I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
Picked Angular 2 as framework since Angular CLI made it easy to get started on a self-contained frontend web project with TypeScript for easier development -- thanks to intellisense extensions for Visual Studio Code, hassle-free browser compatibility with the built-in Babel transpiler and packaging with the built-in Webpack configuration.
- Lots of components30
- Polished and enterprisey look and feel24
- Easy to integrate15
- Es6 support14
- TypeScript14
- Beautiful and solid13
- Quick Release rhythm12
- Beautifully Animated Components9
- Great documentation9
- Typescript support9
- Short Code6
- Less12
- Large File Size6
- Close4
- Poor accessibility support1
related Ant Design posts
Hi there!
I just want to have a simple poll/vote...
If you guys need a UI/Component Library for React, Vue.js, or AngularJS, which type of library would you prefer between:
1 ) A single maintained cross-framework library that is 100% compatible and can be integrated with any popular framework like Vue, React, Angular 2, Svelte, etc.
2) A native framework-specific library developed to work only on target framework like ElementUI for Vue, Ant Design for React.
Your advice would help a lot! Thanks in advance :)
Hi, I start building an admin dashboard with next.js and looking for a frontend framework ( components ready ). So I end up with Ant Design and Material-UI, but I never built a project with these two.
Here is a list of my requirements.
- Good documentation.
- easy CRUD ( date picker and date range picker bundled )
- built-in multi-lang feature or Great 3rd library support
- Admin dashboard template
- well code maintenance
Which is better for the long run?
- Components10
- Backed by a well known company5
- Simple3
- Easy2
- Very good documentation2
- Rte2
- Implements well known material design1
- Fairly large2