startmeow 1.0.0
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 +1 -0
- package/StartMeow +0 -0
- package/debug.log +3 -0
- package/go.mod +28 -0
- package/go.sum +44 -0
- package/internal/README.md +1 -0
- package/internal/generator.go +99 -0
- package/internal/projbuilder.go +188 -0
- package/internal/prompts.go +138 -0
- package/internal/queue.go +57 -0
- package/internal/states.go +88 -0
- package/internal/tui/debug.log +5 -0
- package/internal/tui/go.sum +44 -0
- package/internal/tui/models/app.go +260 -0
- package/internal/tui/models/help.go +54 -0
- package/internal/tui/models/question.go +34 -0
- package/internal/tui/styles/style.go +82 -0
- package/internal/types.go +78 -0
- package/internal/userinterface_string.go +26 -0
- package/main.go +60 -0
- package/manifest.json +5 -0
- package/manifests/manifest.json +7 -0
- package/package.json +28 -0
- package/templates/backend/README.md +1 -0
- package/templates/backend/express/README.md.tmpl +9 -0
- package/templates/backend/express/index.js.tmpl +13 -0
- package/templates/backend/express/package.json.tmpl +11 -0
- package/templates/frontend/README.md +1 -0
- package/templates/ui/README.md +1 -0
- package/templates/ui/blog/home.tsx.tmpl +53 -0
- package/templates/ui/blog/index.html +48 -0
- package/templates/ui/blog/page.tsx +45 -0
- package/templates/ui/blog/page.tsx.tmpl +45 -0
- package/templates/ui/download/home.tsx.tmpl +53 -0
- package/templates/ui/download/index.html +51 -0
- package/templates/ui/download/manifest.json +5 -0
- package/templates/ui/download/page.tsx +49 -0
- package/templates/ui/download/page.tsx.tmpl +49 -0
- package/templates/ui/landing/home.tsx.tmpl +55 -0
- package/templates/ui/landing/index.html +53 -0
- package/templates/ui/landing/page.tsx +51 -0
- package/templates/ui/landing/page.tsx.tmpl +51 -0
- package/templates/ui/store/home.tsx.tmpl +49 -0
- package/templates/ui/store/index.html +47 -0
- package/templates/ui/store/page.tsx +45 -0
- package/templates/ui/store/page.tsx.tmpl +45 -0
- package/test-project/README.md +36 -0
- package/test-project/app/favicon.ico +0 -0
- package/test-project/app/globals.css +26 -0
- package/test-project/app/layout.tsx +34 -0
- package/test-project/app/page.tsx +49 -0
- package/test-project/eslint.config.mjs +18 -0
- package/test-project/next.config.ts +7 -0
- package/test-project/package-lock.json +6593 -0
- package/test-project/package.json +26 -0
- package/test-project/postcss.config.mjs +7 -0
- package/test-project/public/file.svg +1 -0
- package/test-project/public/globe.svg +1 -0
- package/test-project/public/next.svg +1 -0
- package/test-project/public/vercel.svg +1 -0
- package/test-project/public/window.svg +1 -0
- package/test-project/tsconfig.json +34 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Route } from "./+types/home";
|
|
2
|
+
|
|
3
|
+
export function loader() {
|
|
4
|
+
return { name: "React Router" };
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export default function Home({ loaderData }: Route.ComponentProps) {
|
|
8
|
+
return (
|
|
9
|
+
<div className="min-h-screen flex flex-col bg-gray-100 p-8">
|
|
10
|
+
<header className="mb-8">
|
|
11
|
+
<h1 className="text-4xl font-bold">Store</h1>
|
|
12
|
+
</header>
|
|
13
|
+
|
|
14
|
+
<main className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 flex-grow">
|
|
15
|
+
<div className="bg-white p-6 rounded-lg shadow text-center">
|
|
16
|
+
<h2 className="text-xl font-semibold">Sample Product</h2>
|
|
17
|
+
<p className="text-gray-700 mt-2">$19.99</p>
|
|
18
|
+
<button className="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition">
|
|
19
|
+
Add to Cart
|
|
20
|
+
</button>
|
|
21
|
+
</div>
|
|
22
|
+
</main>
|
|
23
|
+
|
|
24
|
+
<footer className="bg-gray-800 text-white py-6 rounded-lg">
|
|
25
|
+
<div className="container mx-auto flex justify-between pl-4 pr-4">
|
|
26
|
+
<div>
|
|
27
|
+
<h4 className="font-semibold">Quick Links</h4>
|
|
28
|
+
<ul className="space-y-1 pl-2">
|
|
29
|
+
<li><a href="#" className="hover:text-gray-400">Home</a></li>
|
|
30
|
+
<li><a href="#" className="hover:text-gray-400">Store</a></li>
|
|
31
|
+
<li><a href="#" className="hover:text-gray-400">Download</a></li>
|
|
32
|
+
<li><a href="#" className="hover:text-gray-400">Blog</a></li>
|
|
33
|
+
</ul>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<div className="flex space-x-4">
|
|
37
|
+
<a href="#" className="hover:text-gray-400">GitHub</a>
|
|
38
|
+
<a href="#" className="hover:text-gray-400">LinkedIn</a>
|
|
39
|
+
<a href="#" className="hover:text-gray-400">Twitter</a>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div className="mt-4 text-center">
|
|
44
|
+
<p className="text-sm">© 2026 StartMeow.</p>
|
|
45
|
+
</div>
|
|
46
|
+
</footer>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<title>{{ .ProjectName }} – Store</title>
|
|
6
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
7
|
+
</head>
|
|
8
|
+
<body class="min-h-screen flex flex-col bg-gray-100 p-8">
|
|
9
|
+
<header class="mb-8">
|
|
10
|
+
<h1 class="text-4xl font-bold">Store</h1>
|
|
11
|
+
</header>
|
|
12
|
+
|
|
13
|
+
<main class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 flex-grow">
|
|
14
|
+
<div class="bg-white p-6 rounded-lg shadow text-center">
|
|
15
|
+
<h2 class="text-xl font-semibold">Sample Product</h2>
|
|
16
|
+
<p class="text-gray-700 mt-2">$19.99</p>
|
|
17
|
+
<button class="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition">
|
|
18
|
+
Add to Cart
|
|
19
|
+
</button>
|
|
20
|
+
</div>
|
|
21
|
+
</main>
|
|
22
|
+
|
|
23
|
+
<footer class="bg-gray-800 text-white py-6 rounded-lg">
|
|
24
|
+
<div class="container mx-auto flex justify-between">
|
|
25
|
+
<div>
|
|
26
|
+
<h4 class="font-semibold">Quick Links</h4>
|
|
27
|
+
<ul class="space-y-2">
|
|
28
|
+
<li><a href="#" class="hover:text-gray-400">Home</a></li>
|
|
29
|
+
<li><a href="#" class="hover:text-gray-400">Store</a></li>
|
|
30
|
+
<li><a href="#" class="hover:text-gray-400">Download</a></li>
|
|
31
|
+
<li><a href="#" class="hover:text-gray-400">Blog</a></li>
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div class="flex space-x-4">
|
|
36
|
+
<a href="#" class="hover:text-gray-400">GitHub</a>
|
|
37
|
+
<a href="#" class="hover:text-gray-400">LinkedIn</a>
|
|
38
|
+
<a href="#" class="hover:text-gray-400">Twitter</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="mt-4 text-center">
|
|
43
|
+
<p class="text-sm">© 2026 StartMeow.</p>
|
|
44
|
+
</div>
|
|
45
|
+
</footer>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import Image from "next/image";
|
|
2
|
+
|
|
3
|
+
export default function Home() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen flex flex-col bg-gray-100 p-8">
|
|
6
|
+
<header className="mb-8">
|
|
7
|
+
<h1 className="text-4xl font-bold">Store</h1>
|
|
8
|
+
</header>
|
|
9
|
+
|
|
10
|
+
<main className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 flex-grow">
|
|
11
|
+
<div className="bg-white p-6 rounded-lg shadow text-center">
|
|
12
|
+
<h2 className="text-xl font-semibold">Sample Product</h2>
|
|
13
|
+
<p className="text-gray-700 mt-2">$19.99</p>
|
|
14
|
+
<button className="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition">
|
|
15
|
+
Add to Cart
|
|
16
|
+
</button>
|
|
17
|
+
</div>
|
|
18
|
+
</main>
|
|
19
|
+
|
|
20
|
+
<footer className="bg-gray-800 text-white py-6 rounded-lg">
|
|
21
|
+
<div className="container mx-auto flex justify-between">
|
|
22
|
+
<div>
|
|
23
|
+
<h4 className="font-semibold">Quick Links</h4>
|
|
24
|
+
<ul className="space-y-2">
|
|
25
|
+
<li><a href="#" className="hover:text-gray-400">Home</a></li>
|
|
26
|
+
<li><a href="#" className="hover:text-gray-400">Store</a></li>
|
|
27
|
+
<li><a href="#" className="hover:text-gray-400">Download</a></li>
|
|
28
|
+
<li><a href="#" className="hover:text-gray-400">Blog</a></li>
|
|
29
|
+
</ul>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<div className="flex space-x-4">
|
|
33
|
+
<a href="#" className="hover:text-gray-400">GitHub</a>
|
|
34
|
+
<a href="#" className="hover:text-gray-400">LinkedIn</a>
|
|
35
|
+
<a href="#" className="hover:text-gray-400">Twitter</a>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div className="mt-4 text-center">
|
|
40
|
+
<p className="text-sm">© 2026 StartMeow.</p>
|
|
41
|
+
</div>
|
|
42
|
+
</footer>
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import Image from "next/image";
|
|
2
|
+
|
|
3
|
+
export default function Home() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen flex flex-col bg-gray-100 p-8">
|
|
6
|
+
<header className="mb-8">
|
|
7
|
+
<h1 className="text-4xl font-bold">Store</h1>
|
|
8
|
+
</header>
|
|
9
|
+
|
|
10
|
+
<main className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 flex-grow">
|
|
11
|
+
<div className="bg-white p-6 rounded-lg shadow text-center">
|
|
12
|
+
<h2 className="text-xl font-semibold">Sample Product</h2>
|
|
13
|
+
<p className="text-gray-700 mt-2">$19.99</p>
|
|
14
|
+
<button className="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition">
|
|
15
|
+
Add to Cart
|
|
16
|
+
</button>
|
|
17
|
+
</div>
|
|
18
|
+
</main>
|
|
19
|
+
|
|
20
|
+
<footer className="bg-gray-800 text-white py-6 rounded-lg">
|
|
21
|
+
<div className="container mx-auto flex justify-between pl-4 pr-4">
|
|
22
|
+
<div>
|
|
23
|
+
<h4 className="font-semibold">Quick Links</h4>
|
|
24
|
+
<ul className="space-y-1 pl-2">
|
|
25
|
+
<li><a href="#" className="hover:text-gray-400">Home</a></li>
|
|
26
|
+
<li><a href="#" className="hover:text-gray-400">Store</a></li>
|
|
27
|
+
<li><a href="#" className="hover:text-gray-400">Download</a></li>
|
|
28
|
+
<li><a href="#" className="hover:text-gray-400">Blog</a></li>
|
|
29
|
+
</ul>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<div className="flex space-x-4">
|
|
33
|
+
<a href="#" className="hover:text-gray-400">GitHub</a>
|
|
34
|
+
<a href="#" className="hover:text-gray-400">LinkedIn</a>
|
|
35
|
+
<a href="#" className="hover:text-gray-400">Twitter</a>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<div className="mt-4 text-center">
|
|
40
|
+
<p className="text-sm">© 2026 StartMeow.</p>
|
|
41
|
+
</div>
|
|
42
|
+
</footer>
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
First, run the development server:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run dev
|
|
9
|
+
# or
|
|
10
|
+
yarn dev
|
|
11
|
+
# or
|
|
12
|
+
pnpm dev
|
|
13
|
+
# or
|
|
14
|
+
bun dev
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
18
|
+
|
|
19
|
+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
|
20
|
+
|
|
21
|
+
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
|
22
|
+
|
|
23
|
+
## Learn More
|
|
24
|
+
|
|
25
|
+
To learn more about Next.js, take a look at the following resources:
|
|
26
|
+
|
|
27
|
+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
28
|
+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
29
|
+
|
|
30
|
+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
|
31
|
+
|
|
32
|
+
## Deploy on Vercel
|
|
33
|
+
|
|
34
|
+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
|
35
|
+
|
|
36
|
+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--background: #ffffff;
|
|
5
|
+
--foreground: #171717;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@theme inline {
|
|
9
|
+
--color-background: var(--background);
|
|
10
|
+
--color-foreground: var(--foreground);
|
|
11
|
+
--font-sans: var(--font-geist-sans);
|
|
12
|
+
--font-mono: var(--font-geist-mono);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
:root {
|
|
17
|
+
--background: #0a0a0a;
|
|
18
|
+
--foreground: #ededed;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
body {
|
|
23
|
+
background: var(--background);
|
|
24
|
+
color: var(--foreground);
|
|
25
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
26
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Metadata } from "next";
|
|
2
|
+
import { Geist, Geist_Mono } from "next/font/google";
|
|
3
|
+
import "./globals.css";
|
|
4
|
+
|
|
5
|
+
const geistSans = Geist({
|
|
6
|
+
variable: "--font-geist-sans",
|
|
7
|
+
subsets: ["latin"],
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const geistMono = Geist_Mono({
|
|
11
|
+
variable: "--font-geist-mono",
|
|
12
|
+
subsets: ["latin"],
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const metadata: Metadata = {
|
|
16
|
+
title: "Create Next App",
|
|
17
|
+
description: "Generated by create next app",
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default function RootLayout({
|
|
21
|
+
children,
|
|
22
|
+
}: Readonly<{
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}>) {
|
|
25
|
+
return (
|
|
26
|
+
<html lang="en">
|
|
27
|
+
<body
|
|
28
|
+
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
|
29
|
+
>
|
|
30
|
+
{children}
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import Image from "next/image";
|
|
2
|
+
|
|
3
|
+
export default function Home() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="min-h-screen flex flex-col bg-gray-100 p-8">
|
|
6
|
+
|
|
7
|
+
<header className="mb-12 text-center">
|
|
8
|
+
<h1 className="text-5xl font-extrabold">Download test-project</h1>
|
|
9
|
+
<p className="text-gray-600 text-lg mt-2">Get the latest version below.</p>
|
|
10
|
+
</header>
|
|
11
|
+
|
|
12
|
+
<main className="flex-grow flex flex-col items-center justify-center space-y-6">
|
|
13
|
+
<p className="text-gray-700 max-w-xl text-center">
|
|
14
|
+
Click the button below to download the newest release of test-project.
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<a href="#"
|
|
18
|
+
className="px-6 py-3 bg-blue-600 text-white rounded-lg shadow hover:bg-blue-700 transition">
|
|
19
|
+
Download Now
|
|
20
|
+
</a>
|
|
21
|
+
</main>
|
|
22
|
+
|
|
23
|
+
<footer className="bg-gray-800 text-white py-6 rounded-lg">
|
|
24
|
+
<div className="container mx-auto flex justify-between">
|
|
25
|
+
<div>
|
|
26
|
+
<h4 className="font-semibold">Quick Links</h4>
|
|
27
|
+
<ul className="space-y-2">
|
|
28
|
+
<li><a href="#" className="hover:text-gray-400">Home</a></li>
|
|
29
|
+
<li><a href="#" className="hover:text-gray-400">Store</a></li>
|
|
30
|
+
<li><a href="#" className="hover:text-gray-400">Download</a></li>
|
|
31
|
+
<li><a href="#" className="hover:text-gray-400">Blog</a></li>
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div className="flex space-x-4">
|
|
36
|
+
<a href="#" className="hover:text-gray-400">GitHub</a>
|
|
37
|
+
<a href="#" className="hover:text-gray-400">LinkedIn</a>
|
|
38
|
+
<a href="#" className="hover:text-gray-400">Twitter</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div className="mt-4 text-center">
|
|
43
|
+
<p className="text-sm">© 2026 StartMeow.</p>
|
|
44
|
+
</div>
|
|
45
|
+
</footer>
|
|
46
|
+
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineConfig, globalIgnores } from "eslint/config";
|
|
2
|
+
import nextVitals from "eslint-config-next/core-web-vitals";
|
|
3
|
+
import nextTs from "eslint-config-next/typescript";
|
|
4
|
+
|
|
5
|
+
const eslintConfig = defineConfig([
|
|
6
|
+
...nextVitals,
|
|
7
|
+
...nextTs,
|
|
8
|
+
// Override default ignores of eslint-config-next.
|
|
9
|
+
globalIgnores([
|
|
10
|
+
// Default ignores of eslint-config-next:
|
|
11
|
+
".next/**",
|
|
12
|
+
"out/**",
|
|
13
|
+
"build/**",
|
|
14
|
+
"next-env.d.ts",
|
|
15
|
+
]),
|
|
16
|
+
]);
|
|
17
|
+
|
|
18
|
+
export default eslintConfig;
|