Simple personal certificate management and automated renewal reminders. https://certified.env0.nl
Find a file
Joël van de Wouw a3b3d7d029 Polish app branding with shared brand components
Extract the shield mark into reusable brand-icon/brand-mark components
and use them in the app shell, auth layout, and marketing nav/footer.
Align the palette on emerald (badges, selection, dark zinc-950 body),
and add a subtle grid/glow backdrop to the app layout.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 15:37:54 +02:00
.claude Initial commit 2026-07-12 14:44:58 +02:00
.github Initial commit 2026-07-12 14:44:58 +02:00
app Polish app branding with shared brand components 2026-07-12 15:37:54 +02:00
bootstrap Initial commit 2026-07-12 14:44:58 +02:00
config Initial commit 2026-07-12 14:44:58 +02:00
database Initial commit 2026-07-12 14:44:58 +02:00
lang Initial commit 2026-07-12 14:44:58 +02:00
public Initial commit 2026-07-12 14:44:58 +02:00
resources Polish app branding with shared brand components 2026-07-12 15:37:54 +02:00
routes Initial commit 2026-07-12 14:44:58 +02:00
storage Initial commit 2026-07-12 14:44:58 +02:00
tests Initial commit 2026-07-12 14:44:58 +02:00
.editorconfig Initial commit 2026-07-12 14:44:58 +02:00
.env.example Initial commit 2026-07-12 14:44:58 +02:00
.gitattributes Initial commit 2026-07-12 14:44:58 +02:00
.gitignore Initial commit 2026-07-12 14:44:58 +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 Initial commit 2026-07-12 14:44:58 +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.