Case study: rapid prototyping
Build the product UI first. Let the data API catch up automatically.
When you are vibe-coding a marketplace, catalogue, directory, or internal tool, the slow part is often not the UI. It is creating tables, API routes, filter metadata endpoints, and joins before the product is valuable. RushDB lets you push the JSON your UI already needs, then use labels, properties, values, and records to power faceted search like a serious ecommerce platform.
Prototype backends collapse when filters become real.
A product grid starts simple, then users expect narrowing filters: category, brand, price range, availability, tags, rating, location, owner, variant, and more. With a conventional app backend, each new facet usually means schema work, seed scripts, API changes, and UI-specific endpoints before the prototype can prove the product idea.
Before
- Model tables and joins before the UI proves the product
- Build separate endpoints for records, filter options, counts, and value ranges
- Rework the backend every time the prototype adds a new property
- Flatten rich UI cards into rigid rows too early
With RushDB
- Push UI-shaped JSON as Records and nested Records
- Fetch labels to know which record types exist
- Fetch properties and property values to build dynamic facets
- Query records with selected filters, sorting, and pagination through RushDB
Graph intelligence on ingest
Incoming data becomes queryable graph context.
RushDB turns structured data into graph-ready context without a separate modeling pipeline. Structure already encoded in a nested payload is linked immediately. For flat records imported from scattered sources, relationship analysis can propose stable cross-source patterns.
01
Normalize as data arrives
Import JSON or CSV. RushDB infers property types and adds new fields to the live, queryable ontology without a schema migration.
02
Auto-link nested structure
Nested objects become connected records automatically, preserving the parent-child graph structure already encoded in your payload.
03
Enrich scattered sources
After flat imports or schema changes, analyze the project ontology. RushDB can suggest join patterns and semantic relationship types for your review.
Suggested relationship analysis requires an LLM configured for the project. Suggestions stay in draft form until you approve them, so inferred domain meaning never mutates the graph silently. You can also add explicit relationships through the SDK or API.
Review suggested relationship patternsData model
One flexible graph for the workflow.
Start with the payload shape your product already produces. RushDB stores it as Records, infers typed properties, and keeps nested or approved domain relationships queryable.
Prototype data can follow the UI shape first. RushDB turns the nested cards, variants, categories, and media into queryable Records.
{
"prototypeId": "shop-demo-01",
"name": "Home office catalogue",
"SCREEN": [{
"slug": "catalog",
"layout": "grid",
"PRODUCT_CARD": [{
"productId": "desk-lamp-01",
"title": "Adjustable brass desk lamp",
"category": "lighting",
"brand": "Northstar Home",
"priceUsd": 128,
"rating": 4.8,
"inStock": true,
"tags": ["desk", "warm-light", "brass"],
"VARIANT": [{ "color": "brass", "finish": "matte", "stock": 18 }],
"MEDIA_ASSET": [{ "kind": "image", "url": "/demo/lamp.jpg" }]
}]
}]
}Working example
Push catalogue JSON. Render filters from live metadata.
A prototype writes product-card JSON into RushDB. The UI reads available labels, discovers filterable properties and values, then narrows the product grid with a SearchQuery instead of waiting for custom backend routes.
PRODUCT_CARD desk-lamp-01
title: "Adjustable brass desk lamp"
category: lighting
brand: Northstar Home
priceUsd: 128
rating: 4.8
inStock: true
VARIANT brass / matte / stock 18{
"labels": ["PRODUCT_CARD"],
"where": {
"category": "lighting",
"priceUsd": { "$lte": 200 },
"inStock": true
},
"orderBy": { "priceUsd": "asc" },
"limit": 24
}{
"records": [{ "productId": "desk-lamp-01", "title": "Adjustable brass desk lamp" }],
"facets": {
"labels": ["PRODUCT_CARD", "VARIANT"],
"properties": ["category", "brand", "priceUsd", "rating", "inStock"],
"categoryValues": ["lighting", "office", "furniture"]
}
}TypeScript SDK
One prototype data path: write JSON, inspect metadata, query records.
Use the SDK for writes and record queries. Use the Labels and Properties APIs for dynamic facets: record types, filterable properties, distinct values, numeric ranges, and result lists.
Implementation blueprint
Build the faceted prototype path.
Use this sequence to replace early backend scaffolding with RushDB-backed data discovery and record queries while the product shape is still changing.
- 01Push PRODUCT_CARD JSON in the same shape the UI renders
- 02Fetch labels to list available record types and counts
- 03Fetch properties to build filter controls and understand field types
- 04Fetch property values or ranges to narrow available options
- 05Query records with selected filters, order, pagination, and optional graph traversal
Build path
- Use Labels and Properties docs for faceted metadata.
- Use PRODUCT_CARD for rendered cards and nested VARIANT, MEDIA_ASSET, CATEGORY, or BRAND records when useful.
- Let new JSON fields appear as properties instead of blocking the prototype on migrations.
- Move behind a thin server proxy before production if browser access, rate limits, tenancy, or permissions matter.
Relevant docs
Read the exact primitives behind this pattern.
These links point to the RushDB docs pages that map directly to this case study: ingestion, labels, properties, values, SearchQuery, relationships, semantic search, MCP, or deployment.
Labels and properties
Use labels, properties, values, and record counts to build dynamic faceted UI without hardcoded backend metadata.
Open docsLabels API
Fetch available record types and counts for product grids, directories, catalogues, and prototype screens.
Open docsProperties API
Inspect field types and fetch distinct values or numeric ranges for narrowing filters.
Open docsImport JSON data
Push UI-shaped JSON and let RushDB infer types, create records, and preserve nested structure.
Open docsHow it works
Build the smallest useful workflow first.
01
Push the UI payload
Write the product card, directory item, marketplace offer, or internal-tool row as JSON first. Keep nested UI details nested.
02
Generate facets from metadata
Read labels, properties, and property values to create filter panels that narrow options as data changes.
03
Query records for the screen
Use one SearchQuery for the result grid: filters, sorting, pagination, and connected records when the UI needs drill-down context.
Know where it fits.
Useful for serious prototypes
The point is not throwaway mock data. It is getting to a valuable product loop before the backend schema is fully settled.
Facets come from stored data
A top-tier filter experience needs available values and ranges to narrow as users browse. RushDB exposes the metadata needed to build that from the data you already wrote.
Questions developers ask.
Next step
Start with one focused workflow.
Related use cases
Explore all use cases