πŸ³πŸ’¨Gustwind

Deno powered website creator

Gustwind is a Deno-powered website creator that allows component-oriented development of large-scale sites using HTMLisp, a variant of HTML. Conceptually, it is split as follows:

Please see the documentation to learn more about the concepts.

Getting startedπŸ”—

There is a simple GitHub template that has basic features set up. It renders the project readme as index.html, and you should expand/change the project to your liking.

Data flowπŸ”—

Gustwind accepts TypeScript, Markdown, and HTMLisp definitions. Then, the build process emits HTML and JavaScript. Note that you can replace many aspects of the system by using plugins to fit your requirements. The image below describes the basic idea:

Gustwind data flow

It's possible to customize the input formats and it can load data from asynchronous sources, say GraphQL APIs, so Gustwind can be used with headless content APIs.

Server-Side Rendering (SSR)πŸ”—

Although Gustwind was designed mainly with Static Site Generation (SSG) in mind, portions of it can be used in a server environment. There's for example a simplified version of the router designed for this purpose, and the default templating solution works both in server and client as it is light by design.

Example sitesπŸ”—

Given Gustwind is still in a rapid development phase, the APIs change every once in a while. The source of this site is the most up to date resource, and I've listed other examples below:

PerformanceπŸ”—

In my experience, Gustwind is somewhat performant although I haven't benchmarked it. The main factors contributing to speed are its parallelized build process and light rendering engine. There are still ways to push it further by implementing techniques, like incremental compilation to compile only pages affected by a given change. The underlying architecture has been designed with advanced features in mind, so although they aren't trivial to implement, they aren't impossible if there is time and interest.