[Feature] TDK CLI integration: run a TanStack app as a local TDK resource
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- cli, documentation, tooling
Rechercherichtung
Start by tracing the existing TanStack CLI add-on registration, generated app templates, documentation pages, and JSON introspection entry points. Compare the requested Router-only output with the TDK frontend provider contract and linked issue 234; done means the optional add-on, service.json generation, documentation, and introspection behavior satisfy the listed acceptance criteria without changing the default scaffold or treating Start as a provider.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Which project does this relate to?
Create Tanstack App
Describe the feature
1. TanStack/cli issue
Project: Create Tanstack App
Labels: enhancement
Describe the feature
Add a documented, optional way to use a TanStack CLI app inside a TDK CLI landscape, and a small add-on that makes that handoff explicit.
TDK CLI (Tilt Development Kit, @tdk-landscape/tdk-cli-core) is a local multi-service runner. It is not a deploy and not a Compose file. Each service has a service.json. tdk up <stack> starts that slice with Docker + Tilt, health-checked boot order, and *.localhost routing. Frontends today are Vite SPAs (react default, vue optional). TDK owns the generated Vite config (.autogenerated/vite.config.frontend.autogenerated.ts) and does not want a root vite.config.ts from the framework provider.
TanStack CLI and TDK CLI solve different problems:
| Tool | Owns |
|---|---|
tanstack create / tanstack add |
App scaffold: Router or Start, add-ons, deployment |
tdk project / tdk resource / tdk up |
Local landscape: ports, stacks, Docker, Tilt, proxy |
There is no shared contract today. A TanStack app dropped into a TDK repo does not get a service.json, and tdk resource --type frontend cannot scaffold TanStack Router or Start.
Requested outcome: one recipe that works from either CLI, with Router-only as the first supported path and Start as an explicit second path.
Proposed use
From an existing TDK project:
tdk project --yes
tdk resource shop-web --type frontend --framework tanstack-router --stack shop --yes
tdk resource orders-api --type backend --stack shop --yes
tdk up shop
From TanStack CLI, opt in with an add-on instead of a new required flag:
tanstack create shop-web --router-only --add-ons tdk -y
# later, inside a TDK project:
tdk up shop
Start stays available, but not by pretending it is the current Vite SPA provider:
# phase 2 — Start dev server is brought in, TDK does not rewrite vite.config.ts
tanstack create shop-web --blank --add-ons tdk -y
tdk resource shop-web --type bring-your-own --stack shop
What the TanStack add-on should write
Category tooling. No runtime dependency on TDK inside the generated app.
service.jsonwithtype: "frontend",framework,stack, and the port convention TDK already uses (frontends in 3000–3999).- A short
TDK.md(or a section in the generated README) with install,tdk up, and the boundary: TDK is local only; deploy stays on the TanStack deployment add-on (Cloudflare, Netlify, and so on). package.jsonscript hints only, for example"dev:tdk": "tdk up"when the CLI is present. Do not failpnpm devif TDK is not installed.- Nothing that overwrites TanStack Start’s
vite.config.tsin v1.
Router-only maps cleanly onto TDK’s provider contract (Vite SPA, no root vite.config.ts, starter index.html + entry). Start does not: Start owns Vite config and is SSR. Shipping Start as a normal --framework provider would fight both generators. Call that out in the issue so it is not implemented as a drive-by.
Acceptance
- Docs page: “Use with TDK CLI”, linked from TanStack CLI docs and from the add-on details (
tanstack create --addon-details tdk). --router-only --add-ons tdkproduces aservice.jsonthattdk config verifyaccepts once the TDK provider exists.--blank/ Start +tdkdocuments the bring-your-own path and does not emit a provider framework id TDK will reject.- Add-on is optional. Default
tanstack createis unchanged. - JSON introspection includes the add-on (
--list-add-ons --json).
Additional context
TDK frontend provider contract: https://github.com/tdk-landscape/tdk-cli-core/blob/main/docs/frontend-framework-providers.md
Relevant TDK commands:
tdk resource my-app --type frontend --stack api
tdk resource my-vue-app --type frontend --framework vue --stack api
framework is an enum on service.json (react, vue today). Unknown ids are rejected before files are written. A TanStack provider has to be registered in TDK (cli/src/frontend-frameworks/, Starlark Vite templates, service-schema.json). That half belongs in tdk-landscape/tdk-cli-core; companion issue linked below.
Companion issue (file against TDK, link here): feat(frontend) tanstack-router provider, and a TanStack Start bring-your-own path.
Non-goals:
- Replacing TanStack deployment add-ons with TDK. TDK does not deploy.
- Making TDK a required toolchain.
- Teaching TDK’s React/Ink CLI UI about TanStack. This is about generated apps and
service.json, not the TDK terminal UI.
Additional context
linked issue https://github.com/tdk-landscape/tdk-cli-core/issues/234
- Vorherrschende Sprache
- TypeScript
- Sterne
- 1.3k
- Forks
- 187
- Ø Merge
- 7 Min.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TanStack/cli
-
create: scaffold's unlayered body styles defeat its own @layer base rules (and any shadcn theme)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
-
enhancement
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 68/100
Ähnliche Issues
-
bug HemiStake
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
hemilabs/ui-monorepo#2413 ·
Maintainer antworten meist innerhalb von 1 Tag
-
component/ui framework/react kind/bug language/javascript
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
meshery/meshery#22216 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
company delete fails with 500 on any company that has activity (cost events, inbox dismissals)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
paperclipai/paperclip#14982 ·
Maintainer antworten meist innerhalb von 1 Tag
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
lingdojo/kana-dojo#31515 · 1 Kommentar · 5 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag