The schemas API exposes walled.garden schema validation to template apps. Schemas are Zod-backed and Standard Schema compliant. Templates running in sandboxed Drive contexts can’t import npm modules directly — this API bridges that gap.

API

nomad.schemas.validate(type, data)

Validate an object against a named schema.

  • type String. A walled.garden/* type string.
  • data Object. The data to validate.
  • Returns { success: true, data } or { success: false, error } (synchronous).
var result = nomad.schemas.validate('walled.garden/post', {
  type: 'walled.garden/post',
  title: 'Hello world',
  body: 'This is my first post.',
  createdAt: new Date().toISOString()
})

if (!result.success) {
  console.error('Invalid:', result.error)
} else {
  await drive.put('/posts/hello.json', JSON.stringify(result.data, null, 2))
}

nomad.schemas.list()

List all known schema type strings.

  • Returns String[] (synchronous).
nomad.schemas.list()
// [
//   'walled.garden/person',
//   'walled.garden/post',
//   'walled.garden/comment',
//   'walled.garden/status',
//   'walled.garden/bookmark',
//   'walled.garden/follows',
//   'walled.garden/reaction',
//   'walled.garden/vote',
//   'walled.garden/writer-keys'
// ]