# [[Static site generator]]
![[Static site generator.svg]]
A static site generator is code that takes content, usually in a [[Markup languages|markup language]], and converts it into a publishing format such as [[XML]]. The generated code can then be uploaded to a web server.
The point of a static site generator is to [[Principle of Atomicity]] two functions of a web server: generating content and serving it. With a static site generator, content is generated up front, leaving the web server with nothing to do but serve it. This approach significantly reduces the resources a web server needs, compared to a situation where a web server needs to dynamically generate content as needed.
Static site generators are also more performant as there is less processing required to turn content into a website.
## Examples
- [[Hugo]] - [site](https://gohugo.io/): My static site generator for [my site](https://nicole.to/site). Currently used by [[Grafana Labs (company)]] for marketing site and docs.
- [[Gatsby]] - [site](https://www.gatsbyjs.com/): Previously used by [[k6 (Company)]] for marketing site and documentation
- [[Jekyll]] - [site](https://jekyllrb.com/)
- [[Eleventy]] - [site](https://www.11ty.dev/)
- [[Sphinx]] - [site](https://www.sphinx-doc.org/en/master/) and [repo](https://github.com/sphinx-doc/sphinx)
- [[AsciiDoc]] - [site](https://asciidoc.org/)
- [[Middleman]] - [site](https://middlemanapp.com/)
- [[Metalsmith]] - [site](https://metalsmith.io/)
- [[MkDocs]] - [site](https://www.mkdocs.org/)
- [[Hexo]] - [site](https://hexo.io/)
- [[Obsidian Publish]] - [site](https://publish.obsidian.md): What I use to publish [my notes](https://notes.nicolevanderhoeven.com).
- [[Quartz]] - [site](https://quartz.jzhao.xyz/): What I use to [write my book in public](https://doingitinpublic.com).
- [[Docusaurus]] - [site](https://docusaurus.io/)
## Hosting
Static site generators often don't come bundled in with a way to deploy/host your websites. Instead, they use [[Static hosting providers]].
%%
# Excalidraw Data
## Text Elements
## Drawing
```json
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.4",
"elements": [
{
"id": "4y8R7iOA",
"type": "text",
"x": 118.49495565891266,
"y": -333.44393157958984,
"width": 3.8599853515625,
"height": 24,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 967149026,
"version": 2,
"versionNonce": 939059582,
"isDeleted": true,
"boundElements": null,
"updated": 1713723615080,
"link": null,
"locked": false,
"text": "",
"rawText": "",
"fontSize": 20,
"fontFamily": 4,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "",
"lineHeight": 1.2
}
],
"appState": {
"theme": "dark",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#1e1e1e",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "solid",
"currentItemStrokeWidth": 2,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 4,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"scrollX": 583.2388916015625,
"scrollY": 573.6323852539062,
"zoom": {
"value": 1
},
"currentItemRoundness": "round",
"gridSize": null,
"gridColor": {
"Bold": "#C9C9C9FF",
"Regular": "#EDEDEDFF"
},
"currentStrokeOptions": null,
"previousGridSize": null,
"frameRendering": {
"enabled": true,
"clip": true,
"name": true,
"outline": true
}
},
"files": {}
}
```
%%