startup-builder 0.1.0 → 0.2.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.
package/README.md DELETED
@@ -1,179 +0,0 @@
1
- # startup-builder
2
-
3
- Business-as-Code. Define your startup in minutes.
4
-
5
- ## Quick Start
6
-
7
- ```bash
8
- npx startup-builder
9
- ```
10
-
11
- ## Install
12
-
13
- ```bash
14
- npm install startup-builder
15
- ```
16
-
17
- ## What You Get
18
-
19
- One command. Complete startup foundation.
20
-
21
- ```bash
22
- startup-builder "AI code review for engineering teams"
23
- ```
24
-
25
- ```
26
- ✓ Foundation Sprint Complete problem/solution definition
27
- ✓ Lean Canvas One-page business model
28
- ✓ ICP Ideal customer profile
29
- ✓ Jobs-to-be-Done Customer motivation map
30
- ✓ StoryBrand Clear messaging framework
31
- ✓ Name Startup name + domain
32
- ✓ Landing Page Ready to deploy
33
- ```
34
-
35
- ## CLI
36
-
37
- ```bash
38
- # Full guided experience
39
- startup-builder
40
-
41
- # Start from idea
42
- startup-builder "your startup idea"
43
-
44
- # Run specific modules
45
- startup-builder foundation # Foundation sprint
46
- startup-builder canvas # Lean canvas
47
- startup-builder icp # Ideal customer profile
48
- startup-builder jtbd # Jobs to be done
49
- startup-builder story # StoryBrand messaging
50
- startup-builder name # Name generation
51
- startup-builder landing # Landing page
52
-
53
- # Export everything
54
- startup-builder export --format md
55
- startup-builder export --format json
56
- ```
57
-
58
- ## SDK
59
-
60
- ```typescript
61
- import { builder } from 'startup-builder'
62
-
63
- // Build complete startup foundation
64
- const startup = await builder.create({
65
- idea: 'AI code review for engineering teams',
66
- founder: {
67
- capabilities: ['ML expertise', 'DevTools experience'],
68
- insight: 'Code review is the biggest bottleneck',
69
- motivation: 'Hated waiting for reviews'
70
- }
71
- })
72
-
73
- // Returns complete startup package
74
- // {
75
- // foundation: { problem, customer, solution, mvp, validation },
76
- // canvas: { ... 9 boxes ... },
77
- // icp: { firmographics, buyer, problems, goals, buying },
78
- // jtbd: { mainJob, relatedJobs, forces },
79
- // story: { character, problem, guide, plan, cta, failure, success },
80
- // name: { name, tagline, domain },
81
- // landing: { url, sections }
82
- // }
83
-
84
- // Build incrementally
85
- const foundation = await builder.foundation('AI code review')
86
- const canvas = await builder.canvas(foundation)
87
- const icp = await builder.icp(foundation)
88
- const story = await builder.story(foundation, icp)
89
- const name = await builder.name(foundation)
90
- const landing = await builder.landing(name, story)
91
- ```
92
-
93
- ## The Flow
94
-
95
- ```
96
- ┌─────────────────────────────────────────────────────────────────────┐
97
- │ 1. FOUNDATION SPRINT │
98
- │ Problem → Customer → Solution → MVP → Validation │
99
- ├─────────────────────────────────────────────────────────────────────┤
100
- │ 2. LEAN CANVAS │
101
- │ Complete business model on one page │
102
- ├─────────────────────────────────────────────────────────────────────┤
103
- │ 3. IDEAL CUSTOMER PROFILE │
104
- │ Know exactly who you're building for │
105
- ├─────────────────────────────────────────────────────────────────────┤
106
- │ 4. JOBS TO BE DONE │
107
- │ Understand why customers will buy │
108
- ├─────────────────────────────────────────────────────────────────────┤
109
- │ 5. STORYBRAND │
110
- │ Clarify your message │
111
- ├─────────────────────────────────────────────────────────────────────┤
112
- │ 6. NAME + DOMAIN │
113
- │ Find the perfect name, claim the domain │
114
- ├─────────────────────────────────────────────────────────────────────┤
115
- │ 7. LANDING PAGE │
116
- │ Deploy and start collecting signups │
117
- └─────────────────────────────────────────────────────────────────────┘
118
- ```
119
-
120
- ## Output
121
-
122
- Everything syncs to your Startups.Studio dashboard and exports to code:
123
-
124
- ```
125
- my-startup/
126
- ├── startup.mdx # Complete startup definition
127
- ├── canvas.mdx # Lean canvas
128
- ├── icp.mdx # Ideal customer profile
129
- ├── messaging.mdx # StoryBrand script
130
- ├── experiments.mdx # Validation experiments
131
- └── landing/ # Deployable landing page
132
- ├── index.html
133
- └── styles.css
134
- ```
135
-
136
- ## Deploy
137
-
138
- ```typescript
139
- // Deploy everything
140
- const deployed = await builder.deploy(startup, {
141
- domain: 'acme.hq.sb' // Or your own domain
142
- })
143
-
144
- // {
145
- // landing: 'https://acme.hq.sb',
146
- // dashboard: 'https://startups.studio/acme'
147
- // }
148
- ```
149
-
150
- ## MCP Server
151
-
152
- ```json
153
- {
154
- "mcpServers": {
155
- "startup-builder": {
156
- "command": "npx",
157
- "args": ["startup-builder", "mcp"]
158
- }
159
- }
160
- }
161
- ```
162
-
163
- > "Build a startup around AI code review"
164
- > "Create a lean canvas for my idea"
165
- > "What should my MVP look like?"
166
-
167
- ## Includes
168
-
169
- - [foundation-sprint](../foundation-sprint) - Foundation definition
170
- - [lean-canvas](../lean-canvas) - Business model canvas
171
- - [ideal-customer-profile](../ideal-customer-profile) - Customer targeting
172
- - [jobs-to-be-done](../jobs-to-be-done) - Customer jobs
173
- - [storybrand](../storybrand) - Messaging framework
174
- - [startup-names](../startup-names) - Name generation
175
- - [landing-page](../landing-page) - Page generation
176
-
177
- ## License
178
-
179
- MIT
@@ -1,190 +0,0 @@
1
- // src/index.ts
2
- import { sprint } from "foundation-sprint";
3
- import { canvas } from "lean-canvas";
4
- import { icp } from "ideal-customer-profile";
5
- import { jtbd } from "jobs-to-be-done";
6
- import { story } from "storybrand";
7
- import { startup } from "startup-names";
8
- import { landing } from "landing-page";
9
- import { sprint as sprint2 } from "foundation-sprint";
10
- import { canvas as canvas2 } from "lean-canvas";
11
- import { icp as icp2 } from "ideal-customer-profile";
12
- import { jtbd as jtbd2 } from "jobs-to-be-done";
13
- import { story as story2 } from "storybrand";
14
- import { startup as names } from "startup-names";
15
- import { landing as landing2 } from "landing-page";
16
- var builder = {
17
- /**
18
- * Create complete startup foundation from idea
19
- *
20
- * @example
21
- * ```typescript
22
- * const startup = await builder.create({
23
- * idea: 'AI code review for engineering teams',
24
- * founder: {
25
- * capabilities: ['ML expertise', 'DevTools experience'],
26
- * insight: 'Code review is the biggest bottleneck',
27
- * motivation: 'Hated waiting for reviews'
28
- * }
29
- * })
30
- * ```
31
- */
32
- async create(options) {
33
- const { idea, founder } = options;
34
- console.log("\n\u{1F680} Phase 1/7: Foundation Sprint");
35
- const foundation = await sprint2.run({
36
- idea,
37
- founder
38
- });
39
- console.log("\n\u{1F4CA} Phase 2/7: Lean Canvas");
40
- const leanCanvas = await canvas2.generate(idea);
41
- console.log("\n\u{1F3AF} Phase 3/7: Ideal Customer Profile");
42
- const customerProfile = await icp2.generate(idea);
43
- console.log("\n\u{1F4BC} Phase 4/7: Jobs to be Done");
44
- const jobs = await jtbd2.discover(idea);
45
- console.log("\n\u{1F4D6} Phase 5/7: StoryBrand Messaging");
46
- const brandStory = await story2.generate(idea);
47
- console.log("\n\u2728 Phase 6/7: Name Generation");
48
- const nameResult = await names.generate({
49
- description: idea,
50
- count: 5,
51
- industry: options.industry,
52
- tone: options.tone,
53
- founderNames: founder?.founderNames
54
- });
55
- console.log("\n\u{1F3A8} Phase 7/7: Landing Page");
56
- const productName = nameResult.names?.[0]?.name || idea;
57
- const landingPage = await landing2.generate({
58
- product: productName,
59
- customization: { storybrand: brandStory }
60
- });
61
- console.log("\n\u2705 Startup foundation complete!");
62
- return {
63
- foundation,
64
- canvas: leanCanvas,
65
- icp: customerProfile,
66
- jtbd: jobs,
67
- story: brandStory,
68
- name: nameResult,
69
- landing: landingPage
70
- };
71
- },
72
- /**
73
- * Run foundation sprint
74
- */
75
- async foundation(idea, founder) {
76
- return sprint2.run({ idea, founder });
77
- },
78
- /**
79
- * Generate lean canvas
80
- */
81
- async canvas(input) {
82
- if (typeof input === "string") {
83
- return canvas2.generate(input);
84
- }
85
- const description = input.problem?.statement || input.idea || JSON.stringify(input);
86
- return canvas2.generate(description);
87
- },
88
- /**
89
- * Generate ideal customer profile
90
- */
91
- async icp(input) {
92
- if (typeof input === "string") {
93
- return icp2.generate(input);
94
- }
95
- const description = input.problem?.statement || input.idea || JSON.stringify(input);
96
- return icp2.generate(description);
97
- },
98
- /**
99
- * Generate jobs to be done
100
- */
101
- async jtbd(input) {
102
- if (typeof input === "string") {
103
- return jtbd2.discover(input);
104
- }
105
- const description = input.problem?.statement || input.idea || JSON.stringify(input);
106
- return jtbd2.discover(description);
107
- },
108
- /**
109
- * Generate story brand messaging
110
- */
111
- async story(input, customerProfile) {
112
- if (typeof input === "string") {
113
- return story2.generate(input);
114
- }
115
- const description = input.problem?.statement || input.idea || JSON.stringify(input);
116
- return story2.generate(description);
117
- },
118
- /**
119
- * Generate startup name
120
- */
121
- async name(input, options) {
122
- if (typeof input === "string") {
123
- return names.generate({
124
- description: input,
125
- ...options
126
- });
127
- }
128
- const description = input.problem?.statement || input.idea || JSON.stringify(input);
129
- return names.generate({
130
- description,
131
- ...options
132
- });
133
- },
134
- /**
135
- * Generate landing page
136
- */
137
- async landing(name, brandStory) {
138
- const productName = typeof name === "string" ? name : name.name || name.names?.[0]?.name || "Startup";
139
- return landing2.generate({
140
- product: productName,
141
- customization: brandStory ? { storybrand: brandStory } : void 0
142
- });
143
- },
144
- /**
145
- * Deploy startup to web
146
- */
147
- async deploy(startup2, options) {
148
- const nameData = startup2.name;
149
- let domain = options?.domain;
150
- if (!domain && nameData) {
151
- if (typeof nameData === "object") {
152
- if (nameData.names && Array.isArray(nameData.names)) {
153
- const firstWithFree = nameData.names.find(
154
- (n) => n.domains?.some((d) => d.type === "free")
155
- );
156
- if (firstWithFree) {
157
- domain = firstWithFree.domains.find((d) => d.type === "free")?.domain;
158
- }
159
- } else if (nameData.domains?.free) {
160
- domain = nameData.domains.free;
161
- } else if (nameData.name) {
162
- domain = `${nameData.name.toLowerCase().replace(/\s+/g, "-")}.hq.sb`;
163
- }
164
- }
165
- }
166
- domain = domain || "startup.hq.sb";
167
- console.log(`
168
- \u{1F680} Deploying to ${domain}...`);
169
- console.log(` Note: Deployment functionality not yet implemented`);
170
- return {
171
- landing: `https://${domain}`,
172
- dashboard: `https://startups.studio/${nameData?.name?.toLowerCase() || "startup"}`
173
- };
174
- }
175
- };
176
- async function buildStartup(idea, founder) {
177
- return builder.create({ idea, founder });
178
- }
179
-
180
- export {
181
- builder,
182
- buildStartup,
183
- sprint,
184
- canvas,
185
- icp,
186
- jtbd,
187
- story,
188
- startup,
189
- landing
190
- };