create-githat-app 1.0.0 → 1.0.1

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/package.json CHANGED
@@ -1,35 +1,53 @@
1
1
  {
2
2
  "name": "create-githat-app",
3
- "version": "1.0.0",
4
- "description": "Scaffold enterprise-grade apps with GitHat identityfor humans, AI agents, and MCP servers",
3
+ "version": "1.0.1",
4
+ "description": "GitHat CLIscaffold apps and manage the skills marketplace",
5
5
  "type": "module",
6
6
  "bin": {
7
- "create-githat-app": "./bin/index.js"
7
+ "create-githat-app": "./bin/index.js",
8
+ "githat": "./bin/index.js"
8
9
  },
9
- "files": ["bin", "dist", "templates"],
10
+ "files": [
11
+ "bin",
12
+ "dist",
13
+ "templates"
14
+ ],
10
15
  "scripts": {
11
16
  "build": "tsup",
12
17
  "dev": "tsup --watch",
13
18
  "test": "node bin/index.js --help"
14
19
  },
15
20
  "dependencies": {
16
- "@clack/prompts": "^0.9.1",
21
+ "@clack/prompts": "^1.0.1",
17
22
  "chalk": "^5.4.1",
18
- "commander": "^13.1.0",
23
+ "commander": "^14.0.3",
19
24
  "figlet": "^1.8.0",
20
25
  "fs-extra": "^11.2.0",
21
26
  "gradient-string": "^3.0.0",
22
27
  "handlebars": "^4.7.8",
23
- "ora": "^8.1.1"
28
+ "ora": "^9.3.0",
29
+ "unzipper": "^0.12.3"
24
30
  },
25
31
  "devDependencies": {
26
32
  "@types/figlet": "^1.7.0",
27
33
  "@types/fs-extra": "^11.0.4",
28
34
  "@types/gradient-string": "^1.1.6",
35
+ "@types/unzipper": "^0.10.10",
29
36
  "tsup": "^8.4.0",
30
37
  "typescript": "^5.9.0"
31
38
  },
32
- "keywords": ["githat", "nextjs", "react", "vite", "create-app", "cli", "auth", "identity", "mcp", "ai-agents"],
39
+ "keywords": [
40
+ "githat",
41
+ "nextjs",
42
+ "react",
43
+ "vite",
44
+ "create-app",
45
+ "cli",
46
+ "auth",
47
+ "identity",
48
+ "mcp",
49
+ "ai-agents"
50
+ ],
33
51
  "license": "SEE LICENSE IN LICENSE",
34
52
  "publishConfig": {
35
53
  "access": "public",
@@ -0,0 +1,94 @@
1
+ # {{projectName}}
2
+
3
+ Built with [GitHat](https://githat.io) — your backend is already set up. Auth, teams, orgs, API keys, MCP verification, and AI agent identity are handled by GitHat's hosted platform.
4
+
5
+ ## Getting Started
6
+
7
+ 1. Install dependencies:
8
+
9
+ ```bash
10
+ {{#ifEquals packageManager "yarn"}}yarn{{else}}{{packageManager}} install{{/ifEquals}}
11
+ ```
12
+
13
+ 2. Add your GitHat publishable key to `{{#ifEquals framework "nextjs"}}.env.local{{else}}.env{{/ifEquals}}`:
14
+
15
+ ```env
16
+ {{#ifEquals framework "nextjs"}}NEXT_PUBLIC_GITHAT_PUBLISHABLE_KEY{{else}}VITE_GITHAT_PUBLISHABLE_KEY{{/ifEquals}}=pk_live_your_key_here
17
+ ```
18
+
19
+ Get your key at [githat.io/dashboard/apps](https://githat.io/dashboard/apps).
20
+
21
+ 3. Start the dev server:
22
+
23
+ ```bash
24
+ {{#ifEquals packageManager "npm"}}npm run dev{{else}}{{packageManager}} dev{{/ifEquals}}
25
+ ```
26
+
27
+ 4. Open [http://localhost:{{#ifEquals framework "nextjs"}}3000{{else}}5173{{/ifEquals}}](http://localhost:{{#ifEquals framework "nextjs"}}3000{{else}}5173{{/ifEquals}})
28
+
29
+ ## Your Backend
30
+
31
+ All API calls go to `api.githat.io`. Your data is stored in GitHat's database. **No backend to deploy.**
32
+
33
+ GitHat handles:
34
+
35
+ - User auth (sign-up, sign-in, email verification, password reset)
36
+ - Organizations (create, switch, branding)
37
+ - Team management (invite members, assign roles)
38
+ - API key management (publishable + secret keys)
39
+ {{#if includeMcpModule}}- MCP server registration and domain verification
40
+ {{/if}}{{#if includeAgentModule}}- AI agent registration and wallet verification
41
+ {{/if}}- Email delivery (verification, invitations, password resets)
42
+
43
+ The `githat/` folder in your project is a typed API client that talks to `api.githat.io`. You write frontend code, GitHat handles the rest.
44
+
45
+ Manage everything at [githat.io/dashboard](https://githat.io/dashboard).
46
+
47
+ ## Pages
48
+
49
+ - `/sign-in` — Sign in
50
+ - `/sign-up` — Create account
51
+ {{#if includeForgotPassword}}- `/forgot-password` — Password recovery
52
+ {{/if}}{{#if includeDashboard}}- `/dashboard` — Protected dashboard
53
+ {{/if}}{{#if includeOrgManagement}}- `/dashboard/members` — Invite members, manage roles
54
+ {{/if}}
55
+
56
+ ## GitHat SDK
57
+
58
+ This project uses [`@githat/nextjs`](https://www.npmjs.com/package/@githat/nextjs) for connecting to the GitHat platform:
59
+
60
+ ```{{#if typescript}}tsx{{else}}jsx{{/if}}
61
+ import { useAuth, UserButton, OrgSwitcher } from '@githat/nextjs';
62
+
63
+ const { user, org, signIn, signUp, signOut } = useAuth();
64
+ ```
65
+
66
+ ## Deploy
67
+
68
+ {{#ifEquals framework "nextjs"}}### Vercel (recommended)
69
+
70
+ ```bash
71
+ npx vercel
72
+ ```
73
+
74
+ Add `NEXT_PUBLIC_GITHAT_PUBLISHABLE_KEY` to your Vercel project environment variables.
75
+ {{else}}### Vercel
76
+
77
+ ```bash
78
+ npx vercel
79
+ ```
80
+
81
+ ### Netlify
82
+
83
+ ```bash
84
+ npx netlify deploy
85
+ ```
86
+
87
+ Add `VITE_GITHAT_PUBLISHABLE_KEY` to your hosting provider's environment variables.
88
+ {{/ifEquals}}
89
+
90
+ ## Learn More
91
+
92
+ - [GitHat Documentation](https://githat.io/docs)
93
+ - [SDK Reference](https://www.npmjs.com/package/@githat/nextjs)
94
+ - [API Reference (42+ endpoints)](https://githat.io/docs/api)
@@ -0,0 +1,98 @@
1
+ {{#if includeForgotPassword}}
2
+ 'use client';
3
+
4
+ import { useState } from 'react';
5
+ import { useSearchParams, useRouter } from 'next/navigation';
6
+ {{#if includeGithatFolder}}
7
+ import { authApi } from '../../../githat/api/auth{{#unless typescript}}.js{{/unless}}';
8
+ {{/if}}
9
+
10
+ export default function ResetPasswordPage() {
11
+ const searchParams = useSearchParams();
12
+ const router = useRouter();
13
+ const token = searchParams.get('token');
14
+
15
+ const [password, setPassword] = useState('');
16
+ const [confirm, setConfirm] = useState('');
17
+ const [error, setError] = useState('');
18
+ const [loading, setLoading] = useState(false);
19
+
20
+ const handleSubmit = async (e{{#if typescript}}: React.FormEvent{{/if}}) => {
21
+ e.preventDefault();
22
+ if (password !== confirm) {
23
+ setError('Passwords do not match');
24
+ return;
25
+ }
26
+ setError('');
27
+ setLoading(true);
28
+ try {
29
+ {{#if includeGithatFolder}}
30
+ await authApi.resetPassword(token!, password);
31
+ {{else}}
32
+ const res = await fetch('{{apiUrl}}/auth/reset-password', {
33
+ method: 'POST',
34
+ headers: { 'Content-Type': 'application/json' },
35
+ body: JSON.stringify({ token, password }),
36
+ });
37
+ if (!res.ok) throw new Error('Reset failed');
38
+ {{/if}}
39
+ router.push('/sign-in?reset=success');
40
+ } catch (err) {
41
+ setError('Failed to reset password. The link may have expired.');
42
+ } finally {
43
+ setLoading(false);
44
+ }
45
+ };
46
+
47
+ if (!token) {
48
+ return (
49
+ <main {{#if useTailwind}}className="flex items-center justify-center min-h-screen bg-[#09090b]"{{else}}style=\{{ display: 'flex', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', background: '#09090b' }}{{/if}}>
50
+ <div style=\{{ textAlign: 'center' }}>
51
+ <h1 style=\{{ fontSize: '1.5rem', fontWeight: 600, color: '#fafafa', marginBottom: '0.5rem' }}>Invalid reset link</h1>
52
+ <p style=\{{ color: '#a1a1aa' }}>
53
+ <a href="/forgot-password" style=\{{ color: '#7c3aed' }}>Request a new one</a>
54
+ </p>
55
+ </div>
56
+ </main>
57
+ );
58
+ }
59
+
60
+ return (
61
+ <main {{#if useTailwind}}className="flex items-center justify-center min-h-screen bg-[#09090b]"{{else}}style=\{{ display: 'flex', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', background: '#09090b' }}{{/if}}>
62
+ <div style=\{{ width: '100%', maxWidth: '24rem', padding: '2rem' }}>
63
+ <h1 style=\{{ fontSize: '1.5rem', fontWeight: 600, color: '#fafafa', marginBottom: '0.5rem' }}>Reset password</h1>
64
+ <p style=\{{ color: '#a1a1aa', marginBottom: '1.5rem' }}>Enter your new password below.</p>
65
+ {error && <p style=\{{ color: '#ef4444', marginBottom: '1rem', fontSize: '0.875rem' }}>{error}</p>}
66
+ <form onSubmit={handleSubmit}>
67
+ <input
68
+ type="password"
69
+ value={password}
70
+ onChange={(e) => setPassword(e.target.value)}
71
+ placeholder="New password"
72
+ required
73
+ minLength={8}
74
+ disabled={loading}
75
+ style=\{{ width: '100%', padding: '0.625rem 0.75rem', background: '#111113', border: '1px solid #1e1e2e', borderRadius: '0.375rem', color: '#fafafa', marginBottom: '1rem', outline: 'none' }}
76
+ />
77
+ <input
78
+ type="password"
79
+ value={confirm}
80
+ onChange={(e) => setConfirm(e.target.value)}
81
+ placeholder="Confirm password"
82
+ required
83
+ disabled={loading}
84
+ style=\{{ width: '100%', padding: '0.625rem 0.75rem', background: '#111113', border: '1px solid #1e1e2e', borderRadius: '0.375rem', color: '#fafafa', marginBottom: '1rem', outline: 'none' }}
85
+ />
86
+ <button
87
+ type="submit"
88
+ disabled={loading}
89
+ style=\{{ width: '100%', padding: '0.625rem', background: '#7c3aed', color: '#fff', border: 'none', borderRadius: '0.375rem', fontWeight: 600, cursor: loading ? 'not-allowed' : 'pointer', opacity: loading ? 0.7 : 1 }}
90
+ >
91
+ {loading ? 'Resetting...' : 'Reset password'}
92
+ </button>
93
+ </form>
94
+ </div>
95
+ </main>
96
+ );
97
+ }
98
+ {{/if}}
@@ -1,6 +1,61 @@
1
1
  import { SignInButton, SignUpButton } from '@githat/nextjs';
2
2
 
3
+ const hasKey = !!process.env.NEXT_PUBLIC_GITHAT_PUBLISHABLE_KEY;
4
+
5
+ function SetupGuide() {
6
+ return (
7
+ <main {{#if useTailwind}}className="flex flex-col items-center justify-center min-h-screen gap-8 bg-[#09090b] text-[#fafafa] px-6"{{else}}style=\{{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', gap: '2rem', background: '#09090b', color: '#fafafa', padding: '0 1.5rem' }}{{/if}}>
8
+ <div {{#if useTailwind}}className="text-center"{{else}}style=\{{ textAlign: 'center' }}{{/if}}>
9
+ <h1 {{#if useTailwind}}className="text-4xl font-bold mb-2"{{else}}style=\{{ fontSize: '2.5rem', fontWeight: 700, marginBottom: '0.5rem' }}{{/if}}>
10
+ {{businessName}}
11
+ </h1>
12
+ <p {{#if useTailwind}}className="text-zinc-400"{{else}}style=\{{ color: '#a1a1aa' }}{{/if}}>
13
+ Get started in 3 steps
14
+ </p>
15
+ </div>
16
+
17
+ <div {{#if useTailwind}}className="flex flex-col gap-4 max-w-md w-full"{{else}}style=\{{ display: 'flex', flexDirection: 'column', gap: '1rem', maxWidth: '28rem', width: '100%' }}{{/if}}>
18
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
19
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>1</span>
20
+ <div>
21
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Sign up at GitHat</p>
22
+ <a href="https://githat.io/sign-up" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-violet-400 hover:underline text-sm"{{else}}style=\{{ color: '#a78bfa', fontSize: '0.875rem' }}{{/if}}>
23
+ githat.io/sign-up →
24
+ </a>
25
+ </div>
26
+ </div>
27
+
28
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
29
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>2</span>
30
+ <div>
31
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Copy your publishable key</p>
32
+ <a href="https://githat.io/dashboard/apps" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-violet-400 hover:underline text-sm"{{else}}style=\{{ color: '#a78bfa', fontSize: '0.875rem' }}{{/if}}>
33
+ Dashboard → Apps →
34
+ </a>
35
+ </div>
36
+ </div>
37
+
38
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
39
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>3</span>
40
+ <div>
41
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Add to .env.local and restart</p>
42
+ <code {{#if useTailwind}}className="text-xs text-zinc-400 bg-zinc-800 px-2 py-1 rounded mt-1 block"{{else}}style=\{{ fontSize: '0.75rem', color: '#a1a1aa', background: '#27272a', padding: '0.25rem 0.5rem', borderRadius: '0.25rem', marginTop: '0.25rem', display: 'block' }}{{/if}}>
43
+ NEXT_PUBLIC_GITHAT_PUBLISHABLE_KEY=pk_live_...
44
+ </code>
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
+ <a href="https://githat.io/docs/quickstart" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-sm text-zinc-500 hover:text-zinc-300"{{else}}style=\{{ fontSize: '0.875rem', color: '#71717a' }}{{/if}}>
50
+ Read the docs →
51
+ </a>
52
+ </main>
53
+ );
54
+ }
55
+
3
56
  export default function Home() {
57
+ if (!hasKey) return <SetupGuide />;
58
+
4
59
  return (
5
60
  <main {{#if useTailwind}}className="flex flex-col items-center justify-center min-h-screen gap-6 bg-[#09090b] text-[#fafafa]"{{else}}style=\{{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', gap: '1.5rem', background: '#09090b', color: '#fafafa' }}{{/if}}>
6
61
  <h1 {{#if useTailwind}}className="text-4xl font-bold"{{else}}style=\{{ fontSize: '2.5rem', fontWeight: 700 }}{{/if}}>
@@ -0,0 +1,10 @@
1
+ import { authProxy } from '@githat/nextjs/proxy';
2
+
3
+ export const proxy = authProxy({
4
+ publicRoutes: ['/', '/sign-in', '/sign-up'{{#if includeForgotPassword}}, '/forgot-password', '/reset-password'{{/if}}{{#if includeEmailVerification}}, '/verify-email'{{/if}}],
5
+ signInUrl: '/sign-in',
6
+ });
7
+
8
+ export const config = {
9
+ matcher: ['/((?!_next|api|.*\\..*).*)'],
10
+ };
@@ -1,6 +1,61 @@
1
1
  import { SignInButton, SignUpButton } from '@githat/nextjs';
2
2
 
3
+ const hasKey = !!import.meta.env.VITE_GITHAT_PUBLISHABLE_KEY;
4
+
5
+ function SetupGuide() {
6
+ return (
7
+ <main {{#if useTailwind}}className="flex flex-col items-center justify-center min-h-screen gap-8 bg-[#09090b] text-[#fafafa] px-6"{{else}}style=\{{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', gap: '2rem', background: '#09090b', color: '#fafafa', padding: '0 1.5rem' }}{{/if}}>
8
+ <div {{#if useTailwind}}className="text-center"{{else}}style=\{{ textAlign: 'center' }}{{/if}}>
9
+ <h1 {{#if useTailwind}}className="text-4xl font-bold mb-2"{{else}}style=\{{ fontSize: '2.5rem', fontWeight: 700, marginBottom: '0.5rem' }}{{/if}}>
10
+ {{businessName}}
11
+ </h1>
12
+ <p {{#if useTailwind}}className="text-zinc-400"{{else}}style=\{{ color: '#a1a1aa' }}{{/if}}>
13
+ Get started in 3 steps
14
+ </p>
15
+ </div>
16
+
17
+ <div {{#if useTailwind}}className="flex flex-col gap-4 max-w-md w-full"{{else}}style=\{{ display: 'flex', flexDirection: 'column', gap: '1rem', maxWidth: '28rem', width: '100%' }}{{/if}}>
18
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
19
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>1</span>
20
+ <div>
21
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Sign up at GitHat</p>
22
+ <a href="https://githat.io/sign-up" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-violet-400 hover:underline text-sm"{{else}}style=\{{ color: '#a78bfa', fontSize: '0.875rem' }}{{/if}}>
23
+ githat.io/sign-up →
24
+ </a>
25
+ </div>
26
+ </div>
27
+
28
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
29
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>2</span>
30
+ <div>
31
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Copy your publishable key</p>
32
+ <a href="https://githat.io/dashboard/apps" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-violet-400 hover:underline text-sm"{{else}}style=\{{ color: '#a78bfa', fontSize: '0.875rem' }}{{/if}}>
33
+ Dashboard → Apps →
34
+ </a>
35
+ </div>
36
+ </div>
37
+
38
+ <div {{#if useTailwind}}className="flex gap-4 items-start p-4 rounded-lg border border-zinc-800 bg-zinc-900"{{else}}style=\{{ display: 'flex', gap: '1rem', alignItems: 'flex-start', padding: '1rem', borderRadius: '0.5rem', border: '1px solid #27272a', background: '#18181b' }}{{/if}}>
39
+ <span {{#if useTailwind}}className="text-xl font-bold text-violet-400 shrink-0"{{else}}style=\{{ fontSize: '1.25rem', fontWeight: 700, color: '#a78bfa', flexShrink: 0 }}{{/if}}>3</span>
40
+ <div>
41
+ <p {{#if useTailwind}}className="font-semibold"{{else}}style=\{{ fontWeight: 600 }}{{/if}}>Add to .env and restart</p>
42
+ <code {{#if useTailwind}}className="text-xs text-zinc-400 bg-zinc-800 px-2 py-1 rounded mt-1 block"{{else}}style=\{{ fontSize: '0.75rem', color: '#a1a1aa', background: '#27272a', padding: '0.25rem 0.5rem', borderRadius: '0.25rem', marginTop: '0.25rem', display: 'block' }}{{/if}}>
43
+ VITE_GITHAT_PUBLISHABLE_KEY=pk_live_...
44
+ </code>
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
+ <a href="https://githat.io/docs/quickstart" target="_blank" rel="noopener noreferrer" {{#if useTailwind}}className="text-sm text-zinc-500 hover:text-zinc-300"{{else}}style=\{{ fontSize: '0.875rem', color: '#71717a' }}{{/if}}>
50
+ Read the docs →
51
+ </a>
52
+ </main>
53
+ );
54
+ }
55
+
3
56
  export default function Home() {
57
+ if (!hasKey) return <SetupGuide />;
58
+
4
59
  return (
5
60
  <main {{#if useTailwind}}className="flex flex-col items-center justify-center min-h-screen gap-6 bg-[#09090b] text-[#fafafa]"{{else}}style=\{{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', minHeight: '100vh', gap: '1.5rem', background: '#09090b', color: '#fafafa' }}{{/if}}>
6
61
  <h1 {{#if useTailwind}}className="text-4xl font-bold"{{else}}style=\{{ fontSize: '2.5rem', fontWeight: 700 }}{{/if}}>
@@ -1,10 +0,0 @@
1
- import { authMiddleware } from '@githat/nextjs/middleware';
2
-
3
- export default authMiddleware({
4
- publicRoutes: ['/', '/sign-in', '/sign-up'{{#if includeForgotPassword}}, '/forgot-password'{{/if}}{{#if includeEmailVerification}}, '/verify-email'{{/if}}],
5
- signInUrl: '/sign-in',
6
- });
7
-
8
- export const config = {
9
- matcher: ['/((?!_next|api|.*\\..*).*)'],
10
- };