This repository holds the public website for Keel, the open-source, auditable Shariah-compliance engine for spot-crypto trading.
The site is a read-only presentation layer over GitHub: plain-English (and plain-Arabic) explanations, documentation rendered from the engine repository, news from GitHub Discussions, and download buttons pointing at GitHub Releases. Community interaction (posting, voting, polling) stays on GitHub — the site surfaces and translates, it never duplicates.
Status: v1 implemented against the
PRD (Phase 15 — Public website v1). Deploys run from GitHub Actions (add two repo secrets + one
variable per docs/DEPLOYMENT.md and the site goes live
on *.pages.dev immediately); the custom domain is deferred until its
registrar completes (PRD §11). SEO strategy and roadmap:
docs/seo/.
- Static-first Astro (zero client JavaScript), deployed to Cloudflare
Pages from
main; every PR gets a preview. - Docs pipeline (FR-4) — engine-docs.manifest.json
pins the engine documents;
npm run buildfetches them at build time and fails loudly if one moves. Documents are never hand-copied. - News (FR-5) — the Announcements category of GitHub Discussions, read via the public REST endpoint (no token, no Worker needed — see the note in docs/DEPLOYMENT.md), refreshed by an hourly rebuild workflow.
- Downloads (FR-6) — version number, asset links, and the versioned pip command come from the GitHub Releases REST endpoint at build time. Buttons link directly to GitHub; binaries are never mirrored here.
- i18n (FR-7/FR-8) — English (source of truth) and a full Arabic edition
with RTL layouts designed in from the first component, hreflang alternates,
per-locale sitemaps, a "last translated against English revision" marker on
every translated page, and a stale-translation banner.
fr/esare reserved in routing for their phase.
npm install
npm run dev # fetches engine data, then serves at localhost:4321
npm run build # fetch + build to dist/
npm run check # astro check (type checking)The fetch scripts write to data/ and src/content/engine-docs/ — both are
gitignored build artifacts. GITHUB_TOKEN in the environment is optional
(rate-limit headroom only).
Page copy lives in typed dictionaries in src/i18n/pages/; the markup lives
once in src/components/pages/; the route files in src/pages/{en,ar}/ are
thin wrappers. Adding a locale is content + config only (the FR dry-run
contract, Success criterion 8).
No profit claims, no performance promises, no testimonial-as-proof, no urgency tactics. The measured result is stated by the site first: no shipped rule family is net-positive at the taker fee actually paid; the benchmark is DCA. Standing disclaimers (not financial advice; not a fatwa; attestation is the operator's responsibility) ship in every footer, in both languages.
- Code in this repository: MIT (LICENSE).
- Site content (prose, branding, translations): © CodeGate Software — quoting with attribution is welcome; see CONTENT-LICENSE.md.
- The keel engine is Apache-2.0 under its own repository; documents rendered in the Docs section are fetched from it at build time and remain under its license.
"Keel" is not affiliated with, endorsed by, or sponsored by any exchange or brokerage named on the site. Venue names (Alpaca, Coinbase, Robinhood, and others) are used nominatively to describe what the engine connects to. This project is not affiliated with the Kubernetes project also named Keel (keel.sh).