markdown guide

The two are roughly equivalent in terms of functionality, so it comes down to what syntax you prefer. I have very strong feelings about this: I despise ejs syntax. All the special characters add noise to the code and increase your surface area for mistakes. Its takes longer to read, it takes longer to write, and it takes longer to find bugs. However, ejs syntax is an expansion of HTML where pug syntax is completely different, so I can see why some might prefer ejs. I would spend a little time writing in each, then decide which one works best for you.


That is a neat reply. I agree with you. I'm personally comfortable with EJS since I know HTML very well. But you know lately, I started digesting PUG script, where I don't see any tag, it's clean code. So, I think I will go with PUG, it's a little weird in the beginning but better in the later part. Anyway, thanks for the recommendation.


I'm personally comfortable with EJS since I know HTML very well

From my experience, this is important. Even though EJS is kind of ugly, IMO it's much easier to pass around between different people without confusion. With PUG, you're really buying into a wholly different universe, that's probably cleaner and easier to use in and of itself, but different in ways that can matter.

IMO EJS is the more practical solution, even if it isn't "better".

Thank you Ben, I share your view too. I had that experience today itself only when one of my colleagues saw my PUG script and freaked out. I thought I better go with EJS since everybody knows HTML. Anyway, Thanks for your input on this.

I think it’s great to go through the process of asking this question. There’s no right answer but at least it’s not all in your head anymore.


I'm not fond of either. I haven't used Pug since it was Jade so my experience of it may not be up date date, but I always found it too terse for my liking and too different to HTML. I haven't used EJS at all, but it looks a lot like Underscore templating which I always found cumbersome.

I agree with Meghan that Handlebars is also worth a look. I've used Handlebars a lot (my site is built with a static site generator I wrote that uses Handlebars), and it has a very shallow learning curve.

Alternatively, have you looked at React.js? It's my usual go-to for JS templating these days and can be used to render the same template on client and server side. It's more complex than the others as it also includes things like event handling, so it might be overkill for you, but for some use cases it can be a boon.


Thanks for the comment, Mark. I find react is a little bit overkill for the kind of project I'm doing. In other words, I need something really simple. Given the site is static, my goal to reuse the pieces of HTML code, that's it.


In that case, Handlebars should be a good fit. It supports partials, and you can create your own helpers. The syntax is IMHO simpler than EJS or Pug too.


I had things I didn't like about either, so I made my own haha. But out of those two, definitely Pug.


I'd even recommend Handlebars over both of those.


Handlebars seem interesting!! Thank you for your suggestion! I will give it a shot too.


Why not Beagle? Sniffs bugs better than Pug


Wish I could give you better suggestion but at the end of the day it is more of a personal preference. Longer time ago I was between Java or Python? I liked Python more because at that time I was very confused how much stuff I need to write in Java vs Python. So I picked something that was easier for me to understand and then I went upwards from it.


Thanks Joe for the comment!

Is Sniffs bugs node package, I couldn't find it.

I found BeagleJS but it's a web scraper.


Take a look at nunjucks, I think it's a middle ground between the two in terms of simplicity and resemblance to vanilla HTML. VSCode has some great extensions for it as well.


nunjucks is really interesting, thanks for the suggestion. I'll look for into it.

Classic DEV Post from Jan 25

Letter to Myself Ten Years Ago

Inspired by the viral 10-year challenge on social media, when people show the world what they looked like 10 years ago, I decided not to share my photos of that time.

Kim John profile image
Made complex JSON inspecting super easy. Created revolutionary free online tool( to visualize JSON as table and Connected every table cell to JSON element, awesome right!