markojs.com
Open in
urlscan Pro
2a06:98c1:3121::3
Public Scan
Submitted URL: http://markojs.com/
Effective URL: https://markojs.com/
Submission: On February 11 via api from US — Scanned from NL
Effective URL: https://markojs.com/
Submission: On February 11 via api from US — Scanned from NL
Form analysis
0 forms found in the DOMText Content
Skip to main content DocsTry OnlineGitHub SearchK ☰ ✕ MARKO 5.31.64.X3.X2.X * GUIDES * Installing * Getting started * Conditionals and lists * Custom tags * State * Styles * Events * Body content * TypeScript * Marko 5 upgrade * Troubleshooting Streaming * TUTORIALS * Color Picker * REFERENCE * Rendering * Syntax * Core tags * Class components * marko.json * Compiler * BUNDLER INTEGRATIONS * Vite * Webpack * Rollup * Lasso * SERVER INTEGRATIONS * Cloudflare Workers * Express * Fastify * Koa * HTTP * TOOLING * Editor plugins * ARTICLES * Marko vs React * Why is Marko Fast * 10 Awesome Marko Features A DECLARATIVE, HTML-BASED LANGUAGE THAT MAKES BUILDING WEB APPS FUN Get startedGitHub13,035 FAMILIAR If you know HTML, CSS, and Javascript, you know Marko PERFORMANT Streaming, partial hydration, an optimizing compiler, & a small runtime SCALABLE Start with simple HTML templates and add powerful components as needed TRUSTED Marko is powering high-traffic websites like ebay.com HTML REIMAGINED Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way. <!doctype html> <html> <head> <title>Hello Marko</title> </head> <body> <h1>My favorite colors</h1> <ul> <for|color| of=["red", "green", "blue"]> <li style=`color:${color}`> ${color.toUpperCase()} </li> </for> </ul> <shared-footer/> </body> </html> HTML Templates, Custom Tags, & Javascript Expressions 0 Click me! class { onCreate() { this.state = { count: 0 }; } increment() { this.state.count++; } } <div>${state.count}</div> <button on-click("increment")> Click me! </button> Interactive Logic & Reactive Values PROGRESSIVE RENDERING Marko streams content to your users as soon as it’s ready. No waiting for client side JavaScript bundles or data requests to start rendering. HTML, assets, and images are loaded as soon as possible with asynchronous data loading in as it completes. All Products BuyItNow Cart (0) Google Home - $79 Add to Cart Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side ★★★★☆ Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though. ★★★★★ Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound. About Security Policies Help Sitemap All Products BuyItNow Cart (0) Google Home - $79 Add to Cart Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side ★★★★☆ Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though. ★★★★★ Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound. About Security Policies Help Sitemap Learn More CODE ELIMINATION Marko only sends the code for interactive components to the browser. Its compiler automatically detects which components only need to be rendered on the server. This means less to download and less to execute. Your users can enjoy top tier performance regardless of their devices or networks. All Products BuyItNow Cart (0) Google Home - $79 Add to Cart Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side ★★★★☆ Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though. ★★★★★ Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound. About Security Policies Help Sitemap All Products BuyItNow Cart (0) Google Home - $79 Add to Cart Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side ★★★★☆ Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though. ★★★★★ Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound. About Security Policies Help Sitemap Learn More TAILORED PERFORMANCE Marko's compiler generates code tailored to where it is going to run. You write your code once and it is optimized for both the server and browser. This is especially apparent on the server where Marko is several times faster than other popular solutions. <div> <h2>Images</h2> <div> <for|item| of=input.items> <div on-click(() => alert(item.title), item)> <img src=item.img alt="" /> </div> </for> </div> </div> out.write("<div><h2>Images</h2><div>"); for (const item of input.items) { out.write(`<div><img${_marko_attr("src", item.img)}></div>`); } out.write("</div></div>"); HTML Strings on the server out.beginElement("div", null, "0", component); out.beginElement("h2", null, "1", component); out.text("Images", component); out.endElement(); out.beginElement("div", null, "2", component); { let _keyValue = 0; for (const item of input.items) { const _keyScope = `[${_keyValue++}]`; out.beginElement("div", null, "3" + _keyScope, component, null, 0, { onclick: _component.d("click", "onBannerClick", false, [item]), }); out.element("img", { src: item.img }, "4" + _keyScope, component, 0); out.endElement(); } } out.endElement(); out.endElement(); VDOM Nodes in the browser See the Benchmarks EDITOR SUPPORT Marko provides first-class support for the VSCode editor including syntax highlighting, Autocompletion, Hyperclick to quickly jump to referenced files, and Pretty printing to keep your code readable. Community plugins also provide syntax highlighting for Sublime, Atom, Webstorm & others! View editor plugins JOIN THE COMMUNITY Need help? Want to contribute? Get involved in the Marko Community! Ask & answer StackOverflow questions with the marko tag Hang out in our Discord server, ask questions, & discuss project direction Tweet to @MarkoDevTeam or with the #markojs hashtag Browse the code, open issues, & make pull requests on the GitHub repo OpenJS Foundation MIT License open source