← Home

AI Builds · A Closer Look

Tiffany Johnson

A deeper look at the eight AI products and systems I've taken from zero to one, from live apps to work in progress. I take each one end to end: find the real problem, design the solution across data, model, and product, and ship it with reliability and human oversight built in.

Selected AI systems

Shopify app · Updated October 2026

Storefront-to-marketplace content app

Turns a product page into enhanced marketplace content

Live
What it does

An installable Shopify app that converts an existing product page into enhanced, module-based marketplace content in seconds, generating the copy and the image direction for each content module.

Highlights
  • Published and running as an installable app
  • Maps a direct-to-consumer product page onto the marketplace's content-module formats
  • Generates both the copy and per-module image direction a seller can act on
  • Rebuilt after a full code review: strict schema-validated model output, a credit ledger that meters usage, a generation history, and a product picker
How it works

It reads the storefront product page, maps its structure onto the target marketplace's content modules, and generates module-ready copy and layout guidance. Built as an embedded app so it installs and runs inside the seller's existing dashboard.

Node.jsShopify app APIsLLM

Multi-tenant web app · Updated October 2026

AI listing optimizer for a major marketplace

Search-ready product copy from live marketplace data

Live
What it does

Pulls a product's live listing and its top competitors, extracts the keywords that actually drive rank, and generates optimized titles, bullet points, descriptions, and backend search terms built to rank higher and convert better.

Highlights
  • Competitor analysis: fetches and compares top listings to find keyword gaps
  • Structured output mapped directly to each listing field
  • A full product around it: accounts, usage limits, billing, and an admin dashboard with per-operation cost tracking
How it works

It grounds the model in real marketplace data pulled through a product-data API rather than generating from nothing, extracts high-value keywords, and forces the output into a strict, field-mapped schema. Generation quality is evaluated, not assumed, which is what makes the output safe to hand to a seller.

React Router (TypeScript)PrismaPostgreSQLLLMProduct-data APIStripe

Multi-tenant web app · Updated October 2026

AI retailer-outreach tool

Personalized wholesale outreach, human-reviewed and fully tracked

Live
What it does

Discovers independent retailers, scores how well each fits a brand, drafts outreach tailored to that specific store, and tracks the entire funnel, opens, clicks, replies, and conversions, with a person approving every message before it sends.

Highlights
  • Retailer discovery plus AI fit-scoring, then personalized drafting
  • A pipeline board and analytics dashboard for the whole outreach funnel
  • Deliverability guards: invalid-domain checks, bounce and complaint suppression, rate-limited sends, one-click unsubscribe
  • Anti-abuse engagement gates and per-plan rate limits
  • A feedback loop that learns from what a brand deletes, so future searches skip store types that clearly are not a fit
How it works

Retailer discovery runs through a places API, contact details are enriched, and the model scores fit and drafts outreach under explicit guardrails. Nothing sends autonomously, a deliberate choice for outreach that reaches real people, and deliverability is protected end to end so the sending stays clean.

Recent additions and what's next

Recently added: in-app capture of retailer replies, so a managed account can read and act on responses inside the tool, and detection of stores that are a good consignment fit, with an alternate consignment-offer pitch that is built and held back until I approve the generated copy. Next on the roadmap, and not yet built: conversational search, so a user can ask plain-English questions about their own retailers, emails, and replies and get cited answers.

Next.jsSupabasePostgreSQLLLMGoogle PlacesEnrichment APIStripe

Multi-tenant web app · Updated October 2026

AI morning-brief assistant for busy owners

Turns overnight email into one prioritized page each morning

Live
What it does

Syncs an owner's mailboxes overnight and, each morning, produces a single page: the messages that genuinely need a person, a few to-dos worth doing today, and what is due or overdue, with one recommended focus to start on. The mail is the input; the brief is the output, and it points at what deserves attention rather than acting on it.

Highlights
  • Every message is classified as needs attention, FYI, or trash, so the brief separates what needs a person from the noise
  • Plain-language instructions the owner writes to teach the classifier, scoped to one business or to everything, plus muted senders skipped during sync
  • A running to-do list and commitments tracker feeding a single daily focus pick, with due and overdue tracking
  • Brief tiles the owner can switch on or off, so the page shows only what they use
  • AI cost controls: monthly spending budgets with threshold alerts, a pause when the limit is hit, per-operation model settings, and call-frequency tracking
  • Two-factor sign-in, secure password recovery, and mailbox passwords encrypted before they are stored
How it works

One timezone-aware worker loop checks each account's local clock, so every tenant's overnight sync fires on its own time without a separate scheduler service. The model pipeline treats output as untrusted: each brief is validated before it is kept, falls back to a second model if the first fails, and is cached by input so a retry never pays twice. Every AI-derived record is keyed to its source so re-runs never duplicate, and each tenant is isolated so one failure cannot take down a run.

Status

Live and in daily use across my own applications. It has grown from email triage into a daily workspace that also holds to-dos, quarterly goals, release tracking, and AI spend, and it publishes a daily status report written by my AI agents. I retired the ask-your-inbox question box after the brief proved the more useful surface.

TypeScriptNext.jsPostgreSQLLLMIMAPScheduled jobsDocker

Multi-tenant web app · Updated October 2026

Renewals and upkeep monitor for small businesses

Catches licenses, renewals, and silent job failures before they lapse

Live
What it does

Keeps one list of everything a business quietly depends on that can expire or stop, licenses, insurance, registrations, inspections, vendor contracts, equipment service intervals, domains and certificates, and warns the owner before any of it lapses. For technical operators it also watches scheduled jobs and websites, catching the ones that fail silently with no error to trigger on.

Highlights
  • A single countdown of every recurring obligation that reorders itself as due dates approach
  • Early, escalating reminders before a lapse instead of a scramble after it
  • Heartbeat monitoring for automated jobs: each job checks in at a private URL when it finishes, and the absence of a check-in, not an error, is what raises the alarm
  • Handles both fixed expirations and recurring cycles, and keeps a record of what was done and when, with a client-ready maintenance report
  • Public checks that need no credentials: site reachability, TLS certificate expiry, and domain expiry
  • Tracks API key and token expirations, with guided steps for rotating each one
How it works

Each obligation is stored with its cadence and lead time; a scheduled per-account check reorders the list and fires escalating reminders through the owner's channel. Automated jobs report in over a unique inbound URL, so a missed check-in is treated as a failure and surfaced first, alongside anything overdue. Nothing is installed on the systems being watched and no credentials are taken.

AI and what's next

Live and in daily use monitoring my own applications, sites, automated jobs, and recurring maintenance, and not yet opened to outside users. An AI extraction step is built: it reads a renewal notice and pulls out the item, its expiry date, and terms, with the date roll-forward handled in code and accuracy checked against adversarial samples. It runs offline on purpose, so the always-on service keeps no model dependency and stays cheap to operate. The next step is feeding it automatically from a user's email and uploaded documents, so the list builds itself instead of being entered by hand.

TypeScriptNext.jsPostgreSQLScheduled jobsWebhooksEmail alertsLLMDocument parsingTLS and domain checks

AI agent workflow · Updated October 2026

AI-assisted software delivery system

Role-based AI agents that plan, build, review, and release my applications under human gates

Beta
What it does

Runs the day-to-day delivery of my applications through a team of named AI agents, each with a written job description and a hard boundary: a chief of staff who tracks priorities and the release calendar, directors for product, development, operations, and QA, and agents for marketing and for opportunity discovery. Two different AI assistants split the work, so one builds and the other independently reviews.

Highlights
  • A shared release board and written handoffs, so every agent works from one record instead of chat memory
  • Enforced release gates: database migration first, staging on the exact commit, an independent combined QA pass, and my explicit authorization before anything reaches production
  • Scheduled daily reports and a nightly sync, with a backup agent that only acts if the primary missed its window
  • Agents can read and report, but cannot merge, deploy, message customers, or touch production data on their own
How it works

Each agent owns one lane and writes only to its own status file. Work is handed off through short structured notes that name the owner, the exact commit, the checks run, and the next action. Quality review is batched into one pass over each weekly release instead of per change, and every release is verified against the live version endpoint afterward.

Status

In use now across my own applications and still being refined: the agent roster and scheduling were set up in the last few weeks and are running alongside the earlier manual process.

LLM agentsScheduled tasksGit and pull requestsCI checksRelease gating

Shopify app · Updated October 2026

Price-parity and margin monitor for wholesale sellers

Keeps a seller's online and wholesale prices aligned, automatically

Live
What it does

An installable Shopify app that watches a seller's product prices across their online store and a wholesale marketplace, and flags any price that drifts out of the marketplace's pricing rules or falls below a healthy margin, so the seller never breaks a platform's pricing policy or quietly loses money to a mismatch.

Highlights
  • Approved and published on the Shopify App Store in October 2026
  • Continuously compares store prices against wholesale and MSRP rules and surfaces any drift
  • Margin-aware: flags prices that dip below a configurable cost-plus floor
  • Installs into the seller's existing store dashboard and stays in sync automatically
  • Alerts the seller to act rather than rewriting prices for them, so a human stays in control of pricing
How it works

It connects through an embedded Shopify app, listens for product and price changes over webhooks, and evaluates each change against the marketplace's parity rules and a configurable margin floor. It surfaces violations for the seller to resolve instead of silently changing prices, keeping oversight with the person who owns the pricing.

What's next

Two additions are planned next: a margin calculator that models true landed margin per product, and a guided assistant that helps a seller migrate wholesale accounts onto a direct relationship without breaking price parity along the way.

Node.jsShopify app APIsWebhooksPostgreSQL

Storefront release QA · Updated October 2026

Storefront release checker for online stores

Catches storefront problems before customers do

In development
What it does

A release-checking service for merchants, agencies and freelancers who are responsible for a store release. It follows the customer journey from product selection through the cart and the handoff to checkout, on desktop and mobile, and returns a concise report of what passed, what failed and the evidence behind each finding, without completing a checkout or placing an order.

Highlights
  • Authenticated, tenant-separated accounts with durable store, scan and report history
  • Store ownership is proven with a temporary verification tag on the storefront, not a permission checkbox
  • Desktop and mobile browser checks against a controlled test storefront, with screenshot evidence in every report
  • Detected a deliberately planted wrong-variant cart defect in automated tests
  • Usage reservations hold up under concurrent requests: one job, one allowance, no duplicate charges
How it works

Browser checks run through a scripted test runner that walks the key customer paths and records each step. Findings and screenshots are stored per tenant, and reports stay visible in the account's history. It is built to support human QA with evidence, not to replace it or to fix a store on its own.

In development

Live scans stay disabled while the isolated browser worker and its network and cost safeguards are completed. Next: scans on explicitly authorized storefronts, broader theme support, notifications and private evidence storage. Public signup and paid plans are not open yet.

Node.jsPlaywrightBetter AuthKyselyPostgreSQL