marko README

The project's README from github.com/marko-js/marko. As one markdown file: README.md.

Marko

A declarative, HTML-based language that makes building web apps fun 🔥

NPM Discord Chat Continuous Integration status Code coverage % # of monthly downloads OpenSSF Best Practices

Docs ∙ Try Online ∙ Contribute ∙ Get Support

Intro

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.

Example Component

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>

Getting Started

  1. npm init marko
  2. Read the docs

Community & Support

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

Hang out in our Discord server to ask questions & discuss marko

Contributors

Marko would not be what it is without all those who have contributed ✨

All marko-js/marko GitHub contributors

Get Involved!

marko (marko-js/marko)

Searching Database…

14.5K ·GitHub
What is this?Marko is a declarative, HTML-based language for building dynamic, reactive user interfaces. It extends plain HTML with components, conditionals, loops, and a built-in reactivity system.
Is this a templating language, a framework, or a library?It's a UI framework built around its own HTML-based template language that compiles to JavaScript, supporting both client-side and server-side rendering.
How do I create a new Marko project?Run 'npm init marko' to scaffold a new project, then follow the docs for building components.
What Node.js version do I need?Marko requires Node.js 22.18.0+, 24.x, or 26.0.0 and above.
Do I need to learn a lot of new syntax to use it?Not really — almost any valid HTML is already valid Marko, so you extend what you know rather than learning a whole new syntax.
Is it meant for building whole apps or just UI widgets?It's aimed at building full dynamic and reactive web applications, not just isolated widgets.
Does Marko support both client-side and server-side rendering?Yes, Marko is isomorphic and supports both client-side rendering (CSR) and server-side rendering (SSR) out of the box, as reflected in its own topics and design.
What does a Marko component look like?A component is written as an HTML-like .marko file, e.g. click-count.marko, mixing markup with component logic such as counters and click handlers.
Can I try Marko without installing anything?Yes, the README links to a 'Try Online' option for experimenting with Marko directly in the browser before setting up a project.
What are similar projects?hyperapp, riot, mitosis, nuxt, razzle, framework, preact, inferno
Creator
marko-js
Size
98.9 MB
Stars
14.5K
Age
12y
Commits · 90 Days