DEV Community

Contexte tech
Contexte tech

Posted on Originally published at contextetech.com

ContexteTech is now open source: a hub for everything that adapts an AI model

For the past six months, I've spent a good part of my days "adapting" language models to real use cases: a system prompt here, three few-shot examples there, an MCP server so the assistant can read my files, a LoRA config when prompting isn't enough. And every time, the same frustration: these building blocks are scattered everywhere. A prompt in a gist, a dataset on Hugging Face, an MCP server in a README, a Claude Code config buried in some project.

ContexteTech came out of that: one place for everything that adapts an AI model, organised, tested and ready to copy. The site is live at contextetech.com, and the code of its first version (v1) is now free software.

What's in it

Eleven resource types, in three families:

  • Production (use the model without changing it): contexts, prompts, agents, RAG pipelines;
  • Training (change the model): fine-tuning datasets, LoRA configs, evaluations;
  • Extensions (give it tools): MCP servers, skills, harnesses.

Each page exports straight to the target tool's format: JSONL for a dataset, SKILL.md for a skill, CLAUDE.md and settings.json for a harness, the mcpServers block for an MCP server.

Two things mattered to me, because they are missing elsewhere:

  1. "Tested on": every resource can list the models it was tried on, with the result (passed, partial, failed) and a score. A prompt that works on one model and not another is everyday life, so let's write it down.
  2. Risk level for MCP servers and harnesses: before installing a server, you want to know whether it reads files, writes them, goes online or runs commands. The page shows it plainly.

A concrete example

The need. A small company wants an LLM to summarise its support tickets. The catch: tickets contain names, phone numbers and bank details. Sending them as-is to a third-party service is a personal-data leak, and a GDPR problem.

The answer on ContexteTech. Instead of hunting for ten resources in ten places, you follow one chain:

  1. the context anonymisation-rgpd replaces personal data with tags before anything is sent:
Input:  Bonjour, je suis Marie Dupont, joignable au 06 12 34 56 78.
Output: Bonjour, je suis [PRENOM_1] [NOM_1], joignable au [TELEPHONE_1].
🏆 Live Soccer TV: contextetech/contextetech is now open source a hub for everything that adapts an ai model jb - Info Live Streaming 2026 🏆 Live Soccer TV: contextetech/contextetech is now open source a hub for everything that adapts an ai model jb - Info Live Streaming 2026
  1. the evaluation eval-anonymisation-rgpd checks that nothing leaks, with ready-to-run test cases;
  2. when prompting is not enough, the dataset anonymisation-rgpd-fr and the LoRA config mistral7b-anonymisation-qlora let you fine-tune a small model that runs locally;
  3. the agent agent-tri-documents and the MCP server mcp-filesystem automate processing a whole folder.

One need, one chain of linked resources, each exportable in the right format.

Under the hood

I wanted a simple, fast, fully self-hostable stack:

  • Site: server-rendered Astro, with a few Svelte islands only where interactivity is needed (publishing form, like button). Everything else is plain HTML; the home page weighs about 16 KB.
  • API: FastAPI with async SQLAlchemy, PostgreSQL 17 for data, Redis for caching and rate limits. The cache is invalidated by a single version counter bumped on every write: no fine-grained purging to manage.
  • Network: Caddy in front (automatic TLS, HTTP/3), then the European CDN Bunny (Slovenia) for static files, cached for a year thanks to hashed file names.
  • Five languages (French, English, Spanish, German, Italian). One SEO subtlety: a resource written in French is only indexed in French; its /en/… versions translate the interface but point to the original as canonical. Otherwise Google sees five copies of the same text.
  • Readable, unique URLs: /prompts/resume-article-technique-k3j9a2. The suffix is an FNV-1a hash of the internal id, computed identically in Python and JavaScript, so two authors can pick the same name without collisions.
  • No trackers: no advertising cookies; traffic is measured with self-hosted Plausible, without cookies or personal data.

A sovereign project

ContexteTech is built and hosted in Europe, without depending on the big US cloud providers:

  • Server and database at Scaleway, in France (managed PostgreSQL, dedicated server);
  • CDN and DNS at Bunny, a European company based in Slovenia;
  • E-mail through Proton, in Switzerland, encrypted and signed (SPF, DKIM, DMARC);
  • Fonts, scripts and styles served from the site itself: no Google Fonts, no third-party CDN; self-hosted, cookieless Plausible statistics;
  • Publisher: a French company, bound by the GDPR.

One deliberate exception: the code is mirrored on GitHub and GitLab, because that's where developers are. The working copy lives on our own server.

Why AGPL-3.0

I hesitated with Apache-2.0 (the licence of Hugging Face's libraries). I chose the AGPL-3.0: you can use and modify ContexteTech, as long as you publish your changes if you offer it online. It's the licence used by Mastodon and Plausible, and it keeps an open hub open.

The resources themselves keep the licence chosen by their author (MIT, CC BY 4.0…).

Where the project stands

It's early days, and I'd rather be honest: the catalogue starts with one resource per type, built around one concrete use case (anonymising French text before sending it to a third-party service). What it needs most is your resources, your feedback and your tests.

If you have a prompt you use every day, an MCP server you love or a well-tuned Claude Code config, this is the place to share it.

Originally published on contextetech.com.

Top comments (0)