Rapid prototyping
Validate ideas fast with real data
- Use spreadsheets or static JSON/CSV as your data source
- Define models in Console or code
- Build the UI on SDK queries and facets
dcupl is a TypeScript SDK, a CLI and a Console that give your app and your coding agent one typed model of your data.
$ npm install -g @dcupl/cli
$ dcupl init my-app --starter minimal --json
{"ok":true,"starter":"minimal","here":false,"name":"my-app","path":"…/my-app"}Scaffolding and local queries need no account.
CLI quickstartLoad your models and data in the browser or Node.js, then query, facet and aggregate in memory.
Scaffold a project, model an export, query it in a local app and sync files with the Console.
Model your data and run workflows that load, join and clean your exports.
Deploy your application as a REST API (RAPI): it answers queries, facets and aggregations over HTTP, with an OpenAPI document.
Let an agent read a deployed REST API instance through read-only tools, where it is turned on.
dcupl app loads your project or a CSV as a local app your agent can query. $ dcupl app models get --model Product --json
{"key":"Product","properties":[…,{"key":"price","type":"float"},{"key":"onSale","type":"boolean"}]}The real model: every property with its type.
$ dcupl app data upsert --file new-prices.csv --model Product --key-property id --json
{"upserted":5,"model":"Product","built":false,…}Staged, not applied: nothing changes until the build.
$ dcupl app build --json
{"appId":"shop","built":true}A build step you approve applies the staged changes.
Replies from a local app started with dcupl app create --app shop --load --auto-serve on twelve demo products, shortened at …. With --json, errors come back as JSON too.
TypeScript-first. Works in browser and Node.js.
import { Dcupl } from '@dcupl/core';
const products = [
{ key: 'p1', name: 'iPhone 16', brand: 'Apple', category: 'Electronics' },
{ key: 'p2', name: 'MacBook Air', brand: 'Apple', category: 'Electronics' },
{ key: 'p3', name: 'Galaxy S25', brand: 'Samsung', category: 'Electronics' },
{ key: 'p4', name: 'Air Max 90', brand: 'Nike', category: 'Shoes' },
];
// Initialize dcupl with a model and your data
const dcupl = new Dcupl();
dcupl.models.set({
key: 'Product',
properties: [
{ key: 'name', type: 'string' },
{ key: 'brand', type: 'string' },
{ key: 'category', type: 'string' },
],
});
dcupl.data.set(products, { model: 'Product' });
await dcupl.init();
// Create a list for querying
const productsList = dcupl.lists.create({ modelKey: 'Product' });
// Apply filters — runs instantly, in-memory
productsList.catalog.query.addCondition({
attribute: 'category',
operator: 'eq',
value: 'Electronics',
});
// Get facets for filter UI
const brands = productsList.catalog.fn.facets({ attribute: 'brand' });
// => [{ value: 'Apple', size: 2, ... }, { value: 'Samsung', size: 1, ... }]
// Get results
const items = productsList.catalog.query.items();
// => iPhone 16, MacBook Air, Galaxy S25From quick prototypes to production applications
Validate ideas fast with real data
Transform messy data into clean models
Search, filter, facets — all in-memory
Aggregations, pivots, real-time updates
Complex rules, instant feedback
Admin panels, data browsers, reports
Add the Console when you need workflows or a REST API.
Common questions about dcupl
dcupl is a TypeScript SDK, a CLI and a Console that give your app and your coding agent one typed model of your data. The model runs in your app through the SDK, behind a REST API (RAPI) once you deploy it, and for agents over MCP where it is turned on.
No. Any agent that runs shell commands can drive the CLI and parse its JSON. The skill makes Claude Code faster; it is not required.
Yes. The CLI and the SDK are free on npm; scaffolding and querying run locally without an account. The dcupl Console has a free tier for hosted workflows and REST APIs; talk to us for more.
It depends on your data structure and on the memory available in the browser or Node.js, and query time grows with the number of records. Measured with 1 million items: indexed queries took 25–65 ms, facets about 2.7 s. Test with realistic data volumes.
No. The SDK works completely standalone — you can define models and load data directly in code. The Console is optional and provides visual data modeling, ETL workflows, and hosted APIs for teams that want a managed solution.
dcupl is framework-agnostic and works with React, Vue, Angular, Svelte, or vanilla JavaScript/TypeScript. The Learn section has integration tutorials for React and Vue.
Yes. The SDK runs in Node.js, so you can load data and run queries on the server in Next.js, Nuxt, Angular SSR, or any other SSR framework. There is no built-in state transfer: the client creates and initializes its own dcupl instance.