A declarative, HTML-based language for building performant web applications with server-side rendering.
Marko is a declarative, HTML-based language and UI framework for building modern web applications. It allows developers to create performant user interfaces using familiar HTML syntax while providing advanced features like server-side rendering, streaming, and fine-grained reactivity out of the box.
Frontend developers and teams building high-performance web applications who value server-side rendering, streaming capabilities, and a declarative HTML-based approach to UI development.
Developers choose Marko for its unique combination of HTML-based syntax, excellent performance through server-side rendering and streaming, and fine-grained reactivity system that minimizes unnecessary re-renders while maintaining developer productivity.
A declarative, HTML-based language that makes building web apps fun
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Marko's declarative, HTML-like syntax with embedded JavaScript expressions makes it intuitive for web developers, as highlighted in the key features for writing components using familiar tags.
Built-in SSR with streaming capabilities ensures fast initial loads and optimal performance for content-heavy applications, directly from the performance optimizations mentioned.
Automatic dependency tracking minimizes unnecessary re-renders, providing efficient updates without virtual DOM overhead, as noted in the fine-grained reactivity feature.
Compiled templates, tree shaking, and minimal runtime overhead contribute to high-speed execution, aligning with Marko's focus on speed and efficiency.
Marko has a smaller community and fewer third-party integrations compared to giants like React or Vue, which can hinder rapid development with pre-built solutions.
Developers accustomed to JSX or other frameworks may find the HTML-based syntax and embedded expressions initially unfamiliar, requiring a learning period.
Setting up advanced features like streaming SSR and compiled templates may involve more configuration than more opinionated frameworks, as implied by the performance optimizations.