Skip to main content

Blueprint System

The blueprint system is the heart of Radish.

Blueprints provide a structured way to describe an application before implementation details are chosen. They are designed to be both human-readable and machine-compilable.

What a Blueprint Describes

A blueprint describes application intent in a form that can be compiled into architecture.

Common concepts include:

  • entities
  • fields
  • relationships
  • ownership
  • roles and permissions
  • indexes
  • versioning behavior
  • metadata and exposure rules

Example:

version: 1

entities:
Concept:
fields:
title:
type: string
required: true
authorId:
type: objectId
ref: User

Blueprint Principles

Blueprints should be:

  • explicit
  • structured
  • versionable
  • portable
  • independent of unnecessary framework-specific details

Blueprint Versioning

Blueprints should include a spec version:

version: 1

This is separate from package versions or generator versions.