Projects
How far behind the Buenos Aires consulate is on Spanish citizenship

Cola de nietos

Reads one sentence out of a government PDF every month and publishes the thing no single bulletin states: which month of applications is being processed, and how long it has been the same.

Role
Solo
Period
2026
Type
Lab
Status
live
36
Months behind, and growing
1
Month cleared in seven
11
Bulletins read
01

Showcase

1 video
Loading showcase
26sCola de nietos — One sentence in a government PDF, read the same way every month. Rendered live with Remotion, not a video file.
02

Overview

Around 645,000 people applied for Spanish citizenship through the Buenos Aires consulate under the ley de nietos. Most of them have been waiting years with no idea where they are in the queue. The information exists — the consulate publishes which month of applications it is working through — but it is one sentence, buried in a four-page PDF, once a month, worded differently every time.

This reads that sentence and keeps the answers. The value is not the month, which anybody who knows to look can find; it is the series. No single bulletin can say how long the number has been the same, and nobody reading one bulletin can know it.

The answer turns out to be worse than the number suggests. In seven months of the consulate reporting it, the queue cleared one month of backlog — while the ordinary citizenship queue at the same counter cleared twenty-two. Both figures come out of the same paragraph of the same PDF.

03

Modules

3 units
01

Reading the bulletin

Finding one sentence in a government PDF whose wording changes every month.

  • The listing page is scraped, never guessed — the PDFs live in three folders under three naming conventions
  • Typed questions with closed options, asked of the whole document at once
  • A month is stored only when three answers agree: the gate, the month and the year
  • Every field is an enum or a month, so a reading costs no output tokens
02

The series

Pure code over the stored rows — this is where the thing worth publishing is computed.

  • How long the frontier has been unchanged, walking back through editions that said nothing
  • The backlog against each bulletin’s own date, which grows on its own while the queue stands still
  • The same reading for the ordinary citizenship queue, for the comparison
  • A month is two integers and never a Date — a timezone slip would look exactly like the queue moving
03

What it refuses to do

The rules that keep it honest, encoded rather than hoped for.

  • Never estimate when somebody’s own file will be resolved
  • Never store a reading the three questions disagreed about
  • Never send the month you applied in anywhere — it stays on the device
04

Engineering

What was hard
01

Both alternatives to a model failed, in opposite directions

A regular expression invented two frontiers that do not exist, reading the application deadline and an IDU announcement as processing months. Then I read the eleven PDFs by hand and missed three, because those editions head the section with the acronym — "EXPEDIENTES DE LMD" — and I had searched for the name of the law. The hand reading is what shipped first, and the model is what caught it: given the whole document and no phrase to look for, it got all eleven right. The project now treats a false frontier as the worst possible outcome and stores nothing unless three independent answers agree.

02

The number worth publishing is a fact about the series

The frontier itself is on the consulate’s own website. What is nowhere is how long it has been the same — and the sharper version, which nobody states at all: a queue that stands still does not stay level, it falls a month further behind every month. That is the one thing on the page that cannot be read off any single bulletin, and it is the reason the project exists rather than a bookmark.

03

Refusing to answer the only question anybody asks

Every reader wants a date. One month cleared in seven projects to something like twenty more years, which looks like a finding and is an extrapolation from two points either side of a single movement. These readers have been waiting for years and would use a fabricated date to decide about jobs, leases and where their children go to school. The page states the distance, says plainly that a distance is not a schedule, and stops.

05

Stack

7 entries
  • 01Next.js 16
  • 02TypeScript
  • 03Supabase
  • 04Jev
  • 05unpdf
  • 06Web Push
  • 07Vercel Cron