Мастерская
Инструменты, на которых работает этот портал — и почему. Открытый исходный код, европейский суверенитет, минимум отслеживания: это не маркетинг, а список с версиями, лицензиями и ссылками на исходники.
Фронтенд
-
Astro 6
Лицензия: 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
Лицензия: 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
Лицензия: MITUtility-first styling with design tokens.
Faster iteration than scoped-component CSS; tokens make the brand surface auditable.
-
TypeScript
Лицензия: 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.
Данные
-
PostgreSQL 17
Лицензия: 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
Лицензия: 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
Лицензия: 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.
Поиск и навигация
-
Pagefind 1.5
Лицензия: 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
Лицензия: MITGenerates the XML sitemap-index with hreflang per locale.
Standard SEO requirement; the integration handles the six-locale matrix automatically.
Перевод и ИИ
-
Ollama (local)
Лицензия: 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
Лицензия: 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
Лицензия: 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
Лицензия: 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.
Хостинг и эксплуатация
-
Hetzner Cloud (DE)
Лицензия: ServiceProduction hosting in Germany.
EU jurisdiction, transparent pricing, no surprise lock-ins.
-
Caddy
Лицензия: 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
Лицензия: 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
Лицензия: 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
Лицензия: 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
Лицензия: 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.
Среда разработки
-
Codeberg
Лицензия: 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
Лицензия: 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
Лицензия: 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)
Лицензия: 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.
Источники контента
-
Eurostat
Лицензия: 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
Лицензия: 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)
Лицензия: CC BY-SA 4.0Source material for the LLM-drafted country intros.
Cross-language triangulation reduces single-perspective bias compared with one-language sources.