SpecForge featured image

SpecForge

Published on April 30, 2026

Front-EndNextOpen SourceToolingTypescriptWeekend Hack

Visual OpenAPI Spec Curation in the Browser

A web app for importing, curating, and exporting OpenAPI specifications without leaving your browser. Filter operations by tag, path, or HTTP method, and export a fully-resolved spec in seconds.


Overview

SpecForge is the visual companion to Spec Shaver, my CLI for reducing oversized OpenAPI specs. Where Spec Shaver shines for repeatable, scriptable workflows, SpecForge handles the exploratory side of the same problem: when you have a spec in front of you and you need to see it, click around, and decide what stays and what goes.

Drop in a spec from a URL, a file upload, or a paste. Filter the operations down to what you actually want. Export the result as JSON or YAML, with all $ref dependencies resolved so the output is still a valid OpenAPI spec. No account, no signup, no upload to a server. The spec stays in your browser.

Key Features

Three Import Methods

Get your spec into SpecForge however is easiest:

  • Fetch from a URL (great for public API docs)
  • Upload a JSON or YAML file from your computer
  • Paste raw JSON or YAML directly into the page

Precision Curation

Pick exactly what you need with multiple filtering dimensions:

  • Filter by tag for grouping operations by feature area
  • Filter by path for keeping specific resources
  • Filter by HTTP method when you only need reads, writes, or a specific verb
  • Combine filters for surgical control over the output

Valid Exports, Every Time

Naively deleting endpoints breaks most specs because schemas reference each other through $ref. SpecForge handles this for you:

  • Recursive $ref resolution at export time
  • Drops unused schema definitions automatically
  • Outputs valid OpenAPI 3.0 or 3.1
  • Choose JSON or YAML as your export format

Browser-Only Processing

Your spec never leaves your machine:

  • All parsing, filtering, and exporting happens client-side
  • No account, no signup, no server upload
  • Safe for internal or unreleased API specs
  • Works offline once the page is loaded

Use Cases

OpenAI Custom GPT Actions

The original itch. OpenAI caps Custom GPT actions at 1MB and 30 operations, but most real-world API specs blow past both limits. SpecForge gives you a visual way to pick the operations that matter and export a spec that fits the constraints.

Exploratory Curation

When you don’t know up front what you want to keep. Load the spec, browse the operations grouped by tag or path, click through what looks relevant, and figure out the right set as you go.

Role-Specific Documentation

Generate slimmer versions of an internal API spec for different audiences. Public-facing endpoints for partners, admin endpoints for internal teams, read-only operations for analytics integrations.

Lightweight Sharing

Send someone a curated spec without making them install anything. They open the page, paste the original, apply the same filters, and export their own copy.

How It Fits With Spec Shaver

SpecForge and Spec Shaver solve the same underlying problem from two different angles:

  • SpecForge is the exploratory pass. Visual, in the browser, no setup. Best when you don’t yet know which operations matter.
  • Spec Shaver is the repeatable pass. CLI, scriptable, lives in your repo. Best when you know what you want and need it baked into a build pipeline.

The natural workflow is to use SpecForge first to figure out which tags and paths actually matter, then port those choices into a .spec-shaver.json for the projects that need it on every CI run.

Try It

SpecForge lives at specforge.griffen.codes. Open it, paste a spec, curate it, export it. No account required.

Technology Stack

  • Framework: Next.js
  • Language: TypeScript
  • Hosting: Vercel
  • Spec Standards: OpenAPI 3.0 and 3.1
  • Processing: 100% client-side, no backend

Links

Like what you saw?

There's more where that came from.

Browse all projects
Fin.

griffen.codes

made with 💖 and

© 2026all rights reservedupdated 11 seconds ago