90-Day Launch Calendar

HOAHelper
Launch
Playbook

A day-by-day coordinated launch calendar from "billing ready" to "25 paying communities." Context: the product is built. This playbook closes the gap to revenue.

Product: Built Billing: Pending (Week 1-2) Launch Date: ~Day 30 Team: 1-2 people (founder-led)
4
phases across 90 days
Day 30
public launch target
25
paying communities by Day 90
$2,250
target MRR at Day 90
Dev / Technical
Marketing / Ads
Business / Operations
Content Creation
Testing / QA
Phase 1 · Days 1–14
Make It Sellable
Pre-Launch Preparation
Days 1–14 · 2 weeks
Build the infrastructure to collect revenue and establish a professional public presence before inviting anyone in.
Week 1
Infrastructure & Quick Wins
Get hoahelper.app live, tracked, and trustworthy Goal: prod domain live, analytics installed, OCR self-hosted
Mon · Day 1
Self-host Tesseract assets in public/tesseract/. Update paths in extractText.ts. ~2 hrs.
Run vitest --coverage. Document which lib/ files need tests.
Tue · Day 2
Create favicon.svg (emerald square + home icon). Add <link rel="icon"> to index.html.
Generate apple-touch-icon.png (180×180) + manifest.json. Test on iOS.
Wed · Day 3
Add OG meta tags: og:title, og:description, og:image (1200×628), twitter:card. Create static OG image.
Verify with Facebook OG Debugger + Twitter Card Validator.
Thu · Day 4
Deploy to Vercel. Configure production domain hoahelper.app. Set DNS.
Add production URL to Supabase Redirect URLs. Test Google OAuth end-to-end on prod.
Fri · Day 5
Install @posthog/react. Instrument: community_created, bylaws_uploaded, chat_message_sent, dl_scan_attempted, entry_logged, stripe_checkout_started.
Install @sentry/react. Verify DSN, test error capture, confirm alerts work.
DAY 5 — hoahelper.app is live, has a favicon, tracks user actions, and catches errors.
Week 2
Billing + Auth
Collect the first $49 Goal: Stripe live mode active. Paywall enforced. Magic link working.
Mon · Day 8
Create Stripe account. Set up $49 (3-month trial) and $9/mo products. Configure Stripe test mode webhook endpoint.
Tue · Day 9
Build create_checkout_session Edge Function. Add trial_ends_at + stripe_customer_id columns to neighborhoods (migration).
Wed · Day 10
Build Stripe webhook handler Edge Function. Handle: checkout.session.completed, invoice.payment_failed, subscription.deleted.
Enable Supabase magic link. Add email OTP to Login.tsx.
Thu · Day 11
Build paywall middleware. Check subscription_status on portal load. Redirect expired/canceled → upgrade page.
Add AI disclaimer below chat input: "Not legal advice."
Fri · Day 12
Full Stripe test mode run: trial purchase → portal access → trial expiry → upgrade. Every webhook event verified.
Switch Stripe to live mode. Deploy. Attempt first test purchase with real card.
DAY 12 — Stripe live mode active. Product can collect real revenue.
Phase 2 · Days 15–30
Beta Testing & Launch Readiness
Beta Testing & Launch Preparation
Days 15–30 · 2 weeks
Real users in, real feedback out, real testimonials captured. Launch only after 3 communities have paid and validated the funnel.
Week 3
Beta Recruitment
Get 5 real HOA communities testing for free Goal: 5 beta admins onboarded, bylaws uploaded, first chat queries answered.
Mon · Day 15
Post in r/HOA: "I built an AI that reads your HOA bylaws and answers questions — looking for 5 HOAs to test it free." Genuine, no spam.
Tue · Day 16
Join 3 Florida HOA Facebook groups. Introduce yourself genuinely. DM admins who post about management frustrations.
Post in r/fuckHOA with helpful comment about board burnout. No promotional link yet.
Wed · Day 17
Write Privacy Policy + Terms of Service. Use a template (Termly or Iubenda). Add both pages to nav footer. Critical for trust.
Unit test coverage sprint: extractText.ts, edge cases in aamva.ts. Target 80% branch coverage on lib/.
Thu · Day 18
Onboard first 2 beta communities. Walk them through setup on a screen-share call. Watch where they hesitate — take notes.
Fri · Day 19
Write 5 helpful answers to HOA questions on Reddit — no links, just value. Build credibility before the AMA.
Send onboarding checklist to beta communities: upload bylaws, share chat link, add guard staff.
Week 4
Feedback + First Revenue
Collect testimonials, fix friction, close first paying customers Goal: 3 paying communities. 2 real testimonials on landing page. Top friction points fixed.
Mon · Day 22
30-min feedback calls with 5 beta communities. Questions: What worked? What confused you? Would you pay $49? What would make you tell a friend?
Tue · Day 23
Fix top 2 friction points from beta calls. Prioritize anything in the onboarding funnel (signup → bylaws upload → first query answered).
Wed · Day 24
Request written testimonials from beta communities. Offer to draft for them. Goal: 2 published on landing page before launch.
Set up support@hoahelper.app. Test email routing to founder inbox. Target: <4hr response time.
Thu · Day 25
Offer beta communities the $49 trial. "You've been using it free — here's your founding rate to keep going." Target: 3 say yes.
Update landing page with real testimonials. Replace placeholder social proof in hero trust strip.
Fri · Day 26
Launch readiness check: all checklist items green. Stripe live, privacy policy live, testimonials live, analytics tracking.
Set up Facebook Ads account. Install pixel on landing page. Verify pixel fires on pageview and checkout initiation.
DAY 26 — 3 paying communities. Real testimonials. Product is ready to launch publicly. Ready for Day 30 launch.
Phase 3 · Days 27–37
Public Launch
Public Launch Week
Days 27–37 · Launch + First 7 days
Coordinated multi-channel launch. Paid ads. Reddit AMA. LinkedIn outreach. Every channel fires simultaneously.
Days 27–29
T-minus 3
Final checks before the switch flips
Day 27 — Pre-launch -3
Create Facebook ad campaigns (Problem angle + Benefit angle). Set up A/B test on headline. Budget: $35/day. Status: Paused.
Create Google Search campaigns (Campaign A + B keywords). Budget: $30/day. Status: Paused.
Day 28 — Pre-launch -2
Draft Reddit AMA post: "I built an AI that reads HOA bylaws and answers resident questions — launching tomorrow, AMA." Have 20 answers pre-written for likely questions.
Draft launch email (if email list exists). Subject: "HOAHelper is live — your community's AI-powered bylaw assistant."
Day 29 — Pre-launch -1
Final end-to-end test: new account → setup → bylaw upload → chat → guard portal → Stripe trial purchase. Time it. Should be <30 min.
Brief beta communities: "We're going public tomorrow. Would you be willing to share our link in your neighborhood's Facebook group?" Arm them with a message template.
Day 30 — Launch
HOAHelper Goes Public
7:00 AM
Team sync + final system checks. Confirm Stripe is live, Sentry is active, PostHog is tracking. Verify hoahelper.app loads in <2.5s. Everyone has the support email pulled up.
8:00 AM
Activate Facebook + Google ad campaigns. Set to spend. Monitor CTR in first 2 hours — kill any ad below 0.5% CTR after 300 impressions.
9:00 AM
Post Reddit AMA in r/HOA: "We built an AI that reads your community's actual bylaws and answers resident questions instantly — launching today, AMA." Respond to every comment within 30 minutes for the first 4 hours.
10:00 AM
Send launch email to any existing list. Subject: "HOAHelper is live — your community deserves instant bylaw answers." Single CTA: "Try it for $49."
11:00 AM
Post on LinkedIn. Personal post from founder: story-format. "HOA boards spend 10+ hours/month answering the same questions for free. I built something about that." Include chat screenshot showing cited answer. No link in post body — in first comment.
12:00 PM
Ask beta communities to post in their neighborhood Facebook groups. Give them the exact text: "Our HOA is now using HOAHelper to answer bylaw questions instantly. Way better than waiting for the board. Try it: [link]"
2:00 PM
First performance check. PostHog: how many trial purchases so far? Sentry: any errors? Stripe: webhook delivery rate? Google Ads: CTR on each ad group. Facebook: CPM and CTR by creative.
4:00 PM
Pause underperforming ads. Any ad <0.5% CTR after 500 impressions gets paused. Increase budget on best performer. Respond to all Reddit AMA comments.
6:00 PM
Day 1 wrap-up. Count Stripe transactions. Reply to all support emails. Screenshot PostHog dashboard. Note top 3 things that worked and 1 thing that didn't.
Days 31–37
Momentum Building
Sustain the launch energy, optimize what's working Goal: 8 paying communities by end of Day 37
Day 31
Analyze Day 0 ad data. Pause creatives below threshold. Write second Reddit post in r/fuckHOA (different angle — guard portal focus).
Follow up with any trial signups that haven't uploaded bylaws. Trigger email: "One step left before your community goes live."
Day 32
Publish first LinkedIn article: "Why volunteer HOA board members burn out — and what we did about it." 600 words, personal story, link in bio.
Set up Google Display retargeting campaign for landing page visitors who didn't convert. $10/day. CPM bidding.
Day 33
First customer health checks. Call any community that signed up on Day 0. Ask: "Did you get it set up? Any issues?" This builds trust AND surfaces bugs.
Day 34
Create first "feature spotlight" post for social: How the guard portal DL scan works in 3 seconds. Short video screen-record on iPhone. Post to LinkedIn + Facebook groups.
Day 35–37
A/B test #1: swap headline on landing page. "Your bylaws. Instant answers." vs "Stop answering the same HOA questions." Run 3 days, measure conversion rate.
Week 1 review: Stripe MRR, PostHog funnel drop-off, Sentry error count, ad CTR and CAC estimate. Write 1-page recap with decisions made.
DAY 37 END — 8 paying communities. Best ad creative identified. Onboarding friction reduced. Retargeting active.
Phase 4 · Days 38–90
Scale & Optimize
Growth & Optimization
Days 38–90 · 8 weeks
Scale what's working. Add upsells. Start the PM channel. Prepare v1.2 scope from real data.
Wk 5–6
Days 38–51
Channel Scaling
Double down on what's working. Add LinkedIn B2B outreach. Goal: 15 paying communities · $1,350 MRR by Day 51
Days 38–40
A/B test #2: landing page CTA. "Start 3-Month Trial — $49" vs "Get Started Free" vs "Claim Your Spot." Run 5 days minimum.
Increase daily budget on winning ad channel by 50%. Maintain hard cap of $165/day total.
Days 41–42
LinkedIn outreach Sprint 1: identify 50 property management firms managing 5+ communities in FL, TX, AZ. Send personalized DM (not a template — reference something specific about their firm).
Days 43–44
Build admin onboarding tooltip tour: 3 steps — (1) Upload bylaws, (2) Share the chat link, (3) Add guard staff. Skip-able. PostHog tracks completion rate.
Days 45–46
Post second Reddit AMA in r/HOA (first was on r/fuckHOA). Slightly different framing: focus on the bylaw Q&A accuracy angle rather than burnout relief.
Build "flagged item" email notification for admins. Edge function sends email via Supabase when needs_review=true.
Days 48–51
30-day health check calls with all paying communities. Script: "Are guards using the portal? Have residents been asking questions? What's the one thing you wish we did better?"
Identify best success story from calls. Get permission to write a case study.
DAY 60 — 15 paying communities · $1,350 MRR · CAC confirmed · First PM conversation underway
Wk 7–8
Days 52–65
Retention + Upsells
Maximize value from existing customers. Launch Premium Support. Goal: First upsell revenue · Published case study · 20 paying communities
Days 52–54
Write case study: "[Community Name] went from 30 board texts/week to 4 — here's how." 800 words. Real metrics. Publish as blog post + LinkedIn article.
Days 55–56
Soft-launch Premium Support add-on ($5/mo). Email current customers: "For communities that want a human to review flagged questions within 4 hours." Manual fulfillment initially. Target: 20% attach rate.
Days 57–58
Add PDF export to visitor reports (alongside existing CSV). Small lift — pdfmake or similar library. Helps admins share at board meetings.
Days 59–60
LinkedIn outreach Sprint 2: follow up on Sprint 1 DMs (60% won't have replied). New 50 outreach targets. Use case study as conversation-starter.
Days 61–65
Attempt to close first property manager deal. Pitch: 3 communities at $9/mo each. No white-label yet — just the existing product under their firm's name recommendation to clients.
A/B test #3: ad creative. Replace problem-focused inbox image with benefit-focused (happy board member on weekends). Run 7 days.
Wk 9–12
Days 66–90
Consolidate & Plan v1.2
Hit Day 90 targets. Lock v1.2 scope from data. Goal: 25 communities · $2,250 MRR · v1.2 scope locked
Days 66–70
Second round of 30-day health checks (communities that onboarded in Days 31–45). Focus on churn risk identification — who hasn't logged a guard entry in 2 weeks?
Double budget on best-performing ad channel (validated by now). Pause the other channel if CAC > $150.
Days 71–75
Publish second blog post: "The 10 most common HOA questions our AI answers (and the rules behind them)." SEO-focused. Target keywords: "HOA bylaw questions", "HOA management software".
Follow up on all PM outreach. Close or archive each lead. Any "interested but not yet" → schedule a demo call.
Days 76–80
Analyze PostHog data: which activation events predict payment? (Probably: bylaws uploaded within 24hr of signup.) Build email trigger targeting this behavior.
Spike: multi-community data model. Understand what schema changes are needed for Property Manager plan. Don't build yet — just document.
Days 81–85
Run 5 structured interviews with paying communities: "What's the one feature you wish we had?" Document verbatim. This builds the v1.2 backlog.
Research HOA industry conferences and associations (CAI — Community Associations Institute). Identify speaking or sponsorship opportunities for Q3.
Days 86–90
90-day post-mortem: actual vs. target on all KPIs. Write 1-page summary with 3 decisions for next 90 days.
Lock v1.2 feature list based on customer interviews + data. Estimate effort. Set next 90-day milestone.
DAY 90 — 25 paying communities · $2,250+ MRR · CAC <$100 · First PM partner · v1.2 roadmap locked
Budget
Channel Budget Allocation
Monthly Ad Budget (Phase 3–4)
Facebook / Instagram$900–1,500/mo
Google Search$600–1,200/mo
Google Display (retargeting)$300–450/mo
LinkedIn (outreach tool)$0 (manual)
Reddit$0 (organic)
Total monthly$1,800–3,150/mo
Break-even Math
Target CAC< $100
Monthly subscription$9/mo
Trial revenue$49 / 3 months
Payback period (sub only)~11 months
Payback with trial~6 months
LTV at 18-month avg tenure~$211/community
Scale rule: If any channel achieves CAC < $75, double that budget immediately. If any channel exceeds CAC $150 after 1,000 impressions, pause and reallocate to what's working. Reddit organic is free and often produces the best-quality leads — invest time there before scaling ad spend.
Measurement
Metrics & Monitoring Framework
MetricCheck DailyCheck WeeklyCheck MonthlyAlert Threshold
Paying communitiesCountGrowth rateMoM %Alert if < 5 by Day 60
MRRStripe dashboardGrowth vs. targetFull reconcileAlert if flat 2+ weeks
Trial-to-paid conversionCalculate by cohortTrend analysisAlert if < 10%
Monthly churnCanceled count% of baseAlert if > 8%
Bylaws upload ratePostHog funnel% of signupsTrendAlert if < 70% within 48hr of signup
Ad CTR (Facebook)Ads ManagerBy creativeBy audiencePause if < 0.5% after 500 impressions
CAC (blended)Spend ÷ new customersBy channelAlert if > $150 blended
AI response errorsSentryError rate %Error categoriesAlert if > 3% error rate
Support response timeEmail inboxAvg. time to replyVolume trendTarget < 4hrs; Alert if > 12hrs
Risk
Risk Mitigation & Contingency Plans
Technical: Stripe billing fails at launch
Prevention: Test every webhook event in test mode before live. Log all payloads.
Contingency: Manual payment via bank transfer / PayPal while fix deploys. Offer 1 week free extension to affected customers. Stripe support SLA is 24hrs.
Market: Admin doesn't upload bylaws → zero value → churns
Prevention: Onboarding tooltip tour. Day 1 trigger email if bylaws not uploaded in 24hrs.
Contingency: Offer to upload bylaws for them (concierge onboarding). Charges 30 minutes of founder time but saves the customer.
Market: Ad CAC exceeds $150
Prevention: A/B test creatives before scaling. Hard $165/day cap.
Contingency: Pause paid immediately. Double down on Reddit organic (free). Direct outreach to 50 communities in 1 week via Facebook groups (manual, no ad spend).
Market: Board member resists AI adoption
Prevention: Address objection proactively in FAQ, ad copy, and sales calls.
Contingency: Offer a 30-min live demo where the founder answers their bylaws live. Converts at very high rates. One demo per day is sustainable.
Technical: AI gives an inaccurate answer
Prevention: System prompt instructs document-only citations. Disclaimer in UI. Weekly manual QA of 10 random responses.
Contingency: Proactive transparency. Email affected community. Offer 1-month credit. Update system prompt with additional constraints. The flagging system prevents the worst cases.
Timeline: Launch delayed past Day 30
Prevention: Billing integration is the only blocking item. Scope is tight and clear.
Contingency: If Stripe is delayed: launch without billing, manually collect payment via invoice for first 5 customers. Build social proof before perfecting monetization. Revenue delay < revenue miss.
Communications
Communication Calendar
External Content Calendar (Recurring)
CadenceContentChannel
Daily (launch week)Respond to all Reddit/LinkedIn comments within 2 hrsReddit, LinkedIn
2x/weekHelpful HOA question answers (no promotion)Reddit
WeeklyFeature spotlight or educational tipLinkedIn, FB groups
Bi-weeklyCustomer success story or testimonial shareAll channels
MonthlyLong-form article: HOA management trend or tipBlog + LinkedIn
MonthlyEmail to customer list: product update + tipEmail
Internal Review Cadence
CadenceReviewOutput
Daily (launch week)Ad metrics, Sentry, StripeAdjust or pause
WeeklyFull KPI dashboard + support inbox1 decision
Bi-weeklyPostHog funnel analysisFix 1 drop-off point
MonthlyRevenue reconcile + churn analysisWritten recap
Day 30, 60, 90Milestone review vs. targetsUpdated roadmap
HOAHelper
90-Day Launch Calendar · April 2026 · Internal use only