- Stack
- Astro · Tailwind v4 · Cloudflare Pages · Turnstile-guarded estimate form · no framework runtime served
- Scope
- Full site for a Bandon landscape-care and home-repair business. Services, project photos, a service-area map, and a spam-guarded contact form. Built in 7 days from kickoff to live.
- Result
- Live and mobile-first, with Lighthouse and an A+ security grade both measured live on the wall above.
Sites and apps I've built.
Sites live and serving traffic, Lighthouse measured on every one when you load this page. One app live on App Store and Play Store, three more in private beta. Scores and build durations from real data.
I design and I build, end to end.
01 · SITES
- LIGHTHOUSE Google's scorecard for any website. Four numbers, 0 to 100 each: speed, accessibility, security, and how well Google can read the page. 100 is perfect. Most small-business sites score 50-70. These numbers re-measure every time you load this page. Scores shown are mobile (the harder test). Desktop usually runs 2 to 5 points higher. measuring...Visit site → Read the case studyMOZILLA Mozilla Observatory grade for HTTP security headers like HSTS and CSP. A+ is the top grade; most small-business sites score C or lower. Re-checked live when you load this page. checking...
- LIGHTHOUSE Google's scorecard for any website. Four numbers, 0 to 100 each: speed, accessibility, security, and how well Google can read the page. 100 is perfect. Most small-business sites score 50-70. These numbers re-measure every time you load this page. Scores shown are mobile (the harder test). Desktop usually runs 2 to 5 points higher. measuring...Visit site → Read the case studyMOZILLA Mozilla Observatory grade for HTTP security headers like HSTS and CSP. A+ is the top grade; most small-business sites score C or lower. Re-checked live when you load this page. checking...
- Stack
- Astro · Cloudflare Workers · D1 · direct RMLS listing feed
- Scope
- Real estate site for a Bandon brokerage. Listings pull straight from the RMLS feed, so the page shows current inventory with no third-party IDX widget. Map, search, and dunes-distance context built in.
- Result
- Live with real RMLS listings, mobile-first, measured on the wall above.
- LIGHTHOUSE Google's scorecard for any website. Four numbers, 0 to 100 each: speed, accessibility, security, and how well Google can read the page. 100 is perfect. Most small-business sites score 50-70. These numbers re-measure every time you load this page. Scores shown are mobile (the harder test). Desktop usually runs 2 to 5 points higher. measuring...Visit site →MOZILLA Mozilla Observatory grade for HTTP security headers like HSTS and CSP. A+ is the top grade; most small-business sites score C or lower. Re-checked live when you load this page. checking...
- Stack
- Astro 6 · Cloudflare Pages, deployed into the client's own Cloudflare account
- Scope
- Site for a Bandon golf service, built in one business day: homepage plus the VIP Mexico Open events page. Club fitting, PGA-certified instruction, caddy referrals, local tee times and all-inclusive golf trips, with a click-to-call header and a sharecard built for the group text.
- Result
- Live and mobile-first, Mozilla Observatory A+ with a perfect 140, Lighthouse measured on the wall above.
- LIGHTHOUSE Google's scorecard for any website. Four numbers, 0 to 100 each: speed, accessibility, security, and how well Google can read the page. 100 is perfect. Most small-business sites score 50-70. These numbers re-measure every time you load this page. Scores shown are mobile (the harder test). Desktop usually runs 2 to 5 points higher. measuring...Visit site → Read the case studyMOZILLA Mozilla Observatory grade for HTTP security headers like HSTS and CSP. A+ is the top grade; most small-business sites score C or lower. Re-checked live when you load this page. checking...
- Stack
- Next.js 14 · Vercel · TypeScript · edge functions
- Scope
- Full marketing site for a 30-year contractor business. Before/after gallery, services pages, lead form. Built in 3 days from kickoff to live.
- Result
- Lighthouse 95+ average across all four categories. Live, indexed, and earning local search visibility.
- LIGHTHOUSE Google's scorecard for any website. Four numbers, 0 to 100 each: speed, accessibility, security, and how well Google can read the page. 100 is perfect. Most small-business sites score 50-70. These numbers re-measure every time you load this page. Scores shown are mobile (the harder test). Desktop usually runs 2 to 5 points higher. measuring...Visit site → Read the case studyMOZILLA Mozilla Observatory grade for HTTP security headers like HSTS and CSP. A+ is the top grade; most small-business sites score C or lower. Re-checked live when you load this page. checking...
- Stack
- Next.js app router · TypeScript strict · Vercel behind Cloudflare · zero UI dependencies
- Scope
- 13-page marketing + portfolio site for my own product, Baseline. 22 custom interactive widgets built from scratch (radar charts, timelines, signal gauges, heatmaps, constellation maps). No chart libraries, no Tailwind, no UI kits.
02 · MOBILE APPS
- MyKonos Beta
An AI companion app I built. The window below runs its real engine, right here in your browser. It remembers between chats. Tell it something, reset, ask again, it still knows.
Live demoTry saying: my dog's name is Max
Then hit reset chat below. Ask the question again. The memory survives.
memory survives the reset5 messages per day memory wipes at midnight UTC
Engine on GitHub →Demiurge + MyKonos
- Stack
- Demiurge memory engine (custom, 2,500+ memories and growing) · Flutter app · BYOK Anthropic
- Scope
- I built the engine and the product that runs on it. Demiurge is a persistent-memory layer for LLM conversations. MyKonos is the AI companion that uses it: bring your own keys, talk to it, and the memory compresses into a long-term store you actually own.
- Status
- Demiurge live · MyKonos in private beta on real phones · backend stable
- App Store →
- Stack
- Flutter · OpenAI vision · in-app purchases · iOS + Android
- Scope
- Snap a stain, get step-by-step removal. Four modes: Normal, Eco (non-toxic), Emergency (time-sensitive), Fun. Subscription tiers and pay-per-use credits. Photos processed instantly and never stored.
- Status
- Live on App Store and Google Play.
- View site →
- Stack
- Flutter · Supabase · 22 edge functions · 4 AI models in parallel
- Scope
- Multi-AI political speech analysis. 106 tracked figures. Claude, GPT, and Grok analyze each statement independently. When they disagree, that disagreement is the signal.
- Status
- Built · in private beta · public marketing at baseline.marketing
- GitHub →
- Stack
- Flutter · accelerometer + gyroscope · native flashlight API · in-app purchases
- Scope
- Flashlight that turns on with a chop gesture, no button tap. For anyone with their hands full: parents carrying kids, contractors on a job, dog walkers at night. Calibration, sensitivity tuning, pocket lock, battery guard, SOS pattern. Subscription tier built. Zero analytics.
- Status
- Private beta · feedback iteration before store submission.
03 · PROCESS
-
Questionnaire + consult
Two-page form. Business, audience, services, goals, what you have, what you need. Free consult to scope it.
No cost. No pitch deck.
-
SOW + 50%
Statement of work locks scope. 50% deposit clears. Work starts the same week.
Stripe invoice. Standard contract.
-
Live in days
Build, review, polish, ship. Final 50% on launch. Hosting and maintenance optional, never required.
Most sites: 3 to 7 business days.
Ready to build?
Custom websites and apps for Oregon coast businesses. Modern stack. Days for sites, weeks for apps. Free consult to scope your project.
- Bandon: free in-person or video
- Coos & Curry counties: free 30-min video
- In-person up to 1.5 hours away: $250 deposit, credits to project on signing
- In-person up to 2.5 hours away: $400 deposit, credits to project on signing