Skip to main content
This is the developer path. You work in your own editor, your own repo, with your own coding assistant. Notis gives the agent one path to create, preview, and deploy the app.

Prerequisites

  • The Notis desktop app, installed and signed in. It keeps the Notis CLI authenticated.
  • A code editor or a local code agent (Cursor, Claude Code, Codex, or just a terminal).
  • Node.js 18+.
The desktop app also syncs the built-in notis-cli and notis-apps skills, so local agents can discover the CLI workflow and the app platform rules without extra setup. Verify the CLI is ready:
npx --package @notis_ai/cli@latest -- notis doctor
If the doctor check passes, you’re set. If not, open the Notis desktop app and sign in.

Start the wizard (or skip it)

The fastest way to start is from the portal:
  1. Open the Notis portal and click + Create app.
  2. Pick a name and an optional starting point (empty scaffold, or one from the catalog: notis-database, notis-notes, notis-random).
  3. Choose your local code agent as the builder.
  4. Click Get the prompt — Notis generates a copy-paste prompt tuned to your starting point. Paste it into Cursor / Claude Code / Codex and let it drive the CLI for you.
You can also skip the wizard entirely and drive the CLI by hand.

Manual workflow

1. Scaffold a new app

npx --package @notis_ai/cli@latest -- notis apps scaffolds list
npx --package @notis_ai/cli@latest -- notis apps init "My Task Manager" --from notis-database
cd "my-task-manager"
This creates a Vite + React project with:
  • notis.config.ts — the app declaration (metadata, databases, routes, tools).
  • app/ — your React pages.
  • components/ — scaffolded shadcn UI components.
  • vite.config.ts — wrapped with notisViteConfig().
  • Tailwind and @notis/sdk pre-configured.

2. Configure the app

Edit notis.config.ts:
import { defineNotisApp } from '@notis/sdk/config';

export default defineNotisApp({
  name: 'task-manager',
  title: 'Task Manager',
  description: 'Track and manage team tasks',
  icon: 'phosphor:check-square',
  categories: ['Productivity'],
  tagline: 'Plan, assign, and ship team tasks.',
  versionNotes: 'Initial release.',

  databases: ['tasks'],

  routes: [
    { path: '/', slug: 'dashboard', name: 'Dashboard', icon: 'phosphor:squares-four', default: true },
    {
      path: '/tasks', slug: 'tasks', name: 'All Tasks', icon: 'phosphor:list',
      collection: { database: 'tasks', titleProperty: 'title' },
    },
  ],

  tools: ['LOCAL_NOTIS_DATABASE_QUERY'],
});

3. Build your pages

Pages live under app/. Use the SDK hooks:
'use client';
import { useEffect, useState } from 'react';
import { useTool } from '@notis/sdk';
import { Card } from '@/components/ui/card';

export default function Dashboard() {
  const queryTasks = useTool('LOCAL_NOTIS_DATABASE_QUERY');
  const [docs, setDocs] = useState([]);

  useEffect(() => {
    queryTasks.call({ database_slug: 'tasks', query: { page_size: 25 } })
      .then(r => setDocs(r.documents || []));
  }, [queryTasks.call]);

  return (
    <div className="p-6 space-y-4">
      <h1 className="text-2xl font-bold">Dashboard</h1>
      {docs.map(d => <Card key={d.id} className="p-4">{d.title}</Card>)}
    </div>
  );
}

4. Develop locally

npx --package @notis_ai/cli@latest -- notis apps dev
This opens the Notis desktop app directly to your local app when possible, and every active local app appears in the Local development sidebar group. Edits hot-reload.

5. Build and deploy

npx --package @notis_ai/cli@latest -- notis apps build
npx --package @notis_ai/cli@latest -- notis apps create "Task Manager" .
npx --package @notis_ai/cli@latest -- notis apps deploy
Or, if the remote app already exists:
npx --package @notis_ai/cli@latest -- notis apps link <app-id>
npx --package @notis_ai/cli@latest -- notis apps deploy

6. Verify

npx --package @notis_ai/cli@latest -- notis apps doctor
Reports anything the platform expects but didn’t find — missing routes, broken config, unknown tools.

Forking an existing app

You can start from an app you already have installed:
npx --package @notis_ai/cli@latest -- notis apps pull <app-id> ./<dir>
cd ./<dir>
npm install
npx --package @notis_ai/cli@latest -- notis apps dev
# edit, then build the saved source snapshot
npx --package @notis_ai/cli@latest -- notis apps build
npx --package @notis_ai/cli@latest -- notis apps create "My Fork" .
npx --package @notis_ai/cli@latest -- notis apps deploy
Forked apps live as separate listings — existing installs of the original keep their upstream link. Apps deployed with older tooling may not have a saved source snapshot yet. Redeploy them once with the current CLI before pulling.

Publishing

When the app is ready, head to App Details (/apps/[appId]) in the portal to Publish it. See Publish an app.
Tool boundary recap: the CLI handles all code, builds, and deploys. The portal handles publish/unpublish/install/visibility. Listing metadata (cover, screenshots, tagline) lives in notis.config.ts + metadata/ in your repo, never in the portal.