Skip to content

Summary

we were online is an online multiplayer world—part game, artwork, and tool—that turns the existing Internet into a living, shared world, actively shaped by its inhabitants.
In this world, everything on the Internet becomes material for connection. Assets, buttons, and other components can be created, grown, moved, taken, and gifted. Pages have memory and show the wear of use. Cursors become digital appendages that allow us to bump into others who are there at the same time as us.
By allowing us to see each other and affect the pages we visit, isolated browsing becomes the site of serendipitous encounters, websites become archives of our collective traces, and the Internet becomes more like a hometown we share and co-create.
Built on , an open-source library for creating communal web experiences, the game is designed to be customized and extended by its players. Individual websites can create interactions that respond to live events on other websites and change behavior depending on a user’s history and personality. Traditional domain silos become open islands that grow dense with connection and come alive with the personality of dozens of personal websites.
Rather than one monolithic platform, we were online imagines a world where millions of tiny internets flourish, each finding new ways to express care, whimsy, and joy digitally.

THE VISION (from 02/09/26 journal)

Every website becomes a shared space — inhabited, alive, and yours.
The extension works across three dimensions, each of which creates the conditions for encounters — moments of connection that couldn’t happen anywhere else:
Dimension
What it is
How it facilitates encounter
World
Shared objects and traces on websites that you and others can affect
You touch something someone else touched; things accumulate shared history
Environment
Autonomous phenomena with their own rhythms — internet weather
You both react to the same thing; shared experience without shared intent
Community
Your identity and personality as it travels and grows across websites
You recognize someone; they recognize you; a character emerges over time
All three converge on the same thing: the encounter — serendipitous, ambient, impossible anywhere else. World gives you the objects and places to have encounters around. Environment gives you phenomena to react to together. Community gives you the sense of a specific someone to encounter.
The goal is to imagine a new internet together.

World

The internet as a place full of things — objects, traces, accumulated history that you and others can interact with and affect. Not a feed, not a stream, but a space with texture and memory.
Shared objects: lamps, plants, items that change state based on collective interaction
Traces: fingerprints, ghost paths, wear-and-tear that accumulates from everyone who’s been here
History: the page remembers — how many people, what they did, how long ago
“Third things”: objects that mediate connection without requiring direct communication (you both touched the lamp; that’s enough)

Environment

Phenomena that exist independently of any individual — the internet’s own weather. Not authored by users, not optimized for anyone, just happening. You encounter it the way you encounter rain: you didn’t cause it, you can’t control it, you just react.
This is a deliberate philosophical stance: giving the machine a role as co-inhabitant rather than tool. The algorithm becomes something that exists alongside us rather than working on us — stochastic, indifferent, alive in its own way. This reframes our relationship to algorithmic systems: instead of something that surveils and optimizes, it becomes something more like weather that we simply live with.

How it works (current thinking)

Fully autonomous — generated by algorithm with its own internal rhythms and logic
Each page runs its own local generative process, seeded by a small set of shared parameters (time of day, a slow global “season” value, maybe something from the page’s own age/URL)
No global sync required — two people on the same page might experience slightly different phenomena, which is actually more interesting (you compare notes)
The only human input: website owners can optionally feed in data from their site (traffic, content type, etc.) that the machine may use to influence its output — but the machine decides how. The data is an offering, not a control.

Vocabulary (to be designed)

The phenomena themselves need to be designed — the climate system even if not the weather. Some directions:
Skeumorphic (familiar, immediately legible): fog, rain, warmth, dust, bloom
Internet-native (stranger, more specific to this medium): a page feeling loud or quiet, drift, resonance across pages, pressure from recent traffic, the hum of many people elsewhere
The most honest version is probably internet-native — phenomena that only make sense here, with no physical analogue to borrow meaning from

Open questions

What does the generative algorithm actually look like? Noise functions? Markov chains? Something else?
How do you render phenomena that feel ambient rather than intrusive — present without demanding attention?
What’s the vocabulary of internet-native phenomena worth designing? This is probably a whole separate creative project.
If a website owner feeds in data, what’s the interface for that? A single data hook? Multiple?
Should users ever know what’s generating the environment, or is opacity part of the experience?
Is a map of the internet good?
should you have discrete boundaries and hierarchies like we do in cities? like
the benefit is that you get something very contextualized and legible and easy to parse
the downside is you are locked into a specific person’s way of organizing it? not sure how this looks like for the internet where control and ownership is so dispersed… but maybe thats a good thing? what if you learned into this? and you could look at address schemes by any number of people? is that still useful or more confusing…
for close friends how is experience diff? accountability mode to share your active tab?

Community

Your identity as it travels across the web — not a profile you curate, but a character that emerges from how you actually move and interact. Pseudonymous enough to feel low-stakes, specific enough to feel like you.
Your cursor / avatar accumulates personality over time — it looks different based on where you’ve been and what you’ve done
You recognize recurring visitors on sites you frequent; they recognize you
Your browsing history becomes a self-portrait
Cross-site: your identity isn’t confined to one page, it travels with you and grows

The async/sync tension — the core design challenge

Most social platforms are either fully synchronous (chat, live) or fully asynchronous (posts, comments). we were online is deliberately designed to live in the space between — presence that accumulates over time, encounters that are both serendipitous (sync) and archaeological (async).
The design question for every feature: where does it sit on the passive↔active and ephemeral↔persistent axes?
Passive + ephemeral = live cursors (someone is here right now, without trying)
Passive + persistent = ghost paths, fingerprints, visit counts (someone was here)
Active + ephemeral = a wave, a reaction that fades (chose to acknowledge, then gone)
Active + persistent = guestbook, a placed object (chose to invest, stays behind)
The most unexplored quadrant: active + aggregate — everyone contributes to something collective but no individual trace survives. Worth designing into.

Core Social Interactions

Across all of these, identity is core to the interaction feeling really meaningful.
need to be able to recognize if you’ve seen someone before for continuity
regular culture (The feeling of recognizing someone returning is core. For layer 1, this suggests a “familiar stranger” mechanic — not names or profiles, but a subtle visual cue that you’ve been on the same page as this person before. Like seeing a face you recognize from the neighborhood coffee shop.)
Traces detritus from past actions taken on a website
potentially links have a patina effect, see all the patina references
references
see Death Stranding mechanic of using ladder for yourself allows others to use too
Stigmergy a mechanism for the coordination of actions via the trace they leave in a medium" — it explains self-organizing activities in social insects, collaborative websites, and human institutions. Ants lay pheromone trails that nestmates then follow — indirect communication mediated entirely by environmental traces. This is the deepest conceptual model for what you’re building. The website is the environment. Every scroll, hover, and pause is a pheromone. The question is: what’s the right “evaporation rate”?
Notes: async notes left about specific interface or experiences
could be used for more functional causes like free-form annotations or talking about privacy notices
references:
Dark Souls and leaving notes / tips that get likes
Sky children of light - leaving notes in candles
queering the map
Pollination: exchanging objects on websites and moving them between spaces
can-take / can-place You pick up something from one site (nectar) for your own use/delight, but in doing so you carry something to the next site you visit.
not all website elements are very “object-oriented”, e.g. a paragraph is not as “object-like” as a button. how do you limit it? do you?
people will probably know best when they designate it. maybe there are just a few automatically allow-listed elements like buttons
object-like elements: buttons, images, sounds, containers with borders or box shadow…
reference:
mutualism / pollination: Bees gather nectar from flowers for sustenance, but as they do, they carry pollen to the next flower — allowing plants to reproduce. Both benefit without explicit coordination.

Encounter a live spontaneous encounter between two people

ref: sky children of light briefly seeing the other person live when there’s overlap
journey being able to see what they did as a breadcrumb?
cursors touching in a google doc
Waiting / Sitting around
ref:
plaza culture: Third places are relatively high in both personalization and permeability to the street — but seating and shelter provisions are perhaps the most crucial urban design characteristics. The “seating” equivalent online is: is there something to linger around? A bench invites you to stop. What’s the digital bench? Could be a shared object (plant, fire, artifact) that gives you a reason to stay on a page rather than bounce. This is your “third thing” concept from the notes.

SUCCESS CRITERIA

Feel like a meaningful, fun, and nourishing replacement to opening up a social media feed
Makes you feel like the internet is alive with other people — not a feed to consume, but a world you’re moving through alongside others
Facilitate intimate spontaneous encounters with new people
Creates at least one “wow” moment of joyful surprise in the first session — discovering something unexpected left by another person
Turns your browsing history into something you actually want to look at — a self-portrait that feels personal and worth keeping
Makes your favorite websites feel more like places — somewhere you return to, have a history with, recognize familiar faces
Enables encounters that couldn’t happen anywhere else — not chat, not DMs, but something more accidental and ambient

GOALS (from 02/09/26 journal)

Significant # sign up & use extension → 10k users
People post about it, make their own experiences
Get funding from community members to sustain
→ Talk to Kevin about community funding model→ Talk to Cab about this

PHASES of rollout

Turn your browsing into a self‑portrait
Log and visualize your own cursor movements and page visits as a kind of “self‑portrait of time online.”
Initially be personally useful, even before it’s social: reflection on how you actually move through the web.
Add baseline social presence to any website
Real‑time presence: show that others are on the same page (e.g., cursors, subtle indicators).
Asynchronous presence: traces that “someone was here” on a page, even if they’re gone now.
Familiarity: recognize when it’s the same person returning to a page so you get a sense of recurring characters/regulars.
Make the existing web feel like shared space (not a new platform)
Inject collaborative behaviors into any site you visit, rather than creating a standalone social network.
Let website owners use the library to design custom social experiences that plug into the extension.
Enable simple cross‑site “lines” between people
Allow interactions on one site to trigger effects on another (e.g., shared lamps, hydrants, bells across domains)
These “lines” are scoped to specific interactions and based on explicit social contracts between site owners.
Support new “third things” for relating online
Create ambient objects/events that people can gather around (like “weather,” coffee shop vibes, or shared rituals).
Encourage loitering and casual encounters on websites (ambient hangouts, lightweight nudges when someone else is around).
Start with creators / personal site culture, expand slowly
Early focus on people who already care about expressive personal websites and are willing to experiment.
Use these experiments to slowly shift expectations of what a “website” and “being social online” can mean.
Charles identified key strategic approaches:
Events as primary distribution method
Hide and seek on Wikipedia or wiki-racing
Studio visits on friends’ websites
Chance encounters emerge as byproduct of organized events
Privacy controls essential for business adoption
Anonymous data, no PII collection
Fine-grained privacy controls needed
Ability for websites to toggle on/off
TECHNICAL DESCRIPTION OF EXTENSION
core api of the extension is OAuth for internet identity
Internet identity data
Time spent on sites for unlocking features
Shared data storage across websites
Charles referenced “The Quantum Thief” concept of shared memory with permission controls
Users set default data exposure levels
Websites can request additional permissions
integrating with businesses
Suggested starting with Easter egg or April Fools temporal experiments
Arena’s feed-based homepage creates interesting trace opportunities around structure vs content
Spring cleaning events could work well - communal profile cleanup sessions
to make a game, you must have a website
probably does need to have some easier way to make, subdomains from playhtml or something
or piggyback on things like glitch, neocoties, etc. im not in the business of hosting websites

core questions

what difference in what you can do on extension vs website
core feeling that people should get
“wow!” joyful surprise in discovering the game for the first time
“wow!” - theres so much life in this to uncover
“damn” - there’s so much humanity and stories to learn about here
AT proto integration or no
things to compare to
on a spectrum from spilling a drink at a cafe and sharing a smirk to having an intimate conversation from a direct question you have and getting their number
browser is frictionless but its not even good at that
you need a third thing: a beautiful sunset, the moon? other people falling in love taking pictures
the beautiful whimsical random quirky weird everyday
weather is really important- how do you introduce something like a natural phenomenon?? you can make it skeumorphic butttt
do you need “bad” things ? tragedies? you dont want them, but they do happen all the time-hate speech, bullying, cant find the thing you’re looking for? but i guess we dont have anyway to share these right now. theyre all incredibly solo. is this even something you want to share with strangers tjough? seems too personal… but i guess it is happening in public likean accident jn real life. like ice invading minneapolis
what is the tablestakes?
SEE OTHERS, BE ABLE TO HANG OUT AND WATCH,
participate in something together?
wikipedia, watch other people’s trails, go on them?
commiserate over a third thing
Actively participating vs actively observing

game mechanics / audience

mostly cozy and farming-core
gather resources?
create your own item types?
connect to your data / feed off your posts?
inventory mechanic
respawn rate or single item, people can define drops on their websites
moments of vulnerability and emotion that come from that
when your hands touch on a webpage
interactions derived from different state
dynamic state: number of times watered plant
static state: number of times word rain is on page
things that website owners can program / game nouns
events like weather that are user created, programmable probabilities, are imperative and happen in response to a user action, or happen in response to a certain world state
objects: discrete interact-able things where their interactions affect the game, can be retrievable (items)
actions: the set of actions that a player can take with any number of objects, mapped to how they undertake the action.
player: a user participating in the game (visiting a website integrated or has the extension installed )
cursor: player’s avatar? main form of interaction. can be customized
get big names to integrate on their site
matt webb, nolen and cursor umbrella, neal

BUSINESS MODEL

similar gather mechanic but maybe monthly sliding scale? bc of ongoing costs
maybe pay for extra features, cosmetic, lead ppl into your home, etc. take inspiration from the geocaching app
bundle the store w this?
website environment design
interior design but for websites
“change our furniture” make them magical etc. create live demonstrations of the service and also allow visitors to show their presence
Event planning for websites - Charles emphasized this as strongest business case
Proven way to get people to actually engage with websites
Temporal events like April Fools, Christmas activations
Most people don’t spend meaningful time on websites outside major platforms
Loyalty programs and proof of care
Unlocking tiers of access based on time spent/engagement
API as OAuth for internet identity
Businesses could be implementations of open-source library
Physical products from digital portraits
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.