docs that write themselves.
Inhale a raw codebase. Exhale a clean, navigable documentation site — before the sprint review starts.
See it work on your code.
Paste any function below. DocForge parses intent, infers parameters, and generates structured reference docs in under a second.
Generated docs will appear here
Click "Generate Docs" to see DocForge in action
No credit card · No config files · 2-minute setup
Every language your team
actually ships in.
DocForge parses ASTs, not just comments. It generates docs even when your code has no JSDoc, no docstrings, no nothing.
// No docs — just vibes
export async function chargeCard(
customerId: string,
amount: number,
currency: string
) {
const charge = await stripe.charges.create({
amount,
currency,
customer: customerId,
});
return charge.id;
}## chargeCard(customerId, amount, currency) Creates a Stripe charge against an existing customer. | Param | Type | Description | |-------|------|-------------| | customerId | string | Stripe customer ID (cus_...) | | amount | number | Amount in smallest currency unit | | currency | string | ISO 4217 currency code (e.g. "usd") | **Returns:** `Promise<string>` — The Stripe charge ID **Throws:** `StripeError` if customer not found or card declined
def calculate_mrr(subscriptions):
active = [s for s in subscriptions
if s['status'] == 'active']
return sum(s['amount'] for s in active) / 100## calculate_mrr(subscriptions) Calculates Monthly Recurring Revenue from a list of subscription objects. **Parameters:** - `subscriptions` (list[dict]): Subscription records with status and amount fields **Returns:** `float` — Total MRR in dollars (divides cents by 100) **Filters** only subscriptions with status == "active"
func (r *UserRepo) FindByEmail(
ctx context.Context, email string,
) (*User, error) {
var u User
err := r.db.QueryRowContext(ctx,
"SELECT * FROM users WHERE email=$1",
email,
).Scan(&u.ID, &u.Email, &u.Role)
return &u, err
}## (UserRepo) FindByEmail Queries the database for a user matching the given email address. **Receiver:** `*UserRepo` **Parameters:** - `ctx` (context.Context): Request context for cancellation - `email` (string): Email address to look up **Returns:** `(*User, error)` — User pointer or nil with error on miss
pub fn parse_config(path: &Path)
-> Result<Config, ConfigError>
{
let contents = fs::read_to_string(path)?;
let config: Config = toml::from_str(&contents)
.map_err(ConfigError::Parse)?;
Ok(config)
}## parse_config(path) Reads and deserializes a TOML configuration file from disk. **Parameters:** - `path` (&Path): Filesystem path to the .toml config file **Returns:** `Result<Config, ConfigError>` - Ok(Config) on successful parse - Err(ConfigError::Io) on file read failure - Err(ConfigError::Parse) on malformed TOML
def send_welcome_email(user)
UserMailer
.with(user: user)
.welcome_email
.deliver_later
end## send_welcome_email(user) Enqueues a welcome email for asynchronous delivery via ActiveJob. **Parameters:** - `user` (User): ActiveRecord User instance to greet **Side effects:** Queues a background job via `deliver_later` **Mailer:** UserMailer#welcome_email
Built for teams that
ship fast.
Every feature exists to close the gap between your code and your docs — permanently.
Version-aware diffs
DocForge tracks API changes across releases. Breaking changes surface as red diffs. Non-breaking additions stay green. Your changelog writes itself.
Full-text search
Every generated doc site ships with a search index. Type a function name, a param type, or a description fragment — results in <50ms.
One-command theming
Swap between 12 built-in themes or supply your brand tokens. Dark, light, high-contrast — all generated at build time, no runtime CSS.
GitHub sync
Push to main, docs update in 8 seconds. DocForge hooks into your CI pipeline and rebuilds only the pages affected by the diff.
OpenAPI export
Every REST endpoint DocForge documents exports to a valid OpenAPI 3.1 spec. Drop it into Postman, Swagger UI, or your SDK generator.
Monorepo ready
Point DocForge at a Turborepo, Nx, or Lerna workspace. It resolves package boundaries, cross-references types, and builds one unified site.
Shipping docs at
“We had 340 undocumented endpoints across 12 microservices. DocForge processed the entire repo in 6 minutes and generated a unified docs site that our DevRel team actually uses. Confluence is officially dead to us.”
“Our OSS library had a README that matched v1.8 while we were shipping v3.2. New contributors kept filing issues that were just docs gaps. DocForge runs on every release tag — the README and API reference are always in sync now.”
“I was spending 4 hours per sprint writing reference docs. Now I spend 0. The generated output is better than what I was writing manually — the parameter tables are accurate, the examples actually run, and the search works.”
today.
Point DocForge at your repo. Get a production-ready docs site in the time it takes to make coffee.
Free tier includes 3 repos · No credit card · GitHub OAuth