出品者:devbyibrahim

Submit your JSON, convert it to form. Edit, submit and copy the edited JSON.
A zero-config tool that turns any JSON object into a fully interactive, validated form — instantly, in the browser.
Paste raw JSON, click Build Form, and get a typed, editable form with smart field detection, inline validation, and clean JSON output on submit.
The schema inference engine (src/lib/formApi.ts) inspects each value and applies rules automatically:
| Value pattern | Widget / format applied |
|---|---|
"jane@example.com" | email input |
"https://…" | url input |
"2024-03-15" | date picker |
"2024-03-15T08:45:00Z" | datetime-local picker |
Long strings / keys like bio, body, notes | <textarea> |
Keys like password, secret, token | password input |
true / false | Toggle / checkbox |
| Numbers | number input |
| Arrays of primitives | Editable tag list |
| Nested objects | Collapsible sub-form section |
Four real-world payloads are included to demo the full range of field types:
隔離されたサンドボックスを起動しサーバー側で実行 — ローカル設定不要。
この製品をお使いのAI IDE・Webビルダー・クラウドIDEに直接取り込みます。
Tetreesを対応AI IDEに接続し、所有製品の一覧取得と検証済みZIPの取得を、販売者のアップロード権限を公開せずに行えます。
まだレビューがありません。
Sign in to join the discussion
Loading discussion…
Client-side validation runs on submit via src/lib/validate.ts:
email, uri, date, date-timesrc/
├── App.tsx # Stage machine: paste → loading → form → submitted
├── components/
│ ├── SchemaForm.tsx # Form shell, validation orchestration, submit/clear
│ └── FieldRenderer.tsx # Recursive field renderer for all types & depths
├── lib/
│ ├── formApi.ts # Client-side schema inference engine
│ └── validate.ts # Validation logic
└── index.css # Tailwind v4 + custom layer styles
| Layer | Choice |
|---|---|
| Framework | React 18 + TypeScript |
| Build tool | Vite |
| Styling | Tailwind CSS v4 |
| Schema | Client-side inference (no backend required) |
| Validation | Custom client-side validator |
npm install
npm run dev
Build for production:
npm run build
Output goes to dist/. The app is fully static — no server or API required.
A backend service that infers, enriches, translates, and validates JSON Schemas from raw data. Useful for dynamically generating form definitions with widget hints from any JSON payload.
Given a plain JSON object (e.g. a database record or API response), this service infers a full JSON Schema with human-readable titles and UI widget hints (x-widget). It also accepts existing schemas and enriches them, and validates form submission data against a schema.
npm install
npm run dev # development (ts-node-dev)
npm run build # compile TypeScript
npm start # run compiled output
| Convention | Choice |
|---|---|
| Field naming | camelCase in all request/response bodies |
| ID format | Not applicable (stateless service) |
| Response wrapper | { data: <payload> } for all success responses |
| Error wrapper | { error: "<message>" } for all error responses |
| Date format | ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ) |
GET /health · GET /api/healthHealth check.
curl -s http://localhost:9022/api/health
Response
{ "status": "ok", "timestamp": "2026-04-22T10:00:00.000Z" }
POST /api/form/schemaAccepts either raw JSON data or an existing JSON Schema object. If the payload looks like a schema ($schema, type: "object" + properties, etc.) it enriches it; otherwise it infers a schema from scratch.
Supports an optional { _title, _data } wrapper to avoid key collisions with reserved fields.
Request body — flat raw data
{
"name": "Alice",
"email": "alice@example.com",
"age": 30,
"bio": "Software engineer based in NYC."
}
Request body — wrapper form
{
"_title": "User Profile",
"_data": {
"name": "Alice",
"email": "alice@example.com",
"age": 30,
"bio": "Software engineer based in NYC."
}
}
curl -s -X POST http://localhost:9022/api/form/schema \
-H "Content-Type: application/json" \
-d '{"_title":"User Profile","_data":{"name":"Alice","email":"alice@example.com","age":30,"bio":"Software engineer."}}'
Response
{
"data": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "User Profile",
"properties": {
"name": { "type": "string", "title": "Name", "x-widget": "text" },
"email": { "type": "string", "title": "Email", "format": "email", "x-widget": "email" },
"age": { "type": "integer", "title": "Age", "x-widget": "number" },
"bio": { "type": "string", "title": "Bio", "x-widget": "textarea" }
}
}
}
POST /api/form/inferStrictly infers a schema from raw JSON data. Never treats the input as an existing schema — always runs full value-level type inference.
Request body
{
"username": "bob42",
"score": 9.5,
"active": true,
"createdAt": "2026-01-15T08:30:00Z"
}
curl -s -X POST http://localhost:9022/api/form/infer \
-H "Content-Type: application/json" \
-d '{"username":"bob42","score":9.5,"active":true,"createdAt":"2026-01-15T08:30:00Z"}'
Response
{
"data": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Form",
"properties": {
"username": { "type": "string", "title": "Username", "x-widget": "text" },
"score": { "type": "number", "title": "Score", "x-widget": "number" },
"active": { "type": "boolean", "title": "Active", "x-widget": "checkbox" },
"createdAt": { "type": "string", "title": "Created At", "format": "date-time", "x-widget": "datetime-local" }
}
}
}
POST /api/form/translateEnriches a single JSON Schema field definition with a human-readable title and an x-widget hint. Useful when you already have a schema and want widget annotations for one field at a time.
Request body
{
"key": "birthDate",
"field": {
"type": "string",
"format": "date"
}
}
curl -s -X POST http://localhost:9022/api/form/translate \
-H "Content-Type: application/json" \
-d '{"key":"birthDate","field":{"type":"string","format":"date"}}'
Response
{
"data": {
"type": "string",
"format": "date",
"title": "Birth Date",
"x-widget": "date"
}
}
POST /api/form/validateValidates a form data object against a JSON Schema. Checks required fields, type constraints (minimum, maximum, minLength, maxLength, pattern), and recurses into nested objects.
Request body
{
"schema": {
"type": "object",
"properties": {
"email": { "type": "string", "format": "email", "title": "Email" },
"password": { "type": "string", "minLength": 8, "title": "Password" }
},
"required": ["email", "password"]
},
"data": {
"email": "",
"password": "abc"
}
}
curl -s -X POST http://localhost:9022/api/form/validate \
-H "Content-Type: application/json" \
-d '{
"schema": {
"type": "object",
"properties": {
"email": {"type":"string","format":"email","title":"Email"},
"password": {"type":"string","minLength":8,"title":"Password"}
},
"required": ["email","password"]
},
"data": {"email":"","password":"abc"}
}'
Response — validation failed
{
"valid": false,
"errors": {
"email": "Email is required",
"password": "Minimum 8 characters"
}
}
Response — validation passed
{
"valid": true,
"errors": {}
}
サンドボックス検証が完了し、検出された実行経路は合格しました。
This Express backend / api completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately. Final verified scores after isolated runtime evidence: overall 8.8 and security 9.
Deterministic AVCP artifact review
パイプライン avcp-2026-08-04.1 · SHA-256 bad549cecb4afe5a…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
レビュー日 2026年8月7日
完全なインストールガイドと統合プロンプトは購入後に解放されます。
Automation, Utilities & Developer Tools
無料