Products

xDNS Gateway

foundation

A DNS-to-runtime gateway that serves arbitrary software systems from bucket-backed storage through programmable CDN and edge routing.

Core idea

A bucket is the durable substrate. DNS and the CDN edge are the programmable delivery layer on top. The browser receives a normal web application, but the backing system can remain storage-native and portable.

This means a hostname can point to a gateway, the gateway can resolve a manifest or storage root, and the platform can serve either static objects or request-time compute without binding the application to one framework or hosting vendor.

Request path

1. Browser requests https://app.example.com/dashboard

2. DNS points app.example.com to the xDNS Gateway edge

3. CDN / edge terminates TLS and forwards Host + Path to the gateway runtime

4. Gateway resolves app.example.com -> xgate manifest

5. Manifest resolves /dashboard -> static fallback or compute route

6. Gateway fetches from bucket storage and/or runs request compute

7. Browser receives HTML, JS, CSS, JSON, and streamed responses as normal web traffic

System layers

LayerRoleExamples
DNSMaps the hostname to the gateway entrypoint.CNAME, A, AAAA, TXT discovery records
CDN / EdgeTerminates TLS, routes by host + path, runs request compute.Cloudflare edge, Workers, cache, redirects, auth
Bucket / Object StoreStores static assets, manifests, bundles, snapshots, and app state.Storj, S3, R2, MinIO, IPFS later
Browser ClientLoads the app shell, assets, API responses, and client runtime.SPAs, React apps, dashboards, docs, browser-native clients

Bucket-backed app model

The bucket can hold more than static files. It can also hold manifests, deployment bundles, JSON state, workflow snapshots, cached API payloads, and versioned app artifacts. The edge layer decides how to expose those objects to the browser.

bucket/
  apps/myapp/
    xgate.json
    public/index.html
    public/assets/app.js
    public/assets/app.css
    state/session-cache/*.json
    bundles/api-v1/*
    snapshots/release-2026-04-30/*

Smallest useful compute primitive

The universal primitive is not Next.js or Nitro. It is a standard web Request to Response handler with object-storage access.

type GatewayHandler = (
  request: Request,
  context: {
    host: string
    storage: ObjectStorage
    env: Record<string, string>
  }
) => Promise<Response>

Everything above that layer is optional: Hono, Nitro, Next.js, custom SSR, or pure static export.

Manifest shape

{
  "xgate": "v1",
  "origin": {
    "type": "http",
    "baseUrl": "https://storage.example.net/apps/myapp"
  },
  "routes": [
    {
      "match": "/assets/**",
      "type": "static",
      "source": "public/assets/"
    },
    {
      "match": "/api/**",
      "type": "compute",
      "entry": "builtin:echo"
    },
    {
      "match": "/**",
      "type": "static",
      "source": "public/",
      "fallback": "index.html"
    }
  ]
}

What this unlocks

  • · Static sites and docs delivered from object storage with custom domains.
  • · React apps and browser clients served from buckets with SPA fallback routing.
  • · Lightweight API and edge compute routes without requiring a monolithic app server.
  • · Portable software packaging across Storj, S3, R2, and future decentralized backends.
  • · A clean separation between durable object substrate and programmable delivery runtime.