Skip to content

Scramjet Automation Pipeline

The core moat of FlightManual is its native integration with the Scramjet data pipeline. Instead of forcing developers to manually write and update Markdown tables every time an API or Operator changes, FlightManual allows you to auto-generate those pages directly from your source code.

Platforms like Mintlify use a “Docs-as-Code” approach, which means your Markdown files live in a Git repository.

However, this is just version control. If a backend engineer changes an API property from a string to a number, someone still has to manually open the Markdown file, find the parameter, and update the text. This leads to severe “documentation drift”.

FlightManual flips this paradigm. By using Scramjet (a unified data processing framework), we pull the actual types directly from the source code.

  1. Source of Truth

    Your backend repository defines input and output schemas using a type validator (like zod).

  2. Extraction

    A build script (scripts/gather-content.mjs) connects to your backend repo, parses the Zod schemas, and extracts the keys, types, and descriptions.

  3. Generation

    The script programmatically writes .mdx files into the src/content/docs/generated/ folder of FlightManual, injecting our premium <ApiField> components.

  4. Rendering

    FlightManual builds the site, presenting a beautiful, 100% accurate documentation page that is impossible to desync from the code.

Instead of manually typing out your API properties, Scramjet reads your actual code:

View Raw Zod Schema
import { z } from "zod";
export const userSchema = z.object({
user_id: z.string().describe("The unique identifier of the user making the request."),
});

When the pipeline runs, it generates MDX code that looks like this:

import ApiField from '@/components/docs/ApiField.astro';
## Input Schema
&lt;ApiField name="user_id" type="string" required&gt;
The unique identifier of the user making the request.
&lt;/ApiField&gt;

When rendered, you get a beautiful, interactive component without ever writing a line of Markdown manually!