- These are dev notes about the process of thinking about and building the Lifespan prototype.
- You might want to start with this conversation…
It’s been staring me in the face, but I’ve just realised something about Lifespan. It’s a virtual Time Machine.
There are two core modes: the default is “outside time”, and the other is “time travel”.
Outside time is like standing back from the whiteboard and drawing timelines on it. You see it all. You’re a Tralfamadorian.
Time travel mode is where you jump into the whiteboard, and you’re actually in 1985. When you’re there, 1985 is now. If you were 9 then, you’re 9 now. Everything is true as it was in 1985, given our best available knowledge back in the future.
You can no longer see everything, only what was known at that time. Things that haven’t happened yet don’t exist. People who are dead in the future are alive.
One detail is that you have to travel to a precise day… you can’t time travel to all of 1985 at once. You can go to 13 February 1985, though. Look at your watch, and it’s the right time, but a different date.
In this mode, you can witness events and leave things behind. And - here’s the best bit - if you do something, it lives in the moment you did it. It’s like going back and posting into your past as if you’d been there. (Which you might well have been, just without your laptop which hasn’t been invented yet.)
Why…?
Well… if you find an old diary or photo, what are you meant to do with it? In the present, it’s something from the past. But if you go to past, it’s the present, and you can insert it so it’s there when you go back to the future. If you close your eyes and remember being 9, and write something, it’s a memory.
If you found an old half-written diary entry, you could add it in the past as a truth from then, and then complete it back in the future. These would be separated, though. One is the original information, the completion is a later addition or annotation.
You can also do this stuff when you’re outside time, because you’re omnipresent and all-powerful… but it makes more sense to travel back and do it now, then.
Today I made some new types of URL…
https://beta.lifespan.dev/photos/of/kurt-vonnegut
https://beta.lifespan.dev/photos/of/kurt-vonnegut/from/1972
https://beta.lifespan.dev/photos/of/kurt-vonnegut/from/1965/to/1980
…and my favourite…
https://beta.lifespan.dev/photos/of/kurt-vonnegut/during/world-war-2
:-)
There are more, but they’re experimental for now.
A thing can go by many names over time. People are good examples, but it’s true of other things too.
For example…
| Time |
Name |
Role |
| 1952-1981 |
Bankside Power Station |
Electricity generation |
| 1981-2000 |
Bankside Power Station |
Disused shell |
| 2000- |
Tate Modern |
Art museum |
These are spans of time when the same physical building had different names and was used for different purposes. If the thing represented by the span is the building itself, then we can say all sorts of things about it and its relationship to its name and role.
There are loads of other examples. People go by different names at different times and in different contexts, like musicians who change their names, or people who go from maiden to married names.
Lifespan handles this by treating names as things that spans have, using a has_name connection (which is itself a span) to say when this was the case.
So instead of the default:
ca77ab40f418 = Red Hot Chili Peppers
we can say
ca77ab40f418 has_name Tony Flow and the Miraculously Majestic Masters of Mayhem – 1982 –> 1983
and
ca77ab40f418 has_name Red Hot Chili Peppers – 1983 –> now
Some interesting things to think about here…
…including maybe doing something like spans/@2013-01-01/red-hot-chili-peppers…
Walking past a blue plaque was the moment when some of the ideas in Lifespan crystallised a bit.

A plaque like Charles Darwin’s contains this information:
Charles Darwin
Naturalist
lived 1809-1882
- “this site” (which is on
Gower Street, London, WC1E 6BT)
lived at that place between 1838-1842
…which in Lifespan terms give us…
Charles Darwin lived_in Gower Street, London, WC1E 6BT –> 1838-1842
Thanks to the amazing work done by Open Plaques, we can get a lot of data on a lot of plaques. Importing them automatically has been a bit of a challenge, but now we have a growing set of blue plaques here - and the exciting part is that all the people and places in the plaques are spans… that can then grow and expand and be explored.
So we can go to Charles Darwin and go from there…
– http://news.bbc.co.uk/onthisday/hi/dates/stories/february/13/default.stm
I added a new feature that’s been in the back of my mind for a while. It’s a way to read and review information and use it to create spans.

If you’re looking at a public spans - things that appear in Wikipedia - you can read the corresponding article, which looks something like this…
Kurt Vonnegut (/ˈvɒnəɡət/ VON-ə-gət; November 11, 1922 – April 11, 2007) was an American author known for his satirical and darkly humorous novels. His published work includes fourteen novels, three short-story collections, five plays, and five nonfiction works over fifty years; further works have been published since his death.
Born and raised in Indianapolis, Vonnegut attended Cornell University, but withdrew in January 1943 and enlisted in the U.S. Army. As part of his training, he studied mechanical engineering at the Carnegie Institute of Technology and the University of Tennessee. He was then deployed to Europe to fight in World War II and was captured by the Germans during the Battle of the Bulge. He was interned in Dresden, where he survived the Allied bombing of the city in a meat locker of the slaughterhouse where he was imprisoned. After the war, he married Jane Marie Cox. He and his wife both attended the University of Chicago while he worked as a night reporter for the City News Bureau.
Wikidata on the other hand, presents the same kind of information as structured data…
- Entity ID: Q49074
- Label: Kurt Vonnegut
- Description: American author (1922–2007)
We want a way to “mine” this information, so we need to read this and create spans quickly and easily.
If we already have the Kurt Vonnegut span, we want to add things like…
Kurt Vonnegut lived in Indianapolis
Kurt Vonnegut studied at Cornell University
- and so on…
It’s possible to do some of this automatically. I’ve experimented with bringing in the obvious things from Wikidata (dates of birth and death, for example), but because there’s sometimes variability in the data, this gets tricky pretty quickly. There’s another kind of automatic… which using AI to read Wikipedia and other sources to try to create spans… and I’ve written about this here.
The idea is to bring in the Wikipedia article directly into a page, and allow you to highlight things in the page that aren’t already captured as spans in the system. When you highlight them, you can quickly create a span for that thing, and create a connection to that span.
Using Wikipedia
This is for anything that appears in Wikipedia, obviously… for example:
- Visit the page for “Portishead” and click “Research”
- View the Wikipedia article for Portishead from inside Lifespan
- Highlight the name of a band member, like “Beth Gibbons”
- System checks to see if a span with this name exists, and if not, offers to create it as a placeholder. If it does, skips this step.
- System offers to create a “membership” connection between Portishead and Beth Gibbons (based on the fact that we know that this is the only possible connection possible between a band and a person)
Using notes
For something not in Wikipedia, such as yourself (probably, let’s face it)… the research feature lets you write notes instead, so that you can quickly describe something and then use the same “highlight to create” thing. It’ll get better, but it’s pretty useful so far.
Some spans don’t have dates of their own… they inherit them.
A connection between two spans can exist but not have its own independent start or end, because it depends on the starts and ends of the spans it connects.
This could be called a shadow span.
An example could be something like…
- Photo X was taken on 18 January 2026
- It’s a photo of Person Y
- The relationship
Person Y is the subject of Photo X is cast as a shadow across the same period of time
The span that describes the relationship doesn’t need its own dates, because its start is locked to the photo’s start, and its end is locked to the photo’s end.
But it is still a span, because it’s a thing that exists in time.
Both sides now
If a relationship ends only when one of the related entities ends, it is a shadow span. Some shadow spans inherit their existence from one other span, like the example above. But others inherit their existence from both sides of the connection.
Parent–child relationships are an example of shadow spans with dual dependency.
- Tim Berners Lee is the son of Conway Berners Lee
- Conway was born on on 10 September 1921, and died on 1 February 2019
- Tim was born 8 June 1955
- So the relationship
Tim Berners Lee is family of Conway Berners Lee is true - by definition - between 8 June 1955 and 1 February, 2019

In the unfortunate case of a child dying before their parent, it’s the child’s end date that casts the shadow… so the rule of the relationship is based on whichever person’s life ends first.
Shadow spans are relationships whose existence is defined by the start or end of other spans, rather than being independent. So this would be true for residence spans some of the time, but not always: if you’re living in a place when you die, the residence span ends at the same time as you… but this doesn’t apply when you just move house during your life.
There’s a great blog out there called Londonist Time Machine..
The most recent post is Five… doorways onto London’s literary history (it’s a subscriber-only post, so - like me - you’ll only see a bit. Maybe I’ll subscribe…?)
They’ve highlighted some blue plaques in a way that Lifespan does… but in Lifespan, all the things on blue plaques are links :-)

Today, on the Today Programme, we were reminded that David Bowie died 10 years ago. Lifespan noticed too.

Today, the Lifespan prototype lives at https://beta.lifespan.dev, but it’s hardly a “beta” by most people’s expectations. It should really be at proto.lifespan.dev, or something, because that’s more what it is right now.
Beta, named after the second letter of the Greek alphabet, is the software development phase following alpha. A beta phase generally begins when the software is feature-complete but likely to contain several known or unknown bugs.
– https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta
The reason it’s there is that I’ve been through many internal cycles of trying to make things, and those experiments were partial prototypes, trying out ideas, or parts of ideas. When I first tried to make an app rather than simple bits and pieces, it was called the “alpha” version. When I threw this away and made a new version, I called it “beta”… so here we are.
As I write this, it’s 5 January 2026.
I’m 49 years, 10 months, 22 days old. Not a significant milestone.
But it turns out that this is the exact age that one of my favourite musicians, Max Richter, was… on my 40th birthday.
What does this mean??
Well, it means that:
- on my 40th birthday (a milestone I do remember)
- out there somewhere…
- Max Richter looked in the mirror…
- and saw someone exactly the same age I do when I look in the mirror right now
Still not amazing? Well… it’s just a matter of perspective. It matters who the two people you compare are.
I happened to notice this for a musician, but obviously it works between any two things. But… what was “this” that I noticed?
Meeting in time
If your mum was born on 1 January 1950, and you were born on 1 July 1980, then she was 30 years and 6 months old when you were born. Picture her, your imaginary mother.
This means that…
- you were exactly the age…
- that she was…
- when you were born…
…on 1 July + 30 years + 7 months = 1 March 2011
This is the date when you overlap symmetrically - when you meet her in time. It’s also when you are exactly half her age now.
That happens once: there’s one date like this for any two things. If you missed it, don’t forget to propose a toast (or have a piece of toast) next time you see your mum. But don’t worry, there’s always the anniversary of your meeting in time… which is what the thing I noticed really is. Today is the 40th anniversary of me first catching up with Max Richter in time. Not significant particularly, but the kernel of an idea.
This idea might be called something like “age parallax”. It hurt my brain to think about it, so I asked ChatGPT if it could boil it down. As well as telling me I’m a genius for noticing such an interesting concept, it said:
it implies a perceptual effect caused by viewpoint, not an objective feature of the world. The alignment isn’t “out there”; it’s generated by where you’re standing in time.
…which sums it up nicely.
Where have I seen this before?
This is similar to the vertigo-inducing feeling that came about when someone noticed…
“Oasis are now as far away from us as the Beatles were from Oasis”
…or…
Back to the Future is now further from us than its 1955 setting was from the film
When was released, Judgment Day was predicted to be August 29 1997… which was as far away then as 2032 is from us now.
Bladerunner, made in 1982, is set in 2019.
2019 − 1982 = 37 years into the future
Now, this is 7 years ago.
So the moment when Blade Runner’s future lay as far behind us as it once lay ahead was:
2019 + 37 = 2056
We’re not there yet, but we’re already living in Blade Runner’s “future”, just with fewer flying cars.
Save the day
I’m going to add this date to my calendar for the people I care about: my parents and my children, for example. An excuse for a shared mini-celebration. A piece of toast, at least.
OK, haven’t written this one yet.
It’s gonna be good though.
We all have a lot of photos.
Most of them are ones we’ve taken since the advent of the modern mobile phone, but there’s also all the ones we took with digital cameras, or scanned from photographs, that sit on hard drives and in apps like Photos. Lots are on websites like Flickr.
The rest are analogue, bits of paper in albums and shoeboxes hiding in the corner somewhere.
I can’t help but feel that the way we store, view and archive our photos has hit a bit of a glass ceiling. They’re digital, yes, and they have lots of useful metadata, like timestamp and location and even automatic detection of who and what they contain. But… then what?
Photos on Mac and iOS - Flickr and Google Photos too - can do lots of useful things, like generate “memories”, organise by location and time, as well as albums and sets and collections and the rest. Most people probably sidestep all of this and go straight for Instagram, which obviously optimises for a totally different social angle.
Photos in Lifespan
Photos are like everything else, in that they exist in time. This means they can be thought of as spans with a photo attached, rather than a photo with a timestamp.
As soon as you do this, you can start to add connection spans between the photo and other things.
photo X started on the date it was taken, and is ongoing
photo X located in place
photo X features thing Y
This then lets us do things like this:

In other words, we can import photographs and then display them at the right time relative to the people or other things in the picture.
There’s more to say about this.
OK, this is kind of important :-)
The unit of knowledge in Wikipedia is the article.
The unit of knowledge in Lifespan is the span.
A span is not a page with information in it.
It’s a thing with a URL that’s defined by dates.
A span is a period of time.

Some spans have a start and an end, others just a start (because they’re ongoing).

There are different types of span.
You can have any type of span you like.
And so on…
Some types of span have sub-types.
| Type |
Sub-types |
| Thing |
Book, Album, Track |
The spans above are nouns. They’re the subjects and objects in sentences.
There’s a special type of span called a connection, which is where verbs come in.
Connections have three important things about them:
- What type of connection they are
- What their
subject is
- What their
object is
| Type |
Subject |
Object |
| Lived in |
Person |
Place |
| Family of |
Person |
Person |
| Studied at |
Person |
Organisation |
| Member of |
Person |
Band, Organisation |
Subject and objects make 3-word sentences with their connection, like this:
subject verb object
Things like
person lived in place
person member of band
band created album
You can read a connection forwards or backwards.
The thing is, a connection is itself a span.
Which means it has a start and maybe an end.
So:
| Span |
Start |
End |
John Lennon |
9 October, 1940 |
8 December, 1980 |
The Beatles |
17 August 1960 |
10 April 1970 |
John Lennon member of The Beatles |
17 August 1960 |
10 April 1970 |
| Span |
Start |
End |
Liz Truss |
26 July, 1975 |
- |
Prime Minister of UK |
3 April 1721 |
- |
Liz Truss has role Prime Minister of UK |
6 September 2022 |
25 October 2022 |
There needs to be some principles for the development of Lifespan.
- Lifespan is a map of time: part wiki, part personal archive.
- Personal information is private, user owned and controlled.
- Public knowledge is open, collaboratively edited.
- Lifespan is built for the long term.
- Lifespan is free to use by everyone, forever.
I’m going to write about Lifespan as I build it.
There will be gaps, and I’ll fill them in retrospectively as I clean up the draft ramblings into slightly more readable posts.
If there’s a subject that you think needs explaining (and there’s lots) feel free to email richard@lifespan.dev :-)
I also recently found a couple of things things I wrote 15 years ago on this subject. I was busy in the meantime… (if only there was a way to visualise how and why).
This is the contents of a file called “ls.txt” that I wrote a long time ago.
Lifespan will be a system that allows people to collect, maintain, explore, and share an archive of events that occur during and in relation to their own lives.
As a person’s personal archive grows, it will become a powerful gateway into larger shared archives, placing public history, cultural records, and other people’s lives into a meaningful personal context. At the same time, it will serve as a source of material that helps others build out their own lifespans.
Lifespan will act as an aggregator of selected existing data sources - including photos, comments, tweets, blog posts, status updates, location traces, attention data, and calendar entries - collecting these events into a single timeline that begins at a person’s birth and ends at their death.
It will function as a central repository for everything that happens during and around a person’s life, with the long-term ambition that a lifespan could be explored as a rich, navigable record of a life.
Where existing “lifestream” systems (including Facebook and similar platforms) organise this same data as a flat, real-time feed, Lifespan will organise it around the full arc of a life. Those systems show now; Lifespan will show the long now.
People will have lifespans, but so will almost anything else. Organisations, wars, governments, relationships, objects, and ideas will all be represented as lifespans. A marriage will be a lifespan between two people. A job will be a lifespan between a person and an organisation. A war will have a lifespan, as will a school, a band, or a political administration. These lifespans will be able to overlap, nest, and run in parallel, allowing someone to see how their own life intersects with those of friends, family, institutions, and historical events.
The application will allow users to add, maintain, and explore events across any of these lifespans - human or non-human - in the past, present, or future.
It will then allow these lifespans to be compared in parallel: a person’s life alongside those of their friends and contacts, alongside public figures, alongside organisations, and alongside the unfolding history of the wider world.
Relevant historical data from public and private sources - such as archives of public bodies, Wikipedia, census records, and genealogy data - will be combined with user-contributed material to generate ongoing “on this day / this week / this period” views that are specific to each person’s own lifespan and social graph, rather than just the global calendar. These views will be designed to spark further discovery and contribution.
For example, on a given date, global historical events (such as the assassination of JFK, the election of Tony Blair, or the breaking of a land-speed record) will be shown alongside what was happening in the overlapping lifespans of people and things connected to the user.
So a day might read:
“On 11 September 2001: the Twin Towers collapsed; you were living in London and working in a school; your brother was at university studying French; your friend Tom was travelling in the United States.”
Any number of lifespans will be able to be viewed in relation to any other.
Each of those overlapping spans will itself have a beginning and an end. If you were living in London and working in a school, when did that start and finish? What came immediately before and after? Those boundaries will themselves become new anchors for exploration - just like specific dates - allowing the system to keep unfolding more of the surrounding story.
This is the contents of a file called “lifespan.txt” that I wrote a long time ago.
Time and age are fundamental things. The web hasn’t quite gone there yet.
When Kurt Vonnegut was asked by his grandchild about why the world was so screwed up and polluted and bad, and what he and the rest of the older generation had done so wrong, he famously replied:
“Don’t look at me. I just got here myself”.
http://www.vonnegutweb.com/vonnegutia/commencement/syracuse.html
Lifespan is a way to see how your life fits into the larger timeline. Which larger timeline? The larger timeline.
It lets you collect together, visualise and tend to your web footprint… but in a ‘long now’ way, rather than a ‘real time’ way.
Your web footprint is all the stuff you have put on the web using life-capturing web applications: all your photos, tweets, comments, blog posts, scrobbles, dopplr travels, location check-ins, daytum datapoints… everything that can be accessed. Let’s call all of that ‘lifedata’.
Your web footprint is all existing and all future possible data from the lifedata-capturing webapps. It’s out there now.
Your web footprint is a very recent thing, though. A histogram with time as the x-axis and ‘amount of lifedata’ on the y-axis would, for most webby people in 2010, look a bit like this:
| ...
| /
| /
amount of | /
lifedata | /
| /
|<-------- before webapps --------> /
|___________________________________--/
|_________________________________________________
...1980 1990 2000 2010
So, web footprints are relatively recent, and there’s a big gap in most people’s web footprint, reaching back from the birth of Flickr/Facebook/Twitter et al. all the way back to their birth.
Most webapps are realtime or thereabouts. But some webapps allow you to postdate things. Flickr is an example: you can add photos that were taken in 1984, edit their date to reflect this, and they’ll appear in the graph above. But they are the minority.
| ...
| /
| /
amount of | * /
lifedata | ^ /
| | /
|<-------|- before webapps --------> /
|________|___________________________-/
|________|_________________________________________
...1980 1990 2000 2010
Lifespan is a way to attach all your data to a unified timeline that represents your lifespan. Everything in the app is displayed to a correct chronological scale relative to this timeline.
|
|......................................________...
|
amount of |
lifedata |
|
|
|
|_________________________________________________
...1980 1990 2000 2010
Compare your lifespan to people and things around you.
Put in your family (some won’t have any ‘footprint’), but also compare to your friends who do, and who actively add to theirs.
Visualise how your lifespan overlaps with others’ lifespans, and how it looks compared to today.
How much does your lifespan overlap with your grandparents’? Their parents’? with major world events, like wars, JFK, 9/11?
This helps to answer the major questions of ‘where were you when…?’ You could even add where your parents were when JFK was shot. Ask your grandmother.
Start with broad brush-strokes, and get more specific. Where were you born? Where did you move? Where did you go? Add holidays if you can remember them. Add the exact locations of your school, your previous homes, your university, your favourite places. When were you definitely there? Can you prove it? If so, add supporting evidence. This evidence is equivalent to having done it in real time. If you don’t have evidence, then it’s a memory rather than a part of the core footprint. If several people can corroborate a memory, because they were all there, then it gets stronger.
How far have you travelled in your life? How many of London’s tube stations have you been through? How many books have you read? How many albums do you have? What things do you own? How long have you had your Brompton? When did you get your first computer? And your second, and your third? When did you meet your friends? (Some of these things are only viewable by you…)
- major events: where were you?
- key life stages: what were they?
- elections: how did you vote? (who won?)
Each of these questions could be added in a modular way… by other people as well as you.
- twitter - your thoughts and observations
- flickr - your photos and videos
- last.fm - what you’ve been listening to
- fireeagle - where you are
- google maps - location
- wikipedia - reference info
Use wikipedia and other sources of chronological info to build the public timeline - the footprint of countries, cultures, etc.
Lifespans of bands, cultural phenomena, political movements, governments, wars.
How much did your life overlap with the life of John Lennon? How old were you when…
Were you alive when Elvis was alive?
- when you were at primary school, I was learning to walk.
- when you were at university, I was travelling round the world
- when I was born, the Berlin wall was being taken down
It appeals to lots of human curiosities and desires, combines elements of social networking with capturing your life, looking at your past and future. Could appeal to people interested in family history, other types of history.
This is the contents of a file called “walk.txt” that I wrote a long time ago.
Weaved through all storytelling, in some way, is this universal thing that we all get a tiny chunk of. It’s something that everything has in common.
“Once upon a time…”
Ah yes.
Imagine storytelling as going for a walk… travelling gradually from place to place, noticing the scenery, taking it all in. You don’t go everywhere, and there are other ways to go from wherever you are to where you’re going. You might not go as the crow flies. You follow paths, or go off the path and follow your nose. Or you follow a map… an OS Landranger, or something sketched on a beermat. It’s a walk. One foot in front of the other. “Through leaves, over bridges…”
Storytelling is like walking, except you can jump from anywhere to anywhere, do a bit of walking and looking, and then jump somewhere else.
At the moment, all this storytelling we do is like walking in a world without maps. There is no Ordnance Survey for storytelling. No http://www.openstreetmap.org/. You can’t walk somewhere, then get out a map and decide to go somewhere else.
There are walks, and there are places to go for walks… and even some local maps, perhaps. But there’s no Google Maps, where there’s one large definitive representation of the world. Plug in your GPS, it’ll draw a line of where you walked onto that universal map. It’s universal because if you’d walked from Hyde Park to Oslo to Sydney, it would still be the same map.
We need OpenStreetMap for the universal timeline. I was born here, was alive until here. That line between there and there. It’s a walk. You’ll catch up with me just over there.
It’s not just dots on the map, it’s the lines between the dots. The journeys. The stories. If you have a map, they’re pretty much infinite.
Everyone shares something fundamental: they were born on a day, and will go for a walk.