{"id":50305859,"url":"https://github.com/xarbit/appgrid.xarbit.dev","last_synced_at":"2026-05-28T16:01:54.590Z","repository":{"id":358039198,"uuid":"1239611350","full_name":"xarbit/appgrid.xarbit.dev","owner":"xarbit","description":"Webpage for the AppGrid Plasma Application LAuncher","archived":false,"fork":false,"pushed_at":"2026-05-22T10:49:30.000Z","size":30447,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T15:43:28.043Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xarbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T09:05:26.000Z","updated_at":"2026-05-22T10:49:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xarbit/appgrid.xarbit.dev","commit_stats":null,"previous_names":["xarbit/appgrid.xarbit.dev"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xarbit/appgrid.xarbit.dev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarbit%2Fappgrid.xarbit.dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarbit%2Fappgrid.xarbit.dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarbit%2Fappgrid.xarbit.dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarbit%2Fappgrid.xarbit.dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xarbit","download_url":"https://codeload.github.com/xarbit/appgrid.xarbit.dev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarbit%2Fappgrid.xarbit.dev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33615490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-28T16:01:51.773Z","updated_at":"2026-05-28T16:01:54.585Z","avatar_url":"https://github.com/xarbit.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# appgrid.xarbit.dev\n\nMarketing site for [AppGrid](https://github.com/xarbit/plasma6-applet-appgrid), a modern application launcher for KDE Plasma 6.\n\nStack: Astro · Tailwind v4 · React (islands) · Bun · GitHub Pages.\n\n## Development\n\nRequires [Bun](https://bun.sh) `\u003e= 1.3`.\n\n```bash\nbun install        # install deps\nbun dev            # http://localhost:4321\nbun run build      # build to ./dist\nbun run preview    # preview the build\n```\n\n## Project structure\n\n```\nsrc/\n├── assets/screenshots/   # PNG sources (Astro Image pipeline → optimized WebP)\n├── components/\n│   ├── Navbar.astro\n│   ├── Hero.astro\n│   ├── Features.astro\n│   ├── GallerySection.astro   # Astro wrapper: builds optimized image URLs\n│   ├── Gallery.tsx            # React island: thumbnail grid + lightbox\n│   ├── Install.astro\n│   ├── InstallTabs.tsx        # React island: tabbed install commands\n│   └── Footer.astro\n├── layouts/Layout.astro\n├── pages/index.astro\n└── styles/global.css   # Tailwind + KDE Breeze theme tokens\npublic/\n├── CNAME               # appgrid.xarbit.dev (required for custom domain)\n└── favicon.svg\n```\n\n## Deploy\n\nGitHub Actions builds on every push to `main` and deploys to GitHub Pages via `.github/workflows/deploy.yml`.\n\n### One-time setup (xarbit/appgrid.xarbit.dev)\n\n1. **Create the repo on GitHub** as `xarbit/appgrid.xarbit.dev` and push:\n   ```bash\n   git init\n   git add .\n   git commit -m \"Initial site\"\n   git branch -M main\n   git remote add origin git@github.com:xarbit/appgrid.xarbit.dev.git\n   git push -u origin main\n   ```\n\n2. **Enable Pages** in the repo:\n   `Settings → Pages → Build and deployment → Source: GitHub Actions`\n\n3. **DNS at desec.io** — add a `CNAME` record:\n   | Field   | Value                  |\n   |---------|------------------------|\n   | Subname | `appgrid`              |\n   | Type    | `CNAME`                |\n   | TTL     | `3600`                 |\n   | Record  | `xarbit.github.io.`    |\n\n   Trailing dot is mandatory in the desec.io UI.\n\n4. **Verify domain** in GitHub:\n   `Settings → Pages → Custom domain → appgrid.xarbit.dev → Save`\n\n   GitHub stores the value in `public/CNAME` (already committed).\n\n5. **Wait for DNS propagation** (~1–15 min). Check:\n   ```bash\n   dig +short CNAME appgrid.xarbit.dev    # → xarbit.github.io.\n   ```\n\n6. **Enable HTTPS**:\n   `Settings → Pages → Enforce HTTPS` (check box once GitHub finishes provisioning the Let's Encrypt cert — usually 5–15 min after DNS resolves).\n\n### CAA records (if HTTPS provisioning fails)\n\nIf `xarbit.dev` has CAA records, they must allow `letsencrypt.org`:\n\n```bash\ndig CAA xarbit.dev\n```\n\nNo output = no CAA = any CA can issue. If CAA exists, add `0 issue \"letsencrypt.org\"` at desec.io.\n\n## Migrating to Codeberg (or another forge)\n\nRepo links are centralized in [`src/config/repo.ts`](src/config/repo.ts). All components read from it.\n\n**Full migration to Codeberg:**\n\n```ts\n// src/config/repo.ts\nexport const primary: RepoConfig = make(\n  \"codeberg\",\n  \"xarbit\",\n  \"plasma6-applet-appgrid\",\n);\n\nexport const mirrors: RepoConfig[] = [\n  make(\"github\", \"xarbit\", \"plasma6-applet-appgrid\"),  // keep as mirror\n];\n```\n\nThat's it. One edit. All links, install commands, star fetcher, footer, and CTA buttons update.\n\n**Star count API** — handled automatically:\n- GitHub: `api.github.com/repos/{owner}/{repo}` → `stargazers_count`\n- Codeberg: `codeberg.org/api/v1/repos/{owner}/{repo}` → `stars_count`\n\n**Optional auth tokens** for higher rate limits:\n- `GITHUB_TOKEN` — auto-provided in GitHub Actions (`secrets.GITHUB_TOKEN`)\n- `CODEBERG_TOKEN` — generate in Codeberg → Settings → Applications\n\nSet as repo secrets in GitHub Actions, then in `.github/workflows/deploy.yml`:\n\n```yaml\n- name: Build site\n  run: bun run build\n  env:\n    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n    CODEBERG_TOKEN: ${{ secrets.CODEBERG_TOKEN }}\n```\n\n## License\n\nGPL-2.0-or-later (matches the AppGrid project).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxarbit%2Fappgrid.xarbit.dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxarbit%2Fappgrid.xarbit.dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxarbit%2Fappgrid.xarbit.dev/lists"}