@@ -3,7 +3,7 @@ id: starters
33title : Starters
44---
55
6- Starters are reusable presets of add-ons . They capture configuration, not code .
6+ Starters are reusable presets of project setup choices . They capture configuration, not source files .
77
88## Use a Starter
99
@@ -12,23 +12,49 @@ tanstack create my-app --starter https://example.com/starter.json
1212tanstack create my-app --starter ./local-starter.json
1313```
1414
15+ You can also set a starter in the UI flow:
16+
17+ ``` bash
18+ tanstack create my-app --ui
19+ ```
20+
21+ Then use ** Set Starter** and paste the URL to your hosted ` starter.json ` .
22+
1523## Create a Starter
1624
1725``` bash
18- # 1. Create project with desired add-ons
26+ # 1. Create project with desired setup
1927tanstack create my-preset --add-ons clerk,drizzle,sentry
2028
2129# 2. Initialize starter
2230cd my-preset
2331tanstack starter init
2432
25- # 3. Edit starter-info.json, then compile
33+ # 3. Edit starter-info.json (name/description/banner) , then compile
2634tanstack starter compile
2735
2836# 4. Use or distribute starter.json
2937tanstack create new-app --starter ./starter.json
3038```
3139
40+ ## Maintain a Starter
41+
42+ When you update your source preset project:
43+
44+ ``` bash
45+ cd my-preset
46+ tanstack starter compile
47+ ```
48+
49+ Commit and publish the updated ` starter.json ` to the same URL (or a versioned URL) used by your team.
50+
51+ Recommended workflow:
52+
53+ 1 . Keep your source preset project in git.
54+ 2 . Run ` tanstack starter compile ` whenever add-ons/options change.
55+ 3 . Publish ` starter.json ` where it can be fetched over HTTPS.
56+ 4 . Use that URL with ` --starter ` (CLI) or ** Set Starter** (UI).
57+
3258## Starter Schema
3359
3460` starter-info.json ` :
@@ -55,12 +81,24 @@ tanstack create new-app --starter ./starter.json
5581| ` name ` | Yes | Display name |
5682| ` description ` | Yes | Brief description |
5783| ` framework ` | Yes | ` react ` or ` solid ` |
58- | ` mode ` | Yes | ` file-router ` or ` code-router ` |
84+ | ` mode ` | Yes | ` file-router ` |
5985| ` typescript ` | Yes | Enable TypeScript |
6086| ` tailwind ` | Yes | Include Tailwind |
6187| ` addOns ` | Yes | Add-on IDs |
6288| ` addOnOptions ` | No | Per-add-on config |
63- | ` banner ` | No | Image URL for UI |
89+ | ` banner ` | No | Image URL shown in UI |
90+
91+ ### Banner Image
92+
93+ ` banner ` should be a publicly accessible image URL (PNG/JPG/WebP) used by the create UI. A screenshot of the starter works well.
94+
95+ Example:
96+
97+ ``` json
98+ {
99+ "banner" : " https://example.com/my-starter-banner.png"
100+ }
101+ ```
64102
65103## Starter vs Add-on
66104
0 commit comments