<gg/>

Generate truly static sites

Why?

Client-side frameworks and UI libraries like React have taken over the modern web with a component-based approach to application design. When building static websites, using such a framework often forces us developers to ship a lot of code to our users that our website actually does not need at all.

We can do better.

By compiling your website on build-time, gg ships as less code as possible while still offering rich APIs to handle client-side state. Everything is build with TypeScript to its core to ensure the best possible developer-experience while maximising the confidence you get in your applications code.

How?

Compiled and minimal
Forget shipping a ton of JavaScript to your users, gg compiles your code at build-time and doesn't include one byte more than necessary. Truly static sites also contain zero JavaScript!
Just TypeScript
No new templating languages, write everything in TypeScript. Use JSX with refined, HTML-like attribute names, all 100% typed! Define your CSS-in-TS and let the compiler do the rest!
Blazing fast client state
Add interactions to your site without worrying about performance. gg has simple client-side state built-in to listen for events and update the DOM on run-time.

Wait a minute...

"Why not use Gatsby?"

Gatsby (and also other React-based static-site generators) have one thing in common: They still end up creating a React application that loads all the code that React needs.

gg is different. It creates sites that only load what's necessary, and not a single byte more. If your site is 100% static, the user doesn't have to load any JavaScript at all!

"Isn't Svelte already doing this?"

The compiler-based approch of gg is in fact inspired by Svelte. But instead of creating yet another templating language, ggbuilds on JSX with TypeScript, which means you can use all the JavaScript features you know and love to create the markup for your page.

"Why JSX? Do I have to accept writing `className` once again?"

No! JSX just refers to the syntax in which you write your markup. The name of the attributes and even the elements are free to choose. Instead of using the names of IDL attributes of HTML elements (like React does), gg uses the names of the actual attributes, which makes the markup look a heck closer to actual HTML!

"And why use Deno instead of Node.js?"

Deno has of course the advantage of supporting TypeScript out of the box. It also reduces the "size" of your application and also ofggitself, in terms of not having any node_modules and also not having to setup TypeScript.

However, the actual answer to this question is, that I just wanted to learn Deno in the first place, and I wanted to flex the limit of what's possible in terms of web development. I know that Deno is still somewhat in its infancy, but that applies to gg even more.

Whoa!

Intersted? Well, we're not quite there yet...

gg is still in development and not yet ready to be released in any kind of way. For those of you who like to live on the bleeding edge, you can still ask for early access.