+ {listing.name} +
++ {listing.category} +
++ {listing.description} +
+From 422116f77803312f577c5cdb11027df50a7486a7 Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:52:31 -0400 Subject: [PATCH 01/14] Initialize Next.js Tailwind app --- README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f1a2e0..15d55b8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,26 @@ -# x402-directory +# x402 Directory + A curated, agent-maintained directory of x402 payment-enabled applications and endpoints. Browse, search, and discover services that accept x402 micropayments. Agents can contribute by adding new listings, verifying endpoint liveness, and categorizing services. + +## Getting Started + +Install dependencies: + +```bash +npm install +``` + +Run the development server: + +```bash +npm run dev +``` + +Open [http://localhost:3000](http://localhost:3000) to view the app. + +## Scripts + +- `npm run dev` starts the local Next.js server. +- `npm run build` creates a production build. +- `npm run typecheck` runs TypeScript without emitting files. +- `npm run lint` runs the Next.js lint checks. From 760d693433f91814783bbc1edd29162877c753e1 Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:52:36 -0400 Subject: [PATCH 02/14] Add project ignore rules --- .gitignore | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3f01223 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.next/ +node_modules/ +out/ +dist/ +.env* +!.env.example +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +.DS_Store +tsconfig.tsbuildinfo From 17172d1dcf13813e509422f74d1bcd3607bfe31e Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:52:42 -0400 Subject: [PATCH 03/14] Add Next lint config --- .eslintrc.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..957cd15 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals"] +} From 965fdee796888e8c1ddc7b902a2c171d5d02b233 Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:52:49 -0400 Subject: [PATCH 04/14] Add Next.js package scripts --- package.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..69e60f8 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "x402-directory", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "typecheck": "tsc --noEmit", + "lint": "next lint" + }, + "dependencies": { + "next": "14.2.35", + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "devDependencies": { + "@types/node": "20.19.7", + "@types/react": "18.3.23", + "@types/react-dom": "18.3.7", + "autoprefixer": "10.4.21", + "eslint": "8.57.1", + "eslint-config-next": "14.2.35", + "postcss": "8.5.6", + "tailwindcss": "3.4.17", + "typescript": "5.8.3" + } +} From b09cfdb7124399ef4067cfc0fc72c89d670ed62d Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:52:54 -0400 Subject: [PATCH 05/14] Add global Tailwind styles --- app/globals.css | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/globals.css diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..a2fdc07 --- /dev/null +++ b/app/globals.css @@ -0,0 +1,33 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #f7fbfb; + --foreground: #1b1f23; +} + +* { + box-sizing: border-box; +} + +html { + min-height: 100%; +} + +body { + min-height: 100vh; + margin: 0; + background: var(--background); + color: var(--foreground); +} + +a { + color: inherit; + text-decoration: none; +} + +button, +input { + font: inherit; +} From cb16cd1b393614d5c80390227da74e8c0abca890 Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:53:00 -0400 Subject: [PATCH 06/14] Add root app layout --- app/layout.tsx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/layout.tsx diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..0cdd3a5 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,24 @@ +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import "./globals.css"; + +const inter = Inter({ subsets: ["latin"], variable: "--font-inter" }); + +export const metadata: Metadata = { + title: "x402 Directory", + description: "Browse and discover x402 payment-enabled applications and endpoints.", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + +
+ {children} + + + ); +} From 715ea96674a09a2e035dafc8ec11828aebf9c2a3 Mon Sep 17 00:00:00 2001 From: JohnCelery <212132728+JohnCelery@users.noreply.github.com> Date: Tue, 7 Jul 2026 07:53:19 -0400 Subject: [PATCH 07/14] Add homepage scaffold --- app/page.tsx | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/page.tsx diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..b89d450 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,114 @@ +import { PageShell } from "@/components/page-shell"; +import { placeholderListings } from "@/data/placeholder-listings"; + +export default function Home() { + return ( ++ x402 endpoint discovery +
++ A curated directory for agents, developers, and services building + with HTTP-native micropayments. +
+ ++ Endpoint liveness +
+Placeholder status panel
++ Example cards for the first searchable directory experience. +
++ {listing.category} +
++ {listing.description} +
+