Names Over Time

A searchable history of baby names in the US and England & Wales, with popularity charts, yearly rankings and official source data.

Live demoVersion 0.12.8
Names Over Time - covera
Names Over Time

About Names Over Time

Names Over Time explores how baby names rise, fall and return across generations. I built it to turn official records into something people can search and browse: a name's history, its position in the rankings, and how its popularity differs between countries.

The public site covers the United States and England & Wales, using data from the Social Security Administration and the Office for National Statistics. US records reach back to 1880; England & Wales coverage starts in 1996.

Search for a name or start with the available countries and regions.

Follow a name through the years

Visitors can search for a name, browse alphabetically, explore yearly rankings or look through groups of rising and falling names. Individual profiles bring together historical counts, rankings and interactive charts, with separate boys' and girls' series and links to the same name in another market where data is available.

Source and methodology pages explain where the figures come from and how to read them. The aim is to make the records useful without requiring visitors to work through spreadsheets.

Keep the data in context

The sources have different coverage and reporting rules. I built the import process around those differences, keeping each observation tied to its source, year, geography and statistical series.

Name matching preserves Unicode characters and distinguishes name identity from the spelling used in a URL. Population-based rates stay absent when the required population figures are unavailable. That prevents incomplete source data from becoming a misleading percentage on a public page.

Publish complete updates

Rust handles imports, data processing and page generation, with PostgreSQL storing the records and calculated statistics. The public website serves prebuilt HTML and static search files; visitor requests do not need database access.

Each update is built as a separate release. Before it can replace the live version, checks cover page routes, metadata, canonical URLs, structured data, internal links, sitemaps and search. If a candidate fails validation, the existing release stays in place.

The private operations console shows source status and controls for importing and publishing updates. Cropped from the actual interface.

Give maintenance its own interface

A private Svelte console provides source status, import and publishing controls, job progress and an activity history. Jobs run through a durable PostgreSQL queue, so closing the browser does not stop an import. The deployment is packaged with Docker, with setup and repeat-deployment scripts for a Forge-managed server.

I built both the public browsing experience and the system that keeps it updated: the data imports, database model, Rust publisher, JavaScript interactions, operations console and deployment workflow.

Visit Names Over Time

Release history

Version 0.12.8