Services Process Results Reviews Team Resources FAQ Login Book a Free Call →
Build Plan Book a Call →
Development / Shipped

We don't just plan campaigns. We ship the software that runs them.

Multi-tenant SaaS, client portals, internal tools, iOS apps, autonomous AI agents. The same team that runs your Google Ads writes the code behind the dashboards, the daemons, the booking flows. Below is a partial ledger.

Showcase 01 / Multi-tenant SaaS

Crewbase

An operations OS for landscaping companies. CRM, kanban pipeline, jobs, routes, invoices, crew PWA with geofenced clock-in, customer portal. Built for the office, the truck, and the homeowner, with true tenant isolation enforced at every Prisma query.

Try the live demo
3
Apps in one platform
Crewbase marketing landing page with hero copy 'Run your whole landscaping business in one place' Crewbase admin dashboard showing today's jobs, KPIs, and quick actions Crewbase sales pipeline kanban board with stage totals and drag-and-drop deal cards Crewbase scheduling view with day and week toggles
01 / Surface

A marketing site that closes the trial.

Operator-voice hero, three-perspective demo (owner, crew, customer), no signup gates. A landscaping company owner clicks "Try the live demo" and is inside a fully populated sandbox workspace in under three seconds.

Next.js 16 App Router RSC Tailwind v4
02 / Surface

The admin desk built for someone who'd rather be in the field.

Today's jobs, open AR, leads in pipeline, jobs this week, all on one screen. Every KPI is a hyperlink into the action it implies. No dashboard tabs. No filter panels. Just the day, made operable.

Prisma 6 Neon Postgres Server Actions iron-session
03 / Surface

A pipeline that doesn't lie to its operator.

Drag-and-drop kanban with stage value totals at the top of every column. Real deals, with real source tags (Website form / Referral / Google search), real dates, real owners. Filters that filter, not "Coming Soon" pills.

@dnd-kit Radix UI SWR Tabular nums
04 / Architecture

Multi-tenant isolation, hardcoded as a project contract.

Every model carries tenantId. Every server action pulls it from the session, never the request. Every Prisma lookup uses findFirst({ where: { id, tenantId } }). Six-role membership above tenants. The rule is enforced in code, not docs.

Mapbox GL @turf/turf Resend / Twilio / Stripe Gemini fallback
Showcase 02 / Internal platform

Apex Hub

The agency's internal control plane. Client portal, employee desk, ad-account dashboards, outreach console, and integrations to Google Ads, GA4, Gmail, QuickBooks, and Anthropic, all in one Next.js app. One codebase, ~30 distinct surfaces.

Visit the portal
30+
Surfaces in one repo
Apex Hub client login screen with a 4-digit PIN keypad on a dark background
01 / Client side

A four-digit PIN. No SSO theater.

Clients tap in a PIN, land on their dashboards, see their campaigns, their reports, their invoices. No "Sign in with Google" friction. No password resets. The cost-per-call is the headline, not the login flow.

Next.js 16 iron-session Keychain-style PIN Tailwind v4
02 / Employee side

The desk an operator with two years of receipts would build.

Every account move flows through one surface. Reports, inboxes, ledgers, ticket queues, all wired together so a single decision propagates everywhere it needs to. Built over two years of running real campaigns, refined every week. It's a moat, not a toolkit.

Internal only Operator-built Two years of iteration Continuously evolving
03 / Operations

Institutional knowledge that doesn't live in your ad account.

Every account move we've made across every client is captured, indexed, and replayable. When we run a sweep on your account, we're applying lessons from every account we've run before. That corpus compounds. You can't get that from a SaaS subscription or a Loom walkthrough.

Proprietary corpus Replayable workflows Cross-client learnings Compounding moat
04 / The kicker

It's not one app. It's a hub.

Same Next.js repo hosts the client portal, the employee desk, the 70+ Google Ads scripts, a public Chromecast TV surface, a Chrome extension, and a Raspberry Pi kiosk daemon. We dogfood every architectural decision before we recommend it to a client.

@vercel/blob framer-motion Recharts SWR
The operator stack

No frameworks we don't actually use.

Every chip on this list is shipped in production, not on a "we're learning" list. If it isn't here, we didn't pick it.

Web frameworks

  • Next.js 16 (App Router)
  • React 19
  • Tailwind v4
  • Radix UI
  • Framer Motion
  • Three.js / R3F
  • SWR

Backend & data

  • Prisma 6 / 7
  • Neon Postgres
  • iron-session
  • NextAuth 5
  • Vercel KV / Blob
  • Supabase Realtime
  • Server Actions

Mobile & native

  • SwiftUI
  • SwiftData
  • VisionKit / Vision
  • WidgetKit
  • visionOS
  • PWA (offline-first)
  • Xcode 26

AI & automation

  • Anthropic (Claude Opus 4.7)
  • Google Gemini API
  • Playwright
  • Pychromecast
  • Python schedule daemons
  • Webhooks & cron
  • Zod validation

Integrations

  • Google Ads API v23
  • GA4 / Looker Studio
  • googleapis (Gmail, Cal)
  • QuickBooks
  • Stripe / Twilio / Resend
  • Mapbox GL / Turf
  • Helius / Jupiter / Jito

Infra & deploy

  • Vercel (edge + serverless)
  • Railway (long-running daemons)
  • GitHub Pages (static)
  • Cloudflare DNS
  • Docker for the bots
  • Raspberry Pi kiosks
  • LaunchAgents (macOS daemons)

Tooling

  • TypeScript strict
  • pnpm / npm workspaces
  • Vitest
  • Prisma migrate
  • git, obviously
  • Cursor / Claude Code
  • SF Symbols + JetBrains Mono

Things we won't use

  • WordPress / Elementor
  • No-code "agency" stacks
  • PHP CMS bloat
  • jQuery in 2026
  • Smooth-scroll libraries
  • Crypto wallets in marketing
  • Chatbots that aren't useful
More shipped

The other things we've built this year.

Smaller surfaces, internal tools, weekend projects that turned into client engagements. Every one of these lives in production somewhere, even if the user count is one.

RPM Auto LabLive

Client portal with a 3D vehicle visualizer.

Marketing site embeds real GLTF car models in an interactive WebGL frame. Sixteen-section customer portal covers garage, jobs, quotes, invoices, subscriptions, warranty, and rewards, with no page reloads.

Next.js 16.2 React 19.2 @react-three/fiber Prisma 7 NextAuth 5
iMessage OutreachDaemon up

A Python daemon that prospects over iMessage.

Five interleaved jobs run on a schedule: send, watch, refresh, follow-up, daily-gen. Hardcoded safety: 20-send daily cap, 4-8min jittered spacing, business-hours only, per-lead and system-wide auto-reply caps. Claude drafts replies into a review queue.

Python Anthropic SDK Postgres macOS LaunchAgent
Apex TraderPaper + live

An autonomous Solana memecoin bot with Opus 4.7 as the brain.

Risk policy is hardcoded: 15% daily / 30% weekly circuit breakers, -35% stop-loss, ladder take-profit at 2x / 3x / 5x / 10x. Every Claude decision captured as a span tree for full reasoning replay. Honest README framing: month-one is tuition.

TypeScript @solana/kit Helius + Jupiter Anthropic SDK Railway
Tree Loving CareLive

A StoryBrand site for a PPC client, framework in code.

Every section is a BrandScript beat: Hero, ProblemSection, GuideSection, PlanSection, StakesSection. The component names are the conversion architecture. Schema.org LocalBusiness baked in.

Next.js 16 React 19 Tailwind v4 JSON-LD
Garage TVCast daily

A 15-scene Chromecast OS with a phone remote.

One 3,500-line HTML file (Chromecast-compatible, no frameworks) with hand-written WebGL2 fragment shaders for the visualizer. Scenes: clock, dashboard, S1000RR, weather, Spotify with BPM-synced Party Mode, matrix, fireplace, lava lamp, message board, scoreboard, trader P&L.

Vanilla HTML / JS WebGL2 shaders Pychromecast bridge Spotify Web API
MailShelfiOS (pre-release)

An iOS app that turns paper mail into action items.

VisionKit scans, Vision OCRs, Gemini extracts sender + summary + due dates + amounts + URLs into typed fields. Three-tab metaphor: Inbox, Ledger (action items with due dates), Cabinet (10 color-coded categories). Built to replace virtual-mailbox services.

SwiftUI SwiftData VisionKit / Vision Gemini API
How a build runs

No discovery decks. Just a working surface in week one.

We don't sell waterfall. The first thing you see is a deployed URL, even if it's just a clickable shell. From there, every week is a real iteration on a real surface.

01 / Week 1

A deployed shell

A URL on Vercel, a Postgres schema in Neon, an auth flow that works, the first three real screens you'll be looking at for the next six months. No Figma frames you have to imagine into existence.

02 / Weeks 2-6

Real surfaces, real data, every week

One demo every Friday. Real data, real users (us at first, you next), real flows. We add scope only when the existing scope ships and is in use. If a feature isn't getting used, it gets cut before more get added.

03 / Launch

Soft launch, then real users

Internal users first. Then a friendly cohort. Then open. Every cohort is a learning loop, every loop changes the roadmap. We don't ship a "big bang" version one because version ones don't survive contact with real users.

04 / Steady state

Maintenance is a relationship, not a contract

After launch, we stay in the seat. Weekly batches: bugs, polish, the one new thing that came up in a user call. No "discovery phase 2" for things that take an afternoon. We keep building the same surface, indefinitely.

Start a build

Your idea. Our code. Shipped.

30-minute call. You describe the surface you want to exist. We tell you what week one looks like, what stack we'd pick, and whether it's a fit. You walk away with a real plan, even if we don't end up building it.

0 Projects shipped
this year
Roster cap: 3 active builds at a time