Use when building schema-driven prototypes with nuxt-protokit (@websideproject/nuxt-protokit) - provides definePrototype, usePrototype, ProtoTool, collections, derived values, and visualizations for rapid SaaS tool prototyping.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Schema-driven rapid prototyping for Nuxt 4. Turn a TypeScript schema into a persistent, interactive SaaS tool in minutes — backed by Y.js CRDT + IndexedDB, auto-synced across tabs, with optional server sync.
PrototypeSchema with fields, collections, derived values, or visualizationsusePrototype() or useProtoCollection() composables<ProtoTool>, <ProtoDashboard>, <ProtoCrudModal>, <ProtoCalendar>, <ProtoViz> componentsdefineProtokitExtensiondefineHeadlessSchema) without UI components// schema.ts
import { definePrototype } from '@websideproject/nuxt-protokit'
export const schema = definePrototype({
key: 'my-tool',
title: 'My Tool',
shortTitle: 'My Tool',
description: 'Description',
icon: 'i-heroicons-calculator',
fields: {
revenue: { type: 'number', label: 'Revenue', default: 0, format: 'money' },
growth: { type: 'range', label: 'Growth %', default: 10, min: 0, max: 100 },
plan: { type: 'select', label: 'Plan', default: 'starter',
options: ['starter', 'pro', 'enterprise'] },
},
derived: {
projectedRevenue: {
deps: ['revenue', 'growth'],
compute: ctx => ctx.fields.revenue * (1 + ctx.fields.growth / 100),
},
},
})<!-- pages/my-tool.vue -->
<script setup>
import { schema } from '~/schema'
const proto = usePrototype(schema)
</script>
<template>
<ProtoTool :schema="schema" :prototype="proto" />
</template>| File | Topics |
|---|---|
| references/schema.md | PrototypeSchema, all field types, CollectionSchema, DerivedDef, DashboardLayout, ProtoAction |
| references/composables.md | usePrototype, useProtoCollection, useProtoDoc, namespace, encryption options |
| references/components.md | ProtoTool, ProtoDashboard, ProtoCrudModal, ProtoCalendar, ProtoViz, ProtoActionBar |
| references/visualizations.md | All 12 viz types with config interfaces and examples |
| references/offline-first.md | Y.js + IndexedDB, multi-tab sync, encryption, corruption recovery, server sync |
| references/extensions.md | defineProtokitExtension, custom field/viz type registration |
| references/headless.md | defineHeadlessSchema, programmatic usage without UI components |
| references/module-authoring.md | Building a Nuxt module that ships custom fields/viz: protokit:register-extension hook, plugin pattern |
Load only what you need:
usePrototype or composable options? → references/composables.md<ProtoTool>, <ProtoCrudModal>, <ProtoCalendar>? → references/components.mdvisualizations: [] in schema? → references/visualizations.mdDO NOT read all files at once. Load based on current task.
nuxt — Nuxt 4 routing, server routes, middlewarenuxt-ui — @nuxt/ui components for surrounding page layoutvue — Vue 3 composables, reactivity patternsnuxt.config.ts)export default defineNuxtConfig({
modules: ['@websideproject/nuxt-protokit'],
protokit: {
serverSync: true, // default — syncs to /api/yjs
// serverSync: false // local-only, no HTTP
// serverSync: { enabled: true, baseUrl: '/api/yjs' }
}
})Token efficiency: Main skill ~400 tokens. Each reference file ~800–1400 tokens.
onmax/nuxt-skills
2e74504
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.