A Local-First &
Peer-to-Peer ORM.

Develop with your data model anywhere.
Query and load data reactively.
Replicate between peers without a central server.

$ npm install @aphro/runtime-ts
$ npm install --save-dev @aphro/codegen-cli

NOTE: Aphrodite is pre-release. See the roadmap.

// Define your schema
User as Node {
  id: ID<User>
  name: NaturalLanguage
} & OutboundEdges {
  todos: Edge<Todo.ownerId>
}

Todo as Node {
  id: ID<Todo>
  text: NaturalLanguage
  completed: Timestamp | null
  ownerId: ID<User>
}


// Query your data function TodoList({viewer}) { const todos = useLiveQuery( () => viewer.queryTodos().whereCompleted(P.equals(null)) ); return ( <li> {todos.map(todo => <Todo todo={todo} />)} </li> ); }