Y Combinator S26 · Developer Tools

The end of
npm.

AI-generated code modules from battle-tested specs.
node_modules → Zero dependencies. You own the code.

See how it works ↓
23 developers on the waitlist
2.5M
npm packages
1,000+
avg transitive deps
17,000+
malicious pkgs (2023)
0
Forma dependencies
Click Describe Ship Zero dependencies Battle-tested specs You own the code No more node_modules No more version conflicts No more supply chain attacks RFC standards OWASP checklists 500+ edge cases per spec Click Describe Ship Zero dependencies Battle-tested specs You own the code No more node_modules No more version conflicts No more supply chain attacks RFC standards OWASP checklists 500+ edge cases per spec
npm is a compression algorithm for human brains.

Packages exist because humans can't hold entire implementations in their heads. So we compress: download someone else's code, trust their types, hope their tests cover your edge cases. AI doesn't need this compression. It needs specifications, edge cases, and test suites. Forma gives it exactly that.

🔓

Supply Chain Attacks

event-stream. colors.js. ua-parser-js. node-ipc. One malicious package compromises millions of applications. Every dependency is an attack surface you don't control. Every npm install is an act of blind trust.

🕳️
1,000+

Transitive Dependencies

The average project pulls in over a thousand packages you never asked for. Version conflicts, phantom types, breaking changes at 3am. You're shipping other people's bugs and you don't even know it.

⏱️

Wasted Engineering

Senior architects debugging node_modules instead of designing systems. npm audit floods with noise. FedRAMP audits take weeks per dependency. TypeScript types don't match. Builds break on updates nobody asked for.

$ ls node_modules/ | head -40
├── accepts ├── acorn ├── acorn-jsx ├── ajv ├── ansi-regex ├── ansi-styles ├── anymatch ├── arg ├── array-flatten ├── asap ├── async ├── balanced-match ├── base64-js ├── binary-extensions ├── body-parser ├── brace-expansion ├── braces ├── buffer ├── buffer-from ├── bytes ├── call-bind ├── camelcase ├── chalk ├── colors ├── commander ├── concat-map ├── content-disposition ├── content-type ├── cookie ├── cookie-signature ├── core-js ├── cors ├── cross-spawn ├── debug ├── deep-is ├── define-properties ├── depd ├── destroy ├── event-stream ├── ...and 847 more
Before & After
Same feature. Different universe.
Here's what adding Google OAuth looks like today vs. with Forma.
The Old Way
package.json
1// Step 1: Install 6 packages 2npm install passport passport-google-oauth20 3npm install jsonwebtoken express-session 4npm install @types/passport @types/jsonwebtoken 5 6// Step 2: Hope types align with your project 7// Step 3: Configure passport strategy 8// Step 4: Wire up serialize/deserialize 9// Step 5: Handle callback routes 10// Step 6: Manage session store 11// Step 7: Debug token refresh 12// Step 8: Pray nothing breaks 13 14added 127 packages in 14s 1512 vulnerabilities (3 high, 2 critical)
The Forma Way
src/auth.ts
1// Generated by Forma from spec: auth-oauth2 2// RFC 6749, 6750, 7519 compliant 3// 523 edge cases covered 4 5export class AuthService { 6 private config: AuthConfig; 7 8 async authenticateWithGoogle( 9 code: string, 10 state: string 11 ): Promise<AuthResult> { 12 // PKCE verification, nonce validation 13 // Token exchange with retry logic 14 // JWT signing with RS256 15 // ... 1,847 lines, fully typed 16 } 17}
One command. Full implementation.
forma — ~/my-saas-app
# Old way: install packages, cross fingers
$ npm install passport passport-google-oauth20 jsonwebtoken express-session
added 847 packages, 12 vulnerabilities (3 high)

# New way: describe what you need
$ forma generate "auth with Google and GitHub, JWT tokens, session management"

◐ Loading spec: auth-oauth2 (RFC 6749, RFC 6750)
◐ Loading spec: auth-jwt (RFC 7519, RFC 7515)
◐ Loading spec: session-management (OWASP Session Guidelines)
◐ Analyzing project context... TypeScript 5.3, Express 4, PostgreSQL
◐ Matching your types: User, Session, AuthConfig...
◐ Generating from 523 edge cases, 47 security rules...

✓ Generated: src/auth.ts (1,847 lines)
✓ Generated: src/auth.test.ts (312 tests)
✓ Tests passed: 312/312
✓ Security audit: PASSED (OWASP Top 10 compliant)
✓ Dependencies: 0
✓ You own this code. No lock-in. Ship it.
Click any element. Describe what it does.
No file navigation. No "which button?" ambiguity. You see your app visually, click any component, and describe the behavior you want. Context flows automatically — Project → Page → Block → Element.
localhost:3000/dashboard
Dashboard   Users   Settings

User Analytics

Monthly active users, retention metrics

View Report

Invite Team Member

Send invitation with role assignment

Send Invite →

Billing

Plan usage, invoices, payment method

Manage Billing
Forma Context
project: my-saas-app
page: /dashboard
block: InviteTeamCard
element: SendInviteButton
types: User, TeamRole, Invitation
stack: React, TypeScript, Resend
"When clicked, open a modal with email input and role dropdown (Admin, Member, Viewer). Validate email, send invitation via Resend API, store in DB with expiry, show success toast"
Generated: InviteModal.tsx
Generated: useInvitation.ts
Tests: 48/48 passed
Dependencies: 0
How It Works
Three layers. Zero magic.
Every piece is transparent. Every output is auditable. You get code you can read, test, and own.

Describe

Tell Forma what you need in plain English. Use the CLI or click any element in the visual interface. Your project's types, patterns, and coding style are already understood — context is automatic.

forma generate "auth with Google"

Generate

Forma retrieves battle-tested specs — RFC standards, 500+ edge cases per feature, OWASP security checklists, lessons from CVEs — and generates custom code tailored to your exact stack. Not a template. Not a copy-paste. Custom.

Ship

One file. Zero dependencies. Every function tested against comprehensive suites. You own the code outright — no runtime dependency on Forma. Export it, fork it, modify it. It's yours forever.

312/312 tests passed ✓
Spec Library
Battle-tested. Not boilerplate.
Each spec is a curated knowledge package: RFC standards, real-world edge cases from CVEs and Stack Overflow, security checklists, provider quirks, and comprehensive test suites. The specs are the moat.
🔐

Auth — OAuth 2.0

Google, GitHub, Microsoft. PKCE, nonce, token refresh, session management.

RFC 6749, 6750 523 edge cases
🔑

Auth — JWT

RS256/ES256 signing, claims validation, refresh rotation, blacklisting.

RFC 7519, 7515 312 tests
📧

Email — Transactional

Template rendering, retry logic, bounce handling, DKIM/SPF validation.

RFC 5321 287 edge cases

Form Validation

Schema-driven, async validators, i18n error messages, accessibility.

WCAG 2.1 410 edge cases
💳

Payments — Stripe

Checkout, subscriptions, webhooks, idempotency, SCA/3DS handling.

PCI DSS 380 edge cases
🌐

API Client

REST/GraphQL, retry with backoff, circuit breaker, request deduplication.

RFC 7231 340+ edge cases
📊

Data Table

Virtual scrolling, sorting, filtering, pagination, CSV export, keyboard nav.

WCAG 2.1 290+ edge cases
📤

File Upload

Chunked upload, resumable, presigned URLs, virus scanning, progress tracking.

RFC 7578 260+ edge cases

5 specs at launch → 20 by end of Q2 → 50+ by end of year. Community specs coming soon.

Why Forma
npm vs. Copilot vs. Forma
Every AI tool assists with file editing. Forma replaces the paradigm entirely.
npm / Packages AI Assistants Forma
Dependencies 100s–1000s Still uses npm Zero. Single file.
Security Trust every maintainer Generates vulnerable code Audited specs, OWASP
Types @types maybe exists Generic / hallucinates Native to your project
Edge Cases Varies by pkg quality Misses most of them 500+ per spec, curated
Testing You write your own Generates basic tests 300+ tests, always
Context None File-level at best Full project hierarchy
Ownership Locked to updates You own it You own it. No lock-in.
FedRAMP Weeks per dependency Not auditable Single file, full provenance
Under the Hood
The architecture.
Three layers, each independently valuable. The specs are the moat. The generation engine is the product. The visual interface is the magic.
Layer 01

AI Node Registry

A database of battle-tested specifications — not code. Each spec contains RFC standards, 500+ edge cases harvested from CVEs and Stack Overflow, security checklists (OWASP), provider-specific quirks, and comprehensive test suites. This is the knowledge that makes correct code generation possible.
PostgreSQL Qdrant Embeddings Versioned Specs
Layer 02

Generation Engine

RAG-powered code generation. Retrieves relevant spec chunks, combines with your project context (types, patterns, coding style), generates custom implementations via Claude/GPT-4, and validates against test suites. Every output is deterministic given the same inputs.
Rust tree-sitter Claude API RAG Pipeline
Layer 03

Visual Interface

Inline Contextual Prompting — the UX innovation. Developers see their app visually, not as files. Click any element, describe behavior in natural language. AI receives hierarchical context automatically: Project → Page → Block → Element. No ambiguity. No file navigation.
React VS Code Extension Browser DevTools Context Engine
Security & Compliance
Built for teams who can't afford to trust npm.
Our founder built FedRAMP-compliant systems for federal customers. Forma is designed from the ground up for environments where every line of code must be auditable.
🔒

Zero Supply Chain Risk

No transitive dependencies means no attack surface you don't control. Every line of generated code is traceable back to audited specifications. No blind trust in anonymous maintainers.

📋

Full Provenance

Every generated file includes metadata: which specs were used, which edge cases were covered, which RFC standards were followed. Your compliance team can audit a single file instead of 1,000 packages.

🛡️

OWASP Built-In

Security specs include OWASP Top 10 rules, common CVE patterns, and injection prevention. Generated code is secure by default — not as an afterthought. Every auth flow handles CSRF, XSS, and PKCE.

🏛️

FedRAMP-Ready

Designed by an engineer who implemented AC-2, AC-7, and AC-8 compliance controls for federal customers. Enterprise tier includes self-hosted deployment and compliance documentation.

The Builder
Built by someone who lived the pain.
V

Victor Villacis

Founder & CEO
West Orange, NJ → SF

10+ years of software engineering across Amazon AWS, cybersecurity startups, and bioinformatics platforms. At Corelight, I led the architectural refactor of a React/TypeScript application — 37 tickets, 736 files, 82% faster build times — while implementing FedRAMP security controls (AC-2, AC-7, AC-8) for federal customers. I've audited every dependency path, debugged every TypeScript conflict, and watched senior architects waste weeks on problems that shouldn't exist.

I also teach high school students programming. Watching beginners struggle with npm — a tool designed for experts — confirmed what I already knew: the abstraction layer is broken. AI can replace it.

Amazon Web Services
Software Development Engineer
Audit automation platforms
Corelight
Engineering Manager → Frontend Lead
FedRAMP, 736-file refactor
Sampled
Lead Full Stack Engineer
100TB genome detection platform
Inkeep (current)
Staff Engineer
AI agent platforms
Pricing
Start free. Scale when ready.
Every plan includes zero-dependency output, full code ownership, and battle-tested specs.

Free

$0

Explore Forma on personal projects.

  • 10 generations / month
  • Core spec library (5 specs)
  • CLI access
  • Community support
  • Full code ownership

Enterprise

Custom

Self-hosted. Compliance-ready. Your specs.

  • Self-hosted deployment
  • Custom spec creation
  • FedRAMP compliance pack
  • SSO / SAML integration
  • Dedicated support + SLA
FAQ
Questions you're probably asking.

How is this different from GitHub Copilot?

Copilot suggests code line-by-line from general training data. Forma generates complete, tested implementations from curated specifications with 500+ edge cases. Copilot helps you write code faster; Forma replaces the need to write it at all.

What if the generated code has bugs?

Every generated file is validated against comprehensive test suites (300+ tests per spec). The specs are built from real-world edge cases, CVE lessons, and RFC standards. If a bug is found, it's added to the spec — making every future generation better.

Can I modify the generated code?

Absolutely. You own the code outright. It's a regular TypeScript file in your project — read it, modify it, extend it. There's no runtime dependency on Forma. If you cancel your subscription, your code keeps working forever.

What languages/frameworks do you support?

Launching with TypeScript + React/Express/Next.js. Python, Go, and Rust support planned for Q3 2026. The spec format is language-agnostic — the generation engine adapts to your stack.

How do you handle updates and security patches?

When a spec is updated (new CVE, new RFC amendment, new edge case), you can re-generate affected code with a single command. Forma diffs the changes and shows you exactly what changed and why.

Is this just for new projects?

No. Forma analyzes your existing project's types, patterns, and style. You can gradually replace npm packages one-by-one. Run forma migrate passport and we'll generate a zero-dependency replacement that matches your existing interfaces.

What about packages with native bindings?

Forma focuses on the 90% of packages that are pure JavaScript/TypeScript logic: auth, validation, API clients, data processing, UI components. Native bindings (sharp, bcrypt) are out of scope — use the npm package.

Can I contribute specs?

Community spec contributions are planned for Q3 2026. Think of it like a package registry, but instead of code, you're publishing battle-tested knowledge. Spec authors will be able to earn revenue from premium spec usage.

Stop installing.
Start generating.

Join the waitlist. Be first to experience the end of dependency hell.

23 developers already waiting · Launching Q2 2026