← All projects

AI / LLM · SaaS · Backend

Vigie, automated regulatory monitoring

A B2B SaaS I built from the ground up: it reads the French Journal Officiel every day, uses an LLM to turn dense legal texts into actionable summaries, and emails each professional a filtered digest every morning.

Timeline
2026
Role
Founder & engineer
Stack
Django, PostgreSQL, Claude, Stripe, Resend, HTMX

Context

Vigie is a product I designed and built on my own: a SaaS for automated regulatory monitoring of the French Journal Officiel (JORF). It does one thing well, watch the JORF, filter it and summarize it, as an accessible alternative to the heavy, expensive legal-watch platforms.

The problem

Regulatory monitoring in France is tedious and time-consuming.

  • The JORF publishes dozens to hundreds of texts every working day; nobody can read all of it.
  • Professionals with compliance obligations spend hours combing through it by hand, and missing a single critical text can have serious legal or financial consequences.
  • Legal language is dense, technical and full of cross-references, so understanding a text's real impact is slow even for experts.
  • There's no native way to say "only show me what concerns taxation and healthcare", and the established tools are expensive and generalist.

Objectives

  • Monitor the JORF automatically, every day.
  • Let each user filter by theme and text type, so they only see what matters to them.
  • Turn dense legal prose into a summary anyone can act on in 30 seconds.
  • Deliver it where people already are: a short email, every morning.

My approach

Vigie runs a daily three-phase pipeline, built on Django: ingest the official source, analyze each text with an LLM, then distribute a personalized digest. The whole product, pipeline, dashboard and billing, is one codebase.

daily per user JORF archives DILA · XML / tar.gz ① Ingest & parse XML → clean text metadata · articles · visas ② Claude tag + summarize → structured JSON ③ Distribute filter by theme / type email digest Users every morning
The daily pipeline: from the official JORF archives to a personalized digest in each user's inbox.

Ingestion & the AI core

Each morning the pipeline downloads the day's JORF archives from the DILA (the official source) as compressed tarballs, and parses the full XML of every text: nature, identifiers, title, ministry, dates, the legal references it builds on (the visas), each article, and the signatories. All of it is flattened into clean plain text, ready for analysis.

Each text is then sent to Claude with a tightly structured prompt. The model must return strict JSON, nothing else: a set of thematic keywords drawn only from a fixed taxonomy of 27 themes (no invented values, copied exactly), plus a four-part summary written for a non-lawyer. Locking the model to a known taxonomy and a known JSON shape is what makes the output reliable enough to filter, store and act on, rather than free-form prose.

DécretTaxation · Healthcare

[ Title of the text, with its subject ]

What changes
What the text introduces or modifies, in two or three plain sentences.
Who is affected
The organizations or people impacted by it.
Effective date
A precise date, or "Not specified".
Action required
What the concerned parties must concretely do.
The AI output for a single text: thematic tags plus a four-part summary, readable in about 30 seconds, with a link to the full text on Légifrance.

The product around it

Vigie is a complete SaaS, not just a pipeline. On top of the Django and PostgreSQL backend:

  • Personalized digests: each active user gets a morning email (via Resend) with only the texts matching their filters, 7 text types and 27 themes, persisted per account.
  • Dashboard: history by publication date, a per-day detail view with client-side filtering (HTMX), synthesis cards and a one-click link to the full text on Légifrance.
  • Accounts: sign-up with email verification, profile management (with re-verification on email change), password reset.
  • Billing: full Stripe integration, checkout, customer portal and webhooks, for a 14-day free trial and a single flat subscription.

Results

  • A complete, working SaaS, designed and built entirely on my own: pipeline, applied AI, dashboard and billing.
  • Hundreds of daily legal texts turned into a short, personalized, actionable digest.
  • Dense legal prose made readable in seconds, and filterable down to the themes each professional cares about.

Key takeaways

The hard part of applied AI here was not calling the model, it was constraining it: locking the output to a fixed taxonomy and a strict JSON shape so the rest of the system can trust it. And as a product, doing one thing well, the JORF, filtered and summarized, is exactly what makes it useful where a generalist platform would not be.

Related case studies

Have a similar challenge? Get in touch →