README

hyperspace

Creating dynamic web apps should be as simple as writing a Google Doc. No more endless hours configuring databases, user accounts, and deployments.

hyperspace lets you focus on crafting persistent, interactive experiences without getting bogged down by backend complexities.

It's ideal for building self-contained apps and document-like web experiences.

easy web apps

Imagine you and your friends want to keep track of your backstories in a role playing game:

Ava: <textarea></textarea>
Lucas: <textarea></textarea>
Sophia: <textarea></textarea>
Finn: <textarea></textarea>

Or you want to check off a packing list with your partner:

<div>
  <input type="checkbox">
  <input type="text" value="Car snacks">
</div>
<div>
  <input type="checkbox">
  <input type="text" value="Movie tickets">
</div>
<div>
  <input type="checkbox">
  <input type="text" value="Lucky mini golf shirt">
</div>

Or you want to take some notes:

<div contenteditable="true">Edit me!</div>

Ordinarily, these aren't working web apps.

But, with hyperspace, they are.

HTML backend

hyperspace works in a simple, but elegant, way.

Whenever the DOM changes, hyperspace grabs the entire HTML of the page, and saves it to the current user's account.

You, the developer, get to skip writing API calls, rendering templates, wrangling user accounts, and tripping over managing complex state.

It's DOM all the way down.

  1. Visuals = DOM
  2. State = DOM
  3. DB = DOM

flatten the stack

There have been many attempts at flattening the web app stack into new primitives.

  1. Laravel with Inertia.js: routes and components that you write once, but run on both the client and server
  2. FastHTML with HTMX: server calls and rendering with HTML attributes
  3. Remix: mixes full-stack APIs into client-side React code

The first attempt at building hyperspace flattened the stack into data + templates. By adding a few attributes to your HTML, it knew how to extract data and how to render it.

This latest version makes a strong argument for flattening the stack into a single primitive: HTML.

self-updating HTML

hyperspace is:

  1. A single page CMS
  2. you design yourself
  3. that can update itself
  4. and that other people can view or clone.
  5. It allows for infinite flexibility in design and behavior
  6. but it's self-contained to a single document.
  7. It's perfect for building personal websites and document-like apps

features

  1. Self-Updating Pages: HTML pages can overwrite themselves, making every page a dynamic app
  2. Frontend Focused: Build full apps using HTML, CSS, and JS
  3. Live Editing: Edit your app's code in production, no need for a local dev environment
  4. Fork and Remix: Anyone can fork your app to use as their own personal app
  5. Persistence: Changes are saved automatically, turning ephemeral interactions into lasting updates
  6. Simple Deployment: Paste your code and publish — no complex setups
  7. User-Friendly UI: Design your own editing interface on top of your own app

hyperspace apps

devlog (WIP)

[img: loop panphora.gif]

  1. 🌍 [link: site]
  2. 🧑‍💻 [link: source]
  3. 🎥 [link: code walkthrough]

kanban (WIP)

[img: loop kanban.gif]

  1. 🌍 [link: site]
  2. 🧑‍💻 [link: source]
  3. 🎥 [link: code walkthrough]

page writer (WIP)

[img: loop page-writer.gif]

  1. 🌍 [link: site]
  2. 🧑‍💻 [link: source]
  3. 🎥 [link: code walkthrough]

build a hyperspace app

  1. Sign up for hyperspace
  2. Paste your HTML into the code editor
  3. Click publish

Any changes you make to your app (using your app's UI or the built-in code editor or even your browser's DevTools) will persist.

a return to simplicity

How it all started:

Back at my second job, immersed in the simple ecstasy of traversing the DOM with jQuery, our backend developer hacked together an anything-goes /user-data route and handed it off to the front-end team.

We could POST anything to that route and it would save it to the current user's account. It was magical.

5 years later I read about sending rendered HTML templates over the wire instead of JSON to simplify how much state the frontend has to manage.

One job interview at a session replay company later — who told me they were sending whole HTML documents over the wire to render the session replays in their app — and I had the foundation for an epiphany.

The epiphany came on a midday walk where I asked myself the question: "What is a web app, really?"

The answer surprised me: in many cases, it's the ability to modify HTML through a nice UI and share the result.

By that point, I had built about 30 small web projects and come across the same problem over and over again: I could build useful frontend apps in hours, but making them persistent took months (user accounts, database, API routes, state management, file handling, deployment, hosting).

The answer was simple, but scary: allow users to make any changes they want to their page's HTML (primarily through its UI), send it over the wire and save it to their user account. Then send it back to them when they (or another user) requests it.

I took a 4 year detour down the web-stack-framework-making-rabbit-hole because I thought JSON + HTML made a better combo than pure HTML, but I've since come around to the idea that pure HTML is a much more pleasurable stack to work with.

I take strong inspiration from Coda, Notion, Val.town, mmm.page, and LLM artifacts. I think we're entering a new era of personal, malleable software where coding feels more like interacting with real objects you can hold and shape into whatever you see fit, and less like cold, hard data you don't own, locked in a UI you have no control over.

principles

  1. Use Native Technology: Leverage standard web technologies so we don't end up reinventing the web
  2. Default to Open Source: Foster the rapid evolution of ideas by coding as much as possible in the open
  3. User Experience Over Profits: People come first because we're building a product and making it intuitive tangible is our focus
  4. Do It The "Wrong" Way: All rules should be rewritten regularly to serve the people they're meant to serve
  5. Flatten the Stack: We empower people to create simple, malleable objects that can fit in people's heads easily

vision

Our long-term goal is to foster a wave of independent creatives who can swarm together and compete directly with larger corporations.