A web framework for sites that outgrew static hosting

Websites with a bit of crunch.

Write a folder of pages. Crisptastic runs them per request, then ships the whole site as one signed, encrypted file. No app server to write. No runtime image to build. More time for snacks.

$ crisptastic init my-site && cd my-site
$ crisptastic dev
A bearded man in a beanie and big headphones, eyes closed in bliss, eating crisps from a giant packet, drawn as the label on a spinning record. SALT & VINEGAR ✺ ONE FILE TO SHIP ✺ NO APP SERVER TO WRITE ✺ SIDE A: PAGES ✺ SIDE B: CAPSULES ✺ Crisp FAMILY SIZE
blog/[slug].html.crisp
{{-- blog/[slug].html.crisp  ->  /blog/:slug --}}
@fetch post = get_json("https://api.example.com/posts/" + request.route.params.slug)

@if (post.ok) {
  <h1>{{ post.value.title }}</h1>
  {{~ post.value.html }}
} @else {
  @status 404
  <p>No such post.</p>
}

That's the whole page.

No controller, no build step to babysit, no framework in the browser unless you add one. Save the file and crisptastic dev reloads it.

  • 1 The file name gives the route and text/html.
  • 2 @fetch calls the API. A failure doesn't throw, so you check post.ok.
  • 3 {{ }} prints escaped values. {{~ }} prints markup you trust.
  • 4 @status sets the response code. Nothing applies unless the page finishes.

Nutrition Facts

Serving size: 1 site · Servings per host: many

Amount per site
Files you ship1
App servers you write0
Runtime images you build0
Per-site proxy configs0
Browser framework shipped0g
Host processes to run1

Ingredients: pages, partials, Markdown, Sass, sessions, SDA, Auth0, Stripe Checkout, S3, Cloudflare Images. May contain traces of preview (Fabric clustering).

Allergy advice

We'd rather you find out here than in production. Crisptastic is not suitable if you need:

  • WebSockets or response streaming
  • Background jobs or long-running work
  • Your own server code in the same process. Run a separate API and call it
  • Mutually untrusted tenants on one host
  • A mature, certified platform. This one's still young, and hasn't had an independent security review

Read the honest list