PHPackages                             code-orange/jot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. code-orange/jot

ActiveLibrary[API Development](/categories/api)

code-orange/jot
===============

Laravel package that generates RESTful API documentation in Markdown based on PHPDoc.

v2.0(5y ago)79.3k3Apache-2.0PHPPHP &gt;=5.6.4

Since Jul 29Pushed 5y ago3 watchersCompare

[ Source](https://github.com/code-orange/jot)[ Packagist](https://packagist.org/packages/code-orange/jot)[ RSS](/packages/code-orange-jot/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (10)Dependencies (5)Versions (13)Used By (0)

jot
===

[](#jot)

Jot is a Laravel package that generates RESTful API documentation in Markdown based on PHPDoc.

Installation
============

[](#installation)

To install jot with composer:

```
composer require code-orange/jot

```

### Laravel 5.5+

[](#laravel-55)

If you're using Laravel 5.5 or above, the package will automatically register the `Jot` provider.

### Laravel 5.4

[](#laravel-54)

Add `CodeOrange\Jot\JotServiceProvider::class` to the `providers` array in `config/app.php`.

Configuration
=============

[](#configuration)

You can use `php artisan vendor:publish` to publish the jot configuration to your application:

```
php artisan vendor:publish --provider=CodeOrange\\Jot\\JotServiceProvider

```

Then, update `config/jot.php`.

Usage
=====

[](#usage)

Generating documentation
------------------------

[](#generating-documentation)

First, document your controller actions with PHPDoc.

```
class MyController {
	/**
	 * Returns a value
	 *
	 * This method returns a cool value.
	 *
	 * @param mixed $b Some value
	 * @return JsonResponse {
	 *                          "a": 1,
	 *                          "b": "Example"
	 *                      }
	 */
	public function myAction(Request $r) {
		return response()->json([
			'a' => 1,
			'b' => $r->get('b')
		]);
	}
}
```

Then, run `php artisan jot:generate`. Markdown documenting your API will be printed to your console.

```
## Returns a value

This method returns a cool value.

`GET /example`

### Parameters

| Name | Located in | Description | Type |
| ---- | ---------- | ----------- | ---- |
|b|request|Some value|mixed|
|account|path|||

```json
{
    "a": 1,
    "b": "Example"
}
```
```

You can then add this Markdown to whatever you use to publish your docs. That can just be a Markdown file on GitHub, a wiki, or a self-hosted documentation site.

The Markdown is compatible with [lord/slate](https://github.com/lord/slate), which is what we're using at [Odyssey](https://github.com/odysseyattribution/) to publish our documentation.

Checking documentation coverage
-------------------------------

[](#checking-documentation-coverage)

Jot can also check if all of your public API methods are properly documented, for instance as part of your CI test pipeline.

```
php artisan jot:coverage

```

will exit with an error status code if there is a method in your API that is not documented.

Optionally, you can use `--return` to force all methods to have a documented return type/example.

Motivation
==========

[](#motivation)

This project is heavily inspired by [f2m2/apidocs](https://github.com/f2m2/apidocs). While that project generates excellent documentation, I didn't like the idea of a Laravel app hosting its own documentation (something that can be done statically and that probably has much different access patterns).

Jot allows you to separate generation and publication of your API docs.

Read more about building Jot in [this blogpost](https://blog.code-orange.nl/building-jot-904f4672a75).

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 87% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~117 days

Total

12

Last Release

1922d ago

Major Versions

v0.1 → v1.02017-07-29

v1.8 → v2.02021-02-11

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1038428?v=4)[Tim van Dalen](/maintainers/timvdalen)[@timvdalen](https://github.com/timvdalen)

---

Top Contributors

[![timvdalen](https://avatars.githubusercontent.com/u/1038428?v=4)](https://github.com/timvdalen "timvdalen (20 commits)")[![NielsHoiting](https://avatars.githubusercontent.com/u/5745949?v=4)](https://github.com/NielsHoiting "NielsHoiting (2 commits)")[![Luc-Veldhuis](https://avatars.githubusercontent.com/u/8451385?v=4)](https://github.com/Luc-Veldhuis "Luc-Veldhuis (1 commits)")

---

Tags

phpdoclaraveldocumentation

### Embed Badge

![Health badge](/badges/code-orange-jot/health.svg)

```
[![Health](https://phpackages.com/badges/code-orange-jot/health.svg)](https://phpackages.com/packages/code-orange-jot)
```

###  Alternatives

[mpociot/laravel-apidoc-generator

Generate beautiful API documentation from your Laravel application

3.5k3.1M12](/packages/mpociot-laravel-apidoc-generator)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
