PHPackages                             3neti/form-handler-selfie - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. 3neti/form-handler-selfie

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

3neti/form-handler-selfie
=========================

Selfie capture handler for form flow system

v1.1.0(2w ago)01.1k1MITPHPPHP ^8.2

Since Dec 24Pushed 7mo agoCompare

[ Source](https://github.com/3neti/form-handler-selfie)[ Packagist](https://packagist.org/packages/3neti/form-handler-selfie)[ RSS](/packages/3neti-form-handler-selfie/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (15)Versions (4)Used By (1)

Selfie Handler
==============

[](#selfie-handler)

`3neti/form-handler-selfie` captures a selfie through the browser MediaDevices API as a step in `3neti/form-flow`.

Features
--------

[](#features)

- Front or rear camera capture with an optional face guide
- Configurable image dimensions, format, and quality
- Shared Form Flow screen and action components
- Default, compact, and immersive presentation variants
- Canonical `selfie` result field

Installation
------------

[](#installation)

```
composer require 3neti/form-handler-selfie
php artisan selfie-handler:install --no-interaction
```

Usage
-----

[](#usage)

```
[
    'handler' => 'selfie',
    'config' => [
        'width' => 640,
        'height' => 480,
        'quality' => 0.85,
        'format' => 'image/jpeg',
        'facing_mode' => 'user',
        'show_guide' => true,
        'ui_variant' => 'compact',
    ],
]
```

Successful capture returns `selfie`, `timestamp`, `width`, `height`, and `format`. The `selfie` value is a data URL. Hosts should apply an explicit retention, encryption, access-control, and redaction policy before persisting or logging biometric images.

Requirements
------------

[](#requirements)

- PHP 8.2 or newer
- Laravel 12 or 13
- Form Flow 1.8 or newer
- Inertia Laravel 2 or 3
- A secure browser context with MediaDevices support

Testing
-------

[](#testing)

```
composer test
composer pint -- --test
composer audit
```

License
-------

[](#license)

MIT

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance78

Regular maintenance activity

Popularity16

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~109 days

Total

3

Last Release

18d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/586e1ed70140038e6348728222adbcf68bfc4455b1f94a4f8bcbe57917a63d57?d=identicon)[3neti](/maintainers/3neti)

---

Top Contributors

[![3neti](https://avatars.githubusercontent.com/u/89447696?v=4)](https://github.com/3neti "3neti (5 commits)")

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/3neti-form-handler-selfie/health.svg)

```
[![Health](https://phpackages.com/badges/3neti-form-handler-selfie/health.svg)](https://phpackages.com/packages/3neti-form-handler-selfie)
```

###  Alternatives

[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)

PHPackages © 2026

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