Skip to main content
Firstlight / NativePHP

Built on NativePHP SuperNative

More native UI. Same Blade.

Firstlight expands the controls available to NativePHP mobile apps. It builds on the SuperNative foundation created by Shane Rosenthal and Simon Hamp to bring more genuine SwiftUI and Jetpack Compose controls to familiar Blade syntax.

Authoring
Blade + EDGE
iOS
SwiftUI
Android
Compose
State
PHP-owned

queue.blade.php

EDGE

<firstlight:segmented
    :options="$queues"
    native:model="queue"
    label="Queue"
/>

Stay in your stack

Go further with the native stack you already know.

SuperNative made device-native UI possible from Blade. Firstlight stays inside that model, widening the component range while each platform keeps its own expression.

Familiar at the source
Compose controls with Blade tags, Laravel properties, and NativePHP events. No parallel state model to learn.
Authentic on the device
iOS uses genuine SwiftUI and UIKit controls. Android uses genuine Material 3 and Jetpack Compose controls.
Reliable across platforms
Shared semantics, paired renderers, accessibility evidence, and server-authoritative reconciliation keep behaviour predictable.

Current components

Small catalogue. Deep native quality.

Firstlight is preparing its public alpha one paired control at a time. Every component must meet the same API, platform, and accessibility standard before it ships.

Segmented

Available

firstlight:segmented

Queue

Mine All

Choose the active queue.

iOS expression
SwiftUI field composition backed by UISegmentedControl.
Android expression
Material 3 SingleChoiceSegmentedButtonRow.

Status Label

In alpha

Display-only semantic metadata with native text scaling and contrast-safe theme tokens.

Neutral Awaiting review Ready

Firstlight on SuperNative

NativePHP laid the foundation. Firstlight extends the range.

Firstlight participates in the EDGE, Element Tree, shared-memory frame, renderer, and wire-event lifecycle created for SuperNative. Ordinary interaction stays on the native UI thread.

01
Blade compiles to a Firstlight element with stable public values.
02
The shared element tree publishes primitive, platform-neutral intent.
03
SwiftUI and Compose renderers express that intent natively.

Quickstart

Add native range without leaving Laravel.

Install the package, register its native renderers, and author your first Firstlight component with Blade.

composer require firstlightui/nativephp
Read the getting started guide →