create-githat-app 1.0.6 → 1.0.8
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 +36 -1
- package/dist/cli.js +13 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# create-githat-app
|
|
2
4
|
|
|
5
|
+
**The CLI for [GitHat](https://githat.io) — Auth + Hosting that replaces Clerk + Vercel**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/create-githat-app)
|
|
8
|
+
[](https://www.npmjs.com/package/create-githat-app)
|
|
9
|
+
[](https://www.npmjs.com/package/@githat/nextjs)
|
|
10
|
+
[](https://githat.io)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
3
17
|
Scaffold a production-ready app with a fully-managed backend — auth, teams, orgs, API keys, MCP verification, and AI agent identity. **No backend to deploy.**
|
|
4
18
|
|
|
5
19
|
[GitHat](https://githat.io) is your backend. When you run `create-githat-app`, your generated project connects to GitHat's hosted platform at `api.githat.io`. User accounts, organizations, teams, API keys, MCP servers, and AI agents are all stored and managed by GitHat. You write frontend code only.
|
|
@@ -263,6 +277,19 @@ VITE_GITHAT_PUBLISHABLE_KEY=pk_live_...
|
|
|
263
277
|
VITE_GITHAT_API_URL=https://api.githat.io
|
|
264
278
|
```
|
|
265
279
|
|
|
280
|
+
## Documentation
|
|
281
|
+
|
|
282
|
+
- [GitHat Quick Start](https://githat.io/docs/quickstart) — Get running in 5 minutes
|
|
283
|
+
- [SDK Reference](https://githat.io/docs/sdk) — `@githat/nextjs` hooks, components, and server utils
|
|
284
|
+
- [API Reference](https://githat.io/docs/api) — All 86 REST endpoints
|
|
285
|
+
- [CLI Reference](https://githat.io/docs/cli) — Flags, prompts, and templates
|
|
286
|
+
- [Next.js Guide](https://githat.io/docs/nextjs) — Auth in Next.js 14-16+
|
|
287
|
+
- [React Guide](https://githat.io/docs/react) — Auth in any React app
|
|
288
|
+
- [Bring Your Own Database](https://githat.io/docs/byod) — Keep your PostgreSQL, MySQL, or MongoDB
|
|
289
|
+
- [MCP Servers](https://githat.io/docs/mcp) — Domain verification for AI tool servers
|
|
290
|
+
- [AI Agents](https://githat.io/docs/agents) — Wallet-based identity for autonomous agents
|
|
291
|
+
- [Skills Marketplace](https://githat.io/docs/skills) — Install templates, integrations, and workflows
|
|
292
|
+
|
|
266
293
|
## Contributing
|
|
267
294
|
|
|
268
295
|
```bash
|
|
@@ -273,6 +300,14 @@ npm run build
|
|
|
273
300
|
node bin/index.js test-app
|
|
274
301
|
```
|
|
275
302
|
|
|
303
|
+
## Related
|
|
304
|
+
|
|
305
|
+
- [@githat/nextjs](https://www.npmjs.com/package/@githat/nextjs) — React/Next.js SDK
|
|
306
|
+
- [GitHat Platform](https://githat.io) — Auth + Hosting replacing Clerk + Vercel
|
|
307
|
+
- [GitHat Pricing](https://githat.io/pricing) — Free, Pro, and Enterprise tiers
|
|
308
|
+
- [GitHat vs Clerk](https://githat.io/compare/githat-vs-clerk) — Feature comparison
|
|
309
|
+
- [GitHat vs Auth0](https://githat.io/compare/githat-vs-auth0) — Why developers switch
|
|
310
|
+
|
|
276
311
|
## License
|
|
277
312
|
|
|
278
|
-
|
|
313
|
+
Proprietary — see [LICENSE](LICENSE)
|
package/dist/cli.js
CHANGED
|
@@ -281,12 +281,12 @@ async function promptProjectType() {
|
|
|
281
281
|
{
|
|
282
282
|
value: "frontend",
|
|
283
283
|
label: "Frontend only",
|
|
284
|
-
hint: "Next.js
|
|
284
|
+
hint: "Next.js or React+Vite"
|
|
285
285
|
},
|
|
286
286
|
{
|
|
287
287
|
value: "fullstack",
|
|
288
288
|
label: "Fullstack",
|
|
289
|
-
hint: "Next.js +
|
|
289
|
+
hint: "Next.js + API (Turborepo)"
|
|
290
290
|
}
|
|
291
291
|
]
|
|
292
292
|
})
|
|
@@ -325,16 +325,17 @@ function getInstallCommand(pm) {
|
|
|
325
325
|
}
|
|
326
326
|
|
|
327
327
|
// src/prompts/framework.ts
|
|
328
|
-
async function promptFramework(typescriptOverride) {
|
|
328
|
+
async function promptFramework(typescriptOverride, isFullstack) {
|
|
329
329
|
const packageManager = detectPackageManager();
|
|
330
|
+
const frameworkOptions = isFullstack ? [{ value: "nextjs", label: "Next.js 16", hint: "App Router \xB7 SSR \xB7 middleware auth" }] : [
|
|
331
|
+
{ value: "nextjs", label: "Next.js 16", hint: "App Router \xB7 SSR \xB7 middleware auth" },
|
|
332
|
+
{ value: "react-vite", label: "React 19 + Vite 7", hint: "SPA \xB7 client-side routing" }
|
|
333
|
+
];
|
|
330
334
|
const answers = await p3.group(
|
|
331
335
|
{
|
|
332
336
|
framework: () => p3.select({
|
|
333
337
|
message: "Framework",
|
|
334
|
-
options:
|
|
335
|
-
{ value: "nextjs", label: "Next.js 16", hint: "App Router \xB7 SSR \xB7 middleware auth" },
|
|
336
|
-
{ value: "react-vite", label: "React 19 + Vite 7", hint: "SPA \xB7 client-side routing" }
|
|
337
|
-
]
|
|
338
|
+
options: frameworkOptions
|
|
338
339
|
}),
|
|
339
340
|
typescript: () => typescriptOverride !== void 0 ? Promise.resolve(typescriptOverride) : p3.select({
|
|
340
341
|
message: "Language",
|
|
@@ -487,6 +488,8 @@ async function promptGitHat(existingKey) {
|
|
|
487
488
|
const key = await deviceAuthFlow();
|
|
488
489
|
if (key) {
|
|
489
490
|
publishableKey = key;
|
|
491
|
+
} else {
|
|
492
|
+
p5.log.warn("Authorization failed. Continuing without key...");
|
|
490
493
|
}
|
|
491
494
|
} else if (connectChoice === "paste") {
|
|
492
495
|
const pastedKey = await p5.text({
|
|
@@ -611,9 +614,10 @@ async function runPrompts(args) {
|
|
|
611
614
|
const project = await promptProject(args.initialName);
|
|
612
615
|
const projectType = await promptProjectType();
|
|
613
616
|
sectionHeader("Stack");
|
|
614
|
-
const
|
|
617
|
+
const isFullstack = projectType.projectType === "fullstack";
|
|
618
|
+
const framework = await promptFramework(args.typescript, isFullstack);
|
|
615
619
|
let backend = {};
|
|
616
|
-
if (
|
|
620
|
+
if (isFullstack) {
|
|
617
621
|
backend = await promptBackend();
|
|
618
622
|
}
|
|
619
623
|
sectionHeader("Connect");
|