DataCanvas Demo

Every screen in this demo is a single <EntityScreen /> component. The grid, form, validation, lookups, search, sorting, pagination and the API behind them are all generated from entity metadata.

export const Customer = entity("customers", {
  id: field.uuid().primary(),
  name: field.text().required(),
  email: field.email().required(),
  countryId: field.lookup(Country, { label: "name" }),
});

export default function CustomersPage() {
  return <EntityScreen entity={Customer} />;
}