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](https://discord.gg/marko) to ask questions & discuss marko | Keep up with the community on Bluesky at [@markojs.com](https://bsky.app/profile/markojs.com) | Tweet to [@MarkoDevTeam](https://twitter.com/MarkoDevTeam) or use the [#markojs](https://twitter.com/search?q=%23markojs%20OR%20%40markodevteam&f=live) hashtag | Browse the code, open issues, & make pull requests on [GitHub](https://github.com/marko-js/marko) |
Marko would not be what it is without all those who have contributed ✨
$ claude mcp add marko \
-- python -m otcore.mcp_server <graph>