cybergems.org — Official website for the CyberGems suite.
High-quality, open-source Windows apps — Free, No Ads, No Tracking.
CyberGems crafts free and open-source Windows applications that respect your privacy. No ads, no telemetry, no cloud lock-in — just fast, native, beautiful tools. All projects are GPLv3 licensed.
This repository powers cybergems.org — the official landing for the suite. It showcases all 10 apps, per-app detail pages, a cross-repo changelog and auto-synced documentation, fully bilingual (English / Spanish on the site).
🌐 Live site: cybergems.org | 👨💻 Org: github.com/CyberGems | 📦 Profile repo: CyberGems/CyberGems
| Area | Route | Description |
|---|---|---|
| Landing | / (EN) · /es/ (ES) |
Hero, suite grid (10 apps from src/data/apps/), highlights and CTAs |
| App pages | /apps/[slug] · /es/apps/[slug] |
Tagline, description, feature list, screenshot or gradient placeholder, download / releases / source / wiki links |
| Changelog | /changelog · /es/changelog |
Latest releases aggregated from GitHub Releases across the suite |
| Docs | /docs · /docs/[app] · /es/docs/... |
Guides rendered from each repo's GitHub wiki, synced at build time |
All pages are static, SEO-friendly and served from a custom domain.
- Framework: Astro 5 with file-based routing
- Styling: Tailwind CSS v4 via
@tailwindcss/vite - Language: TypeScript (
astro.config.mjs,src/data/*,src/components/*) - Markdown:
markedfor wiki rendering - Hosting: GitHub Pages (custom domain
cybergems.org), also compatible with Cloudflare Pages
.
├── public/
│ ├── favicon.svg
│ ├── screenshots/<slug>/ # optional per-app screenshots (served as-is)
│ └── wikis/<slug>/ # wiki assets copied at build time
├── wikis/<slug>/ # cloned wiki repos (gitignored, generated)
├── scripts/fetch-wikis.mjs # clones every <App>.wiki.git before dev/build
├── src/
│ ├── components/Landing.astro
│ ├── data/
│ │ ├── apps/ # one JSON per app — editable in the CMS (/admin)
│ │ ├── apps.ts # types + loader for the JSON files
│ │ └── ui.ts # shared UI strings (EN/ES)
│ ├── admin/ # public/admin — Decap CMS panel
│ └── pages/
│ ├── index.astro # → /
│ ├── es/index.astro # → /es/
│ ├── apps/[slug].astro # → /apps/* + /es/apps/*
│ ├── changelog.astro # → /changelog + /es/changelog
│ └── docs/ # → /docs + /docs/[app]
├── astro.config.mjs # site: https://cybergems.org
└── .github/workflows/deploy.yml
src/data/apps/— one JSON file per app (slug,name,emoji,accent,stack,license, bilingualtagline/description/features,repo,wiki, optionalwinget,screenshot). Screenshots are optional: setscreenshotto a file inside/public/screenshots/<slug>/(or an absolute/screenshots/...path, as written by the CMS) or leave itnullto render the gradient placeholder.src/data/ui.ts— shared UI strings for nav, hero, sections and footer (en/es).src/pages/—/(English) and/es/(Spanish), plus/apps/[slug]per-app pages in both languages, pluschangeloganddocs.public/screenshots/— static screenshots; absent files fall back to the accent-gradient placeholder.wikis/+public/wikis/— generated; do not edit by hand (see below).
To update an app: edit its JSON in src/data/apps/ or use the visual CMS at /admin — the landing, app pages, changelog and docs pick it up automatically.
A content manager is available at /admin (https://cybergems.org/admin):
- Edits the
src/data/apps/*.jsonfiles and uploads screenshots topublic/screenshots/ - Also editable:
❓ FAQs(src/data/faqs.json),⚙️ Settings(donation links + crypto insrc/data/site.json),🌐 UI Strings(nav, hero, footer texts insrc/data/ui.json) and📄 Pages(About, Privacy, Download copy insrc/data/pages.json) - Every save is a commit to
main→ the deploy workflow rebuilds the site automatically - Login: Sign In with Token — paste a fine-grained PAT (create one here) with access to this repo and
Contents: Read and write. No OAuth App, no auth server. Only accounts with write access to the repo can log in. - Local dev: Sveltia CMS has a built-in local workflow — no proxy server needed
| Command | Action |
|---|---|
npm install |
Install dependencies |
npm run dev |
Start local dev server at localhost:4321 |
npm run build |
Build the production site to ./dist/ |
npm run preview |
Preview the production build locally |
predevandprebuildrunnode scripts/fetch-wikis.mjsautomatically — no manual step needed.
Wikis live as separate git repos (https://github.com/CyberGems/<slug>.wiki.git). On every dev and build:
scripts/fetch-wikis.mjsreads slugs fromsrc/data/apps/*.json- Uses the sibling
<App>.wikirepository when it exists locally (for example../CyberViewer.wiki); in CI, shallow-clones the wiki from GitHub intowikis/<slug>/ - Copies non-markdown assets into
public/wikis/<slug>/so images referenced in markdown are served as static files - Astro renders the markdown via
markedinto/docsroutes
To refresh wikis locally without a full build: node scripts/fetch-wikis.mjs.
- Output: static site in
dist/(astro build) - CI:
.github/workflows/deploy.yml—withastro/action@v3on push tomain, plus a daily cron30 4 * * *to refresh releases and wikis without a manual push, plusworkflow_dispatch - Hosting: GitHub Pages with custom domain
cybergems.org(also ready for Cloudflare Pages). No server, no runtime — just static assets.
All CyberGems apps are GPLv3 — free forever. Contributions, bug reports and stars are welcome!
- ⭐ Star this repo or any app you like — it helps a lot
- 🐛 Open an issue if you find a bug
- 🔀 PRs are welcome — keep changes focused and bilingual strings in sync (
src/data/apps/+src/data/ui.ts)
🌐 cybergems.org • 📦 All Repositories • 💎 Profile Repo
Free • No Ads • No Tracking • Open Source