Skip to content

FormSpec vs Vercel

FormSpec is a spec-first ecosystem for building business applications. Vercel is a cloud platform for frontend deployment, centered around Next.js and the v0 AI codegen tool.

These two projects operate in fundamentally different domains — FormSpec targets backend-heavy business applications (ERP, POS, inventory, billing), while Vercel targets frontend and general web application deployment. This comparison exists because both address "building apps fast" — but from opposite directions.


1. Overview

FormSpec

A complete, spec-first ecosystem for building business applications (multi-user transactional systems with domain rules). YAML manifests are the single source of truth for APIs, admin panel, frontend, documentation, state machines, permissions, and events. Built in Go, with business logic via Go (native), Starlark (sandboxed scripting), or any language (sidecar pattern).

Vercel

A cloud platform for frontend deployment and hosting, centered on Next.js (React framework). Offers edge functions, serverless compute, static hosting, and the v0 AI code generation tool. Acquired the v0.dev AI coding platform to enable generating full-stack applications from natural language prompts.


2. Philosophy

FormSpecVercel
How to buildWrite YAML spec → framework generates API, UI, docs, types. Contract before implementation.Write code (or prompt v0) → deploy to edge. Code-first, AI-assisted.
Source of truthThe YAML manifest. Structural guarantees are enforced by the framework.The code in your repository. No framework-level guarantees beyond what you write.
Target userGo developers building business software (ERP, POS, inventory, clinic, school, HRM).Frontend and full-stack developers, especially those using Next.js and React.
"App" meansA multi-user transactional system with domain rules, state machines, and permissions.A web application — static site, e-commerce, SaaS dashboard, blog, or API.

3. Architecture

FormSpec:                              Vercel:
┌──────────────────────┐           ┌──────────────────────┐
│  Control Plane        │           │  Edge Network (300+) │
│  (formspec-control)      │           │                      │
│  Policy · Signing     │           │  Static assets       │
│  Audit · Governance   │           │  Edge Functions      │
└──────────┬───────────┘           │  Serverless Fns      │
           │ mTLS                  │  ISR / SSR           │
┌──────────┴───────────┐           └──────────┬───────────┘
│  Resource Plane       │                      │
│  (formspec-resource)     │              ┌───────┴───────┐
│                      │              │  Your Code    │
│  Entity Engine       │              │  (Next.js)    │
│  State Machine       │              └───────────────┘
│  Events · Actions    │
│  CRUD API · Admin    │
└──────────────────────┘

Key differences:

  • FormSpec has two processes (Control + Resource) even in development — governance is built-in from day one.
  • Vercel has 300+ edge locations for low-latency static/edge delivery, but all dynamic logic (serverless functions, database queries) runs in a centralized region.
  • FormSpec is self-hostable (single binary, Docker, or FormSpec Cloud). Vercel is cloud-only.

4. Feature Comparison

DimensionFormSpecVercel
ParadigmSpec-first, declarativeCode-first (or AI-prompted), deploy-centric
Backend languageGo (native) + Starlark (script) + sidecar (any language)JavaScript / TypeScript (serverless, edge functions)
Frontend approachManifest-driven renderer (YAML → React SPA)Next.js (React Server Components, App Router, SSR, ISR)
State Machine✅ Built-in — define states, transitions, guards in YAML❌ Not available — use XState or build manually
Idempotency✅ Enforced by framework (Idempotency-Key header)❌ Must be implemented manually
Outbox / Reliable Events✅ Built-in at-least-once delivery via outbox table❌ Not available — use queues (RabbitMQ, AWS SQS) manually
Multi-tenancy✅ Workspace model — automatic tenant isolation, apps are tenancy-blind❌ Not available — implement with Clerk, Auth0, or manual logic
Permission Model✅ Declarative required_permission + uses per action❌ DIY — NextAuth middleware, RBAC library, or manual
Governance / Policy✅ Control Plane with OPA/Rego — deployment policy, approval, signing❌ Not available
Artifact Signing✅ Ed25519 signing for all module releases❌ Not available
Audit Trail✅ Write-once, immutable audit log❌ DIY — use external audit service
Database Abstractionctx.db — raw SQL, module-scoped, tenant-isolatedPrisma / Drizzle / raw — you choose and manage
Scripting / Hot ReloadStarlark (script_ref) — editable from admin panel, versioned, rollback❌ Not available (code changes require redeploy)
Polyglot Logic✅ Sidecar container (PHP, Python, Node, Java) via Unix socket❌ JavaScript / TypeScript only
Global LatencyVia global proxy (Cloudflare, AWS Global Accelerator) — network-layer optimization300+ edge locations + Edge Functions — compute-layer optimization
Preview DeploymentsManual via formspec apply GitOps✅ Automatic per-PR staging + database branching
Ecosystem / MarketplaceModule registry with pricing models (free, one-time, subscription, per-seat, per-call)Vercel Templates + Integrations (marketplace of 3rd-party services)
HostingSelf-host (single binary, Docker, K8s) + FormSpec Cloud (managed)Cloud-only (Vercel platform)
Open Source✅ FSL (source available, auto-converts to Apache 2.0 after 2 years). Spec is CC0.❌ Closed source platform (Next.js is MIT)
Learning CurveMedium — YAML, Go, Starlark conceptsLow — if you know React/Next.js

5. When to Choose Which

Choose FormSpec when:

  • You are building a business application with domain rules, state machines, and multi-user workflows (ERP, POS, inventory, billing, clinic/school management).
  • You need enterprise patterns by default — idempotency, outbox, distributed locking, tenant isolation — without researching and implementing each one.
  • Governance matters — you need deployment policies, artifact signing, immutable audit trails, and approval workflows.
  • You want self-hosted or air-gapped deployment (government, military, banking).
  • You prefer Go performance for backend logic but want the option to use other languages via sidecar.

Choose Vercel when:

  • You are building a public-facing website, e-commerce store, blog, or marketing site.
  • You want instant preview deployments for every pull request.
  • You need global edge delivery for static assets and SSR with minimal latency.
  • You are deeply invested in the React / Next.js ecosystem.
  • Your application is read-heavy or stateless — edge functions and CDN caching are sufficient.
  • You want zero-ops deploymentgit push and it's live.

6. Conclusion

FormSpec and Vercel are not direct competitors. They solve different problems:

This is a FormSpec appThis is a Vercel app
Multi-branch POS systemMarketing website
Inventory managementDocumentation site
Billing/invoicing systemE-commerce storefront
HRM / payroll systemSaaS landing page + blog
Healthcare managementAPI playground / demo
School management systemPortfolio / personal site

Vercel is unmatched for frontend DX, preview deployments, and global CDN. FormSpec is unmatched for business application structure, enterprise patterns, and governance. A forward-looking architecture could use FormSpec as the backend (API + business logic + admin panel) and Vercel for the customer-facing frontend — the best of both worlds.

The real competitor to FormSpec is not Vercel — it is building business applications from scratch without a framework, which is what most teams still do today.

Standar terbuka (CC0) dengan implementasi referensi.