Skip to content

Commit c0e7c86

Browse files
committed
docs: expand starter creation and maintenance guide
1 parent efee6f3 commit c0e7c86

File tree

1 file changed

+43
-5
lines changed

1 file changed

+43
-5
lines changed

docs/starters.md

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ id: starters
33
title: 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
1212
tanstack 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
1927
tanstack create my-preset --add-ons clerk,drizzle,sentry
2028

2129
# 2. Initialize starter
2230
cd my-preset
2331
tanstack starter init
2432

25-
# 3. Edit starter-info.json, then compile
33+
# 3. Edit starter-info.json (name/description/banner), then compile
2634
tanstack starter compile
2735

2836
# 4. Use or distribute starter.json
2937
tanstack 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

Comments
 (0)