Penling penguin markPenling
Vibe coding is fast · Specs are deliberate · Deliberate is fast

From experimenting with AI to engineering with it.

Penling is the spec-driven workspace where teams move beyond ad-hoc AI use — defining work as specifications, coordinating the build, and keeping the reasoning attached to every line that ships.

No credit card·14-day free trial·SOC 2 in progress
In progressBUILD-019
19 / 19 passing
Write automated tests to verify page structure
CheckEvidence
Page has exactly one h1 elementexpect(page.locator('h1')).toHaveCount(1)
Submit button is inside the formexpect(submitBtn).toBeWithin(formEl)
All inputs have accessible labelstest('aria-label', () => checkLabels(inputs))
Layout is stable at 375px viewporttest('mobile', () => viewport(375).check())
The problem with shipping AI code

Code ships in hours. Reasoning fades in days.

Tickets get vaguer. AI fills the gaps.

When the AI "figures it out," tickets stop saying what the work actually is. The reasoning lives in one developer's head - until they leave.

Drift

The code shipped. The reasoning didn't.

A PR lands. Six months later, nobody remembers what the AI was asked to build, what it decided along the way, or why the code looks like this.

Context

Designers and PMs are out of the loop.

Spec-driven development only works as a team practice. When specs live in a CLI on one laptop, the rest of the team can't shape the work - they can only react to it.

Coordination
How work flows through Penling

A hierarchy that structures the work the way it actually ships.

Every line of code traces back through Build → Plan → Focus area → Goal. You always know what something is for, who shaped it, and why it looks the way it does.

TierDescriptionTypical scope
01
GoalMilestone

A named milestone for the project. Goals hold focus areas and exist to break the work into shippable parts.

3–7 per project
02
Focus areaSpec

The work surface, with a definition, the results expected, the conditions that must hold, and the boundaries to stay inside. This is the brief the agent gets handed.

2–5 per goal
03
PlanStrategy

An LLM-drafted implementation plan a human can shape, edit, and publish for build. One focus area can have multiple plans across its lifecycle.

AI-drafted, human-published
04
BuildExecution

Where an MCP-compatible agent and a human work together. Every event - commit, test run, clarification, decision - streams back into Penling. Ends in a merged PR.

Watch live via the Penling API
Three pillars

What spec-driven development looks like when the whole team is in it.

Specs are a team artifact. Penling is where the whole team works from one.

Pillar 01 · Specified

Every line of AI code traces back to a spec the team wrote.

Specs in Penling carry definitions, expected results, conditions, and boundaries. The AI builds against them. When the spec changes, the change is on the record - not lost in a Slack thread.

Goals become focus areas. Focus areas become the brief the agent executes against. The whole team writes the spec before a single line of code is generated.

  • Goals become focus areas. Focus areas become specs.
  • Specs are written by the team, not just the engineer at the terminal.
  • Plans are drafted, reviewed, and refined before any code is written.
In progressBUILD-019
19 / 19 passing
Write automated tests to verify page structure
CheckEvidence
Page has exactly one h1 elementexpect(page.locator('h1')).toHaveCount(1)
Submit button is inside the formexpect(submitBtn).toBeWithin(formEl)
All inputs have accessible labelstest('aria-label', () => checkLabels(inputs))
Layout is stable at 375px viewporttest('mobile', () => viewport(375).check())
Pillar 02 · Shared

The whole team works from one source of truth.

Designers shape expected results. PMs define conditions. Leads review plans. Engineers drive the build. Everyone is looking at the same artifact at the same time.

When the spec lives in a shared workspace instead of a CLI on one laptop, the team's collective intelligence gets into the work - not just the engineer who happened to be at the keyboard.

  • Multi-role workspace, not a single-developer CLI.
  • Every decision, change, and clarification is captured as it happens.
  • Exports to CSV, JSON, or your team's audit system when you need it.
CompleteBUILD-042
Auth middleware refactor
AI
Penling agentAI
Committed auth middleware refactor
src/middleware/auth.ts - 3 files changed
14:02commit
PJ
Paul J.
Approved plan revision
Changed scope: exclude session refresh from this build
14:09decision
AI
Penling agentAI
All 7 checks passing
Spec: auth middleware handles expired tokens correctly
14:11verified
PJ
Paul J.
Merged PR #42
feat: auth middleware - spec-verified, 7/7 checks
14:18
Pillar 03 · Traceable

Months from now, you'll still know why the code is the way it is.

Every spec, plan, change, and clarification is linked to the PR that shipped it. When someone asks "why did we build it like this?", the answer is one click away.

The PR isn't the end of the trace - it's the merge point of a trace that started at the goal. Onboarding a new team member means handing them the story, not just the codebase.

  • Full evolutionary history from goal to merged PR.
  • Clarifications and decisions are timestamped and immutable.
  • Onboarding new team members means handing them the story, not the codebase.
Clarification needed
Build · Plan FA-003 v2
AIPenling agentAI

The spec says the form should submit on Enter, but the existing keyboard handler intercepts Enter for another action. Should I override it, or add a modifier key?

Suggested

Override the existing handler and document the decision in the build log.

PJPaul J.

Override it. The old handler is a workaround we meant to remove. Add a comment and log the decision.

Agent waited · 24 minDecision recorded
A small manifesto

We don't think AI should write code faster. We think it should write code on purpose.

Every other tool in this space races to remove humans from the loop. Penling is the opposite: a tool that turns AI output into something a human, an auditor, and a future engineer can all read and understand.

We built it because we got tired of shipping AI-written code we couldn't explain. We hope you build with it for the same reason.

Penling

Stop vibing. Start specifying.

Try Penling free for 14 days. Bring a goal, define a spec, and ship something your whole team can explain by Friday.

Try the spec workflowSee pricing