PHPackages                             non-convex-labs/laravel-commonplace - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. non-convex-labs/laravel-commonplace

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

non-convex-labs/laravel-commonplace
===================================

A personal markdown knowledge vault for Laravel — wikilinks, version history, semantic search, and MCP for Claude Code.

v0.2.0(3w ago)40[3 issues](https://github.com/non-convex-labs/laravel-commonplace/issues)[2 PRs](https://github.com/non-convex-labs/laravel-commonplace/pulls)MITPHPPHP ^8.4CI passing

Since May 17Pushed 2w ago1 watchersCompare

[ Source](https://github.com/non-convex-labs/laravel-commonplace)[ Packagist](https://packagist.org/packages/non-convex-labs/laravel-commonplace)[ Docs](https://github.com/non-convex-labs/laravel-commonplace)[ RSS](/packages/non-convex-labs-laravel-commonplace/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (12)Versions (9)Used By (0)

laravel-commonplace
===================

[](#laravel-commonplace)

[![Latest Version](https://camo.githubusercontent.com/cdac456b3cec4749445c8de5188e284a6e9a98c9afa04ec1cb0828c746f2ee14/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6f6e2d636f6e7665782d6c6162732f6c61726176656c2d636f6d6d6f6e706c6163652e737667)](https://packagist.org/packages/non-convex-labs/laravel-commonplace)[![Tests](https://github.com/non-convex-labs/laravel-commonplace/actions/workflows/run-tests.yml/badge.svg)](https://github.com/non-convex-labs/laravel-commonplace/actions/workflows/run-tests.yml)[![PHPStan](https://github.com/non-convex-labs/laravel-commonplace/actions/workflows/phpstan.yml/badge.svg)](https://github.com/non-convex-labs/laravel-commonplace/actions/workflows/phpstan.yml)[![License](https://camo.githubusercontent.com/ade87e9582be6e04819c338e8e58e9f2c7ed16712ce96a269c7a0361f5ed26a1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6e6f6e2d636f6e7665782d6c6162732f6c61726176656c2d636f6d6d6f6e706c6163652e737667)](LICENSE)

A database-backed personal knowledge vault for Laravel. You get wikilinks, version history, semantic search, and an MCP server so Claude Code, Cursor, and Zed can read and write your notes. Same database as your app, same auth, same backup.

Quick look
----------

[](#quick-look)

Notes are Eloquent models. The `Commonplace` facade owns the writes, the wikilink graph, and search:

```
use NonConvexLabs\Commonplace\Facades\Commonplace;

Commonplace::createNote(
    path: 'meetings/q2-planning',
    content: 'Discussed [[roadmap-2026]] and [[hiring-plan]].',
    tags: ['meeting'],
    visibility: 'private',
    owner: $user,
);

Commonplace::getBacklinks('roadmap-2026', $user);
Commonplace::semanticSearch('q2 planning topics', $user);
```

Set `COMMONPLACE_MCP_ENABLED=true` and the same vault is reachable to any MCP-compatible AI client, scoped to the authenticated user.

What's in a name?
-----------------

[](#whats-in-a-name)

A commonplace book is a personal notebook for copying down quotes, ideas, observations, and references so you can find them again later. Marcus Aurelius kept one. So did Locke, Jefferson, and a long list of readers and thinkers who needed somewhere to put the bits worth keeping. This package is the same idea, scoped to a single user inside your Laravel app and backed by your database instead of a leather-bound notebook.

For more on the practice itself, see [Journal like a Renaissance Philosopher](https://youtu.be/2HCmv6aDYbQ) by ParkNotes (Parker Settecase).

Install
-------

[](#install)

```
composer require non-convex-labs/laravel-commonplace
```

Full setup lives in [docs/](docs/index.md). That covers migrations, trait wiring, embedding driver, and MCP transport.

Why a database vault, not a folder of `.md` files?
--------------------------------------------------

[](#why-a-database-vault-not-a-folder-of-md-files)

Most knowledge-vault tools are standalone apps backed by a folder of files. Sync, plugins, and auth get bolted on after the fact. This package flips that around. Notes are rows in your existing Laravel database. They're queryable by SQL, transactional, joinable, and gated by whichever guard your app already runs. You don't host a second silo, you don't run a file watcher, you don't manage separate API keys, and you don't hit "vault opened in another window" races.

See [docs/design.md](docs/design.md) for the full comparison against Obsidian, Logseq, Foam, and Dendron, plus the tradeoffs that come with it.

Status
------

[](#status)

Pre-1.0. APIs may shift between minor versions until 1.0 ships.

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance81

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.3% 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 ~1 days

Total

2

Last Release

22d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2f95d08804752e696df94d4ee54f1d61208c1a682de3c489cafe3c7f3696d116?d=identicon)[aaddrick](/maintainers/aaddrick)

---

Top Contributors

[![aaddrick](https://avatars.githubusercontent.com/u/22264982?v=4)](https://github.com/aaddrick "aaddrick (143 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

laravelmcpmarkdownKnowledge Basevaultpgvectorsemantic-searchwikilinksobsidiancommonplace

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/non-convex-labs-laravel-commonplace/health.svg)

```
[![Health](https://phpackages.com/badges/non-convex-labs-laravel-commonplace/health.svg)](https://phpackages.com/packages/non-convex-labs-laravel-commonplace)
```

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k11](/packages/tempest-framework)[spatie/laravel-pdf

Create PDFs in Laravel apps

1.0k4.3M41](/packages/spatie-laravel-pdf)[guava/filament-knowledge-base

A filament plugin that adds a knowledge base and help to your filament panel(s).

207140.2k1](/packages/guava-filament-knowledge-base)[prezet/prezet

Prezet: Markdown Blogging for Laravel

30813.6k3](/packages/prezet-prezet)[spatie/laravel-markdown-response

Serve markdown versions of your HTML pages to AI agents and bots

7339.6k4](/packages/spatie-laravel-markdown-response)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)

PHPackages © 2026

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