cnc starter

test

A tour of the platform, one card per service. Every card is live against the stack serving this page.

Account
$auth

You are browsing anonymously.

This device
$device · $t

Known on the server before the first paint, so the page renders for this screen.

Browser
other on other
Screen
1024 × 768
Colour scheme
light
Time zone
UTC
Language
en-US
Demo rows
$data · $can · $file

Rows of the Demo schema, created by migrations/001-starter.json. Anyone may read them; signing in lets you add your own, with a picture if you like, and only you may change or delete yours — the same migration's rules say so. A title shorter than three characters is refused by the server.

Sign in to add one — $can('create', 'Demo') says no until you do.
  • fdsfa
  • Testing
Search
$data search

Fuzzy and by prefix, over the fields a schema marks searchable. Runs in the browser as you type.

Email and notifications
$email · $notify · $toast

Sending writes a row and returns at once; delivery happens after the request. Each row says whether it went, and why not if it did not.

Sign in: mail and notifications go to a person.

Usage
$meter

Every row you add counts one on the demos-added meter, per account — the readings a billing page or a quota is built from.

Sign in: usage is counted per account.

A service
$greeter · $secrets · fetch

services/greeter.mjs runs on the server. Its greeting comes from the greeting secret, and it may only reach the hosts its greeter.json lists.

On a schedule
triggers

services/heartbeat.json runs tick() every minute, as the service rather than as a person — its rights are in migrations/001-starter.json.

No beat yet. Schedules fire only on a host whose operator runs the clock.
An assistant
$ai · spaces

An agent lives in a space — a private workspace of files. The first question makes yours, with the agent defined in .ai/agents/assistant.json.

Sign in: a space belongs to a person.

Logs
console

console.log in server code — a $-method, a service — is the app's log. Adding a row above writes one. Read it in the cnc dev terminal while you work, and from the deployment's log stream (/@cnc/logs on the platform) once deployed. Secrets are masked before a line is written.