Back to templates

Template details

ssgo

The minimalistic but flexible static site generator for Deno πŸ¦•.

About this template

ssgo is a minimalistic static site generator built with Deno that compiles HTML templates and TypeScript creator scripts into a static dist/ site.

What is ssgo?

ssgo is a static site generator for developers who want a minimal, code-driven workflow. It runs entirely on Deno and takes two kinds of input: HTML templates (with placeholder variables) and "creator" TypeScript files that call a buildPage function to produce pages. The output is a fully static website written into a dist/ directory, ready to deploy anywhere. The project is open source under the MIT license and documented at ssgo.netlify.app/docs.

Key Features

  • Deno-native β€” No Node.js or npm required; install with a single deno install command and run everything through the Deno runtime.
  • Templates and creators β€” Pages are built from HTML template files in templates/ and creator scripts in creators/ that use the buildPage function to provide data and output paths.
  • Hot-reloaded dev server β€” ssgo dev starts a development server on http://localhost:5580 with file watching and just-in-time page builds.
  • One-command builds β€” Running ssgo in the project root compiles the entire site into dist/ for production.
  • Project scaffolding β€” ssgo init creates the standard folder structure: creators/, templates/, components/, and static/.
  • Components and static file management β€” Beyond templates and creators, ssgo includes a components system and automatic handling of static assets.
  • Typed data flow β€” Creators import the BuildPage type from https://deno.land/x/ssgo/mod.ts, giving type checking inside Deno.

Who is it for?

  • Deno developers β€” Anyone already building with Deno who wants a static site generator without pulling in a Node-based toolchain.
  • Minimalist static site builders β€” Developers who prefer writing raw HTML and TypeScript over learning a large framework's templating language.
  • Developers needing local-first tooling β€” Those who want a generator that runs entirely via the ssgo CLI and offers a fast dev server for local testing.
  • Open-source contributors β€” The project is open source and has an active roadmap (the repository shows 175 stars), so developers can extend it by adding config-file support or custom TypeScript compilation options.

What can you do with ssgo?

  • Build a blog or documentation site β€” Use templates for your page skeleton and creators to fetch content (for example, from an API with fetchTitle) and generate pages with custom filenames and directories.
  • Prototype a site quickly β€” Run ssgo init to scaffold the folder structure, drop in HTML templates, and launch the dev server at http://localhost:5580 for immediate feedback.
  • Deploy a static site anywhere β€” The build output in dist/ is plain HTML, CSS, and JavaScript, so it can be hosted on Netlify, GitHub Pages, or any static host.
  • Automate page generation β€” Use creators as page factories to loop over data and call buildPage for each entry, producing multiple pages from a single template.

How does ssgo work?

Install ssgo with deno install --unstable and the permissions flags, then scaffold a project with ssgo init. You create HTML templates and TypeScript creators; each creator invokes the buildPage function with the template name, a data object, and build options like filename and dir. Running ssgo builds the whole site into dist/, while ssgo dev watches files and re-renders pages just-in-time.

FAQ

Is ssgo free to use?

ssgo is open source and released under the MIT license, so it is free to use and modify for both personal and commercial projects.

Do I need Node.js to run ssgo?

No, ssgo is built exclusively for Deno. You only need the Deno runtime installed to use the CLI and run the generator.

What is the difference between ssgo and ssgo dev?

ssgo performs a one-time production build into dist/. ssgo dev starts a development server on port 5580, watches files for changes, and rebuilds pages just-in-time with hot reload.

What does buildPage do?

buildPage is the core function passed to every creator script. It takes a template filename, a data object (with values that replace placeholders like {{ title }}), and an options object specifying the output filename and directory.

screenshot of ssgo on template0.com