A documentation site for GemStone/S 64 Bit — a high-performance, object-oriented transactional database platform powering mission-critical operations in financial services, government, healthcare, and telecommunications since 1982.
This site is a portfolio writing sample demonstrating docs-as-code workflow: Markdown authoring, structured information architecture, custom CSS theming, and automated GitHub Actions deployment. It covers GemStone/S database administration across four original technical articles.
- About this repo
- Documentation coverage
- Run locally
- Project structure
- [Article metadata](#Article metadata)
- Deployment
- Author
This repository contains the source for a Docusaurus 3.x documentation site covering GemStone/S 64 Bit database administration. Content is written in Markdown, organized by audience and task type, and deployed automatically to GitHub Pages on every push to main.
The articles were researched from primary source documentation — the GemStone/S 64 Bit Programmer's Guide — and written to demonstrate the ability to synthesize complex technical material into clear, structured content for database administrator and developer audiences.
| Article | Category | Audience | Focus |
|---|---|---|---|
| Platform Overview | Getting Started | Admins, new users | Architecture orientation, comparison to SQL |
| Quick Start | Getting Started | Admins | First installation through first committed transaction |
| Transactions and Concurrency | Core Concepts | Developers, admins | Transaction modes, commit conflicts, locking, Rc classes |
| Object Security | Reference | Admins | Security policies, user groups, system privileges |
Prerequisites: Node.js 18 or later, npm.
| OS | Package manager | Install command |
|---|---|---|
| macOS | Homebrew | brew install node |
| Ubuntu | Apt | sudo apt install nodejs npm |
| Windows | Chocolatey | choco install nodejs-lts |
Steps:
- Clone the repository:
git clone https://github.com/taz-mon/gemstone-service-docs.git
cd gemstone-service-docs- Install dependencies:
npm install- Start the development server:
npm startBrowse the site at localhost:3000/gemstone-service-docs/.
- Build a production copy:
npm run buildStatic output is written to the /build directory.
gemstone-service-docs/
├── .github/
│ └── workflows/
│ └── static.yml # GitHub Actions deploy workflow
├── docs/
│ ├── getting-started/
│ │ ├── platform-overview.md
│ │ └── quick-start.md # Tabbed content: Linux zip, Linux RPM, macOS
│ └── reference/
│ └── object-security.md
├── src/
│ ├── css/
│ │ └── custom.css # Custom theme (Inter, JetBrains Mono, teal palette)
│ └── pages/
│ └── index.tsx # Root redirect to platform overview
├── static/
│ └── img/
│ └── logo.svg # Hexagonal gem logo
├── docusaurus.config.ts # Site config, navbar, footer
└── sidebars.ts # Three-category sidebar structure
Each article includes front matter structured for agent and search retrieval. The schema covers:
title/description— human-readable identity and summaryproduct/version— scopes content to GemStone/S 64 Bit 3.7.xdoc_type— Diátaxis classification:conceptual,task,reference, ortutorialcontent_category— maps to the GemTalk doc set:getting-started,installation,administration,programming,reference,securityaudience— one or more ofevaluator,developer,administratorplatform— one or more oflinux,macos,windows-client,allkeywords— terms optimized for search and agent retrievalsource_docs— array of authoritative GemTalk source documents with URLs, enabling accuracy traceabilitylast_verified— date the article content was last checked against source material
This site deploys automatically to GitHub Pages via a GitHub Actions workflow defined in .github/workflows/static.yml. The workflow runs on every push to main and can also be triggered manually from the Actions tab.
The workflow uses a single build-and-deploy job that runs all steps in sequence on ubuntu-latest:
jobs:
build-and-deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run build
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
path: build
- uses: actions/deploy-pages@v5
id: deploymentThe key design decision was consolidating build and deploy into a single job rather than splitting them. Splitting jobs requires passing the build artifact between runners, which adds complexity without benefit for a single-site deployment. Keeping everything in one job means the deploy step always has direct access to the artifact produced by the build step in the same runner environment.
The workflow is intentionally minimal to start. As the site grows, additional validation steps can be inserted between the build step and the Pages upload. Candidates include:
| Validation | Tool | Insert after |
|---|---|---|
| Broken link checking | linkcheck or docusaurus-plugin-check-links |
npm run build |
| Markdown lint | markdownlint-cli |
npm ci |
| Spelling check | cspell |
npm ci |
| Accessibility audit | pa11y-ci |
npm run build |
To add a step, insert it in static.yml before the actions/upload-pages-artifact step. For example, to add a broken link check:
- name: Check for broken links
run: npx linkcheck http://localhost:3000/gemstone-service-docs/ --skip-file .linkcheckignoreThe workflow requires these GitHub token permissions to deploy to Pages:
permissions:
contents: read
pages: write
id-token: writeLive URL: https://taz-mon.github.io/gemstone-service-docs/
Tom "Taz" Aciukewicz — Principal Technical Writer with many years of experience documenting complex enterprise software, cloud infrastructure, and developer platforms.
- Portfolio: taz-mon.github.io/tazdocs-as-code
- GitHub: @taz-mon
- LinkedIn: linkedin.com/in/toma2z
Documentation content is a writing sample. GemStone/S is a product of GemTalk Systems.