Aarunya AppsAarunya Apps

How it works

  1. 1

    Paste your JSON

    Drop in any JSON — an API response, webhook payload, database row, or config file. Use the presets to get started with a Stripe, GitHub, or OpenAI example.

  2. 2

    Get TypeScript, Zod, and Valibot

    Three outputs generated simultaneously: a TypeScript interface for your types, a Zod schema for runtime validation, and a Valibot schema as a lightweight alternative.

  3. 3

    Copy and paste into your project

    All processing runs in your browser. Copy the output for the schema library your project uses and paste it directly into your codebase.

Sample JSON

JSON Input

🛡️ Verify zero uploads — open DevTools → Network tab

Open your browser's DevTools (F12), go to the Network tab, and use this tool. You will see zero outbound requests — all processing runs inside your browser sandbox via WebAssembly or pure JavaScript. Nothing you paste or upload is ever sent anywhere.

Use cases

Typing API responses

Paste the response from a third-party API and get a fully typed TypeScript interface in seconds — no more guessing field names or types.

Adding runtime validation

Generate a Zod or Valibot schema from the same JSON to validate API responses at runtime, catching unexpected shapes before they cause bugs.

Onboarding to an unfamiliar API

Drop in a sample response from Stripe, GitHub, Shopify, or any other API and immediately understand the data structure through generated types.

Frequently Asked Questions

What does this tool generate from my JSON?

Three things simultaneously: (1) TypeScript interfaces — named exported interfaces for each nested object, (2) Zod schemas — z.object() definitions for runtime type validation, and (3) Valibot schemas — a lighter-weight alternative to Zod with a similar API.

How does it handle nested objects?

Nested objects get their own named interface derived from the field key. For example, a 'profile' field containing { displayName, avatarUrl } generates a 'Profile' interface separately, then references it from the parent interface.

What happens with null values?

Fields that are null in the sample JSON are typed as 'type | null' in TypeScript, '.nullable()' in Zod, and 'v.nullable()' in Valibot. Since we only have one sample, we can't detect optional fields — but you can add '?' manually for fields you know can be missing.

Does this send my JSON anywhere?

No. All type inference and code generation runs entirely in your browser. Your JSON data never leaves your device.

Zod vs Valibot — which should I use?

Both are excellent. Zod is more established with a larger ecosystem and better error messages. Valibot is significantly smaller in bundle size (~10KB vs ~50KB gzipped) — important for frontend/edge runtimes. If bundle size matters, use Valibot. Otherwise, Zod's ecosystem is richer.

Want unlimited access + saved history?

Pro is $9/month · 30-day money-back guarantee.

Related Tools