~/d3v/ services/applications.md
Service · 02 · src/applications

Custom web apps, opinionated in a good way.

Internal tools, CRMs, dashboards, customer portals, workflow systems. Built on the stack we’ve been refining for over a decade. Click ▶ Run below to dispatch a real-looking job; click the tabs to swap between the model, its test, and the README.

D3V Studio · main
// dispatch a job from the field, audit it on the way outclass Booking extends Model{    use HasAuditLog, SoftDeletes;    public function dispatch(User $driver): self    {        Dispatch::dispatchSync($this, $driver);        $this->recordAction('dispatched');        $this->driver()->associate($driver)->save();        Notify::sms($driver, 'new job');        return $this;    }}
// every critical path covered, every audit log assertedit('dispatches a booking to a driver and writes an audit row', function () {    $booking = Booking::factory()->create();    $driver  = User::factory()->driver()->create();    $booking->dispatch($driver);    expect($booking->refresh()->driver_id)->toBe($driver->id);    expect(AuditLog::latest())->toMatchArray([        'subject_id' => $booking->id,        'action'     => 'dispatched',    ]);});

#D3V Custom Web Apps

Internal tools, CRMs, customer portals, ops dashboards, workflow systems. Built on Laravel + Livewire, the stack we’ve been refining for over a decade. Boring on purpose, fast where it matters.

##What’s in the box

  • Auth, roles, multi-tenant: SSO, magic links, password, whichever you need.
  • A real audit log: every meaningful action recorded, with before/after diffs.
  • Background jobs and queues: failed work retries, alerts, and stays visible.
  • A real test suite: feature tests on the paths that actually break.
  • Staging and production: one-command deploys, no FTP at 11pm.
  • Integrations done properly, wrapped in our own service classes so they’re swappable later.
  • Filament-based admin so support can look up records and retry jobs without a dev.
  • Year-one support: bug fixes and small changes included for 12 months.

##Getting started

A 45-minute call is the only thing we need from you. We come back inside a week with a written scope, a realistic timeline and an honest assessment of whether we’re the right studio for your build.

→ scope an app · all services

Booking::dispatch · ↩ Enter
main 0 errors, 0 warnings 142 tests passing PHP 8.3 · Laravel 11 UTF-8 ↩ LF
What we build Internal tools, CRMs, portals, dashboards Timeline Prototype in 2 weeks, full builds 3 to 9 months Engagement Fixed-scope or T&M · weekly demos
build/manifest.json

Custom doesn’t mean starting from scratch.

Every project gets these pieces. They’re table stakes for anything we put into production, and we’ve done them enough times that they don’t cost you the discovery time.

Auth, roles, permissions

SSO, magic links, password auth, multi-tenant. Whichever you need. Roles and permissions audited in the data model, not bolted on.

Audit log and observability

Every meaningful change is logged. Sentry on errors, structured logs on actions, dashboards for the things that matter.

Background jobs and queues

Anything slow runs out-of-band. Failed jobs don’t fail silently. They retry, alert, and stay visible.

A real test suite

Feature tests for the critical paths. We don’t test getters and setters, we test the things that actually break in production.

Staging and production

Both environments, both monitored, with one-command deploys. No copying files over FTP at 11pm.

Integrations done properly

Xero, HubSpot, Stripe, Postmark, your weird vendor API. Wrapped in our own service classes so they’re swappable later.

Admin tooling

Filament-based admin so support can look up records, retry jobs, or simulate a user without going through a dev.

Year-one support

Bug fixes and small changes for 12 months. After that, a small monthly retainer if you want us to stay close.

composer.json · require

Boring tech, on purpose.

P83 PHP 8.3
LA Laravel
LI Livewire
FI Filament
PO Postgres
MY MySQL
RE Redis
HO Horizon
TA Tailwind
AJ Alpine.js
V3 Vue 3
IN Inertia
TY TypeScript
VI Vite
PE Pest
CL Cloudflare
FO Forge
AW AWS
ST Stripe
XE Xero
SE Sentry
GA GitHub Actions

Got a workflow that should be an app?

The spreadsheet your team keeps emailing each other. The form that lives in three SaaSes. The report someone runs by hand every Friday. Those are our favourite projects.

Tell us about it →