A declarative, HTML-based language that makes building web apps fun
14,410
stars
7,330
commits
JavaScript
primary language
Sep 11, 2026
updated
A declarative, HTML-based language that makes building web apps fun 🔥
Docs ∙ Try Online ∙ Contribute ∙ Get Support
Marko is HTML reimagined as a language for building dynamic and reactive user interfaces. Almost any valid HTML is valid Marko, and Marko extends HTML for building modern applications more declaratively. Among these extensions are components, conditionals and loops, and a full reactivity system.
The following renders a button and a counter of how many times the button has been pressed:
click-count.marko
// HTML + JavaScript = 💜
<let/count=0>
<button onClick() { count++ }>
Clicked ${count} times
</button>
npm init marko|
Hang out in our Discord server to ask questions & discuss marko |
Keep up with the community on Bluesky at @markojs.com |
Tweet to @MarkoDevTeam or use the #markojs hashtag |
Browse the code, open issues, & make pull requests on GitHub |
Marko would not be what it is without all those who have contributed ✨
(top 30 of 129)
2,601 commits
2,379 commits
951 commits
585 commits
JavaScript
63.0%
TypeScript
19.9%
HTML
11.8%
Marko
5.3%
A declarative, HTML-based language that makes building web apps fun
14,410
stars
7,330
commits
JavaScript
primary language
Sep 11, 2026
updated
A declarative, HTML-based language that makes building web apps fun 🔥
Docs ∙ Try Online ∙ Contribute ∙ Get Support
Marko is HTML reimagined as a language for building dynamic and reactive user interfaces. Almost any valid HTML is valid Marko, and Marko extends HTML for building modern applications more declaratively. Among these extensions are components, conditionals and loops, and a full reactivity system.
The following renders a button and a counter of how many times the button has been pressed:
click-count.marko
// HTML + JavaScript = 💜
<let/count=0>
<button onClick() { count++ }>
Clicked ${count} times
</button>
npm init marko|
Hang out in our Discord server to ask questions & discuss marko |
Keep up with the community on Bluesky at @markojs.com |
Tweet to @MarkoDevTeam or use the #markojs hashtag |
Browse the code, open issues, & make pull requests on GitHub |
Marko would not be what it is without all those who have contributed ✨
(top 30 of 129)
2,601 commits
2,379 commits
951 commits
585 commits
JavaScript
63.0%
TypeScript
19.9%
HTML
11.8%
Marko
5.3%