Open alpha · Desktop & web

A workspace
you own.

Documents, databases, canvases, and a personal library. Your work lives on your device, with an open data layer you can build on.

  • ✓Works offline
  • ✓Open source
  • ✓Export your data
xNet workspace
The xNet workspace with an example project document open beside the explorer.
Desktop alpha · Example content Explore the app →

What you can use today

Start with notes or a project. These are the core tools in the current alpha.

Documents

Notes, plans, and drafts with rich text, blocks, and collaborative editing.

Databases

Structure projects and collections with typed fields, relations, and multiple views.

Canvas

Arrange ideas, connect pieces, and work visually on an open canvas.

Personal library

Save links and import sources alongside your notes. Available in the desktop app.

Offline editing

Work with a local copy. Sync changes when your devices reconnect.

Workspace export

Keep your own backups in an open .xnetpack bundle while the alpha evolves.

Build on the same data

xNet’s substrate is the data layer under the app. Like Lego pieces, its records share a common fit: you can combine them, extend them, and build a different tool around them.

  1. Nodes

    Reusable records

    A task, a contact, a page. Each record has an ID. Relations connect records across your workspace.

  2. Schemas

    A shared structure

    Title, status, project. Define fields and relations. Add fields in your namespace or create a new type.

  3. Views

    Different ways to work

    A table, a board, your own app. Read and edit the same records through a different interface.

task.schema.ts
import { defineSchema, text, checkbox }
  from '@xnetjs/data'

const Task = defineSchema({
  name: 'Task',
  namespace: 'xnet://my-app/',
  properties: {
    title: text({ required: true }),
    done: checkbox({ default: false })
  }
})

A schema defines the data. Your interface decides how to display it.

How storage, sync, and permissions work

Local storage. The workspace keeps a copy on your device. Offline changes sync when connected.

Signed changes. Structured edits form a signed, hash-linked log. Peers can check who signed an edit and detect changes to it.

Merge rules. Yjs merges document edits; structured fields use last-writer-wins rules. Grants govern sharing and access.

Data model documentation →

The alpha SDK is available today. A wider ecosystem of interchangeable tools is the longer-term goal.

Your data should outlast your apps

The workspace is a starting point for a more open web. These ideas from the blog guide what we build.

The full vision →
A well-used treadle sewing machine stands in a sunlit room.

Keep your work when tools change

Local copies, open formats, and exports give you a way to leave. The goal is software you can still use after its maker moves on.

The Hundred-Year Machine →
A thriving forest above a cutaway of soil, roots and mycelium.

Let different tools share the ground

Data should be useful beyond the app that created it. Open schemas let people make new tools around records they already own.

Data Should Work Like Soil →
People browse and share records in a warmly lit neighborhood record shop.

Let communities outlast their servers

The longer vision is an open network of shared knowledge and tools, where changing hosts doesn’t mean losing a community’s history.

The World’s Greatest Record Store →

Privacy, consent, and the right to leave are in our commitments. Read the arguments and tradeoffs across all the essays →

Current release and roadmap

Full roadmap →

Available · Alpha

The workspace & its foundations

  • Documents, databases, and canvases
  • Desktop library and workspace export
  • Open SDKs, sync, and self-hostable hubs

In progress

Reliable daily use

  • Startup, recovery, and editing improvements
  • Easier sync and hosting setup
  • Integrated AI with permission and review

Longer-term vision

An open commons

  • Portable identity and shared spaces
  • Discover and adapt community-made tools
  • Knowledge that travels between hosts

Follow the project

Read what’s shipped and join the discussion.

Changelog →