This repository is the dedicated Bridgetown source for
https://solverforge.org/.
src/docs/**for public product docs and tutorialssrc/reference/**for dense engineering reference and clearly labeled maintainer notessrc/_posts/**for blog and release postssrc/use-cases.md,src/_data/use_cases.yml,src/images/use-cases/**, andsrc/videos/use-cases/**for the public use-case showcase: one slide per case with its metrics, constraints, narrated runtime walkthrough, and annotated screenshotsplugins/use_case_page_generator.rbandsrc/_layouts/use_case.erbfor the per-case pages at/use-cases/<id>/, generated from the same data file so the carousel and the individual pages cannot disagree about a casefrontend/**for bundled CSS/JS sourcesplugins/**for build-time extensions, including static search generation
This repo owns the published website. It does not replace repo-local engineering surfaces in the product repositories.
SolverForge/solverforgekeeps the Rust workspaceREADME.mdandcrates/*/WIREFRAME.mdfiles.SolverForge/solverforge-cli,SolverForge/solverforge-ui, andSolverForge/solverforge-mapskeep their own repo-local maintainer files, architecture notes, and implementation detail.- This site should summarize and integrate those surfaces where useful, but it should not mirror them wholesale.
When a source repo changes public APIs, naming, onboarding, or maintainer workflow, update the matching published pages here in the same effort.
Preferred entry points:
make helpmake installmake ci-localmake pre-releasemake start
Direct Bridgetown commands:
bundle installnpm cibundle exec rake frontend:buildbundle exec bridgetown buildruby scripts/verify-cli-release.rbruby scripts/verify-use-cases-page.rbruby scripts/verify-hospital-tutorial.rbruby scripts/verify-deliveries-tutorial.rbbundle exec bridgetown start -P 4017
make verify-hospital-tutorial always runs site-local copy and snippet checks.
When SOLVERFORGE_CLI_REPO or SOLVERFORGE_HOSPITAL_REPO point to local
product checkouts, it also runs the CLI scaffold and live hospital app checks.
The Make target is the stable public workflow; the Ruby script is an
implementation detail behind that target.
make verify-deliveries-tutorial follows the same pattern for
solverforge-deliveries. It always checks the published guide and dependency
snippets, then adds source-level and live app checks when
SOLVERFORGE_DELIVERIES_REPO points to the app checkout.
make ci-local runs the same path as GitHub Actions: toolchain checks, syntax
linting, a full Bridgetown build, the public-page copy/link/nav/layout checks,
and the portable tutorial verifiers.
make pre-release first installs the published solverforge-cli release into
/tmp, verifies the scaffold targets, and then delegates to the local CI gate.
/benchmarks/ renders a checked-in warehouse snapshot, grouped by problem. Refresh
it with ruby scripts/import-benchmarks.rb (requires psql; defaults to the
local solverforge_bench database, or uses BENCH_DATABASE_URL). The importer uses
one read-only transaction and never runs benchmarks. It selects the latest
publishable full canonical nightly candidate run per problem, excluding quick,
custom, partial, and publication-rejected runs.
src/_data/benchmarks.json holds computed summaries; src/benchmarks/results.json
is the downloadable evidence, including every selected result and tested solver
version. Missing full runs are shown as unavailable, not replaced by smaller
runs. Publication timestamps and versions describe the recorded runs, not current
package releases. Normal builds and CI need no warehouse connection.
Normal builds and CI use the site's existing Ruby toolchain; the benchmark importer and verifier require no extra gems. To recompute only the summary from committed evidence without contacting PostgreSQL:
ruby scripts/import-benchmarks.rb --snapshot src/benchmarks/results.json --summary-onlymake verify-benchmarks recomputes summaries from the evidence and checks full-run
scope, versions, matrix completeness, and rejection of quick or partial data.
This gate runs in make test and make ci-local.
Each problem renders gate-based charts from that same data: feasibility per
solver and budget, first observed feasible gate per instance, and mean reference
gap. Runtime is diagnostic only, never a ranking criterion. A problem whose run holds no
reference cost states that in prose instead of drawing an empty panel, since no
comparison exists to draw. scripts/check-public-pages.mjs reads
src/_data/benchmarks.json and checks the rendered sections, budgets, rows, bar
fills, measured-zero marks, legends, and provenance against it, so a problem or
budget that stops rendering fails the gate rather than quietly disappearing.
The current make lint target is dependency-light and only performs Ruby and
JavaScript syntax checks with the existing toolchain. A stricter follow-up
should add configured tooling before broadening the gate:
- Ruby: StandardRB or RuboCop, chosen once the repo style is settled
- JavaScript/CSS: ESLint plus Prettier
- Markdown/content: markdownlint and an internal link checker
After those tools are configured, extend fmt, fmt-check, and lint to use
them instead of relying only on syntax checks.
This repo is meant to be served as solverforge.org. GitHub Actions installs
dependencies with make install, runs make ci-local, and deploys output/ to
Pages.