Full-stack blocks Database, server functions, cron, and CLI in one folder.

db.php

Define schema, get CRUD endpoints

db.php
return [
  'storage'    => 'sqlite',
  'userScoped' => true,
  'capability' => [
    'create' => true,
    'read'   => true,
    'update' => true,
    'delete' => true,
  ],
  'fields' => [
    'text' => ['type' => 'string', 'required' => true],
    'done' => ['type' => 'boolean', 'default' => false],
  ],
];

rpc.php

Custom server functions

rpc.php
return [
  'toggle' => function (array $params): array {
    $db = Db::get('my-theme/todo');
    $todo = $db->get_record((int) $params['id']);
    $db->update((int) $params['id'], [
      'done' => !$todo['done'],
    ]);
    return ['success' => true];
  },
  'clear_done' => function (): array {
    $db = Db::get('my-theme/todo');
    foreach ($db->list() as $todo) {
      if ($todo['done']) $db->delete((int) $todo['id']);
    }
    return ['cleared' => true];
  },
];

Every capability is a file

Each file adds one capability. No configuration and no registration code.

Application block

blockstudio/

└── my-app/

├── block.json Block definition

├── index.php Template + Interactivity API

├── style.css Scoped styles

├── script-inline.js Client logic

├── db.php Data model + CRUD

├── rpc.php Server functions

├── cron.php Scheduled tasks

└── db/default.sqlite

Plus

The official extension kit

Premium site templates, AI system instructions, and a private Discord community. One-time purchase, lifetime updates.

  • 450+ site templates
  • AI system instructions
  • Lifetime updates
  • Private Discord community