# sharp: A CMS Section for Laravel Without Writing a Line of Front End

> Sharp is an MIT licensed Laravel package that turns a data model into a working administration interface through a documented PHP API, with a Vue and Inertia front end shipped as a library rather than something you maintain. It suits Laravel teams who need an admin panel for structured content.

**code16/sharp** — Laravel 11+ Content management framework

- Repository: https://github.com/code16/sharp
- Website: https://sharp.code16.fr/
- Stars: 802 · Forks: 80
- Language: PHP
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/code16-sharp

## The admin panel is a library, not a project you maintain

Sharp is a content management framework built for Laravel as a package, and the packaging is the whole argument. The stated goal is to help build a CMS section in a project with a clean interface and developer experience in mind. Sharp is driven by code: everything is manageable through a clean and documented PHP API, using Laravel conventions and coding style. Two properties are called out as deliberate. The first is that Sharp avoids code adherence, meaning the project itself should have no knowledge of Sharp, so pulling it in does not restructure your application. The second is that it is data-agnostic, with no expectations from the persistence layer, so the entities you expose are not forced into a particular ORM setup or schema convention. The documentation says Sharp is used in all kinds of projects, from content-driven websites to e-commerce platforms and API backends.

## The five things it is meant to cover

The project lists a small set of needs it aims to solve, and reading them tells you whether the package is a fit. First, creating, updating or deleting any structured data of the project, with validation and error handling included. Second, displaying, searching, sorting or filtering data. Third, executing custom commands on one instance, a selection or all instances, which is the bulk operation that most admin panels make awkward. Fourth, handling authorizations and validation. And all of it without writing a line of front code, using a clean API in the PHP application. The third item is worth pausing on, because bulk commands are where a generic admin tool usually stops, and the fact that this one names the three scopes explicitly suggests the same command can act on a single row, a filtered selection, or the whole table.

## The front end is Vue, Inertia and Tiptap

Sharp ships its interface rather than leaving you to assemble one, and the front end stack is visible in the package manifest. The build runs on Vite with the Vue plugin, and the interface itself is Vue 3 with Inertia handling navigation, which means the admin screens live inside the same application session and routing model as the rest of a Laravel app rather than in a separate admin host. Styling is Tailwind CSS 4 with the Tailwind Vite plugin, and text editing uses Tiptap, with the extension list covering code blocks, highlights, images, links, tables, placeholder text, superscript and character counts. There is also Leaflet and the Google Maps loader in the dependency list, which suggests map and location widgets are part of the offered field types. The scripts section shows the front end is built with vite and the documentation has its own build, and the e2e suite is driven separately.

```bash
cd docs && npm run dev
```

## The repository layout shows a package and a demo

The top level of the repository is organised like a product rather than a single library. There is a `packages/` directory holding the front end workspace packages, a `dist/` directory for built assets, `resources/` for the packaged views and translations, `src/` for the PHP side, and `docs/` for the documentation site. Two files stand out. `components.json` is the familiar shadcn-style configuration file, which is what a Vue or React component library uses to describe where its components live and how they are installed, so the interface components are distributed in that ecosystem style. `ide.json` sits next to it, which is the standard filename for a PhpStorm and VS Code project configuration, so the package ships IDE metadata for autocompletion of its API. There is also a `demo/` directory holding a complete Laravel application, a `tests-e2e/` directory for browser tests and a `scripts/` directory, plus Pint and PHP CS Fixer configuration for formatting and style.

## A live demo and a documentation site

There are two things worth reading before installing anything. The first is the online example, a Sharp instance for a demo project, hosted at the project site with the path sharp.code16.fr/sharp/. The important detail about it is that the data is reset each hour, which makes it a fair test bed: you can create records, filter them, run commands and watch the state disappear on a known schedule rather than worrying about what you left behind. The second is the full documentation, available under the docs path on the same site. For a package whose selling point is a documented PHP API, the documentation is the product, and the demo is the fastest way to see how the API and the interface relate. There is also Code 16's blog and a Discord server for the project, both linked from the readme as further resources.

## Requirements, versions and how fast things move

Sharp needs Laravel 11 or newer and PHP 8.3 or newer, so the floor is high but explicit. The release record shows why that matters. The repository publishes two version lines in parallel right now, v10.0.2 and v10.0.1 alongside v9.24.5, and all three were published on 2026-10-09, with the v9 line two hours behind the v10.0.2 release. That pattern suggests a maintained major line and a supported previous line, and it means the v9 branch is not abandoned. The default branch is 10.x rather than main, so a clone gives you the current major. The last push was on 2026-10-09. For a package that ships both PHP and front end code, a release touching both in the same morning is normal, but it is also a reminder that upgrading Sharp is a two-sided operation: you take the PHP API changes and the rebuilt interface assets together.

## The alternative is building the admin screens yourself

The realistic alternative is to write the admin section directly in the Laravel application: controllers, routes, form requests, a Blade or Inertia screen per entity, a listing with filters, and a permission layer, then maintain all of it. The difference in approach is that Sharp treats those screens as configuration expressed in PHP rather than as code you own, so the CRUD behaviour, the listing, the filters and the command execution come from the package and your code describes what is on screen. The trade-offs run in both directions. Writing it yourself means no dependency, no version to track and total control over the interface; you also write every screen, every filter and every bulk command, and you own the bugs. Sharp means less code and consistent behaviour across entities, at the cost of working within what the package models and upgrading when it changes. For a handful of entities with bespoke interfaces, building by hand is often the smaller job. For a content section with a dozen entities and a non-developer audience, the package usually wins.

## Licence, tests and what to check first

The licence is MIT, which is permissive for a package you intend to build a product on top of. The repository also carries a SECURITY.md, so vulnerability reporting has a defined route, and an ABOUT.md alongside the README. Testing is layered: `tests/` holds the PHP unit and feature tests driven by phpunit.xml, and `tests-e2e/` holds browser-level tests with its own runner.

```bash
cd tests-e2e && npm run ui
```

The front end tests run under Jest, and the package manifest includes a script to refresh the Tiptap dependency set in one go, which is the kind of chore that exists because the editor is made of many small packages that have to move together. If you evaluate Sharp, the sensible order is: look at the live demo instance, skim the documentation for the API shape, then build one entity in a scratch Laravel 11 application on PHP 8.3 and see whether the described model matches how your team actually thinks about its data. That last step is the one that decides it.

## Conclusion

Sharp fits a Laravel team that needs an administration interface for structured data and would rather declare the screens in PHP than hand-write controllers, routes and front end for every entity. It is the wrong choice if your admin needs are a one-off internal tool, since the package assumes a reusable content section, and the wrong choice if you need a CMS that a non-developer can reshape without a deploy. Before adopting it, confirm your application runs Laravel 11 or newer on PHP 8.3 or newer, and read the demo instance rather than starting from a blank configuration.

## FAQ

### What does the Sharp Laravel package actually do?

It builds an administration interface for your project's structured data through a documented PHP API, covering create, update and delete with validation, listing with search, sort and filter, custom commands on one instance or a selection or all instances, and authorization handling.

### What are the requirements for installing Sharp?

Sharp needs Laravel 11 or newer and PHP 8.3 or newer. It installs as a Laravel package, and the documentation for installation is at sharp.code16.fr/docs.

### Does Sharp require my project to change its data layer?

No. Sharp describes itself as data-agnostic, meaning it has no expectations from the persistence layer, and it avoids code adherence, meaning the project itself should have no knowledge of Sharp. Everything is driven through a clean PHP API using Laravel conventions.

### Can I try Sharp before installing it?

Yes. A Sharp instance for a demo project is online at sharp.code16.fr/sharp/, and the data of that demo is reset each hour, so it can be used freely without leaving records behind.

### What licence is Sharp released under?

MIT. The repository also carries a SECURITY.md for reporting vulnerabilities, and it publishes two version lines, with v10.0.2 and v9.24.5 both released on 2026-10-09 and 10.x as the default branch.

## Sources

- [code16/sharp on GitHub](https://github.com/code16/sharp)
- [License: MIT](https://github.com/code16/sharp/blob/10.x/LICENSE)
- [Project website](https://sharp.code16.fr/)
- [README](https://github.com/code16/sharp/blob/10.x/README.md)
- [Releases](https://github.com/code16/sharp/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/code16-sharp
