Packages we built for our own SaaS products, then open-sourced. Production-grade, opinionated, and built to do one thing well. If one saves you time, a star helps other developers find it.
laravel-secure-fields
Laravel / PHP 8.3+ Encrypt sensitive Eloquent fields without losing the ability to query them.
When your database leaks, plain-text PII becomes a breach. This package encrypts sensitive fields transparently at the model level, with no schema changes and no query rewrites. You can still search encrypted fields, rotate keys without downtime, and produce the access trails an audit asks for.
Highlights
- →
AES-256-GCM encryption with per-value random IV
- →
Searchable encrypted fields via blind indexes (HMAC-SHA256)
- →
Key rotation with zero downtime
- →
Field masking in toArray() & toJson()
- →
Audit logging for access trails
Installation
composer require vimatech/laravel-secure-fields
laravel-membership
Laravel / PHP 8.3+ Add teams, roles, and permissions to any SaaS, without the boilerplate.
Every multi-tenant app needs to know who belongs to which team, and what they're allowed to do. Built for our own SaaS products and open-sourced. It handles membership and roles across any Eloquent model, ready to gate your features from day one.
Highlights
- →
Attach to any model: teams, projects, organisations
- →
Enum roles with hierarchy levels
- →
Role guards & policy helpers
- →
Events on membership changes
- →
Soft deletes for membership history
Installation
composer require vimatech/laravel-membership
laravel-invitations
Laravel / PHP 8.3+ Invite anyone to any Eloquent model. Email invitations done right.
Every product needs onboarding. Send secure, expiring email invitations to join any Eloquent model: teams, projects, organisations, or globally. Built for our own SaaS onboarding and open-sourced, with a full accept, decline, cancel and resend lifecycle out of the box.
Highlights
- →
Invite by email to any Eloquent model, or globally
- →
Secure HMAC-hashed tokens, never stored in plain text
- →
Full lifecycle: accept, decline, cancel, resend
- →
Configurable expiration & duplicate policy
- →
Events fired for every action
Installation
composer require vimatech/laravel-invitation
laravel-document-numbering
Laravel / PHP 8.3+ Sequential, gap-free invoice numbers, even under load.
Many invoicing regimes require sequential numbering without gaps. This package generates sequential, concurrency-safe numbers using database row locks. Two requests can never take the same number or leave a hole.
Highlights
- →
Configurable patterns (INV-{YYYY}-{seq:5})
- →
Per-scope counters (company / tenant / branch)
- →
Yearly, monthly, or never resets
- →
Gap-free (transaction-bound) or fast-sequential mode
- →
Concurrency-safe via row locks · Octane-ready
Installation
composer require vimatech/laravel-document-numbering
laravel-integrations
Laravel / PHP 8.3+ Plug in any external provider: config, not code.
A config-driven ports & adapters foundation for external providers. Add a provider by writing one adapter class and a config entry. Context routing and a normalized inbound webhook pipeline are included. Intentionally domain-free, so it fits any integration.
Highlights
- →
Config-driven drivers (ports & adapters)
- →
Context routing (by country, tenant, …)
- →
Per-tenant driver overrides
- →
Normalized inbound webhook pipeline
- →
Canonical events with built-in idempotency
Installation
composer require vimatech/laravel-integrations
laravel-einvoicing
Laravel / PHP 8.3+ Generate Peppol BIS 3.0 and EN 16931 e-invoices natively.
Produce structured e-invoices (Peppol BIS 3.0 UBL, EN 16931 CII) natively, validate them, and dispatch them through pluggable networks with per-country routing. Zero third-party runtime dependencies.
Highlights
- →
Peppol BIS 3.0 (UBL) generation
- →
EN 16931 (CII) generation
- →
Pluggable dispatch networks, per-country routing
- →
Inbound document handling
- →
Zero third-party runtime dependencies
Installation
composer require vimatech/laravel-einvoicing
laravel-quotas
Laravel / PHP 8.3+ Feature entitlements and usage quotas for SaaS, on top of Cashier or standalone.
Cashier handles the money; it does not answer the question your application asks on every request: is this account allowed to do this, and has it used up its allowance? This package reads whichever subscription Cashier holds, maps it to a plan, and enforces that plan's features and quotas locally.
Highlights
- →
Feature gates on the model and as route middleware
- →
Usage counters enforced atomically under a row lock
- →
Allowances reset on the subscription anniversary
- →
Plan catalogue mapped to your provider price ids
- →
Cashier Stripe, Cashier Paddle, or no billing at all
Installation
composer require vimatech/laravel-quotas