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
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.
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