HighX

Introduction

A realtime-first framework for Cloudflare. Write a function, read it in a component, and it stays current.

HighX is a TypeScript framework for building applications on Cloudflare where the UI stays in sync by default.

You write typed functions on the server. Your components read them. When the data changes — from any user, in any tab — the new result is pushed to everyone watching it.

server
export const listNotes = query({
  name: "notes.list",
  args: emptyArgs,
  returns: noteRows,
  handler: (ctx) => ctx.db.query("notes").withIndex("byCreatedAt").order("desc").take(20),
});
browser
const notes = useQuery(api.notes.list, {});
// Someone else adds a note. This component re-renders. That is all.

Why it matters

Keeping a screen current normally costs you a REST layer, a cache, a set of invalidation keys, and a polling interval that is always either too slow or too expensive. HighX removes all four:

You don't writeBecause
refetch / invalidateQueriesThe server knows which queries a write affected
Cache keysThe query and its arguments are the key
PollingChanges are pushed over one WebSocket
A REST or GraphQL layerThe typed client API is generated from your functions
Reconnect handlingThe client resumes from a cursor, or replaces with a snapshot

Data lives in one Durable Object per tenant, so a customer's data is its own SQLite database — isolation is physical, not a WHERE clause.

Is it for you

Good fit: dashboards, collaborative editors, operations consoles, shared inboxes and queues — anything where several people look at the same data at once, and that data partitions cleanly per customer, team, or workspace.

Poor fit: a single global dataset every user writes to, or transactions that must span tenants. Tenant isolation is the design, and working against it will not be pleasant.

On this page