What is Vishwakarma

Vishwakarma is an architecture expression language. You describe an enterprise system — its domain model, the rules that govern it, the flows that move through it, and the systems those compose into — and the compiler emits the running system from that description: the database schema, the API server, the migrations, and the typed clients. You express the architecture; you do not hand-wire it.

flowchart LR
  D["your description<br/>(.vishwakarma)"] --> C{{"the compiler"}}
  C --> S["database schema<br/>+ migrations"]
  C --> A["API server<br/>authorization · validation"]
  C --> T["typed clients<br/>(web + CLI)"]

The description is not a diagram that sits beside the code and slowly falls out of date. The description is the source the system is generated from, so the drawing and the running system cannot drift apart. Change the design and every layer beneath it is re-derived to match.

Declarative, and generative

Two properties define the language.

It is declarative. You state what is true — this entity has these fields, this command is allowed only when this rule holds, this flow visits these steps in this order. You never write the step-by-step procedure that carries it out.

It is generative. A compiler reads that statement of intent and writes the working system. It also checks the design the way an ordinary compiler checks types: break a rule of the architecture and the system does not build. A valid description is guaranteed to lower to a system that compiles, migrates, and serves.

Deliberately not a programming language

Vishwakarma has no loops, no mutable variables, and no algorithms. When a system genuinely needs raw computation — generating cryptographic entropy, hashing a password, calling an external service — the language does not absorb it. Instead you declare a typed seam to hand-written code and reference it by name. The computation lives outside the language, on purpose.

That refusal is the point. A language you would reach to for for loops and arithmetic would tempt you back into wiring the system by hand, which is exactly what generation removes. Vishwakarma keeps you describing intent and generates everything that intent implies. For why this is the right boundary — and where the seam sits — see Why Vishwakarma is not a programming language.

You write the intent. The platform writes and runs the system that matches it.