Simple personal certificate management and automated renewal reminders. https://certified.env0.nl
Find a file
2026-08-04 10:18:10 +02:00
app Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
bootstrap Initial commit 2026-07-12 14:44:58 +02:00
config Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
database Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
lang Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
public Initial commit 2026-07-12 14:44:58 +02:00
resources Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
routes Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
storage Initial commit 2026-07-12 14:44:58 +02:00
tests Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
.editorconfig Initial commit 2026-07-12 14:44:58 +02:00
.env.example Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
.gitattributes Initial commit 2026-07-12 14:44:58 +02:00
.gitignore Stop tracking .claude and ignore it 2026-07-12 15:50:57 +02:00
.npmrc Initial commit 2026-07-12 14:44:58 +02:00
artisan Initial commit 2026-07-12 14:44:58 +02:00
boost.json Initial commit 2026-07-12 14:44:58 +02:00
composer.json Initial commit 2026-07-12 14:44:58 +02:00
composer.lock Initial commit 2026-07-12 14:44:58 +02:00
package-lock.json Initial commit 2026-07-12 14:44:58 +02:00
package.json Initial commit 2026-07-12 14:44:58 +02:00
phpstan.neon Initial commit 2026-07-12 14:44:58 +02:00
phpunit.xml Legal, marketing and UI updates 2026-08-04 10:18:10 +02:00
pint.json Initial commit 2026-07-12 14:44:58 +02:00
README.md Initial commit 2026-07-12 14:44:58 +02:00
vite.config.js Initial commit 2026-07-12 14:44:58 +02:00

Certified

Certified is a self-hosted certificate manager built on Laravel 13, Livewire 4, and Flux. It helps you keep track of certificates (diplomas, licenses, compliance documents, etc.), organize them into categories, and get notified before they expire.

Features

  • Certificate management — upload, edit, and download certificates, organized by category
  • OCR extraction — automatically read certificate details on upload via a pluggable OCR backend (Klippa, Mistral, or none)
  • Expiry notifications — email alerts when a certificate is expiring soon or has expired
  • Secure sharing — share a certificate with an external recipient via a signed URL, without requiring them to log in
  • Multi-language support

Stack

  • Laravel 13 (Octane-ready)
  • Livewire 4 + Flux UI
  • Tailwind CSS 4 / Vite
  • Laravel Fortify for authentication

Getting started

composer install
npm install

cp .env.example .env
php artisan key:generate

php artisan migrate

npm run dev
# in another terminal
php artisan serve

Testing

composer test

OCR providers

The OCR backend is configurable via app/Ocr. Available providers: NoneProvider (disabled), KlippaProvider, and MistralProvider. Configure credentials in .env.