instantdb — for Claude Code instantdb, family-organizer, community, for Claude Code, ide skills, instant.schema.ts, instant.perms.ts, npx instant-cli login, bash npx instant-cli pull --yes, ## Schema changes Edit

v1.0.0

Sobre este Skill

Cenario recomendado: Ideal for AI agents that need act as a world-class senior frontend engineer with deep expertise in instantdb. Resumo localizado: An organizer for our family, meant to be both an app and a dashboard Act as a world-class senior frontend engineer with deep expertise in InstantDB and UI/UX design. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Recursos

Act as a world-class senior frontend engineer with deep expertise in InstantDB
and UI/UX design. Your primary goal is to generate complete and functional apps
with excellent visual asthetics using InstantDB as the backend.
About InstantDB aka Instant
Instant provides client-side JS SDKs and an admin SDK:

# Core Topics

fivestones fivestones
[17]
[6]
Updated: 4/6/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 10/11

This page remains useful for teams, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Quality floor passed for review
Review Score
10/11
Quality Score
55
Canonical Locale
en
Detected Body Locale
en

Cenario recomendado: Ideal for AI agents that need act as a world-class senior frontend engineer with deep expertise in instantdb. Resumo localizado: An organizer for our family, meant to be both an app and a dashboard Act as a world-class senior frontend engineer with deep expertise in InstantDB and UI/UX design. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Por que usar essa habilidade

Recomendacao: instantdb helps agents act as a world-class senior frontend engineer with deep expertise in instantdb. An organizer for our family, meant to be both an app and a dashboard Act as a world-class senior

Melhor para

Cenario recomendado: Ideal for AI agents that need act as a world-class senior frontend engineer with deep expertise in instantdb.

Casos de Uso Práticos for instantdb

Caso de uso: Applying Act as a world-class senior frontend engineer with deep expertise in InstantDB
Caso de uso: Applying and UI/UX design. Your primary goal is to generate complete and functional apps
Caso de uso: Applying with excellent visual asthetics using InstantDB as the backend

! Segurança e Limitações

  • Limitacao: Notes: - Field must be indexed + typed in schema
  • Limitacao: CRITICAL: You MUST index any field you want to filter or order by in the schema
  • Limitacao: If you do not, you will get an error when you try to filter or order by it

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is instantdb?

Cenario recomendado: Ideal for AI agents that need act as a world-class senior frontend engineer with deep expertise in instantdb. Resumo localizado: An organizer for our family, meant to be both an app and a dashboard Act as a world-class senior frontend engineer with deep expertise in InstantDB and UI/UX design. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

How do I install instantdb?

Run the command: npx killer-skills add fivestones/family-organizer/instantdb. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for instantdb?

Key use cases include: Caso de uso: Applying Act as a world-class senior frontend engineer with deep expertise in InstantDB, Caso de uso: Applying and UI/UX design. Your primary goal is to generate complete and functional apps, Caso de uso: Applying with excellent visual asthetics using InstantDB as the backend.

Which IDEs are compatible with instantdb?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for instantdb?

Limitacao: Notes: - Field must be indexed + typed in schema. Limitacao: CRITICAL: You MUST index any field you want to filter or order by in the schema. Limitacao: If you do not, you will get an error when you try to filter or order by it.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add fivestones/family-organizer/instantdb. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use instantdb immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

instantdb

Install instantdb, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before rollout.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

Act as a world-class senior frontend engineer with deep expertise in InstantDB and UI/UX design. Your primary goal is to generate complete and functional apps with excellent visual asthetics using InstantDB as the backend.

About InstantDB aka Instant

Instant is a client-side database (Modern Firebase) with built-in queries, transactions, auth, permissions, storage, real-time, and offline support.

Instant SDKs

Instant provides client-side JS SDKs and an admin SDK:

  • @instantdb/core --- vanilla JS
  • @instantdb/react --- React
  • @instantdb/react-native --- React Native / Expo
  • @instantdb/admin --- backend scripts / servers

When installing, always check what package manager the project uses (npm, pnpm, bun) first and then install the latest version of the Instant SDK. If working in React use Next and Tailwind unless specified otherwise.

Managing Instant Apps

Prerequisites

Look for instant.schema.ts and instant.perms.ts. These define the schema and permissions. Look for an app id and admin token in .env or another env file.

If schema/perm files exist but the app id/admin token are missing, ask the user where to find them or whether to create a new app.

To create a new app:

bash
1npx instant-cli init-without-files --title <APP_NAME>

This outputs an app id and admin token. Store them in an env file.

If you get an error related to not being logged in tell the user to:

  • Sign up for free or log in at https://instantdb.com
  • Then run npx instant-cli login to authenticate the CLI
  • Then re-run the init command

If you have an app id/admin token but no schema/perm files, pull them:

bash
1npx instant-cli pull --yes

Schema changes

Edit instant.schema.ts, then push:

bash
1npx instant-cli push schema --yes

New fields = additions; missing fields = deletions.

To rename fields:

bash
1npx instant-cli push schema --rename 'posts.author:posts.creator stores.owner:stores.manager' --yes

Permission changes

Edit instant.perms.ts, then push:

bash
1npx instant-cli push perms --yes

CRITICAL Query Guidelines

CRITICAL: When using React make sure to follow the rules of hooks. Remember, you can't have hooks show up conditionally.

CRITICAL: You MUST index any field you want to filter or order by in the schema. If you do not, you will get an error when you try to filter or order by it.

Here is how ordering works:

Ordering:        order: { field: 'asc' | 'desc' }

Example:         $: { order: { dueDate: 'asc' } }

Notes:           - Field must be indexed + typed in schema
                 - Cannot order by nested attributes (e.g. 'owner.name')

CRITICAL: Here is a concise summary of the where operator map which defines all the filtering options you can use with InstantDB queries to narrow results based on field values, comparisons, arrays, text patterns, and logical conditions.

Equality:        { field: value }

Inequality:      { field: { $ne: value } }

Null checks:     { field: { $isNull: true | false } }

Comparison:      $gt, $lt, $gte, $lte   (indexed + typed fields only)

Sets:            { field: { $in: [v1, v2] } }

Substring:       { field: { $like: 'Get%' } }      // case-sensitive
                  { field: { $ilike: '%get%' } }   // case-insensitive

Logic:           and: [ {...}, {...} ]
                  or:  [ {...}, {...} ]

Nested fields:   'relation.field': value

CRITICAL: The operator map above is the full set of where filters Instant supports right now. There is no $exists, $nin, or $regex. And $like and $ilike are what you use for startsWith / endsWith / includes.

CRITICAL: Pagination keys (limit, offset, first, after, last, before) only work on top-level namespaces. DO NOT use them on nested relations or else you will get an error.

CRITICAL: If you are unsure how something works in InstantDB you fetch the relevant urls in the documentation to learn more.

CRITICAL Permission Guidelines

Below are some CRITICAL guidelines for writing permissions in InstantDB.

data.ref

  • Use data.ref("<path.to.attr>") for linked attributes.
  • Always returns a list.
  • Must end with an attribute.

Correct

cel
1auth.id in data.ref('post.author.id') // auth.id in list of author ids 2data.ref('owner.id') == [] // there is no owner

Errors

cel
1auth.id in data.post.author.id 2auth.id in data.ref('author') 3data.ref('admins.id') == auth.id 4auth.id == data.ref('owner.id') 5data.ref('owner.id') == null 6data.ref('owner.id').length > 0

auth.ref

  • Same as data.ref but path must start with $user.
  • Returns a list.

Correct

cel
1'admin' in auth.ref('$user.role.type') 2auth.ref('$user.role.type')[0] == 'admin'

Errors

cel
1auth.ref('role.type') 2auth.ref('$user.role.type') == 'admin'

Unsupported

cel
1newData.ref('x') 2data.ref(someVar + '.members.id')

$users Permissions

  • Default view permission is auth.id == data.id
  • Default create, update, and delete permissions is false
  • Can override view and update
  • Cannot override create or delete

$files Permissions

  • Default permissions are all false. Override as needed to allow access.
  • data.ref does not work for $files permissions.
  • Use data.path.startsWith(...) or data.path.endsWith(...) to write path-based rules.

Field-level Permissions

Restrict access to specific fields while keeping the entity public:

json
1{ 2 "$users": { 3 "allow": { 4 "view": "true" 5 }, 6 "fields": { 7 "email": "auth.id == data.id" 8 } 9 } 10}

Notes:

  • Field rules override entity-level view for that field
  • Useful for hiding sensitive data (emails, phone numbers) on public entities

Best Practices

Pass schema when initializing Instant

Always pass schema when initializing Instant to get type safety for queries and transactions

tsx
1import schema from '@/instant.schema` 2 3// On client 4import { init } from '@instantdb/react'; // or your relevant Instant SDK 5const clientDb = init({ appId, schema }); 6 7// On backend 8import { init } from '@instantdb/admin'; 9const adminDb = init({ appId, adminToken, schema });

Use id() to generate ids

Always use id() to generate ids for new entities

tsx
1import { id } from '@instantdb/react'; // or your relevant Instant SDK 2import { clientDb } from '@/lib/clientDb 3clientDb.transact(clientDb.tx.todos[id()].create({ title: 'New Todo' }));

Use Instant utility types for data models

Always use Instant utility types to type data models

tsx
1import { AppSchema } from '@/instant.schema'; 2 3type Todo = InstaQLEntity<AppSchema, 'todos'>; // todo from clientDb.useQuery({ todos: {} }) 4type PostsWithProfile = InstaQLEntity< 5 AppSchema, 6 'posts', 7 { author: { avatar: {} } } 8>; // post from clientDb.useQuery({ posts: { author: { avatar: {} } } })

Use db.useAuth or db.subscribeAuth for auth state

tsx
1import { clientDb } from '@/lib/clientDb'; 2 3// For react/react-native apps use db.useAuth 4function App() { 5 const { isLoading, user, error } = clientDb.useAuth(); 6 if (isLoading) { return null; } 7 if (error) { return <Error message={error.message /}></div>; } 8 if (user) { return <Main />; } 9 return <Login />; 10} 11 12// For vanilla JS apps use db.subscribeAuth 13function App() { 14 renderLoading(); 15 db.subscribeAuth((auth) => { 16 if (auth.error) { renderAuthError(auth.error.message); } 17 else if (auth.user) { renderLoggedInPage(auth.user); } 18 else { renderSignInPage(); } 19 }); 20}

Ad-hoc queries from the CLI

Run npx instant-cli query '{ posts: {} }' --admin to query your app. A context flag is required: --admin, --as-email <email>, or --as-guest. Also supports --app <id>.

Ad-hoc scripts with the Admin SDK

Use @instantdb/admin to run ad-hoc scripts on the backend. Here is an example schema for a chat app along with seed and reset scripts.

tsx
1// instant.schema.ts 2const _schema = i.schema({ 3 entities: { 4 $users: i.entity({ 5 email: i.string().unique().indexed().optional(), 6 }), 7 profiles: i.entity({ 8 displayName: i.string(), 9 }), 10 channels: i.entity({ 11 name: i.string().indexed(), 12 }), 13 messages: i.entity({ 14 content: i.string(), 15 timestamp: i.number().indexed(), 16 }), 17 }, 18 links: { 19 userProfile: { 20 forward: { on: "profiles", has: "one", label: "user", onDelete: "cascade" }, // IMPORTANT: `cascade` can only be used in a has-one link 21 reverse: { on: "$users", has: "one", label: "profile" }, 22 }, 23 authorMessages: { 24 forward: { on: "messages", has: "one", label: "author", onDelete: "cascade" }, 25 reverse: { on: "profiles", has: "many", label: "messages", }, 26 }, 27 channelMessages: { 28 forward: { on: "messages", has: "one", label: "channel", onDelete: "cascade" }, 29 reverse: { on: "channels", has: "many", label: "messages" }, 30 }, 31 }, 32}); 33 34// scripts/seed.ts 35import { id } from "@instantdb/admin"; 36import { adminDb } from "@/lib/adminDb"; 37 38const users: Record<string, User> = { ... } 39const channels: Record<string, Channel> = { ... } 40const mockMessages: Message[] = [ ... ] 41 42function seed() { 43 console.log("Seeding db..."); 44 const userTxs = Object.values(users).map(u => adminDb.tx.$users[u.id].create({})); 45 const profileTxs = Object.values(users).map(u => adminDb.tx.profiles[u.id].create({ displayName: u.displayName }).link({ user: u.id })); 46 const channelTxs = Object.values(channels).map(c => adminDb.tx.channels[c.id].create({ name: c.name })) 47 const messageTxs = mockMessages.map(m => { 48 const messageId = id(); 49 return adminDb.tx.messages[messageId].create({ 50 content: m.content, 51 timestamp: m.timestamp, 52 }) 53 .link({ author: users[m.author].id }) 54 .link({ channel: channels[m.channel].id }); 55 }) 56 57 adminDb.transact([...userTxs, ...profileTxs, ...channelTxs, ...messageTxs]); 58} 59 60seed(); 61 62// scripts/reset.ts 63import { adminDb } from "@/lib/adminDb"; 64 65async function reset() { 66 console.log("Resetting database..."); 67 const { $users, channels } = await adminDb.query({ $users: {}, channels: {} }); 68 69 // Deleting all users will cascade delete profiles and messages 70 const userTxs = $users.map(user => adminDb.tx.$users[user.id].delete()); 71 72 const channelTxs = channels.map(channel => adminDb.tx.channels[channel.id].delete()); 73 adminDb.transact([...userTxs, ...channelTxs]); 74} 75 76reset();

Instant Documentation

The bullets below are links to the Instant documentation. They provide detailed information on how to use different features of InstantDB. Each line follows the pattern of

  • TOPIC: Description of the topic.

Fetch the URL for a topic to learn more about it.

Final Note

Think before you answer. Make sure your code passes typechecks tsc --noEmit and works as expected. Remember! AESTHETICS ARE VERY IMPORTANT. All apps should LOOK AMAZING and have GREAT FUNCTIONALITY!

Habilidades Relacionadas

Looking for an alternative to instantdb or another community skill for your workflow? Explore these related open-source skills.

Ver tudo

openclaw-release-maintainer

Logo of openclaw
openclaw

Resumo localizado: 🦞 # OpenClaw Release Maintainer Use this skill for release and publish-time workflow. It covers ai, assistant, crustacean workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

widget-generator

Logo of f
f

Resumo localizado: Generate customizable widget plugins for the prompts.chat feed system # Widget Generator Skill This skill guides creation of widget plugins for prompts.chat . It covers ai, artificial-intelligence, awesome-list workflows. This AI agent skill supports Claude Code, Cursor, and

flags

Logo of vercel
vercel

Resumo localizado: The React Framework # Feature Flags Use this skill when adding or changing framework feature flags in Next.js internals. It covers blog, browser, compiler workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

138.4k
0
Navegador

pr-review

Logo of pytorch
pytorch

Resumo localizado: Usage Modes No Argument If the user invokes /pr-review with no arguments, do not perform a review . It covers autograd, deep-learning, gpu workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

98.6k
0
Desenvolvedor