juntekim.com/stripe_to_invoice/app/marketing/page.tsx
2025-12-28 16:39:37 +00:00

170 lines
6.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// app/checklist/page.tsx
export default function GoToMarketChecklist() {
return (
<main className="max-w-3xl mx-auto p-8 space-y-16">
{/* Header */}
<section>
<h1 className="text-2xl font-semibold">
Go-to-Market Checklist (Post-MVP)
</h1>
<p className="mt-2 text-gray-600">
A step-by-step execution checklist to find the right customers,
sell with certainty, and avoid wasted effort.
</p>
</section>
{/* ICP */}
<section>
<h2 className="text-xl font-medium">1. Confirm the target customer (non-negotiable)</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>UK-based business</li>
<li>VAT registered</li>
<li>Uses Stripe Checkout or Payment Links</li>
<li>Uses Xero (or QuickBooks)</li>
<li>Wants invoices to exist cleanly in the ledger</li>
<li>Billing is one-off, annual, or fixed recurring</li>
<li className="text-gray-500">No usage billing, no proration</li>
</ul>
<p className="mt-2 text-gray-600">
If any of these are false, do not sell to them.
</p>
</section>
{/* Problem Validation */}
<section>
<h2 className="text-xl font-medium">2. Validate pain before pitching</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Ask: Do Stripe payouts and Xero invoices always match?</li>
<li>Listen for: manual fixes, journals, spreadsheets, month-end stress</li>
<li>Confirm VAT reconciliation is a pain point</li>
<li>Confirm a human currently checks or fixes things</li>
</ul>
<p className="mt-2 text-gray-600">
No visible pain = no sale.
</p>
</section>
{/* Channels */}
<section>
<h2 className="text-xl font-medium">3. Choose acquisition channel (in order)</h2>
<div className="mt-4 space-y-6">
<div>
<h3 className="font-medium">A. Accountants & bookkeepers (primary)</h3>
<ul className="mt-2 space-y-1 list-disc list-inside text-gray-700">
<li>UK-based Xero partners</li>
<li>Bookkeepers handling Stripe clients</li>
<li>Fractional CFOs</li>
</ul>
<p className="mt-1 text-gray-600">
Pitch: Stripe payments accountant-approved Xero invoices. Automatically.
</p>
</div>
<div>
<h3 className="font-medium">B. Reddit & communities (problem-aware)</h3>
<ul className="mt-2 space-y-1 list-disc list-inside text-gray-700">
<li>Search Stripe + Xero reconciliation threads</li>
<li>Explain why the problem exists</li>
<li>Describe the accounting-first solution</li>
<li>Let people DM you</li>
</ul>
</div>
<div>
<h3 className="font-medium">C. Targeted founder outbound</h3>
<ul className="mt-2 space-y-1 list-disc list-inside text-gray-700">
<li>UK agencies</li>
<li>B2B SaaS with annual or fixed billing</li>
<li>Founder still involved in finance</li>
</ul>
</div>
</div>
</section>
{/* Sales Execution */}
<section>
<h2 className="text-xl font-medium">4. Close with outcome, not features</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Do not demo dashboards</li>
<li>Do not explain internals</li>
<li>Promise: Next Stripe payment appears as paid in Xero</li>
<li>Charge £200/month immediately</li>
</ul>
<p className="mt-2 text-gray-600">
If they want a free trial, they are not the customer.
</p>
</section>
{/* Delivery */}
<section>
<h2 className="text-xl font-medium">5. Deliver proof immediately</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Connect Stripe</li>
<li>Connect Xero</li>
<li>Trigger a real payment</li>
<li>Show paid invoice in Xero</li>
<li>Send screenshot or reconciliation summary</li>
</ul>
<p className="mt-2 text-gray-600">
The product is the outcome.
</p>
</section>
{/* Objections */}
<section>
<h2 className="text-xl font-medium">6. Capture objections and edge cases</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Ask: What would make this risky?</li>
<li>Ask: What would your accountant question?</li>
<li>Log every concern verbatim</li>
<li>Turn repeated concerns into rules or exclusions</li>
</ul>
</section>
{/* Narrow */}
<section>
<h2 className="text-xl font-medium">7. Narrow the ICP aggressively</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Remove customers that add complexity</li>
<li>Publish exclusions clearly</li>
<li>Optimise for repeatability, not volume</li>
</ul>
</section>
{/* Scale */}
<section>
<h2 className="text-xl font-medium">8. Scale only what already works</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>Automate manual steps youve repeated 10×</li>
<li>Build exception handling before new features</li>
<li>Add period close + human sign-off</li>
</ul>
</section>
{/* Scoreboard */}
<section>
<h2 className="text-xl font-medium">9. Weekly scoreboard</h2>
<ul className="mt-4 space-y-1 list-disc list-inside text-gray-700">
<li>New paid conversations</li>
<li>Time to first reconciled payment</li>
<li>Monthly churn</li>
<li>Unresolved exceptions</li>
</ul>
</section>
{/* Close */}
<section className="pt-8 border-t">
<p className="text-gray-500 text-sm">
If this business fails, it will not be because the software didnt work.
It will be because the wrong customers were targeted or certainty wasnt proven.
</p>
</section>
</main>
)
}