FollowUpGuard Lite is a single-page micro-SaaS for small marketing agencies in the USA, UK, and Australia. Its purpose is to help agency owners stop losing potential clients because they forget to follow up on sales proposals and leads. An agency sends 20 proposals; some prospects don't reply, some need another follow-up, and others get forgotten. FollowUpGuard Lite makes those forgotten sales opportunities visible without requiring users to migrate to a complicated CRM.
The product identifies overdue follow-ups, prospects with no next action scheduled, and follow-ups that need attention today through a Follow-Up Leak Detector. It provides AI-generated suggested follow-up messages and a simple report showing completed and missed follow-ups. It supports CSV import of prospects and daily email reminders. It is explicitly not another CRM β it is a tool that makes forgotten sales opportunities visible.
The audience is small marketing agencies (5β20 people) whose owners are sellers first and operators second. They live in Gmail, Sheets, and Slack, feel quiet dread about deals going cold, and distrust enterprise CRMs. The commercial target is $500 MRR by the end of 2026, with a first milestone of three paying customers.
FollowUpGuard Lite is delivered as a production-ready web application with:
Current actors are the Agency Owner and the Platform Administrator. Narrow exclusions: the product is not a CRM and does not require CRM migration; it does not add adjacent account-management, team-collaboration, or enterprise sales-platform capabilities beyond what is stated.
FollowUpGuard Lite is a first-party application. Agency Owners establish identity through the Login surface (Google Login or Email Login) and then work inside a protected workspace where their prospects, follow-up schedules, AI-suggested messages, reports, analytics, settings, and billing are privately owned and resumable. The Platform Administrator verifies identity through the same Login surface and reaches the Admin dashboard, which is restricted to the administrator role.
Public, anonymous surfaces are the Landing page and Pricing page. All workspace destinations (Dashboard, Prospects, Prospect Details, Reports, Analytics, User settings, Billing page) and the Admin dashboard require an authenticated session; the Admin dashboard additionally requires the administrator role. Stripe owns subscription billing and payment processing; the application owns the subscription record and billing view. Daily email reminders are produced by background automation on behalf of an authenticated Agency Owner with follow-up records. AI-suggested follow-up messages are generated by an AI service invoked from Prospect Details.
Current scope covers everything in this document. Future ideas from the source (e.g., additional features based on what paying customers need) are not current commitments and are excluded from current pages and acceptance.
Not applicable β no reference directive with content_source was supplied.
leaks.ts, line-numbered rows, accent severity tokens, copy button).FR-1 β Follow-Up Leak Detector (explicit). As an Agency Owner, I should see overdue follow-ups, prospects with no next action scheduled, and follow-ups that need attention today, so that neglected sales opportunities become visible. Lifecycle: actor opens Dashboard β system evaluates prospects and follow-ups β leak groups render with severity tokens β actor opens an item to Prospect Details. Access: authenticated Agency Owner. Failure/recovery: if evaluation fails, an error state with retry is shown. Continuation: actor acts on a leak item.
FR-2 β AI-suggested follow-up messages (explicit). As an Agency Owner, I should generate an AI-suggested follow-up message for a prospect, so that I can respond without drafting from scratch. Lifecycle: actor opens Prospect Details β requests suggestion β AI service returns message β actor copies/edits. Access: authenticated Agency Owner. Failure/recovery: generation error shows retry. Continuation: actor records outcome.
FR-3 β Completed vs. missed follow-up report (explicit). As an Agency Owner, I should see a simple report of completed and missed follow-ups, so that I understand where follow-ups were honored or dropped. Access: authenticated Agency Owner. Failure/recovery: error with retry. Continuation: actor adjusts behavior via Dashboard.
FR-4 β CSV import of prospects (explicit). As an Agency Owner, I should import prospects via CSV, so that I can populate the workspace without CRM migration. Lifecycle: actor opens Prospects β uploads CSV β system validates rows β import summary shown. Failure/recovery: row-level validation errors are surfaced for correction. Continuation: imported prospects appear in Dashboard leak detection.
FR-5 β Daily email reminders (explicit). As an Agency Owner, I should receive daily email reminders of follow-ups needing attention, so that I do not forget them. Lifecycle: background automation runs daily for an authenticated Agency Owner with follow-up records β email delivered to the owner. Access: authenticated Agency Owner with follow-up records. Failure/recovery: delivery failures are logged; the owner can still see items in Dashboard. Continuation: owner acts on reminders in Dashboard.
FR-6 β Google Login and Email Login (explicit). As an Agency Owner or Platform Administrator, I should sign in with Google or email, so that I can reach my protected workspace. Lifecycle: actor opens Login β chooses provider β identity verified β redirected to intended destination. Access: anonymous entry. Failure/recovery: invalid credentials or OAuth failure show error with retry. Continuation: actor reaches protected destination.
FR-7 β Self-service sign-up (required_inference). As an Agency Owner, I should create an account via Google or email, so that I can start using the workspace. Access: anonymous entry on Login. Failure/recovery: duplicate email or validation error shown. Continuation: redirected to Dashboard.
FR-8 β Stripe subscriptions (explicit). As an Agency Owner, I should subscribe to Starter $19/month, Agency $39/month, or Agency Plus $59/month via Stripe, so that I can pay for the product. Lifecycle: actor selects plan on Pricing β authenticated β Stripe checkout β subscription recorded β Billing page reflects status. Access: authenticated Agency Owner. Failure/recovery: payment failure shows error and retry. Continuation: workspace access continues per subscription status.
FR-9 β Billing management (explicit). As an Agency Owner, I should view and manage my subscription and billing details on the Billing page, so that I can control my plan. Access: authenticated Agency Owner. Failure/recovery: Stripe portal errors show retry. Continuation: return to workspace.
FR-10 β Admin oversight (explicit). As a Platform Administrator, I should oversee the product and its paying customers via the Admin dashboard, so that I can monitor the service. Access: authenticated Platform Administrator (role-restricted). Failure/recovery: error with retry. Continuation: review customer/subscription state.
FR-11 β Analytics (explicit). As an Agency Owner, I should view analytics of follow-up activity, so that I can understand trends. Access: authenticated Agency Owner. Failure/recovery: error with retry. Continuation: navigate to Reports.
FR-12 β User settings and dark mode (explicit). As an Agency Owner, I should configure settings including dark mode, so that the interface matches my preference. Access: authenticated Agency Owner. Failure/recovery: save error with retry. Continuation: preference persists.
FR-13 β Responsive design (explicit). As an Agency Owner, I should use the product across viewports, so that I can work on any device. Acceptance: layouts remain usable at 375px, 768px, and 1280px.
FR-14 β SEO (explicit). As the product, public pages should be SEO-optimized so that agencies can discover FollowUpGuard Lite.
FR-15 β Error handling and loading states (explicit). As an Agency Owner, I should see clear loading and error states with recovery, so that I always know what is happening.
FR-16 β REST APIs and database (explicit). As the system, REST APIs and a database schema should support all above capabilities.
FR-17 β Deployment, environment variables, README, sample data (explicit). As the delivery team, I should provide deployment configuration, environment variables, a README, and sample data, so that the product is production-ready.
Muse: Adham Dannaway. Headline: "Your pipeline is leaking right now."
Light mode tokens:
#F4F1EA (warm paper)#FFFFFF#12141A (deep ink)#12141A#FF4A1C (vermilion β leak signals, primary CTA, split seam)#6B6F76#C98A00 (restrained, single use)Dark mode tokens:
#0E1014#171A21#F2EFE8#FF4A1C (unchanged)Typography:
Shape language: Sharp corners β 0β2px radius on cards, 4px on buttons, 999px only on status pills. Hairline 1px rules in #12141A at 12% opacity form the visible 8-pt grid. Split seam is a 2px accent line running full height of hero and repeating as section divider. Dark code panels have a 1px inset light border (#FFFFFF at 8%) and a small monospace filename tab in the top-left corner. Data rows are ruled, never boxed in shadow.
Layout: Two-column asymmetric split β left 7 columns paper (human), right 5 columns ink (code/data). Seam always visible on desktop; collapses on mobile into stacked order (human first, code second) with seam becoming a horizontal accent rule. Dashboard adopts the same split: ink-dark left rail with monospace nav labels, paper main canvas with white ruled tables, right inspector panel with code-block "suggested message" card. 8-pt spacing scale; max content width 1240px; 24px gutters at 375px.
Imagery: Diagrams and interface itself β SVG prospect row half wireframe (dashed strokes, monospace coordinates) and half finished UI; schematic icons for overdue/leak/today on an 8-pt grid; recurring "leak" motif (dotted line escaping a solid rectangle in accent). Marketing imagery = real product screenshots framed as browser chrome with monospace URL bars, plus tiny isometric diagrams of a CSV landing in a table.
Avoid: Centred headline + subheadline + blue button SaaS hero; blue/indigo primary or accent; glassmorphism, frosted blur, gradient blobs; identical hover-lift card grids with soft shadows; rounded 16px+ pills; photography as hero subject; Inter, Roboto, Arial, system-ui, Poppins; more than one chromatic accent beyond vermilion (+ amber for due today).
The public entry is a full-viewport split screen divided by a 2px vermilion seam at 58/42. LEFT (paper #F4F1EA): an oversized Instrument Sans headline stacked in three ragged lines β "Your pipeline" / "is leaking" / "right now." β with the last word set at 104px in #FF4A1C and a single ink CTA "Find my leaks" pinned beneath it, plus a monospace micro-label "FOLLOW-UP LEAK DETECTOR β v1.0". RIGHT (ink #12141A): a live-feeling product panel showing three ruled prospect rows; the top row is mid-transformation β its left half dashed wireframe, right half finished UI β with a monospace overlay reading "LEAK: no next action Β· 14d". A thin cursor-highlight follows the pointer across the paper half. On mobile the seam rotates horizontal, headline drops to 44px, and the dark panel stacks beneath as a full-width card with the wireframe row still visible. This recomposes only accepted content (leak categories, CTA, product panel) and introduces no new behavior.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief:

Follow-Up Leak Detector β v1.0
Overdue follow-ups, prospects with no next action and follow-ups due today β surfaced without migrating to a complicated CRM.
LEAK: no next action Β· 14d
01Suggested follow-up
When a follow-up is due, FollowUpGuard Lite drafts a message from the proposal you sent and how long the thread has gone quiet. Review it, adjust the tone, and send it from your own inbox.
to: "Priya Raman",subject: "Q4 launch proposal β quick check-in",context: "last contact 6 Oct Β· no next action",tone: "direct, warm",body: [ "Following up on the Q4 launch proposal we sent on 6 Oct β you mentioned the team wanted to align on budget before committing." "If it helps, I can hold the current scope and timeline for another week while you decide. Would a 15-minute call on Thursday work?" ]02Completed vs. missed
Every follow-up you complete and every one you miss is counted side by side, month over month. No dashboards to configure β the report is waiting when you open it.
| Metric | This month | Last month |
|---|---|---|
| Completed | 14 | 11 |
| Missed | 3 | 5 |
| Due today | 2 | 1 |
| No next action | 4 | 6 |
Swipe table β
Follow-Up Leak Detector

Follow-Up Leak Detector β v1.0
Overdue follow-ups, prospects with no next action and follow-ups due today β surfaced without migrating to a complicated CRM.
LEAK: no next action Β· 14d
01Suggested follow-up
When a follow-up is due, FollowUpGuard Lite drafts a message from the proposal you sent and how long the thread has gone quiet. Review it, adjust the tone, and send it from your own inbox.
to: "Priya Raman",subject: "Q4 launch proposal β quick check-in",context: "last contact 6 Oct Β· no next action",tone: "direct, warm",body: [ "Following up on the Q4 launch proposal we sent on 6 Oct β you mentioned the team wanted to align on budget before committing." "If it helps, I can hold the current scope and timeline for another week while you decide. Would a 15-minute call on Thursday work?" ]02Completed vs. missed
Every follow-up you complete and every one you miss is counted side by side, month over month. No dashboards to configure β the report is waiting when you open it.
| Metric | This month | Last month |
|---|---|---|
| Completed | 14 | 11 |
| Missed | 3 | 5 |
| Due today | 2 | 1 |
| No next action | 4 | 6 |
Swipe table β
Follow-Up Leak Detector
No comments yet. Be the first!