https://github.com/ericselin/deno-ssg-bob
A static site generator for the dynamic web - develop with TSX and build with Deno
https://github.com/ericselin/deno-ssg-bob
deno static-site-generator tsx typescript
Last synced: about 1 year ago
JSON representation
A static site generator for the dynamic web - develop with TSX and build with Deno
- Host: GitHub
- URL: https://github.com/ericselin/deno-ssg-bob
- Owner: ericselin
- License: gpl-3.0
- Created: 2020-09-01T18:25:53.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-06-20T13:59:22.000Z (about 4 years ago)
- Last Synced: 2025-04-09T11:49:52.872Z (about 1 year ago)
- Topics: deno, static-site-generator, tsx, typescript
- Language: TypeScript
- Homepage:
- Size: 1.24 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# bob the static site builder
`bob` is a static site generator built on top of the [Deno](https://deno.land) runtime.
## Features
Bob is designed for creating extremely performant websites that require near-instant content updating and network edge personalization. All with best-in-class developer experience.
### 🚀 Extremely performant websites
- No JavaScript on page load
Network-edge personalization means no client-side JavaScript is needed in order to construct pages for the user.
- Minimal CSS footprint
Include only the CSS needed for each page to keep CSS size as small as possible. Inline CSS for optimal first load.
### ⚡ Near-instant content updating
- Incremental builds (currently experimental)
Build only what is needed in order to be extremely fast.
- Incremental deploy (coming soon)
Deploy only changed content.
### 🌐 Network-edge personalization
- Personalize pages on the edge, without client-side Javascript (coming soon)
Create complex rules and change the page based on request parameters, such as visitor country or cookie values. Use this to create A/B tests, GDPR banners, or product recommendations. This requires the Cloudflare hosting plugin.
### 🤓 Best-in-class developer experience
- Fully typed using TypeScript and TSX
Intellisense and type checking in layout templates.
- Highly modular
Layouts are just TSX components. Import any additional components or libraries as you wish.
- Easily create client-side components (coming soon)
Create client-side code right in your layout files.
## Installation
You need to have the [Deno](https://deno.land) runtime installed. When you have it installed, just run:
```
deno install --allow-read --allow-write --allow-net https://deno.land/x/bob/cli.ts
```
## Usage
To build your site, in the site root, just run:
```
$> bob
```
See the `docs` directory for an example implementation. See CLI help with `bob -h`.
### Layout files
Layouts are just TSX components, exported as a default export from different files. Structure your code and components as you wish, but make sure you have a default layout located in `layouts/_default.tsx`.
### Content files
Add Markdown content files to the `content` directory as needed. Each content file will be rendered into an HTML file using the corresponding path into the `public` directory.
## License
This program is licensed under the "GNU Lesser General Public License". See LICENSE and LICENSE.LESSER for details.