Corporate portal for PGSTY — the company behind Pigsty,
an open-source PostgreSQL distribution. Bilingual: English at /, Simplified
Chinese at /zh/.
Static site generated by Hugo extended (≥ 0.155) with the Docsy module pulled in as a Hugo module — Docsy supplies the chrome and PostCSS pipeline, but the pages that matter do not use its templates.
- Homepage (
layouts/index.html) is a fully custom landing page. Both languages live in one template, switched inline; there is no Markdown body behind it. - Pricing (
/price/) is its own layout, the only other real page. - Content is data, not prose. Everything the pages render comes from
data/portal/*.yaml, read viahugo.Data.portal.*. Editing the site usually means editing YAML, not templates. - Styles are two layers.
static/css/landing-v3.cssis the shared design system used across the Pigsty family of sites;static/css/portal-v1.cssholds the components specific to this portal. Both are fingerprinted by content hash for cache busting. - Zero third-party requests at runtime — fonts, icons, and scripts are all
self-hosted under
static/.
Requires Hugo extended, Go (for the module graph), and Node.js with npm (for the PostCSS toolchain):
npm ci # PostCSS toolchain
make dev # http://localhost:1313
make build # production build -> public/
make check # module verify + strict build + internal link checkmake check is the real gate: it builds with --panicOnWarning and then runs
bin/check_internal_links.py, which walks the rendered HTML and resolves every
internal href/src and anchor against the output tree. External hosts are
deliberately never requested, so the check stays hermetic.
Pushing to main runs .github/workflows/cloudflare.yml:
Hugo build → internal link check → force-push public/ to the page
branch as an orphan commit. Cloudflare Pages is wired to that branch and serves
the result. Pull requests build and check, but do not deploy.
The build uses the baseURL configured in hugo.yaml; nothing is
environment-specific.
| Path | What it is |
|---|---|
layouts/index.html |
Homepage, fully custom, both languages inline |
layouts/_default/price.html |
Pricing page |
layouts/_partials/portal/ |
Shared head / nav / footer |
data/portal/*.yaml |
All rendered content |
static/css/landing-v3.css |
Shared design system (do not fork tokens) |
static/css/portal-v1.css |
Portal-specific components |
static/js/landing-v3.js |
Theme toggle, copy buttons, scroll reveal |
static/fonts/ |
Self-hosted webfonts |
bin/check_internal_links.py |
Link contract check, run by make check |
bin/metrics.py |
Refreshes GitHub star counts in data/portal/ |
Content is licensed CC BY 4.0. PIGSTY® and PGSTY® are registered trademarks.
© 2018-2026 PGSTY PTE. LTD.