Sign in

Marko

@markojs.com
810 followers 12 following 45 posts

✨ HTML Reimagined 🔬 Fine-grained Bundling 🚿 Streaming Render 🛠️ Targeted Compilation @ebay.com & @openjsf.org

PostsRepliesMedia
Marko @markojs.com · 01/09/2026
And we've made friends with the front of the JS framework benchmark 🏎️
A screenshot of the JS framework benchmark chart, with the top row showing (in order)

vanillajs	ripple-v0.3.112	marko-v6.3.28	octane-v0.1.31	vue-vapor-v3.6.0-beta.17	solid-v1.9.3	svelte-v5.42.1	lit-html-v3.2.0	lit-v3.2.0	angular-cf-new-nozone-v22.0.0	react-hooks-v19.2.0	react-compiler-hooks-v19.0.0	ember-v7.3.0-alpha.5	qwik-v1.11.0
031
Marko @markojs.com · 01/09/2026
Hardening & development continues! More news about persisted pages later this month
120
Marko @markojs.com · 01/09/2026
Updates to two community projects from @svallory.bsky.social! Check out go-marko.saulo.tech and marko-zag.saulo.tech
go-marko.saulo.tech
Go, Marko!
110
Marko @markojs.com · 01/09/2026
The `async` shorthand can be used for attributes markojs.com/playground#d...
A code snippet:
```
<button async onClick() {
  saving = true;
  await saveDraft();
  saving = false;
}>
  ${saving ? "Saving..." : "Save draft"}
</button>
```
100
Marko @markojs.com · 01/09/2026
Better recovery from syntax mistakes, especially for agents
A compile error from the Marko playground:

Build failed
index.marko:1:5
Ambiguous ">" in attribute. A ">" preceded by whitespace ends the tag. If "count > 10" was intended as a single expression, wrap it in parentheses, eg "=(count > 10)". If the tag was instead meant to end at the first ">", leaving "10>" as body content, remove the whitespace before that ">".

```
<if=count > 10>
    ^^^^^^^^^^
  Count is above 10!
</if>
```
110
Marko @markojs.com · 01/09/2026
Check out our progress in August! Highlights in this thread, or read more in our newsletter markojs.com/docs/newslet...
markojs.com
Marko in August 2026
August paired a small syntax addition with a large amount of hardening.
142
Reposted by Marko
Casey Carroll @caseycarroll.github.io · 01/08/2026
🔥 Delighted to have served a tiny part in a huge month for Marko
061
Marko @markojs.com · 01/08/2026
And, to top it all off, watch @dpiercey.me chat Marko 6 on stream with @ajcweb.dev and @devagr.bsky.social! www.youtube.com/watch?v=tLMc...
youtube.com
Marko 6 with Dylan Piercey
YouTube video by Anthony Campolo
092
Marko @markojs.com · 01/08/2026
An interactive tutorial for Marko, built by defunkt-dev with @tutorialkit.dev markojs-tutorial.netlify.app/1-fundamenta...
markojs-tutorial.netlify.app
Learn Marko — Interactive Tutorial
An interactive, hands-on tutorial for Marko 6. Build real components in your browser, no setup required.
120
Marko @markojs.com · 01/08/2026
Community integrations! Marko packages for - Knip – thanks @caseycarroll.github.io! - TanStack Virtual – thanks defunkt-dev!
220
Marko @markojs.com · 01/08/2026
Dozens of improvements to compiler diagnostics and a built-in "cheat sheet", so AI makes fewer mistakes and recovers faster
110
Marko @markojs.com · 01/08/2026
Dynamic interpolations in the `<style>` tag
A code block from Marko's July Newsletter:

```
<style>
  .status-pill {
    background: ${input.tint};
    padding-inline: calc(${input.pad} * 1px);
  }
</style>

<span class="status-pill">${input.label}</span>
```
110
Marko @markojs.com · 01/08/2026
First-class validation in Marko Run, with Standard Schema support standardschema.dev
standardschema.dev
Standard Schema
A family of specs for interoperable TypeScript
120
Marko @markojs.com · 01/08/2026
July has been our busiest month this year! Check out our monthly newsletter, or this thread for some highlights: markojs.com/docs/newslet...
markojs.com
Marko in July 2026
July was the busiest month in the project's history by a wide margin.
1133
Reposted by Marko
Lars @webpro.nl · 31/07/2026
✂️ Knip v6.31.0 is out This one's dedicated to a brand-new @markojs.com plugin. Thanks a bunch, @caseycarroll.github.io! That's 179 plugins: knip.dev/reference/pl... → knip.dev
1112
Marko @markojs.com · 07/07/2026
More to come! Keep posted on our newsletter page markojs.com/docs/newslet...
markojs.com
Newsletter | Marko
The Marko programming language
000
Marko @markojs.com · 07/07/2026
Marko 6 is now considered stable, and marked as latest 🚀
120
Marko @markojs.com · 07/07/2026
Automatic tag discovery now supports grouping in directories markojs.com/docs/referen...
A code block from the website:

```
tags/
    menu-button.marko
    icons/
        icon-chevron.marko
        icon-plus.marko
```
100
Marko @markojs.com · 07/07/2026
Tree-sitter grammar & Zed support github.com/marko-js/tre... github.com/marko-js/zed
github.com
GitHub - marko-js/tree-sitter: Tree-sitter grammar for the Marko templating language
Tree-sitter grammar for the Marko templating language - marko-js/tree-sitter
100
Marko @markojs.com · 07/07/2026
Lazy loading support via import triggers! markojs.com/docs/referen...
A code screenshot from the lazy loading documentation

```
import VideoPlayer from "<video-player>" with { load: "visible#hero" }

<section#hero>
  <VideoPlayer src=input.src/>
</section>
```
100
Marko @markojs.com · 07/07/2026
Bound attributes can now have a refining function markojs.com/docs/referen...
A code block from the Marko website:

```
<input type="number" value:parseFloat:=num>

// desugars to

<input
  type="number"
  value=num
  valueChange(newValue) { num = parseFloat(newValue) }
>
```
100
Marko @markojs.com · 07/07/2026
`prettier-plugin-marko` rewrite, line wrapping is more sensible and formatting edge cases were addressed
100
Marko @markojs.com · 07/07/2026
We've been working quietly for long enough! Now you can see updates on a monthly newsletter, backfilled to all of 2026! markojs.com/docs/newslet... Some highlights:
markojs.com
Newsletter | Marko
The Marko programming language
150
Marko @markojs.com · 19/11/2025
Marko 🤝 UnoCSS @unocss.dev now reads `.marko` files by default!
The Marko and UnoCSS logos, some Marko mascots, and a button HTML element with a HUGE list of classnames that goes off the page
062
Marko @markojs.com · 11/11/2025
Why ship entire islands for a few grains of sand?
Meme suggesting breaking up an app into islands for better performance, but then highlighting that Marko 6 does this automatically.
040
Marko @markojs.com · 08/11/2025
We topped HackerNews! Read the discussion on our HN app, and check out the network tab while you're at it 👀 marko-hn-example.netlify.app/story/45858905
A screenshot of the Marko HackerNews website with the Chromium network tab open. A hand-drawn arrow and circle highlight that only 1.7kb of JavaScript is sent to the browser
040
Marko @markojs.com · 27/10/2025
Keeping bundles small 🫡 www.lorenstew.art/blog/10-kanb...
The table from the linked article, with highlights indicating that Marko is on the top of the charts and is 6.36x smaller than Next.js
091
Marko @markojs.com · 03/10/2025
Input masking with cursor preservation? markojs.com/playground#d...
The output of the code example linked, showing a variety of inputs masked to prevent letters, cast to capital letters, and format as credit card/hex/phone number
042
Marko @markojs.com · 24/09/2025
Read more about controllable components in our docs! markojs.com/docs/explana...
markojs.com
Controllable Components | Marko
The Marko programming language
000
Marko @markojs.com · 24/09/2025
markojs.com/playground#d...
markojs.com
Playground | Marko
The Marko programming language
100
Marko @markojs.com · 24/09/2025
Don't do this, but it's cool that you can!
120
Marko @markojs.com · 20/09/2025
🔜
010
Marko @markojs.com · 19/09/2025
markojs.com/playground#d...
markojs.com
Playground | Marko
The Marko programming language
100
Marko @markojs.com · 19/09/2025
Hyper Text Marko Language Math Marko Language Scalable Vector Gr... Dang it.
120
Marko @markojs.com · 15/09/2025
Write less boilerplate Check out our updated examples on Component Party component-party.dev?f=marko
component-party.dev
Component Party
Web component JS frameworks overview by their syntax and features: Svelte 5, React, Vue 3, Angular Renaissance, Angular, Lit, Ember Octane, Solid.js, Svelte 4, Vue 2, Alpine, Ember Polaris, Mithril, A...
041
Marko @markojs.com · 12/09/2025
Had to whip up a color mixer, our playground makes it quick and easy to share! markojs.com/playground?f...
markojs.com
Playground | Marko
The Marko programming language
031
Marko @markojs.com · 09/09/2025
markojs.com is now on Marko 6. The thinnest Marko ever.
markojs.com
Marko
The Marko programming language
152
Reposted by Marko
Pier @pierbover.com · 05/09/2025
@ryansolid.bsky.social and @dpiercey.me are showing the upcoming new version of @markojs.com live (it's really cool) www.youtube.com/watch?v=x-3R...
youtube.com
Marko 6: Fulfilling the Promise of Less JavaScript w/ Dylan Piercey
YouTube video by Ryan Carniato
051
Reposted by Marko
Ryan Carniato @ryansolid.bsky.social · 05/09/2025
We're live twitch.tv/ryansolid
093
Marko @markojs.com · 04/09/2025
Slow and steady wins the race?
200
Reposted by Marko
Ryan Carniato @ryansolid.bsky.social · 03/09/2025
There is hate for JS on the server. But none have accomplished what @markojs.com has. Forget Islands, forget serialization boundaries, forget writing code twice. Just declarative templates, low JS, automatically. @dpiercey.me joins me Friday to show how it's done. www.youtube.com/live/x-3RxGf...
youtube.com
Marko 6: Fulfilling the Promise of Less JavaScript w/ Dylan Piercey
YouTube video by Ryan Carniato
2295
Marko @markojs.com · 03/12/2024
`npm init marko`! This example uses the Tags API, which we _just_ made available as the `basic-tags` template. It's still in alpha so expect bugs 😅, but if you want a more stable experience you can swap `@marko/translator-tags` to `@marko/tags-api-preview` in your package.json
001
Marko @markojs.com · 03/12/2024
@cmgriffing.bsky.social's Giffium.com rocks! Great way to show how much less you can write with Marko 😉
1123
Marko @markojs.com · 20/11/2024
How dare you
080
Marko @markojs.com · 12/11/2024
HTML Mode: markojs.com/playground/#...
markojs.com
Try online | Marko
Marko is a friendly (and fast!) UI library that makes building web apps fun.
010
Marko @markojs.com · 12/11/2024
Playground: markojs.com/playground/#...
markojs.com
Try online | Marko
Marko is a friendly (and fast!) UI library that makes building web apps fun.
100
Marko @markojs.com · 12/11/2024
Concise Mode == Best Mode
A TODO app example using Marko's concise syntax:

```marko
let/todos=["foo", "bar"]

form onSubmit(e) {
  e.preventDefault()
  todos = todos.concat(e.target.todo.value)
  e.target.reset()
}
  input name="todo"
  button -- Add

ul
  for|todo, i| of=todos
    li
      button onClick() { todos = todos.toSpliced(i, 1) } -- &times;
      --  ${todo}
```
260
Marko @markojs.com · 09/11/2024
🤗
020
Marko @markojs.com · 07/11/2024
We aren't quite ready for people upgrade yet, but we're proud of the migration path we've prepared. As long as you're using Marko 5, you can install `@marko/translator-interop-class-tags` and start using Marko 6/Tags API components in your app right away! Roadmap: github.com/orgs/marko-j...
github.com
The Everything Project • marko-js
The Everything Project
020
Marko @markojs.com · 07/11/2024
Excited for Marko 6? We're still hard at work, but you can try it out in the playground right now! markojs.com/v6/playground/
markojs.com
Try online | Marko
Marko is a friendly (and fast!) UI library that makes building web apps fun.
4214