Skip to content.

Acutis is a template language that features static typing, pattern matching, and asynchronous template components. You can execute your templates like scripts or compile them to self-contained JavaScript files.

Source code | Changelog

{%~ interface
siteTitle = string
blogPosts =
[
{
title: string,
author: {name: ?string},
date: string,
image: ?{alt: string, src: string},
content: string
}
]
/ ~%}

<h1> Blog posts for {{ siteTitle }} </h1>
{%~ map blogPosts with {image, title, content, date, author: {name}} %}
<article class="h-entry">
<header>
{% match image with null ~%}
{* no image *}
{%~ with !{src, alt} ~%}
<img src="{{ src }}" alt="{{ alt }}">
{% /match ~%}
<h2 class="p-name"> {{ title }} </h2>
<span class="p-author"> By {{ name ? "Anonymous" }} </span>
<span class="dt-published"> Posted on {{ date }} </span>
</header>
<div class="e-content"> {{{ content }}} </div>
</article>
{%~ /map %}

See how this example compiles in the playground.