ship-create 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +39 -0
  2. package/create.mjs +301 -0
  3. package/package.json +25 -0
  4. package/templates/.cursorrules +51 -0
  5. package/templates/.windsurfrules +51 -0
  6. package/templates/AGENTS.md +51 -0
  7. package/templates/CLAUDE.md +51 -0
  8. package/templates/docs/HUMAN_FLOW.md +205 -0
  9. package/templates/docs/PROJECT.md +154 -0
  10. package/templates/docs/PROMPTS.md +246 -0
  11. package/templates/docs/product-types/CRM_TEMPLATE.md +78 -0
  12. package/templates/docs/product-types/DASHBOARD_TEMPLATE.md +78 -0
  13. package/templates/docs/product-types/DIRECTORY_TEMPLATE.md +75 -0
  14. package/templates/docs/product-types/INTERNAL_TOOL_TEMPLATE.md +77 -0
  15. package/templates/docs/product-types/LEADGEN_TEMPLATE.md +78 -0
  16. package/templates/docs/product-types/MARKETPLACE_TEMPLATE.md +81 -0
  17. package/templates/docs/product-types/MEMBERSHIP_TEMPLATE.md +80 -0
  18. package/templates/docs/product-types/SAAS_TEMPLATE.md +79 -0
  19. package/templates/starter-kit/README.md +64 -0
  20. package/templates/starter-kit/app/backoffice/content/page.tsx +93 -0
  21. package/templates/starter-kit/app/backoffice/layout.tsx +105 -0
  22. package/templates/starter-kit/app/backoffice/page.tsx +165 -0
  23. package/templates/starter-kit/app/backoffice/settings/page.tsx +145 -0
  24. package/templates/starter-kit/app/backoffice/users/page.tsx +134 -0
  25. package/templates/starter-kit/app/globals.css +141 -0
  26. package/templates/starter-kit/app/layout.tsx +43 -0
  27. package/templates/starter-kit/app/member/(app)/billing/page.tsx +137 -0
  28. package/templates/starter-kit/app/member/(app)/content/page.tsx +111 -0
  29. package/templates/starter-kit/app/member/(app)/dashboard/page.tsx +129 -0
  30. package/templates/starter-kit/app/member/(app)/layout.tsx +130 -0
  31. package/templates/starter-kit/app/member/(app)/settings/page.tsx +96 -0
  32. package/templates/starter-kit/app/member/login/page.tsx +106 -0
  33. package/templates/starter-kit/app/member/signup/page.tsx +120 -0
  34. package/templates/starter-kit/app/page.tsx +82 -0
  35. package/templates/starter-kit/app/sale/_components/cta-footer.tsx +66 -0
  36. package/templates/starter-kit/app/sale/_components/faq.tsx +107 -0
  37. package/templates/starter-kit/app/sale/_components/features.tsx +95 -0
  38. package/templates/starter-kit/app/sale/_components/hero.tsx +106 -0
  39. package/templates/starter-kit/app/sale/_components/pricing.tsx +133 -0
  40. package/templates/starter-kit/app/sale/_components/problem.tsx +59 -0
  41. package/templates/starter-kit/app/sale/_components/testimonials.tsx +100 -0
  42. package/templates/starter-kit/app/sale/page.tsx +21 -0
  43. package/templates/starter-kit/components/ui/avatar.tsx +50 -0
  44. package/templates/starter-kit/components/ui/badge.tsx +36 -0
  45. package/templates/starter-kit/components/ui/button.tsx +56 -0
  46. package/templates/starter-kit/components/ui/card.tsx +78 -0
  47. package/templates/starter-kit/components/ui/input.tsx +24 -0
  48. package/templates/starter-kit/components/ui/table.tsx +88 -0
  49. package/templates/starter-kit/components/ui/tabs.tsx +55 -0
  50. package/templates/starter-kit/lib/mock-data.ts +118 -0
  51. package/templates/starter-kit/lib/utils.ts +6 -0
  52. package/templates/starter-kit/next.config.mjs +6 -0
  53. package/templates/starter-kit/package.json +36 -0
  54. package/templates/starter-kit/postcss.config.mjs +9 -0
  55. package/templates/starter-kit/tailwind.config.ts +83 -0
  56. package/templates/starter-kit/tsconfig.json +41 -0
@@ -0,0 +1,78 @@
1
+ # CRM Template
2
+
3
+ A CRM lives or dies on one thing: does it make the next action obvious? Unlike most SaaS, the core unit isn't a "user session" — it's a **relationship over time** (a contact, a deal, a thread of activity). Plan around the pipeline, not the screen. Build the activity log before you build the dashboard — without a reliable history, every other feature (reminders, reporting, automation) has nothing to read from. Launch with one pipeline that matches how your first customer actually sells, not a generic "Lead → Qualified → Closed" template nobody asked for.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Contact records (people) with custom fields
8
+ - [ ] Company/account records, linked to multiple contacts
9
+ - [ ] Deal / opportunity records with stage + value
10
+ - [ ] Pipeline view (kanban by stage) — at least one, configurable later
11
+ - [ ] Activity log (calls, emails, notes, meetings) attached to contact/deal
12
+ - [ ] Tasks & reminders (due date, assignee, overdue flagging)
13
+ - [ ] Email integration or logging (manual log at minimum for MVP)
14
+ - [ ] Search across contacts/companies/deals
15
+ - [ ] Filters & saved views (e.g., "my open deals," "stale > 14 days")
16
+ - [ ] Reporting: pipeline value by stage, win rate, activity volume
17
+ - [ ] Import (CSV) and export
18
+ - [ ] User roles (admin, rep, read-only) if multi-user from day one
19
+ - [ ] Notifications (in-app and/or email) for assigned tasks and deal changes
20
+ - [ ] Duplicate detection/merge for contacts (becomes painful fast without it)
21
+
22
+ ## Data Model Starter
23
+
24
+ | Entity | Key Fields | Relationships |
25
+ |---|---|---|
26
+ | Contact | name, email, phone, title, source, owner_id | belongs to Company; has many Activities, Deals |
27
+ | Company | name, domain, industry, size, owner_id | has many Contacts, Deals |
28
+ | Deal | name, value, stage, probability, close_date, owner_id | belongs to Contact/Company; has many Activities |
29
+ | Pipeline / Stage | name, order, pipeline_id | belongs to Pipeline; has many Deals |
30
+ | Activity | type (call/email/note/meeting), body, timestamp, user_id | belongs to Contact and/or Deal |
31
+ | Task | title, due_date, status, assignee_id | belongs to Contact/Deal (optional) |
32
+ | User | name, email, role | has many Deals (as owner), Activities, Tasks |
33
+
34
+ ## Core User Flows
35
+
36
+ 1. Add contact → enrich with company → log first activity
37
+ 2. Create deal → assign stage → move through pipeline via drag/dropdown
38
+ 3. Log activity (call/email/note) → auto-timestamp → visible on contact timeline
39
+ 4. Create task with due date → get reminded → mark complete
40
+ 5. Filter pipeline view → spot stale/at-risk deals → take action
41
+ 6. Run report → export pipeline summary for a sales meeting
42
+ 7. Import contact list (CSV) → dedupe → assign owner
43
+
44
+ ## Monetization Pattern
45
+
46
+ Per-seat subscription (price per user/month) is the dominant model — value scales with team size, and usage (deals, contacts) is rarely the metering unit at small scale. Common tiering: limit seats, pipelines, or automation/integrations by plan rather than contact count, since artificially capping contacts feels punitive and erodes trust. Add-on revenue from integrations (email sync, calling, enrichment) is common at scale but skip for MVP.
47
+
48
+ ## Build Order (MVP fastest path)
49
+
50
+ 1. Contact + Company CRUD (the system of record)
51
+ 2. Deal model + single pipeline kanban view
52
+ 3. Activity log attached to contact/deal (manual entry first)
53
+ 4. Task/reminder with due date and "my tasks" view
54
+ 5. Basic search + filter
55
+ 6. Minimal reporting (pipeline value by stage)
56
+ 7. Defer: email sync, automation rules, multiple pipelines, advanced permissions
57
+
58
+ ## Example AI Build Prompts
59
+
60
+ ```
61
+ Build a CRM contact and deal data model in [Postgres/Supabase], with tables for
62
+ contacts, companies, deals, pipeline_stages, activities, and tasks as described
63
+ in the data model below. Include foreign keys, indexes on owner_id and stage,
64
+ and a soft-delete column. [paste Data Model Starter table]
65
+ ```
66
+
67
+ ```
68
+ Build a kanban-style pipeline view in [React/Next.js] that shows deals grouped
69
+ by stage as draggable cards. Dragging a card to a new column updates the deal's
70
+ stage via API call. Each card shows deal name, value, and days since last activity.
71
+ Highlight cards with no activity in 14+ days in a warning color.
72
+ ```
73
+
74
+ ```
75
+ Build an activity timeline component that shows all activities (calls, emails,
76
+ notes, meetings) for a given contact or deal, newest first, with the ability to
77
+ quickly log a new activity via an inline form (type, body, optional follow-up task).
78
+ ```
@@ -0,0 +1,78 @@
1
+ # Dashboard / Internal Analytics Tool Template
2
+
3
+ A dashboard succeeds or fails on trust in the numbers, not visual polish — if a chart is wrong once, the whole tool gets ignored forever after. Plan the data pipeline (where does truth live, how fresh is it, what happens when a source is late or down) before designing a single widget. Permissions matter more here than in most product types, because dashboards often expose sensitive company data across teams — decide row-level and column-level access rules in the plan, not as an afterthought. Build the data layer and one reliable chart before adding the tenth widget nobody asked for.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Data source connections (database, API, CSV upload, or warehouse)
8
+ - [ ] Scheduled or real-time data refresh/sync
9
+ - [ ] Widget library (line, bar, pie/donut, table, KPI number, funnel)
10
+ - [ ] Dashboard builder/layout (arrange widgets, resize, save layout)
11
+ - [ ] Filters (date range, segment, dimension) that apply across widgets
12
+ - [ ] Drill-down (click a chart segment to see underlying rows)
13
+ - [ ] Role-based access (who sees which dashboards/data)
14
+ - [ ] Export (CSV, PDF, image of chart/dashboard)
15
+ - [ ] Scheduled reports (emailed snapshot on a cadence)
16
+ - [ ] Alerting (notify when a metric crosses a threshold)
17
+ - [ ] Caching/performance handling for large datasets
18
+ - [ ] Audit log of who viewed/changed dashboard configs (for sensitive data)
19
+ - [ ] Multi-dashboard navigation (saved views per team/use case)
20
+
21
+ ## Data Model Starter
22
+
23
+ | Entity | Key Fields | Relationships |
24
+ |---|---|---|
25
+ | Data Source | type, connection_config, last_synced_at | has many Metrics/Datasets |
26
+ | Dataset / Metric | name, source_id, query_or_field, refresh_interval | belongs to Data Source; used by many Widgets |
27
+ | Dashboard | name, owner_id, layout_config (JSON) | has many Widgets; belongs to User (owner) |
28
+ | Widget | type (chart/table/kpi), dataset_id, config (JSON), position | belongs to Dashboard; belongs to Dataset |
29
+ | User | name, email, role | has many Dashboards; restricted by Permission |
30
+ | Permission | user_id or role, resource_id, access_level | belongs to User/Role; applies to Dashboard or Dataset |
31
+ | Alert Rule | metric_id, condition, threshold, notify_channel | belongs to Dataset |
32
+
33
+ ## Core User Flows
34
+
35
+ 1. Admin connects a data source → defines datasets/metrics to track
36
+ 2. Admin/user builds a dashboard → adds widgets → arranges layout → saves
37
+ 3. User opens dashboard → applies date/segment filter → all widgets update
38
+ 4. User clicks into a chart segment → sees underlying detail rows (drill-down)
39
+ 5. User exports current view (CSV/PDF) for a meeting or report
40
+ 6. Admin sets an alert rule → gets notified when a metric crosses threshold
41
+ 7. Admin manages permissions → restricts a sensitive dashboard to specific roles
42
+
43
+ ## Monetization Pattern
44
+
45
+ If internal-only: no direct revenue — value is measured in decision speed and reduced manual reporting labor (the build is justified by hours saved, not a price point). If sold as a product (analytics SaaS), monetization is typically per-seat or usage-tiered by data volume/number of dashboards/refresh frequency, with higher tiers unlocking more data sources, longer history retention, and advanced alerting/export.
46
+
47
+ ## Build Order (MVP fastest path)
48
+
49
+ 1. One reliable data source connection + one dataset (resist connecting everything at once)
50
+ 2. 3-5 hardcoded but real KPI/chart widgets on a single fixed-layout page
51
+ 3. Basic date-range filter applied across all widgets
52
+ 4. Simple role check (admin vs. viewer) — skip granular permissions initially
53
+ 5. CSV export of underlying data
54
+ 6. Defer: drag-and-drop dashboard builder, alerting, scheduled email reports, drill-down
55
+
56
+ ## Example AI Build Prompts
57
+
58
+ ```
59
+ Build a data pipeline that pulls data from [Postgres/API source] on a scheduled
60
+ job (every 15 minutes), aggregates it into a metrics table with columns for
61
+ metric_name, value, dimension, and timestamp, and exposes a REST endpoint that
62
+ returns time-series data filtered by metric_name and date range.
63
+ ```
64
+
65
+ ```
66
+ Build a dashboard page in [React/Next.js] with a global date-range filter at
67
+ the top and 4 widgets below it: a KPI number card, a line chart (trend over
68
+ time), a bar chart (breakdown by category), and a data table. All widgets
69
+ should re-fetch and update when the date filter changes, without a full page reload.
70
+ ```
71
+
72
+ ```
73
+ Add role-based access control to the dashboard app: viewers can see dashboards
74
+ shared with their role but cannot edit layout or data source connections;
75
+ admins can create/edit dashboards and manage which roles can access which
76
+ dashboard. Include a permissions table and middleware that checks access on
77
+ every dashboard load.
78
+ ```
@@ -0,0 +1,75 @@
1
+ # Directory Website Template
2
+
3
+ A directory's entire value proposition is "comprehensive + easy to find what you need" — which means the plan must obsess over taxonomy (categories, tags, filters) before a single listing is entered. The chicken-and-egg problem is real: nobody searches an empty directory, and nobody submits to a directory nobody searches. Solve this in the plan, not in code — usually by seeding listings yourself (scrape/curate the first 50-200) before opening public submissions. Build search/filter and the listing detail page first; claim/submit flows and monetization come after you've proven people search.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Listing records with structured fields (name, category, location, description, contact)
8
+ - [ ] Category/taxonomy structure (categories, subcategories, tags)
9
+ - [ ] Search (by keyword) and filter (by category, location, attributes)
10
+ - [ ] Listing detail page (SEO-friendly URL, structured data for search engines)
11
+ - [ ] Submit-a-listing form (public or gated)
12
+ - [ ] Claim-a-listing flow (verify ownership of an existing unclaimed listing)
13
+ - [ ] Admin moderation queue (approve/reject new and claimed listings)
14
+ - [ ] Featured/sponsored listing placement (paid boost)
15
+ - [ ] Reviews or ratings on listings (optional but common)
16
+ - [ ] Map view (if location-relevant)
17
+ - [ ] Listing owner dashboard (edit own listing, view basic stats)
18
+ - [ ] SEO essentials: sitemap, meta tags per listing, canonical URLs
19
+ - [ ] Reporting for admin: listing count by category, top searched terms
20
+
21
+ ## Data Model Starter
22
+
23
+ | Entity | Key Fields | Relationships |
24
+ |---|---|---|
25
+ | Listing | name, slug, description, status (pending/approved/rejected), location, claimed_by | belongs to Category; has many Reviews; optionally belongs to Owner (User) |
26
+ | Category | name, slug, parent_category_id | has many Listings; self-referencing for subcategories |
27
+ | Owner (User) | name, email, role | has many Listings (claimed) |
28
+ | Review | rating, body, author_name, listing_id | belongs to Listing |
29
+ | Featured Placement | listing_id, start_date, end_date, price_paid | belongs to Listing |
30
+ | Submission | raw submitted fields, status, submitted_at | converts into Listing upon approval |
31
+
32
+ ## Core User Flows
33
+
34
+ 1. Visitor searches/filters directory → views listing detail → contacts business or clicks through
35
+ 2. Business owner submits new listing → admin reviews → listing goes live
36
+ 3. Business owner claims existing unclaimed listing → verifies ownership → gains edit access
37
+ 4. Business owner pays to feature their listing → appears in top/sponsored slots
38
+ 5. Visitor leaves a review on a listing → review appears (moderated or instant)
39
+ 6. Admin browses moderation queue → approves/rejects pending listings and reviews
40
+
41
+ ## Monetization Pattern
42
+
43
+ Primary: featured/sponsored listing fees (flat fee or recurring subscription for premium placement, badges, or extra photos/fields). Secondary: lead-gen fees (charge businesses per inquiry/click generated). Some directories charge a one-time or annual listing fee instead of free submissions, especially in B2B niches. Display ads are a weak fallback — avoid as primary model unless traffic is already very high.
44
+
45
+ ## Build Order (MVP fastest path)
46
+
47
+ 1. Listing + Category data model, seeded manually or via import script
48
+ 2. Listing detail page + category browse page (the SEO-indexable core)
49
+ 3. Search and filter UI
50
+ 4. Submit-a-listing form → goes into a pending/admin-approval state
51
+ 5. Basic admin moderation queue (approve/reject)
52
+ 6. Defer: claim flow, reviews, featured placement, map view, owner dashboard
53
+
54
+ ## Example AI Build Prompts
55
+
56
+ ```
57
+ Build a directory listing data model in [Postgres/Supabase] with listings,
58
+ categories (supporting nested subcategories via parent_category_id), and a
59
+ status field (pending/approved/rejected) for moderation. Include a slug field
60
+ generated from the listing name for SEO-friendly URLs.
61
+ ```
62
+
63
+ ```
64
+ Build a directory browse page in [Next.js] with server-side rendering for SEO,
65
+ showing listings filtered by category and a text search box, paginated 20 per
66
+ page. Each listing card links to a detail page at /listings/[slug] with full
67
+ structured data (schema.org LocalBusiness) embedded for search engines.
68
+ ```
69
+
70
+ ```
71
+ Build a "submit your listing" public form that collects name, category,
72
+ description, location, and contact info, saves it with status=pending, and
73
+ sends an email notification to the admin. Build a simple admin moderation
74
+ page listing all pending submissions with approve/reject buttons.
75
+ ```
@@ -0,0 +1,77 @@
1
+ # Internal Tool Template
2
+
3
+ Internal tools have a captive, forgiving-on-design but unforgiving-on-correctness user base — your coworkers will tolerate ugly UI but will not tolerate a tool that loses data, skips an approval step, or can't explain who did what. Plan around the existing company process you're replacing or augmenting (the paper form, the spreadsheet, the Slack thread) — the fastest path to adoption is matching that mental model, not redesigning the process from scratch. Build the audit log and permission model early; internal tools routinely get audited later for "who approved this" and you do not want that to be undiscoverable.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Internal auth (SSO/company login preferred over public signup)
8
+ - [ ] Role-based permissions matching org structure (requester/approver/admin)
9
+ - [ ] Core workflow/form (the specific process being digitized)
10
+ - [ ] Approval flow with explicit states (submitted → approved/rejected → done)
11
+ - [ ] Audit log: every state change recorded with actor, timestamp, before/after
12
+ - [ ] Notifications to relevant people at each workflow step
13
+ - [ ] Search/filter over historical records
14
+ - [ ] Integration with existing systems (HR system, accounting, Slack, email)
15
+ - [ ] Admin override/escalation path for stuck items
16
+ - [ ] Reporting/export for compliance or management review
17
+ - [ ] Bulk actions (approve multiple, reassign multiple) for power users
18
+ - [ ] Comments/notes thread on each record for context
19
+ - [ ] Configurable approval rules (e.g., amount-based routing) if process varies
20
+
21
+ ## Data Model Starter
22
+
23
+ | Entity | Key Fields | Relationships |
24
+ |---|---|---|
25
+ | User | name, email, role, department, manager_id | has many Requests (as requester or approver) |
26
+ | Request / Record | type, status, submitted_by, current_step, payload (JSON) | belongs to User (requester); has many Approvals, Comments |
27
+ | Approval Step | request_id, approver_id, status, decided_at, comment | belongs to Request and User (approver) |
28
+ | Audit Log Entry | actor_id, action, target_type, target_id, before, after, timestamp | belongs to User; references any entity |
29
+ | Integration Sync Log | system_name, request_id, status, synced_at | belongs to Request |
30
+ | Comment | body, author_id, request_id, created_at | belongs to Request and User |
31
+
32
+ ## Core User Flows
33
+
34
+ 1. Employee submits a request via form → enters approval queue
35
+ 2. Approver gets notified → reviews → approves or rejects with comment
36
+ 3. (If multi-step) request routes to next approver based on rules (e.g., amount threshold)
37
+ 4. Requester gets notified of final decision → record marked done/closed
38
+ 5. Admin searches historical requests → filters by status/date/department for review
39
+ 6. Admin exports records for compliance/audit purposes
40
+ 7. Stuck request escalated to admin → manually reassigned or force-resolved
41
+
42
+ ## Monetization Pattern
43
+
44
+ No direct monetization — value is internal: hours saved vs. manual process (spreadsheet/email/paper), error reduction, and audit/compliance readiness. Justify build cost by estimating time currently spent per cycle of the manual process × frequency × number of people involved, and track that as the tool's "ROI metric" post-launch instead of revenue.
45
+
46
+ ## Build Order (MVP fastest path)
47
+
48
+ 1. Core request form + record model matching the existing process exactly
49
+ 2. Single-step approval (submit → approve/reject) before building multi-step routing
50
+ 3. Notifications for submission and decision (email is enough for MVP)
51
+ 4. Audit log capturing every status change
52
+ 5. Basic search/filter over records for admins
53
+ 6. Defer: multi-step routing rules, integrations with other internal systems, bulk actions
54
+
55
+ ## Example AI Build Prompts
56
+
57
+ ```
58
+ Build a request/approval workflow data model in [Postgres/Supabase] with
59
+ requests, approval_steps, and audit_log tables as described below, where every
60
+ status change on a request automatically writes an audit_log entry with actor,
61
+ before-state, after-state, and timestamp via a database trigger or application
62
+ hook. [paste Data Model Starter table]
63
+ ```
64
+
65
+ ```
66
+ Build an approval queue page in [React/Next.js] that shows the logged-in
67
+ user's pending approvals (requests where they are the current approver),
68
+ with approve/reject buttons that require a comment on reject, and update the
69
+ request status and notify the requester immediately on decision.
70
+ ```
71
+
72
+ ```
73
+ Build an audit log viewer page for admins showing every action taken on
74
+ requests (submitted, approved, rejected, escalated) in a searchable, filterable
75
+ table with columns for actor, action, target request, timestamp, and an
76
+ expandable before/after diff for status or field changes.
77
+ ```
@@ -0,0 +1,78 @@
1
+ # Lead Generation Website Template
2
+
3
+ A lead-gen site isn't a product you log into — it's a conversion machine where the "user" converts once (becomes a lead) and then exits to a sales or nurture process. Plan the *funnel*, not the app: traffic source → landing page → form → lead scoring → handoff/follow-up. The build is judged on conversion rate and lead quality, not feature richness. Build the form-to-CRM handoff before you polish design — a beautiful landing page that drops leads into a void is worse than a plain one that reliably notifies sales.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Landing page(s) with clear single CTA (one offer per page, no nav distractions)
8
+ - [ ] Lead capture form (name, email, phone, qualifying questions)
9
+ - [ ] Form validation + spam/bot protection (honeypot or captcha)
10
+ - [ ] Thank-you page / confirmation step (with next-step instruction)
11
+ - [ ] Lead storage (database or direct CRM push)
12
+ - [ ] Lead scoring rules (basic: based on answers, source, or company size)
13
+ - [ ] Email confirmation / autoresponder on submission
14
+ - [ ] Follow-up sequence (drip emails, typically 3-7 touches)
15
+ - [ ] CRM handoff/integration (webhook, Zapier, or native API push)
16
+ - [ ] UTM/source tracking on every lead (know which campaign drove it)
17
+ - [ ] A/B testing capability for headline/CTA/form length
18
+ - [ ] Analytics: conversion rate by page/source, form abandonment tracking
19
+ - [ ] Calendar booking integration (if next step is a sales call)
20
+ - [ ] Admin view: list of leads with status (new/contacted/qualified/converted)
21
+
22
+ ## Data Model Starter
23
+
24
+ | Entity | Key Fields | Relationships |
25
+ |---|---|---|
26
+ | Lead | name, email, phone, source, utm_campaign, status, score | belongs to Campaign; has many FollowUp events |
27
+ | Campaign / Landing Page | slug, headline, offer, traffic_source | has many Leads |
28
+ | Form Submission | raw form fields (JSON), submitted_at, ip_address | converts into Lead |
29
+ | FollowUp Event | type (email/call/sms), sent_at, sequence_step | belongs to Lead |
30
+ | Scoring Rule | field, condition, points | applied to Lead at submission time |
31
+ | Integration Log | destination (CRM/webhook), payload, status, sent_at | belongs to Lead |
32
+
33
+ ## Core User Flows
34
+
35
+ 1. Visitor arrives from ad/search/social → lands on offer-specific page
36
+ 2. Visitor reads offer → fills lead capture form → submits
37
+ 3. System scores lead, tags source, pushes to CRM/webhook
38
+ 4. Visitor sees thank-you page → receives confirmation email immediately
39
+ 5. Lead enters follow-up sequence (automated emails over days/weeks)
40
+ 6. Sales/admin reviews lead list → marks contacted/qualified/converted
41
+ 7. (Optional) Lead books a call directly via embedded calendar on thank-you page
42
+
43
+ ## Monetization Pattern
44
+
45
+ The site itself rarely charges money directly — it generates leads that get monetized downstream: (a) internal sales team closes them into a paid product/service, (b) leads are sold/transferred to a third party (lead-gen-as-a-business, common in insurance/legal/home-services niches), or (c) leads feed a SaaS/membership funnel where the real monetization happens after signup. Plan and report on cost-per-lead and lead-to-customer rate as the core economics, not direct site revenue.
46
+
47
+ ## Build Order (MVP fastest path)
48
+
49
+ 1. Single landing page with one offer and one form (no CMS, hardcode content)
50
+ 2. Form submission → store lead in database + send confirmation email
51
+ 3. UTM/source capture on form submission
52
+ 4. Simple admin list view of leads with status field
53
+ 5. One CRM/webhook integration (even a basic Zapier-style webhook push)
54
+ 6. Defer: lead scoring rules, multi-step follow-up sequences, A/B testing, calendar booking
55
+
56
+ ## Example AI Build Prompts
57
+
58
+ ```
59
+ Build a lead capture landing page in [Next.js/HTML+Tailwind] with a single
60
+ headline, 3 benefit bullets, a lead form (name, email, phone, one qualifying
61
+ dropdown question), and a thank-you state shown inline after submit without
62
+ a page reload. Include UTM parameter capture from the URL into hidden form fields.
63
+ ```
64
+
65
+ ```
66
+ Build a lead intake API endpoint that accepts form submissions, validates
67
+ input, calculates a lead score based on the qualifying answer (e.g.,
68
+ budget > $5k = +30 points), stores the lead in the database with status=new,
69
+ sends a confirmation email via [Resend/SendGrid], and pushes the lead payload
70
+ to a configurable webhook URL for CRM handoff.
71
+ ```
72
+
73
+ ```
74
+ Build an admin leads dashboard showing all captured leads in a table with
75
+ columns for name, email, source/UTM campaign, score, status, and submitted
76
+ date, sortable by score and date, with a status dropdown per row (new/contacted/
77
+ qualified/converted) that updates inline without a page reload.
78
+ ```
@@ -0,0 +1,81 @@
1
+ # Two-Sided Marketplace Template
2
+
3
+ A marketplace is the only product type where you must plan and build for two distinct users (supply and demand) who need each other to show up before either gets value — the classic cold-start problem. Plan liquidity strategy explicitly: which side do you seed manually first, and how do you fake density until real density exists (concierge onboarding, manually matched first transactions, seeded supply). Trust & safety (reviews, verification, dispute handling) is not a "nice to have later" feature here — it is the mechanism that lets strangers transact with each other, which is the entire point of the product. Build matching/discovery and a manual-first transaction flow before automating payments and escrow.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Supply-side profile/listing creation (the thing being offered: service, product, space)
8
+ - [ ] Demand-side browse/search/discovery with filters
9
+ - [ ] Matching logic (search ranking, recommendation, or request-based matching)
10
+ - [ ] Messaging between supply and demand sides
11
+ - [ ] Booking/transaction flow (request → accept/decline → confirm)
12
+ - [ ] Payment processing with escrow or delayed payout to supply side
13
+ - [ ] Take-rate fee calculation applied automatically on each transaction
14
+ - [ ] Reviews/ratings (typically both directions — buyer rates seller and vice versa)
15
+ - [ ] Identity/listing verification (badges, ID checks, or manual approval)
16
+ - [ ] Dispute/resolution flow (cancellation, refund request, support escalation)
17
+ - [ ] Availability/calendar management (if service or space-based)
18
+ - [ ] Notifications for both sides at every transaction stage
19
+ - [ ] Admin moderation tools (suspend users/listings, review disputes)
20
+ - [ ] Supply-side payout dashboard (earnings, pending payouts, history)
21
+
22
+ ## Data Model Starter
23
+
24
+ | Entity | Key Fields | Relationships |
25
+ |---|---|---|
26
+ | Supplier (User) | name, verification_status, payout_account | has many Listings; has many Transactions (as seller) |
27
+ | Buyer (User) | name, payment_method | has many Transactions (as buyer); has many Reviews (written) |
28
+ | Listing | title, price, category, availability, status | belongs to Supplier; has many Transactions, Reviews |
29
+ | Transaction / Booking | listing_id, buyer_id, supplier_id, status, amount, fee_amount | belongs to Listing, Buyer, Supplier |
30
+ | Review | rating, body, author_id, direction (buyer_to_seller/seller_to_buyer), transaction_id | belongs to Transaction |
31
+ | Message | thread_id, sender_id, body, timestamp | belongs to Transaction or a pre-transaction inquiry thread |
32
+ | Payout | supplier_id, amount, status, period | belongs to Supplier; aggregates multiple Transactions |
33
+
34
+ ## Core User Flows
35
+
36
+ 1. Supplier creates a listing → goes live after verification/moderation
37
+ 2. Buyer browses/searches → filters → views listing detail
38
+ 3. Buyer messages supplier or directly books/requests → supplier accepts/declines
39
+ 4. Buyer pays → funds held (escrow) → service/product delivered
40
+ 5. Funds released to supplier (minus take-rate fee) after completion/confirmation
41
+ 6. Both sides leave reviews → reviews appear on respective profiles
42
+ 7. Dispute raised (no-show, quality issue) → resolution flow → refund or payout decision
43
+
44
+ ## Monetization Pattern
45
+
46
+ Take-rate (percentage or flat fee) on every transaction is the dominant model — typically 10-20% depending on category and whether the marketplace adds significant value (payment handling, trust, marketing) versus just listing. Variants: charge the take-rate to supply side, demand side, or split between both. Secondary revenue: featured/boosted listing placement (similar to directory monetization) and supplier subscription tiers for lower take-rate or extra visibility at volume.
47
+
48
+ ## Build Order (MVP fastest path)
49
+
50
+ 1. Listing model + supplier-side creation form (seed initial supply manually if needed)
51
+ 2. Buyer-side browse/search page (no fancy matching algorithm yet — simple filters)
52
+ 3. Manual or simple request-accept booking flow (skip real-time availability calendars at first)
53
+ 4. Payment processing with a basic hold/release mechanism (escrow-lite via manual admin release if true escrow is too complex for MVP)
54
+ 5. Take-rate fee calculation on each transaction
55
+ 6. Reviews (single direction is fine for MVP, add bidirectional later)
56
+ 7. Defer: messaging system, dispute automation, payout dashboards, identity verification, advanced matching
57
+
58
+ ## Example AI Build Prompts
59
+
60
+ ```
61
+ Build a marketplace data model in [Postgres/Supabase] with suppliers, listings,
62
+ buyers, and transactions, where every transaction stores both the gross amount
63
+ and a calculated platform_fee (e.g., 15% of amount), and a net_payout field for
64
+ what the supplier receives. Include a transaction status enum: requested,
65
+ accepted, paid, completed, disputed, refunded.
66
+ ```
67
+
68
+ ```
69
+ Build a booking request flow in [Next.js] where a buyer submits a request on
70
+ a listing, the supplier receives a notification and can accept or decline
71
+ within the app, and accepting transitions the transaction to a payment step
72
+ using [Stripe Connect] with funds held until the buyer confirms completion.
73
+ ```
74
+
75
+ ```
76
+ Build a bidirectional review system where after a transaction is marked
77
+ completed, both the buyer and supplier are prompted to rate each other
78
+ (1-5 stars + optional text), reviews are only published once both sides have
79
+ submitted (or after a 14-day window), and each user's profile shows their
80
+ average rating and review count.
81
+ ```
@@ -0,0 +1,80 @@
1
+ # Membership / Subscription Content Site Template
2
+
3
+ The thing that makes membership sites different from regular SaaS: the product *is* access and belonging, not a tool. Retention depends as much on perceived ongoing value (new content, community activity) as on features. Plan content cadence and tier structure before writing code — a membership site with great gating logic but no content pipeline behind it will churn in month two. Build billing and access-control first; content can be added continuously after launch, but a broken paywall kills trust immediately.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] User signup/login with email verification
8
+ - [ ] Subscription billing (recurring, via Stripe or similar)
9
+ - [ ] Multiple membership tiers with different access levels
10
+ - [ ] Content gating by tier (lock icon / paywall on restricted content)
11
+ - [ ] Content library (courses, posts, videos, downloads) with categories
12
+ - [ ] Progress tracking (for course-style content — completed/in-progress)
13
+ - [ ] Member profile / account settings (update card, change plan, cancel)
14
+ - [ ] Community space (comments, forum, or chat) — even basic threaded comments
15
+ - [ ] Trial period or free tier for top-of-funnel conversion
16
+ - [ ] Dunning/failed-payment handling (retry, grace period, downgrade)
17
+ - [ ] Email notifications (new content drop, billing receipt, payment failed)
18
+ - [ ] Admin panel: publish content, manage tiers, view member list
19
+ - [ ] Cancellation flow (self-serve, with retention offer optional)
20
+ - [ ] Search within gated content
21
+
22
+ ## Data Model Starter
23
+
24
+ | Entity | Key Fields | Relationships |
25
+ |---|---|---|
26
+ | Member (User) | name, email, status (active/cancelled/past_due) | has one Subscription; has many Progress records, Comments |
27
+ | Subscription | tier_id, status, current_period_end, stripe_customer_id | belongs to Member; belongs to Tier |
28
+ | Tier | name, price, billing_interval, access_level | has many Subscriptions; gates Content |
29
+ | Content | title, type (post/video/course/download), tier_required, published_at | belongs to Category; has many Progress records, Comments |
30
+ | Category | name, order | has many Content |
31
+ | Progress | content_id, member_id, status, completed_at | belongs to Member and Content |
32
+ | Comment | body, member_id, content_id, created_at | belongs to Member and Content |
33
+
34
+ ## Core User Flows
35
+
36
+ 1. Visitor browses free/teaser content → hits paywall → signs up
37
+ 2. Choose tier → enter payment → instant access to gated content
38
+ 3. Member browses content library by category → consumes content → progress saved
39
+ 4. Member engages community (comment/discuss) on a piece of content
40
+ 5. Member upgrades/downgrades tier → access adjusts immediately
41
+ 6. Payment fails → grace period → member updates card or gets downgraded
42
+ 7. Member cancels → access continues until period end → then reverts to free/no access
43
+
44
+ ## Monetization Pattern
45
+
46
+ Recurring subscription revenue, typically monthly and annual options (annual at a discount to improve cash flow and reduce churn). Tiering usually splits on content depth, community access, or live components (e.g., "Basic" content-only vs. "Pro" with community + live calls). A free or trial tier is the primary acquisition lever — most membership sites convert from free content, not cold ads, so plan a generous-but-bounded free layer.
47
+
48
+ ## Build Order (MVP fastest path)
49
+
50
+ 1. Auth (signup/login) + member account model
51
+ 2. Stripe subscription integration with one paid tier (skip multi-tier at first)
52
+ 3. Content model + manual admin publishing (no fancy CMS needed yet)
53
+ 4. Tier-based gating logic (show/hide or blur content based on access)
54
+ 5. Member dashboard showing accessible content
55
+ 6. Basic email notifications (welcome, receipt, payment failed)
56
+ 7. Defer: community/comments, progress tracking, multiple tiers, dunning automation
57
+
58
+ ## Example AI Build Prompts
59
+
60
+ ```
61
+ Build a content-gating system in [Next.js/Supabase] where each Content row has
62
+ a tier_required field, and the UI shows full content if the logged-in member's
63
+ active subscription tier meets or exceeds tier_required, otherwise shows a
64
+ blurred preview with an "Upgrade to unlock" CTA linking to the billing page.
65
+ ```
66
+
67
+ ```
68
+ Set up Stripe subscription billing for a membership site with two tiers
69
+ (Basic $19/mo, Pro $49/mo, both with annual options at 20% off). Implement
70
+ webhook handlers for subscription.created, updated, and payment_failed that
71
+ sync subscription status into our database, including a grace period of 5 days
72
+ on failed payment before downgrading access.
73
+ ```
74
+
75
+ ```
76
+ Build a member dashboard page that lists all content the member's tier grants
77
+ access to, grouped by category, with a progress indicator (not started / in
78
+ progress / completed) per item, and a "continue where you left off" section
79
+ at the top showing the 3 most recently accessed items.
80
+ ```
@@ -0,0 +1,79 @@
1
+ # General SaaS Product Template
2
+
3
+ Generic SaaS is the hardest type to template precisely because the "core workflow" is unique to your product — but the scaffolding around it (auth, billing, settings, multi-tenancy) is almost identical across every SaaS ever built. Plan the boring scaffolding fast and cheaply (most of it is now solvable with off-the-shelf tools/templates) so you can spend your real design effort on the one workflow that makes your product different. Decide your multi-tenancy model (single-user accounts vs. team/org accounts with multiple seats) before writing a single migration — retrofitting org-level data isolation later is one of the most expensive mistakes in SaaS.
4
+
5
+ ## Feature Checklist
6
+
7
+ - [ ] Signup/login (email+password and/or OAuth)
8
+ - [ ] Email verification and password reset
9
+ - [ ] Organization/workspace model (if multi-user) with invite flow
10
+ - [ ] Subscription billing (plans, trial, upgrade/downgrade, cancel)
11
+ - [ ] Usage metering (if usage-based pricing) — track and enforce limits
12
+ - [ ] The core workflow (the actual reason the product exists — define explicitly)
13
+ - [ ] Settings: account, billing, team members, API keys/integrations
14
+ - [ ] Role-based permissions within an organization (owner/admin/member)
15
+ - [ ] Notifications (in-app and/or email) for key events
16
+ - [ ] Onboarding flow (first-run experience guiding to first value)
17
+ - [ ] Empty states for every list/dashboard (new accounts have no data yet)
18
+ - [ ] Audit/activity log for account-level actions (helps support & trust)
19
+ - [ ] API (if applicable) with documentation and key management
20
+ - [ ] Data export / account deletion (for compliance and trust)
21
+
22
+ ## Data Model Starter
23
+
24
+ | Entity | Key Fields | Relationships |
25
+ |---|---|---|
26
+ | Organization (Tenant) | name, plan_id, status, created_at | has many Users, Subscriptions, core-workflow entities |
27
+ | User | name, email, role, organization_id | belongs to Organization; has many Sessions |
28
+ | Subscription | plan_id, status, current_period_end, stripe_customer_id | belongs to Organization |
29
+ | Plan | name, price, billing_interval, limits (JSON) | has many Subscriptions |
30
+ | Invite | email, role, organization_id, status, token | belongs to Organization |
31
+ | Core Workflow Entity | (product-specific — e.g., "Project," "Document," "Campaign") | belongs to Organization; owned/edited by Users |
32
+ | Audit Log | actor_id, action, target, timestamp | belongs to Organization |
33
+
34
+ ## Core User Flows
35
+
36
+ 1. Visitor signs up → verifies email → lands in onboarding
37
+ 2. New user completes onboarding → reaches "aha moment" of core workflow
38
+ 3. User invites teammate → teammate joins organization with assigned role
39
+ 4. User starts free trial → uses core workflow → hits paywall or trial expiry
40
+ 5. User upgrades plan → billing processed → limits/features unlock
41
+ 6. Admin manages team (roles, removal) and billing in settings
42
+ 7. User integrates via API or third-party app (if applicable)
43
+
44
+ ## Monetization Pattern
45
+
46
+ Recurring subscription, usually tiered by usage (seats, volume, feature access) or a hybrid of seat-based + usage overage. Freemium or free-trial is the dominant acquisition motion for self-serve SaaS; sales-assisted SaaS instead gates pricing behind a "Contact Us" for higher tiers. Annual billing at a discount improves cash flow and reduces churn — offer it from day one even with just one tier.
47
+
48
+ ## Build Order (MVP fastest path)
49
+
50
+ 1. Auth + single-tenant account model (add org/multi-user later if needed for MVP)
51
+ 2. The one core workflow that is the entire reason to use the product — nothing else
52
+ 3. Minimal settings (account info, password change)
53
+ 4. Stripe integration with one paid plan + trial (skip tiering complexity at first)
54
+ 5. Basic onboarding (a 2-3 step guided first action)
55
+ 6. Defer: team/org multi-user, roles/permissions, API, audit log, usage metering
56
+
57
+ ## Example AI Build Prompts
58
+
59
+ ```
60
+ Build a multi-tenant SaaS data model in [Postgres/Supabase] with organizations,
61
+ users (belonging to one organization with a role: owner/admin/member),
62
+ subscriptions, and plans. Add row-level security so users can only ever query
63
+ data scoped to their own organization_id.
64
+ ```
65
+
66
+ ```
67
+ Build a self-serve onboarding flow in [Next.js] for a new signup: after email
68
+ verification, walk the user through 3 steps (create first [core entity],
69
+ invite a teammate (optional/skippable), see their first piece of real data)
70
+ ending on the main app dashboard, with a progress indicator across all 3 steps.
71
+ ```
72
+
73
+ ```
74
+ Integrate Stripe Billing with a 14-day free trial, one monthly/annual plan,
75
+ and a customer portal link for self-serve plan management. Implement webhook
76
+ handlers for checkout.session.completed, customer.subscription.updated, and
77
+ customer.subscription.deleted that keep our organizations table's
78
+ subscription_status field in sync.
79
+ ```