All Startup Ideas

Tattoo DM Booking Agent

AI agent that turns tattoo artist Instagram DMs into paid appointments — voice-matched replies, Stripe deposits, and calendar booking.

Tattoo artists do not lose business because their work is bad. They lose it in the inbox. A busy artist in Brooklyn or Austin can burn two to three hours a day answering the same Instagram DMs: "How much for a half sleeve?" "Do you have anything in March?" "What's your deposit?" "Can you do my flash piece Saturday?" Ninety percent of bookings still start on Instagram. The artist who replies in four minutes books. The artist who replies after a full day of tattooing finds the client already booked elsewhere.

Built for Solo Founders, Weekend Builders.

The tattoo studio software market is valued around USD 123.5–250 million in 2024 and projected to reach roughly USD 250–600 million by 2033, with CAGRs commonly cited in the 8.5–10.5% range (Verified Market Reports, HTF Market Insights).

Suggested stack: Next.js App Router + Vercel, Postgres (Neon/Supabase) or Convex, Meta Instagram Messaging API, Stripe Checkout / Payment Links, Google Calendar API or Calendly, Claude (Anthropic). Weekend scope: about 8 hours.

The Problem

Tattoo artists do not lose business because their work is bad. They lose it in the inbox. A busy artist in Brooklyn or Austin can burn two to three hours a day answering the same…

The Solution

Tattoo DM Booking Agent (working name: InkReply) is an AI booking agent that lives on Instagram DMs — and optionally Facebook Messenger and email — and turns inquiry spam into…

Market Research

The tattoo studio software market is valued around USD 123.5–250 million in 2024 and projected to reach roughly USD 250–600 million by 2033, with CAGRs commonly cited in the…

Competitive Landscape

Inkbook — Tattoo-focused booking, CRM, waivers, design sharing. Strong vertical fit. Weak on AI DM automation. Pricing roughly $29–99/month. UVP: all-in-one studio ops, not inbox…

Business Model

Artist ($49/month) — One IG inbox, FAQ automation, calendar sync, Stripe deposits, approve queue.

Recommended Tech Stack

Next.js App Router + Vercel — Landing, onboarding wizard, approve queue web UI, billing portal.

AI Prompts to Build This

Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.

  1. 1. Project Setup

    Build the weekend MVP of "InkReply": an AI booking assistant for tattoo artists. It drafts replies to client DMs in the artist's voice, and the artist approves them with one tap.
    
    Stack: Next.js, TypeScript, Tailwind, shadcn/ui, Supabase (Postgres, Row Level Security, Auth with email magic link), Claude for intent and drafts. Deploy on Vercel.
    Inbox: a mock inbox where you paste a client message. The Instagram connection comes later.
    
    Tables (Row Level Security on, each artist reads only their own rows):
    - artists(id, user_id, tone_samples jsonb, pricing_policy jsonb, deposit_cents)
    - conversations(id, artist_id, platform, external_thread_id, status, client_handle)  where status is one of faq_auto, needs_approval, booked, paid
    - messages(id, conversation_id, role, body, created_at)  where role is one of client, assistant, artist
    - bookings(id, conversation_id, starts_at, deposit_payment_id, status)
    
    Screens: /onboarding (deposit amount, pricing ranges for flash and custom work, availability notes, five past DM replies as tone samples), /inbox, /approve.
    Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), ANTHROPIC_API_KEY.
    
    Do not build: billing or plans for the artist, the Instagram or Messenger connection, Google Calendar sync, email, shop or multi-artist accounts.
    Done when: npm run dev starts, an artist can sign in and finish onboarding, and the four tables exist with Row Level Security on.
  2. 2. Core Feature

    Build the one feature that proves InkReply: turn a client message into a drafted reply, and a confirmed date into a paid deposit.
    1. When a client message is added to a conversation, ask Claude to classify the intent as one of pricing, availability, deposit, portfolio, aftercare, custom_quote or spam. Return JSON.
    2. For pricing, availability, deposit, portfolio and aftercare, draft a reply from the artist's pricing_policy and tone_samples and put it in the approve queue.
    3. For custom_quote, draft a suggested reply and set the conversation to needs_approval.
    4. /approve shows the draft with Edit, Approve and send, and Escalate. Sending writes a messages row with role artist.
    5. When the client confirms a date window, create a Stripe Payment Link for the artist's deposit_cents and put it in the reply. On the checkout.session.completed webhook, set the conversation to paid and write a bookings row.
    Rules: match the artist's sign-off and emoji habits from tone_samples. Always mention the deposit before holding a date. Never invent an exact sleeve price: give the range from the policy and ask for size and placement. Include the booking link only after the intent is availability or deposit.
    Empty state: with no messages, show a button that adds a sample client message.
    Done when: a pasted pricing question gets a drafted reply in the artist's voice, and a test deposit through the Payment Link marks the conversation paid.
  3. 3. Landing Page

    Build a one-page landing site for InkReply, an AI booking assistant for tattoo artists.
    Headline: "Tattoo more. DM less." One button: Join the waitlist.
    Sections: the problem (booking DMs fill the hours between clients), how it works in five steps (connect, auto-handle the common questions, qualify, collect a deposit, hand edge cases to you), a sample thread with a drafted reply, and a short FAQ.
    Waitlist: store the email in a waitlist table in Supabase. No other service.
    Voice: friendly and direct, from one working artist to another.
    Done when: the page renders on a phone and a submitted email appears in the waitlist table.
  4. 4. Branding Package

    Use a design or image tool for this one. A coding agent cannot draw a logo.
    Brand for InkReply: a wordmark and an icon that suit a tattoo studio without leaning on tattoo cliches.
    Colors: near-black, bone white and one ink-red accent. Typography: one confident sans for the interface.
    Deliverables: wordmark, icon, an Instagram profile image, and one launch graphic that says "Tattoo more. DM less."
    Done when: each deliverable is saved in one folder and the wordmark reads at 18px.