Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A declarative, HTML-based language for building dynamic and reactive user interfaces.
Marko is a declarative, HTML-based language for building dynamic and reactive user interfaces, distributed as an open-source npm package with 14,396 stars on GitHub.
Marko is an HTML-based language and UI framework that accepts almost any valid HTML and extends it with components, conditionals, loops, and a built-in reactivity system. It compiles .marko files into JavaScript that can run on both the browser and the Node.js server, making it an isomorphic solution for web app development. The project is maintained by the marko-js GitHub organization and used widely since the repository has accumulated 14,396 stars. Its documentation lives at markojs.com, and it provides an online playground for trying code in the browser.
<let> tags, and the framework automatically updates the DOM when that state changes.onClick().<if>, <else>, and <for> add logic directly in markup.npm init marko generates a new project from the command line.Marko is for frontend developers who prefer writing UI in an HTML-like declarative syntax rather than JavaScript-heavy JSX or template literals. It also suits full-stack engineers building Node.js applications that need server-rendered pages that hydrate into interactive client-side components. Additionally, it benefits teams that want a single component language shared across server and client, avoiding separate template and frontend codebases.
To start, run npm init marko in your terminal to scaffold a new Marko project. Components are written in .marko files, and the Marko compiler turns them into JavaScript modules that run in the browser or on the server. The online playground at markojs.com/playground lets you experiment with Marko without installing anything.
Yes, Marko is open-source software. The source code is publicly hosted on GitHub under the marko-js organization, and the package is distributed through npm.
Marko is a language for building web app user interfaces. It extends HTML with components, conditionals, loops, and reactivity so that you can define interactive UI declaratively, and it compiles those definitions into JavaScript for the browser and Node.js.
Yes. Marko supports server-side rendering, allowing the same components to be rendered on the Node.js server and then hydrated on the client for interactivity.
The official documentation is at markojs.com/docs/introduction/getting-started, and the community discusses Marko on Discord at discord.gg/marko. You can also try code in the online playground at markojs.com/playground.
