> ## Documentation Index
> Fetch the complete documentation index at: https://geni.masiting.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Geni — Static-Analysis OpenAPI 3.1.0 Docs for Laravel

> Geni generates OpenAPI 3.1.0 documentation for your Laravel app via static analysis — no database, no app boot, no duplicated annotations.

Geni inspects your Laravel source code using abstract syntax tree (AST) traversal to produce a fully compliant OpenAPI 3.1.0 specification — reading your migrations for schema types, your Form Requests for validation rules, and your Eloquent API Resources for response shapes. No database connection is required, no application kernel is booted, and no verbose docblock annotations need to be written or maintained.

<CardGroup cols={2}>
  <Card title="Introduction" icon="book-open" href="/introduction">
    Understand what Geni is, the problem it solves, and every key capability available to you.
  </Card>

  <Card title="Installation" icon="box-archive" href="/installation">
    Add Geni to your Laravel project via Composer and publish the configuration file in minutes.
  </Card>

  <Card title="Quickstart" icon="bolt" href="/quickstart">
    Browse your live docs portal, export an OpenAPI file, and wire up CI drift detection fast.
  </Card>

  <Card title="CLI Reference" icon="terminal" href="/reference/cli">
    Full reference for every Artisan command Geni provides, including flags and exit codes.
  </Card>
</CardGroup>

## Get up and running

Follow these four steps to go from a fresh Laravel project to fully documented, CI-verified API docs.

<Steps>
  <Step title="Install via Composer">
    Add Geni to your project dependencies using Composer:

    ```bash theme={null}
    composer require masitings/geni-api
    ```
  </Step>

  <Step title="Publish the configuration file">
    Publish `config/geni.php` to your project so you can customize route prefixes, documentation titles, security schemes, and multi-version APIs:

    ```bash theme={null}
    php artisan vendor:publish --tag=geni-config
    ```
  </Step>

  <Step title="Serve the documentation portal">
    Start your local development server and open the interactive docs portal in your browser:

    ```bash theme={null}
    php artisan serve
    ```

    Then visit `http://localhost:8000/docs/api` to browse your generated API documentation.
  </Step>

  <Step title="Export the OpenAPI specification">
    Write a static OpenAPI 3.1.0 JSON file to your project root or any path you choose:

    ```bash theme={null}
    php artisan geni:export --path=openapi.json
    ```

    Commit this file and use `php artisan geni:check --path=openapi.json` in CI to catch drift automatically.
  </Step>
</Steps>

<Tip>
  Geni never boots your Laravel kernel and never opens a database connection. Every schema, parameter, and response type is inferred entirely from your source code, making it safe to run in locked-down CI environments with no services attached.
</Tip>
