XNET / PRIVATE · SOVEREIGN · PROGRAMMABLE

THE
EXTENDED
INTERNET.

Chat, threads, documents, and tools that belong to the people using them.

INTRODUCING XNET

The internet,
extended beyond
websites.

Xnet is the private, sovereign network where Osvauld workspaces live. It is not a website and does not belong to a domain.

A workspace is addressed by cryptographic identity and served by its own node. Software works directly with synchronized shared state, while signed permits replace the traditional authentication server.

Permission is
cryptographic proof.

Signed capability permits say who may access, write, synchronize, or delegate each part of a workspace. They can be verified offline—without asking an authentication server.

Shared data is the
native environment.

Local state remains useful offline. Changes synchronize through the workspace’s sovereign node and merge safely when participants reconnect.

Ask for the app,
not the infrastructure.

AI can write a small Lua app on demand directly over the group’s shared data. With identity, permissions, storage, synchronization, and UI already provided, it only needs to create the behavior you asked for.

AI uses the system,
not just the screen.

Agents can work with shared structures, call Lua functions, and change application logic directly instead of pretending to be a person clicking pixels.

Authority, under
your control.

Each workspace has a sovereign node that serves its data and enforces its signed permits. It can be a Raspberry Pi, phone, laptop, or server—with no static IP, domain, or cloud platform required.

Maintain your own
software.

The group owns and evolves its Lua source instead of renting a fixed application. Changes synchronize to participants and hot reload without a traditional server release pipeline.

THE SHIFT

No domain to buy.

No cloud stack to deploy.

Write the behavior.

Sync the software.

ONE SHARED SUBSTRATE

JSON-like data.
Lua logic.
That’s the app.

If you can write JavaScript, the model is familiar. Open a shared document and read it as ordinary nested tables. Explicit writes synchronize; identity and signed permissions are already part of the environment.

Read the architecture
main.luashared / tasks
local chat = doc:open("chat")

local function send(text)
  chat:insert({ "messages" }, doc.map({
    id = uuid(), text = text
  })) -- synchronized
end

return function()
  local rows = {}
  for i = 1, #chat.messages do
    rows[#rows + 1] = message_view(chat.messages[i])
  end
  return ui.col({ rows, composer(send) })
end
LUA APPUI TREELAYOUTVECTOR PIXELS

THE SYSTEM

APPLICATION

Lua logic that travels with the workspace

APP RUNTIME

Runs sandboxed Lua apps and turns their UI descriptions into interactive software

SHARED STATE

Local-first documents served by a sovereign node and merged between participants

IDENTITY + PERMITS

Your keys, encrypted storage, and offline-verifiable access under your control

SUPPORTED BY

Backed by people who
believe in open systems.

Osvauld has received grant support from

FOSS United Zerodha Kerala Startup Mission KSUM