<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka" -->

---
title: moved to new static site generator | daily.dev
description: A developer introduces Stash, a minimalist static site generator written entirely in UNIX Shell in under 100 lines of code, replacing the previously used poole...
canonical: https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: moved to new static site generator | daily.dev
og:description: A developer introduces Stash, a minimalist static site generator written entirely in UNIX Shell in under 100 lines of code, replacing the previously used poole...
og:url: https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka
og:image: https://api.daily.dev/og/posts/jwzLFRFkA.png
og:image:alt: moved to new static site generator
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# moved to new static site generator

**[zserge's blog](https://daily.dev/sources/zserge)** · 4 min read · 0 upvotes · 0 comments

## Summary

A developer introduces Stash, a minimalist static site generator written entirely in UNIX Shell in under 100 lines of code, replacing the previously used poole generator. The post walks through installation via Mercurial, basic usage with Markdown content files and HTML layout templates using custom <% %> tags, and customization hooks (ongen, onexit) for building things like blog indexes. It also explains the internal pipeline (Shell to AWK to Shell to eval to Markdown to HTML) and documents several sharp edges around semicolon handling in generated shell statements, including a stark warning about the dangers of executing arbitrary shell commands in templates. The project is MIT-licensed and hosted on Bitbucket/GitHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://zserge.com/posts/new-site-generator>

## Similar posts on daily.dev

- [an ssg written in shell](https://daily.dev/posts/an-ssg-written-in-shell-ijtiwzkxl) · Lobsters · 0 upvotes · 0 comments
- [How to make your own static site generator](https://daily.dev/posts/how-to-make-your-own-static-site-generator-jfrbheb6t) · Lobsters · 1 upvotes · 0 comments
- [A modern static site generator](https://daily.dev/posts/a-modern-static-site-generator-gj5xwuo93) · Hacker News · 70 upvotes · 3 comments
- [Still blogging](https://daily.dev/posts/still-blogging-dvlzgt3or) · Pascal’s scribbles · 2 upvotes · 1 comments
- [Perron 1.0 here is here](https://daily.dev/posts/perron-1-0-here-is-here-qlffdteq0) · RUBYLAND · 0 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#shell](https://daily.dev/tags/shell), [#bash](https://daily.dev/tags/bash)

[View this post on daily.dev](https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"moved to new static site generator","url":"https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka"},"datePublished":"2026-08-23T10:20:22.273Z","dateModified":"2026-08-23T10:21:24.455Z","description":"A developer introduces Stash, a minimalist static site generator written entirely in UNIX Shell in under 100 lines of code, replacing the previously used poole...","image":"https://media.daily.dev/image/upload/s--2-1xRawN--/f_auto/v1722860399/public/Placeholder%2011","thumbnailUrl":"https://media.daily.dev/image/upload/s--2-1xRawN--/f_auto/v1722860399/public/Placeholder%2011","isAccessibleForFree":true,"articleSection":"zserge's blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"zserge's blog","logo":"https://media.daily.dev/image/upload/s--KQnFBOIT--/f_auto,q_auto/v1787480407/logos/zserge","url":"https://daily.dev/sources/zserge"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/moved-to-new-static-site-generator-jwzlfrfka","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"open-source,shell,bash","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"zserge's blog","item":"https://daily.dev/sources/zserge"},{"@type":"ListItem","position":3,"name":"moved to new static site generator"}]}
```

