PHPackages                             sowl/laravel-doctrine-jsonapi-skeleton - 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. sowl/laravel-doctrine-jsonapi-skeleton

ActiveProject[API Development](/categories/api)

sowl/laravel-doctrine-jsonapi-skeleton
======================================

The skeleton application for the Laravel Doctrine JSON:API.

015PHPCI passing

Since May 12Pushed 1y ago2 watchersCompare

[ Source](https://github.com/ScholarshipOwl/laravel-doctrine-jsonapi-skeleton)[ Packagist](https://packagist.org/packages/sowl/laravel-doctrine-jsonapi-skeleton)[ RSS](/packages/sowl-laravel-doctrine-jsonapi-skeleton/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Doctrine JSON:API Skeleton
==================================

[](#laravel-doctrine-jsonapi-skeleton)

This skeleton provides a template for building API-only Laravel applications using Doctrine ORM and the [laravel-doctrine-jsonapi](https://github.com/ScholarshipOwl/laravel-doctrine-jsonapi) package for fully compliant [JSON:API](https://jsonapi.org/) implementations.

**Key Features:**

- **Doctrine ORM**: Replaces Eloquent as the database layer, leveraging Doctrine's advanced data-mapping capabilities via [laravel-doctrine/orm](https://github.com/laravel-doctrine/orm).
- **Doctrine Migrations**: Database migrations using [laravel-doctrine/migrations](https://github.com/laravel-doctrine/migrations).
- **Doctrine Extensions**: Extra features (sluggable, timestamps, soft deletes, etc.) via [laravel-doctrine/extensions](https://github.com/laravel-doctrine/extensions).
- **JSON:API**: All APIs conform to the JSON:API specification for standardized, robust, and scalable APIs.
- **API-Only**: No web routes or traditional Blade views are exposed—this skeleton is focused exclusively on backend API development.
- **Automatic API Documentation**: Generates OpenAPI specs, Postman collections, and human-friendly docs using [Scribe](https://scribe.knuckles.wtf/).

---

About This Skeleton
-------------------

[](#about-this-skeleton)

This project is intended as a starting point for developers who want to:

- Use Laravel as the application framework
- Use Doctrine ORM for data persistence (with full support for migrations and extensions)
- Expose only JSON:API-compliant endpoints (no web UI)

You get a clean Laravel installation, ready for Doctrine and JSON:API integration.

---

Quick Start
-----------

[](#quick-start)

You can start a new project using this skeleton by running:

```
composer create-project sowl/laravel-doctrine-jsonapi-skeleton jsonapi
```

---

Main Packages
-------------

[](#main-packages)

- [laravel/laravel](https://github.com/laravel/laravel): Laravel framework
- [laravel-doctrine/orm](https://github.com/laravel-doctrine/orm): Doctrine ORM integration for Laravel ([docs](https://laravel-doctrine-orm-official.readthedocs.io/en/latest/))
- [laravel-doctrine/migrations](https://github.com/laravel-doctrine/migrations): Integration with Doctrine2's migrations package for Laravel
- [laravel-doctrine/extensions](https://github.com/laravel-doctrine/extensions): Doctrine extensions for Laravel (Gedmo, Beberlei, etc.)
- [sowl/laravel-doctrine-jsonapi](https://github.com/ScholarshipOwl/laravel-doctrine-jsonapi): JSON:API implementation for Laravel + Doctrine
- [scribe](https://github.com/knuckleswtf/scribe): API documentation generator

---

TODO List
---------

[](#todo-list)

This is a high-level roadmap for fully implementing the skeleton:

- Remove default Laravel web routes and Blade views
- Install and configure Doctrine ORM ([laravel-doctrine/orm](https://github.com/laravel-doctrine/orm))
    - Publish and customize Doctrine config
    - Configure environment variables for Doctrine
- Install and configure Doctrine Migrations ([laravel-doctrine/migrations](https://github.com/laravel-doctrine/migrations))
    - Set up migration paths
- Install and configure Doctrine Extensions ([laravel-doctrine/extensions](https://github.com/laravel-doctrine/extensions))
    - Install Gedmo extensions requirement
    - Enable useful extensions (timestamps, sluggable, soft deletes, etc.)
- Set up basic `User` entity
    - Set up entity folder structure
    - Setup authentication and all the relevant user traits
    - Add migration of the `User` entity and rest default entities.
    - Tests for authentication logic
- Install and configure laravel-doctrine-jsonapi ([sowl/laravel-doctrine-jsonapi](https://github.com/ScholarshipOwl/laravel-doctrine-jsonapi))
    - Publish and customize `jsonapi.php` config
    - Register resources in `config/jsonapi.php`
- Create sample Doctrine entity implementing `ResourceInterface`
- Create a transformer extending `AbstractTransformer`
- Set up API routes (remove `web.php`, use `api.php` only)
- Add example resource controller (using default or custom controller)
- Add policy-based authorization for resources
- Add validation for JSON:API requests
- Implement authentication (e.g., Laravel Passport, Sanctum, or JWT)
- Integrate [Scribe](https://scribe.knuckles.wtf/) for automatic generation of OpenAPI specs and API docs
    - Configure Scribe for API-only docs
    - Ensure docs include OpenAPI spec, Postman collection, and sample responses
    - Add custom docs for example resource
- Configure proper exception handling with showing JSON:API errors.
- Use GUID for the primary key of the entities.
- Implement extensive testing of this skeleton
    - Make sure all features work as expected
    - Add tests for queue-failed jobs
    - Add tests for cache
    - Add tests for authentication
    - Add tests for authorization
    - Add tests for validation
    - Add tests for API endpoints
    - Add tests for API docs
- Implement RBAC (Role-Based Access Control) authorization logic
    - Define roles and permissions (e.g., Admin, User, Guest)
    - Assign roles to users and restrict resource actions accordingly
    - Add policies and middleware for RBAC enforcement
    - Document RBAC usage and configuration
- Add detailed onboarding and contribution guide for new developers
    - Document setup, coding standards, and contribution workflow
    - Provide example PR and review process
    - Add FAQ and troubleshooting section
- Build and document default `.windsurfrules` for this repository
    - Describe commit, branch, and review policies
    - Add rules for sensitive files, migrations, and API docs
    - Ensure `.windsurfrules` is kept up to date with project conventions
- Add API rate limiting and throttling
    - Configure Laravel's built-in rate limiting for API endpoints
    - Add custom logic for user/role-based limits if needed
- Set up CI/CD for automated testing and code quality checks
    - Set up GitHub Actions for CI/CD
    - Set up GitHub Actions for code quality checks
- Move the scribe.blade.php to the base library.

---

References
----------

[](#references)

- [Laravel Doctrine ORM Documentation](https://laravel-doctrine-orm-official.readthedocs.io/en/latest/)
- [Doctrine ORM Documentation](https://www.doctrine-project.org/projects/orm.html)
- [Doctrine Migrations Documentation](https://www.doctrine-project.org/projects/migrations.html)
- [Doctrine Extensions Documentation](https://laravel-doctrine-extensions.readthedocs.io/)
- [laravel-doctrine-jsonapi Documentation](https://github.com/ScholarshipOwl/laravel-doctrine-jsonapi/blob/main/docs/README.md)
- [Scribe Documentation](https://scribe.knuckles.wtf/laravel)
- [Scribe GitHub](https://github.com/knuckleswtf/scribe)
- [JSON:API Specification](https://jsonapi.org/)

---

License
-------

[](#license)

This project is open-source and available under the [MIT license](LICENSE).

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/8d3fa6af699b70f877d632ed3dc64cb86da1d6fed4cb5b42d7c09b234fdc7b16?d=identicon)[R3VoLuT1OneR](/maintainers/R3VoLuT1OneR)

---

Top Contributors

[![R3VoLuT1OneR](https://avatars.githubusercontent.com/u/1111188?v=4)](https://github.com/R3VoLuT1OneR "R3VoLuT1OneR (28 commits)")

### Embed Badge

![Health badge](/badges/sowl-laravel-doctrine-jsonapi-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/sowl-laravel-doctrine-jsonapi-skeleton/health.svg)](https://phpackages.com/packages/sowl-laravel-doctrine-jsonapi-skeleton)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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