What is Pug and what are its top alternatives?
Top Alternatives to Pug
- EJS
It is a simple templating language that lets you generate HTML markup with plain JavaScript. No religiousness about how to organize things. No reinvention of iteration and control-flow. It's just plain JavaScript. ...
- Handlebars.js
Handlebars.js is an extension to the Mustache templating language created by Chris Wanstrath. Handlebars.js and Mustache are both logicless templating languages that keep the view and the code separated like we all know they should be. ...
- 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. ...
- TypeScript
TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript. ...
- Mustache
Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object. We call it "logic-less" because there are no if statements, else clauses, or for loops. Instead there are only tags. Some tags are replaced with a value, some nothing, and others a series of values. ...
- Smarty
Facilitating the separation of presentation (HTML/CSS) from application logic. This implies that PHP code is application logic, and is separated from the presentation ...
- Jinja
It is a full featured template engine for Python. It has full unicode support, an optional integrated sandboxed execution environment, widely used and BSD licensed. ...
- Hogan.js
Hogan.js is a 3.4k JS templating engine developed at Twitter. Use it as a part of your asset packager to compile templates ahead of time or include it in your browser to handle dynamic templates. ...
Pug alternatives & related posts
- For a beginner it's just plain javascript code4
- It'a easy to understand the concept behind it4
- Quick for templating UI project3
- You almost know how to use it from start1
related EJS posts
- Simple106
- Great templating language77
- Open source50
- Logicless36
- Integrates well into any codebase20
- Easy to create helper methods for complex scenarios10
- Created by Yehuda Katz7
- Easy For Fornt End Developers,learn backend2
- Awesome1
related Handlebars.js posts
- Components781
- Virtual dom661
- Performance570
- Simplicity495
- Composable440
- Data flow178
- Declarative163
- Isn't an mvc framework125
- Reactive updates115
- Explicit app state113
- JSX41
- Learn once, write everywhere26
- Uni-directional data flow20
- Easy to Use19
- Works great with Flux Architecture15
- Great perfomance11
- Built by Facebook9
- Javascript8
- TypeScript support6
- Speed6
- Scalable5
- Awesome5
- Hooks5
- Easy to start5
- Feels like the 90s5
- Server Side Rendering4
- Functional4
- Server side views4
- Fancy third party tools4
- Cross-platform4
- Scales super well4
- Excellent Documentation4
- Props4
- Has functional components3
- Simple3
- Closer to standard JavaScript and HTML than others3
- Super easy3
- Allows creating single page applications3
- Rich ecosystem3
- Great migration pathway for older systems3
- SSR3
- Fast evolving3
- Simple, easy to reason about and makes you productive3
- Just the View of MVC3
- Beautiful and Neat Component Management3
- Sdfsdfsdf3
- Very gentle learning curve3
- Start simple3
- Has arrow functions3
- Strong Community3
- Fragments2
- Every decision architecture wise makes sense2
- Split your UI into components with one true state2
- Sharable2
- Easy as Lego2
- Permissively-licensed2
- Image upload1
- Recharts1
- Requires discipline to keep architecture organized36
- No predefined way to structure your app24
- Need to be familiar with lots of third party packages23
- JSX9
- Not enterprise friendly7
- One-way binding only5
- State consistency with backend neglected2
- Bad Documentation2
- Paradigms change too fast1
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 picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
TypeScript
- More intuitive and type safe javascript164
- Type safe97
- JavaScript superset73
- The best AltJS ever47
- Best AltJS for BackEnd27
- Powerful type system, including generics & JS features14
- Nice and seamless hybrid of static and dynamic typing10
- Compile time errors9
- Aligned with ES development for compatibility9
- Angular6
- Structural, rather than nominal, subtyping6
- Starts and ends with JavaScript3
- Garbage collection1
- Code may look heavy and confusing4
- Hype3
related TypeScript posts
Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.
Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.
After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...
I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
- Dead simple templating29
- Open source12
- Small8
- Support in lots of languages1
related Mustache posts
related Smarty posts
- It is simple to use7
related Jinja posts
I have learned both Python and JavaScript. I also tried my hand at Django. But i found it difficult to work with Django, on frontend its Jinja format is very confusing and limited. I have not tried Node.js yet and unsure which tool to go ahead with. I want an internship as soon as possible so please answer keeping that in mind.
- Lightweight3