Skip to content

Companion packages

Arvel keeps the core small. Optional features ship as separate packages you install as extras. Each one registers a service provider and, where it needs tables, publishes migrations under its own tag.

Package Extra What it adds
arvel-oauth arvel[oauth] OAuth2/OIDC social login (Google, GitHub, Microsoft, Apple, generic OIDC)
arvel-permission arvel[permission] Roles and permissions with mixins, middleware, and Gate integration
arvel-image arvel[image] Pillow-based image manipulation + a polymorphic media library
arvel-search arvel[search] Full-text search with pluggable drivers (database, Meilisearch, Elasticsearch)
arvel-audit arvel[audit] Automatic change-audit trail + a fluent activity log

Installing and wiring a package

Install the extra:

uv add "arvel[image]"

Register its provider in bootstrap/providers.py:

from arvel_image import ImageServiceProvider

providers = [
    # ...
    ImageServiceProvider,
]

If the package ships migrations, publish and run them:

arvel vendor:publish --tag=arvel-image
arvel migrate

See each package page for its specific configuration, models, and usage.

Looking for a full reference app? See the e-commerce kit — it's a starter kit, not a package.