Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 21 additions & 23 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ on:
push:
branches:
- main

pull_request:
branches:
- main
workflow_dispatch:

permissions:
contents: read
Expand All @@ -18,44 +18,42 @@ concurrency:
group: "pages"
cancel-in-progress: false

defaults:
run:
shell: bash

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- uses: actions/setup-node@v4

- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
node-version: "20"
cache: npm
cache-dependency-path: "./package-lock.json"
- name: Install Node.js dependencies
run: npm install
- name: Build
run: npm run build
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v3
hugo-version: 'latest'
extended: true

- name: Setup Pages Config
uses: actions/configure-pages@v6

- name: Build with Hugo
run: hugo --minify

- name: Upload Pages artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v5
with:
path: ./build
path: ./public
include-hidden-files: true

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
23 changes: 8 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
# Dependencies
/node_modules
# Hugo
/public
/resources
.hugo_build.lock

# Production
# Legacy / Misc
/node_modules
/build

# Generated files
.docusaurus
.cache-loader

# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
.env*
*.log
43 changes: 43 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# CLAUDE.md

This file provides guidance when working with code in this repository.

## What this is

The product landing page, documentation, and blog site for **gofs** (https://gofs.dev), a lightweight CLI and architecture for evergreen full-stack Go web applications.

The site is built with **Hugo** and native Web Components via CDN with zero npm dependencies and zero JavaScript build steps. The gofs CLI itself lives in a separate repository (github.com/gofs-cli/gofs).

## Commands

```sh
hugo server # local development server with hot reload (http://localhost:1313)
hugo server -D # dev server including draft posts
hugo # build static site into ./public
hugo --minify # production minified build into ./public
```

There are no Node.js, npm, or bundler dependencies.

## Structure

- **Content** (`content/`):
- `_index.md`: Homepage content and metadata.
- `blog/`: Articles written in markdown with `slug`, `title`, `date`, `authors`, and `tags` front matter. Summaries are separated with `<!--more-->`.
- `docs/`: Reference documentation and philosophy guides.
- **Theme & Layouts** (`layouts/`):
- `index.html`: Product landing page featuring philosophy cards, architecture blueprint, quick start, and blog feed.
- `_default/baseof.html`: Base HTML5 shell with header and footer partials.
- `blog/`: List and single post templates.
- `docs/`: Two-column documentation layout with sticky sidebar navigation.
- `partials/`: Header, footer, head, and doc sidebar partials.
- **Assets** (`assets/`):
- `css/style.css`: Minimal CSS layout rules powered directly by web component design tokens and dark theme.
- **Static files** (`static/`):
- `img/`: SVG logos, icons, and blog images.
- `CNAME`: Domain configuration (`gofs.dev`).
- `.nojekyll`: GitHub Pages bypass file.

## Deployment

`.github/workflows/deploy.yaml` builds the static site with Hugo and deploys `./public` to GitHub Pages on pushes to `main`.
22 changes: 10 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
# Gofs website
# Gofs Website

This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
The product landing page, documentation, and blog for [gofs](https://gofs.dev).

## Installation

```sh
npm install
```
Built with [Hugo](https://gohugo.io/) and native Web Components loaded via CDN. Zero npm dependencies, zero Node.js, and zero JavaScript build steps.

## Local Development

Ensure you have [Hugo](https://gohugo.io/installation/) installed.

```sh
npm run serve
# Start the local development server with hot-reload
hugo server
```

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
The site will be available at `http://localhost:1313/`.

## Build

```sh
npm run build
# Generate minified static content into ./public
hugo --minify
```

This command generates static content into the `build` directory and can be served using any static contents hosting service.
Loading
Loading