Taller
Las herramientas que mueven este portal — y por qué. Código abierto, soberanía europea, mínimo seguimiento: no es un mensaje de marketing, es una lista con versiones, licencias y enlaces al código fuente.
Frontend
-
Astro 6
Licencia: MITStatic-site generator with per-page islands.
Content-heavy reference sites benefit from static rendering; islands give us interactivity only where it earns its weight.
-
Svelte 5
Licencia: MITReactive UI components, used for the compare table and side-by-side view.
Smaller bundles than React, runes API maps cleanly to the table-state work we do.
-
Tailwind CSS v4
Licencia: MITUtility-first styling with design tokens.
Faster iteration than scoped-component CSS; tokens make the brand surface auditable.
-
TypeScript
Licencia: Apache 2.0Static types across content models, queries and UI components.
Schema drift is the most common bug class on a content portal; TS catches it at the boundary.
Datos
-
PostgreSQL 17
Licencia: PostgreSQL LicenceAuthoritative store for countries, indicators, country pages and topic articles.
Mature, well-documented, no vendor lock-in, runs cleanly in Docker on EU infrastructure.
-
Drizzle ORM
Licencia: Apache 2.0TypeScript-first ORM with no runtime — schema lives next to the code.
Schema diffing and migrations stay readable; types flow from DB to component without code generation.
-
Garage
Licencia: AGPL-3.0Self-hosted S3-compatible object store. Holds raw artefacts — PDFs, scraped HTML, source dumps — that the ETL parses into structured documents and (later) RAG embeddings.
EU origin (Deuxfleurs collective in France), AGPL-3.0, single-node-friendly for development and scaling to multi-node for production. Avoids the "store every blob in Postgres" antipattern.
Búsqueda y descubrimiento
-
Pagefind 1.5
Licencia: MITStatic-site search. Index built post-build, runs entirely client-side.
No server queries, no logged search terms — consistent with the no-PII-tracking principle.
-
@astrojs/sitemap
Licencia: MITGenerates the XML sitemap-index with hreflang per locale.
Standard SEO requirement; the integration handles the six-locale matrix automatically.
Traducción e IA
-
Ollama (local)
Licencia: MITLocal LLM runtime on the workstation. Mistral-small3.2:24b runs translation passes for the country masters.
Translation work touches editorial drafts; routing it through an external API would be unnecessary data exposure.
-
Mistral La Plateforme
Licencia: API serviceEU-sovereign LLM API, planned for a Phase 2 RAG companion (post-launch).
Hosted in France, GDPR-clean, no-training-on-prompts default. The Anthropic/OpenAI alternatives sit outside the EU jurisdictional scope we want.
-
mistral-small3.2:24b
Licencia: Apache 2.0Open-weight 24B-parameter Mistral model running under Ollama. Translates the country masters into the five target locales (en/de/es/fr/ar/ru depending on the master).
Apache-licensed, fits comfortably on the workstation GPU, and produces consistent enough output that the per-country review effort stays manageable.
-
translategemma
Licencia: Gemma Terms of UseGemma-derived translation model, also under Ollama. Used as a drift-rescue when the primary model gets stuck (e.g. one LU→AR pass that mistral-small refused to render cleanly).
Different translation behaviour than mistral-small — useful as a second pair of eyes when the primary loop produces obviously broken output.
Hosting y operaciones
-
Hetzner Cloud (DE)
Licencia: ServiceProduction hosting in Germany.
EU jurisdiction, transparent pricing, no surprise lock-ins.
-
Caddy
Licencia: Apache 2.0Reverse proxy with automatic HTTPS and a strict CSP.
Sane defaults out of the box; access logs are configured no-PII.
-
Docker Engine
Licencia: Apache 2.0OCI-compliant container runtime. Hosts Postgres, Garage, Caddy, the Astro builder and (post-launch) Listmonk and Umami as siblings on the same host.
Reproducible images, portable across hosts, makes the "same image in dev/staging/prod" pattern straightforward. We run Engine on Linux directly — Docker Desktop would add a commercial licence for our scale we do not need.
-
Docker Compose
Licencia: Apache 2.0Orchestrates Postgres, Garage, Caddy, the Astro static server, Listmonk and Umami in a single file.
Reproducible, portable to any EU host without re-platforming.
-
Umami
Licencia: MITPrivacy-first analytics — cookie-free, no-PII, EU-hostable.
We need to know roughly which content lands; we do not need to know who individual readers are.
-
Listmonk
Licencia: AGPL-3.0Self-hosted newsletter and transactional email.
Mailchimp and similar route data through US infrastructure; Listmonk keeps the subscriber list inside our own boundary.
Entorno de desarrollo
-
Codeberg
Licencia: Service (non-profit)Non-profit git hosting in Germany, run by the Codeberg e.V. on behalf of the FSFE community.
A self-hosted Synology git server holds the working tree today; the public mirror at launch goes to Codeberg rather than GitHub or GitLab so the source-code-side jurisdiction matches the rest of the stack.
-
Forgejo
Licencia: GPL-3.0+The forge software powering Codeberg — a community fork of Gitea that stayed fully open after the Gitea licence shift.
GPL-3.0+ keeps the platform and its forks free in the strong-copyleft sense; we benefit from the community-governed fork rather than a single-vendor service.
-
Canonical / Ubuntu
Licencia: GPL + diverse OSS licencesThe workstation OS where the build, the local Ollama instance and the development tooling all live.
Long-term support release, a wide OSS-package archive, predictable behaviour for the Docker / GPU / Node toolchain we run.
-
Claude Code (Anthropic)
Licencia: Commercial (Anthropic)AI pair-programming tool — reads the codebase, drafts changes, runs the test/build cycle. The workshop page itself, the Pagefind-core search migration, the country masters' specifics block, large parts of the translate pipeline: written in collaboration with it.
Currently the most productive editorial-engineering loop we have found. Honest caveat: commercial, US-based, proprietary — squarely outside the EU-sovereign / open-source frame the rest of this page describes. We name it openly rather than glossing over the tension; an EU-sovereign / open-weight pair-programming replacement at comparable quality does not exist yet, and we keep watching.
Fuentes de contenido
-
Eurostat
Licencia: Eurostat reuse policyStatistical data for the EU+EEA: minimum wages, AIC, median income, unemployment, price levels.
Authoritative, well-versioned, machine-readable.
-
OECD / WHR / ILGA / TI / RSF
Licencia: Per-source attributionReputation, rights, freedom and well-being indicators (Happiness, Rainbow Map, Corruption Perceptions, Press Freedom).
Each is the canonical source in its field; cross-referencing them prevents single-source bias.
-
Wikipedia (EN/DE/ES leads)
Licencia: CC BY-SA 4.0Source material for the LLM-drafted country intros.
Cross-language triangulation reduces single-perspective bias compared with one-language sources.