Official CodigoSH website — showcase and documentation of our self-hosted open-source projects. Built with Astro.
  • Astro 59%
  • TypeScript 20.3%
  • CSS 11.5%
  • Python 4.7%
  • Shell 2.7%
  • Other 1.8%
Find a file
2026-07-02 00:15:39 +02:00
.forgejo/workflows ci: use the ubuntu-latest runner label to match the org runner 2026-07-01 23:46:39 +02:00
public feat: add an appearance panel with theme, font, text-size and width controls 2026-07-01 23:33:40 +02:00
scripts chore: remove infra references and dead i18n code 2026-07-01 19:52:20 +02:00
src fix: detect project licenses from the LICENSE file (Forgejo API omits them) 2026-07-02 00:15:39 +02:00
.dockerignore Initial scaffold: Astro + Tailwind + Starlight site 2026-06-10 03:00:08 +02:00
.env.example Docs: clarify anonymous Forgejo reads (token optional) 2026-06-10 03:15:21 +02:00
.gitignore feat(release): add release script and Forgejo Actions workflow 2026-06-10 16:54:43 +02:00
astro.config.mjs Go English-only and elevate the home content 2026-06-10 07:32:45 +02:00
bun.lock Add a Changelog page aggregating releases from Forgejo 2026-06-10 08:04:35 +02:00
Caddyfile chore: remove infra references and dead i18n code 2026-07-01 19:52:20 +02:00
CHANGELOG.md chore(release): bump to v1.1.0 2026-07-01 23:34:19 +02:00
Dockerfile chore: remove infra references and dead i18n code 2026-07-01 19:52:20 +02:00
LICENSE docs: add Apache-2.0 license to align with the other CodigoSH repos 2026-07-02 00:11:15 +02:00
package.json chore(release): bump to v1.1.0 2026-07-01 23:34:19 +02:00
README.md docs: remove deployment platform references 2026-06-10 17:13:47 +02:00
tsconfig.json tsconfig: exclude node_modules explicitly 2026-06-10 07:56:08 +02:00

codigosh-web

Official website for CodigoSH — a free-software collective building self-hosted, private tools. The site showcases the organization's projects hosted on Forgejo and their documentation, with a strong focus on SEO and performance.

Stack

  • Astro (static output) — content-first, zero JS by default.
  • Tailwind CSS v4 + the CodigoSH design system (src/styles/theme.css).
  • Starlight for documentation (in progress).
  • i18n — Spanish at the root, English under /en/, with hreflang alternates.
  • Forgejo API integration at build time (src/lib/forgejo.ts).
  • Self-hosted as a static site served by Caddy.

Development

Requires Bun (≥ 1.3).

bun install
bun run dev        # local dev server
bun run build      # production build -> dist/
bun run preview    # preview the build
bun run check      # astro type/content check
bun run i18n:sync  # audit translation key parity

The CodigoSH Forgejo instance allows anonymous API reads, so no token is required. If the API is unreachable the build falls back to bundled mock projects, so it always builds offline.

Configuration

Copy .env.example to .env and fill in as needed. See that file for the full list. The most relevant variables:

Variable Purpose
SITE_URL Canonical URL (canonical tags, sitemap, OG).
FORGEJO_URL Forgejo instance base URL.
FORGEJO_ORG Organization whose repos are listed.
FORGEJO_TOPIC Curated topic; only repos with it are shown.
FORGEJO_TOKEN Read-only API token (public repos).
FORGEJO_MOCK Force mock data (1/true).

Projects on the site

Projects are pulled at build time from Forgejo. Only repositories tagged with the showcase topic appear. To refresh the live site after changing a repo, trigger the deploy webhook (e.g. from a Forgejo push webhook).

Deployment

The included Dockerfile builds the static site with Bun and serves dist/ with Caddy on port 80. Set the build variables above and point the application's domain at the container.

License

See LICENSE.