Custom software for small businesses: CRMs, AI assistants, booking engines, and internal portals

Full-stack product engineering for small and growing businesses. Custom CRM and sales systems, AI assistants that handle real customer conversations, reservation and booking engines, and multi-tenant portals with role-based access. Scoped, built, deployed, and operated end to end with Next.js, React, TypeScript, and Supabase.

Full-stack product engineering · 8 live in production

From problem to production
in weeks, not quarters.

Custom CRMs, AI assistants, booking engines, and internal portals for small and growing businesses. Scoped, built, deployed, and kept running end to end, which is why they ship in weeks instead of quarters.

getautocrm.com
AutoCRM screenshot
Revinue screenshot
Counterparty screenshot

By the numbers

8
Products live
$15K
ARR in 14 days
~20K
Venues indexed
24/7
Running unattended in production

Capabilities

The problem gets solved, not scoped.

What gets built

Sales and CRM systems, AI assistants that handle real customer conversations, reservation and booking engines, multi-tenant portals with role-based access, and the nightly data pipelines behind them. Full stack, from schema to deploy.

How it holds up

Every product here runs in production against real users and real money: row-level security on every record, audit logs behind every action, self-healing retries, and health checks that fire before a deadline rather than after it.

Where AI actually helps

Models propose; an external system of record disposes. That distinction is the difference between a demo and something that can run unattended every night without being wrong in public.


Selected Work

8 products live in production. Each one built, shipped, and operated end to end.

01Built solo · Live

AutoCRM

A B2B sales engine that replaces a $800/seat stack with one $99/month tool.

AutoCRM is the tool I wish I'd had every year of my sales career. It replaces the typical duct-tape of Apollo, Instantly, HubSpot, Sales Navigator, Clay, and a virtual assistant with one product priced at $99/month flat — no per-seat tax, no contact-sales tier.

It finds the right prospects, writes personalized emails from your knowledge base, runs sequences with human-paced delays, warms up inboxes for 30 days, classifies replies with AI, scores leads daily, and forecasts pipeline with weighted stages.

The proof point lives in the dogfood: AutoCRM sold itself. 1,000 emails → 127 replies → 12 paying customers → $15K ARR in 14 days.

Next.js 16React 19TypeScriptTailwind v4SupabaseInngestStripeAnthropicChrome Ext.
getautocrm.comRead case study
getautocrm.com
AutoCRM screenshot

02Built solo · Live

Revinue

AI guest reactivation for boutique hotels — turn a property's past guests into its most profitable, commission-free channel.

Revinue connects natively to a property's Cloudbeds PMS, pulls past-guest and stay history automatically, and segments guests by last stay, visit count, room type, and spend — no CSV exports, no manual uploads.

It then generates individually personalized reactivation emails with Claude in the property's own brand voice, sends them on an intelligent cadence, classifies replies, and attributes revenue down to the dollar so you know exactly which campaigns drove bookings.

Built for independent and luxury hospitality, with privacy by design — guest data stays in the property's account, row-level security on every record, and a compliant one-click unsubscribe. First pilot: Coral Gardens, an 18-suite boutique resort on Grace Bay, Turks & Caicos.

Next.js 16React 19TypeScriptTailwind v4SupabaseInngestAnthropicResend
revinue.aiRead case study
revinue.ai
Revinue screenshot

03Built solo · Live

Counterparty

Early warning for the sponsor-bank layer — a weekly intelligence briefing backed by an engine that scores which banks behind fintech are unravelling before the freeze hits.

Counterparty is an early-warning system for the layer of banking almost no one watches — the sponsor banks that let fintechs offer accounts, cards, and deposits. When one of them gets into trouble (Synapse, Evolve), it's the fintech's end-users who lose access to their money, and they're almost always the last to find out. The public face is a free weekly newsletter; underneath it is a real intelligence engine.

The engine sweeps eight public sources every cycle — FDIC call reports, SEC EDGAR filings, regulatory enforcement actions, CFPB complaints, CourtListener litigation, state licensing, macro data, and press — and fuses them into a deliberately two-axis risk score: DISTRESS (is this bank unravelling) kept separate from EXPOSURE (how many fintech programs ride on it). It maps the fintech-to-sponsor-bank graph, runs a complaint-trajectory freeze detector, and keeps a human in the loop — every signal is reviewer-confirmed before it ever moves a score.

That intelligence becomes the product: a Thursday briefing that turns scattered public tells into early warning for the people with the most to lose. The tells come a year before the breakup; most people read them the week after.

Next.js 15ReactTypeScriptSupabaseInngestNextAuthAnthropicResend
counterparty.newsRead case study
Counterparty

04Built & ship-managing · Live

Blue Parrot Realty

Luxury real estate across Turks & Caicos, the DR, and Colombia — with an AI-powered virtual assistant that actually closes.

Blue Parrot is a luxury real estate platform spanning Turks & Caicos, the Dominican Republic, and Colombia. ~1,000 listings indexed, full SEO graph (RealEstateListing JSON-LD, OpenGraph cards, dynamic sitemap), custom admin for MLS sync.

The differentiator is Lexi — an AI-powered virtual assistant that qualifies buyers, answers market questions, and books the realtor into deals. Most real estate sites are static brochures. This one sells.

Next.js 16React 19TypeScriptSupabaseVercel BlobAnthropicResend
blueparrot.tcRead case study
blueparrot.tc
Blue Parrot Realty screenshot

05Built solo · Live

TableFriend

Reservation sniping for Resy, OpenTable, and Tock. A real distributed system, not a script.

TableFriend watches Resy, OpenTable, and Tock for openings at the restaurants you want and books them the second they drop. This is industrial-strength web automation against three of the most hostile anti-bot stacks on the consumer web.

Playwright-driven connectors for each platform, Redis-backed job queue, Docker workers, Postgres for state, ~20,000 venues imported from Resy's catalog. Built as a proper monorepo, not a one-off.

TurborepoTypeScriptNext.jsPlaywrightRedisPostgresDocker
tablefriend.appRead case study
tablefriend.app
TableFriend screenshot

06Built solo · Live

Coral Gardens

Vacation rental site for a property in Turks and Caicos.

Coral Gardens is a beachfront vacation rental on Grace Bay Beach in Turks & Caicos. Multi-unit listings, full-screen photo lightboxes with arrow-key navigation, on-property QR codes for guest check-in, and a fully-integrated booking engine — all tuned for mobile-first travelers booking direct.

The site also ships with Scottie — a hyper-personalized chatbot that answers visitor questions about availability, pricing, the property, the beaches, the island, and just about anything else they want to know before they book.

The site is mobile-first — most prospective travelers find Coral Gardens on their phones — with structured property data and an SEO graph designed to surface in local search and meta listings.

Next.jsReactTypeScriptTailwindVercel
coralgardensongracebay.comRead case study
coralgardensongracebay.com
Coral Gardens screenshot

07Built solo · Live

Strata36

A private homeowners-association portal — announcements, documents, meetings, audit log behind everything.

Strata36 is a private portal for a 36-unit condominium. Board admins post announcements, send newsletters, upload documents, schedule meetings, and manage the owner directory. Owners get a self-serve portal with role-based access — and an audit log behind everything.

Three roles — owner, admin, and management company — see different surfaces of the same data, with Supabase row-level security enforcing isolation in the database itself. An audit log behind every action gives the board and the management company a single source of truth for who changed what and when.

Next.js 14TypeScriptSupabase (RLS)React Hook FormZod
strata36.comRead case study
strata36.com
Strata36 screenshot

08Built solo · Live

WHAMI

A daily trivia game with a media round: ten questions at 6am ET, and the last three are real song clips and photographs.

WHAMI is one game a day. Ten questions drop at 6am ET and everyone on Earth gets the same ten: ten seconds each, speed multiplies the score, no pausing and no second attempt. It ships a spoiler-free emoji result grid, a daily streak, and a weekly leaderboard that resets on Sunday.

Questions 8, 9 and 10 are a media round: audio, photo, audio. Two song clips and a photograph, generated fresh every night, aimed squarely at the gap left when the daily song game people loved was shut down in 2023.

The whole thing is written nightly by Claude inside a Supabase edge function, with a four-day runway, an hourly self-heal pass, and a health check that fires before the drop rather than after it. Three App Store releases shipped in fourteen days.

SwiftUIiOS 17SupabaseEdge FunctionsPostgres RLSpg_cronAnthropiciTunes APIWikimedia
WHAMI on the App StoreRead case study
WHAMI

Contact

Let's build something.

Working on a product idea, a CRM mess, or a real-estate / community / reservations problem? Book a 30-minute call — I'll tell you straight if I can help.