The source for bash-365.com — the site of BASH Consulting (Bourne Again Solutions Hero), a Denver-based IT consulting practice for small and medium businesses. This is a dual-purpose repository:
- Jekyll site (repo root) — the marketing and content site, built on the
bamr87/zer0-mistakesremote theme and deployed on every push tomain. - VS Code extension (
extension/) — Prompt Orchestrator, a self-contained TypeScript extension that runs the shared prompt library in.github/prompts/from inside the editor.
The site is also a working demonstration of how the firm operates: it is written, reviewed, illustrated, validated, and shipped through a governed AI pipeline. See /tools/ and /ai-operations/.
The site presents eight service areas — AI and intelligent automation, cloud architecture, ERP consulting, financial systems, data and business intelligence, custom software development, IT strategy, and managed IT — under /services/. Service pages live in pages/_services/.
The site builds Docker-first; the host Ruby on most machines is too old for the theme (requires Ruby ≥ 3.2).
# Local dev server → http://localhost:4042 (livereload on 35730)
docker-compose up
# One-off build validation (matches the local dev stack)
docker-compose exec jekyll bundle exec jekyll build \
--config '_config.yml,_config_dev.yml'
docker-compose downGit worktrees: the theme is mounted from a sibling checkout. Point the mount at the real checkout with ZER0_MISTAKES_PATH (defaults to ../zer0-mistakes):
ZER0_MISTAKES_PATH=/path/to/zer0-mistakes docker-compose upA .devcontainer/ is provided for Codespaces and container-based editors.
cd extension
npm install
npm run lint && npm run compile && npm testThe extension runs from source (it is not published to the Marketplace). See extension/README.md and extension/QUICKSTART.md.
Every push to main triggers two deploys, gated by CI:
| Stack | Config | Theme | Notes |
|---|---|---|---|
| GitHub Pages | _config.yml |
remote_theme: bamr87/zer0-mistakes@v1.26.0 (safe mode) |
Static only; custom _plugins/ do not run |
| Azure Static Web Apps | _config.yml + _config.azure.yml (Gemfile.azure) |
jekyll-theme-zer0 ~> 1.26.0 gem |
Also hosts the /api/ chat function; PRs get a staging URL |
.github/workflows/build-validate.yml builds both production stacks and runs the content linter on every push and pull request. Automation (nightly site-health, weekly content drafts, the AI chat proxy) is documented in docs/automation.md.
_config.yml Production config (GitHub Pages, remote theme)
_config_dev.yml Local dev overrides (gem theme, port 4042)
_config.azure.yml Azure Static Web Apps overrides
_data/ Site data — entity info, navigation, taxonomy, playbook
_layouts/, _includes/ Site-local overrides of the remote theme
_plugins/ Local Jekyll plugins (Pages runs in safe mode — see below)
pages/_posts/ Blog posts, by section: corp / erp / muses / tech
pages/_services/ Service detail pages + hub
pages/_case_studies/ Anonymized engagement snapshots
api/ Azure Functions app (AI chat proxy)
scripts/ Preview-image generator, content linter, playbook data
extension/ VS Code extension (independent sub-project)
.github/ AI-agent instructions, prompt library, workflows
docs/ Internal operations docs (excluded from the build)
- Read the guidance first.
AGENTS.mdis the entry point for AI agents;.github/instructions/holds the authoritative editorial and code rules per file path. - Validate before declaring done. Jekyll changes → run the Docker build. Extension changes →
npm run lint && npm run compile && npm test. - Conventional commits:
<type>(<scope>): <subject>. Don't mix Jekyll-site andextension/changes in one commit. - Update
CHANGELOG.mdfor user-visible changes. - Never commit
_site/,node_modules/,vendor/, or secrets.
BASH Consulting — Denver, Colorado Email: info@bashconsultants.com · Phone: 720-352-4641 · Web: bash-365.com
MIT — see LICENSE.