Skip to content

Commit 4e3bcc6

Browse files
committed
feat: add launch landing site
1 parent 1881f6f commit 4e3bcc6

85 files changed

Lines changed: 8602 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

landing/.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.*
7+
.yarn/*
8+
!.yarn/patches
9+
!.yarn/plugins
10+
!.yarn/releases
11+
!.yarn/versions
12+
13+
# testing
14+
/coverage
15+
16+
# next.js
17+
/.next/
18+
/out/
19+
20+
# production
21+
/build
22+
23+
# misc
24+
.DS_Store
25+
*.pem
26+
27+
# debug
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
.pnpm-debug.log*
32+
33+
# env files (can opt-in for committing if needed)
34+
.env*
35+
36+
# vercel
37+
.vercel
38+
39+
# typescript
40+
*.tsbuildinfo
41+
next-env.d.ts

landing/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Agent Device Landing
2+
3+
Next.js App Router implementation for the new `agent-device.dev` marketing site.
4+
5+
## Development
6+
7+
```bash
8+
pnpm dev
9+
```
10+
11+
Open [http://localhost:3000](http://localhost:3000).
12+
13+
## Validation
14+
15+
```bash
16+
pnpm lint
17+
pnpm build
18+
```
19+
20+
## Notes
21+
22+
The Figma source file is treated as read-only. Local visual assets under `public/figma/` were exported from Figma screenshots so the site does not depend on short-lived Figma asset URLs.
23+
24+
## Deploy on Vercel
25+
26+
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.
27+
28+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.

landing/eslint.config.mjs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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;

landing/next.config.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import type { NextConfig } from "next";
2+
3+
const nextConfig: NextConfig = {
4+
async headers() {
5+
return [
6+
{
7+
source: "/:path*",
8+
headers: [
9+
{
10+
key: "Cross-Origin-Opener-Policy",
11+
value: "same-origin",
12+
},
13+
{
14+
key: "Permissions-Policy",
15+
value:
16+
"camera=(), microphone=(), geolocation=(), payment=(), usb=(), fullscreen=(self)",
17+
},
18+
{
19+
key: "Referrer-Policy",
20+
value: "origin-when-cross-origin",
21+
},
22+
{
23+
key: "Strict-Transport-Security",
24+
value: "max-age=63072000; includeSubDomains; preload",
25+
},
26+
{
27+
key: "X-Content-Type-Options",
28+
value: "nosniff",
29+
},
30+
{
31+
key: "X-Frame-Options",
32+
value: "DENY",
33+
},
34+
],
35+
},
36+
];
37+
},
38+
images: {
39+
deviceSizes: [640, 750, 828, 832, 1056, 1080, 1200, 1920, 2048, 2176, 3840],
40+
},
41+
poweredByHeader: false,
42+
turbopack: {
43+
root: __dirname,
44+
},
45+
};
46+
47+
export default nextConfig;

landing/package.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"name": "landing",
3+
"version": "0.1.0",
4+
"private": true,
5+
"scripts": {
6+
"dev": "next dev",
7+
"build": "next build",
8+
"start": "next start",
9+
"lint": "eslint",
10+
"audit:assets": "node scripts/audit-assets.mjs",
11+
"smoke:browser": "node scripts/browser-smoke.mjs"
12+
},
13+
"dependencies": {
14+
"class-variance-authority": "^0.7.1",
15+
"clsx": "^2.1.1",
16+
"lottie-react": "^2.4.1",
17+
"next": "16.2.6",
18+
"pixelarticons": "^2.1.1",
19+
"react": "19.2.6",
20+
"react-dom": "19.2.6",
21+
"tailwind-merge": "^3.6.0"
22+
},
23+
"devDependencies": {
24+
"@tailwindcss/postcss": "^4",
25+
"@types/node": "^20",
26+
"@types/react": "^19",
27+
"@types/react-dom": "^19",
28+
"eslint": "^9",
29+
"eslint-config-next": "16.2.6",
30+
"tailwindcss": "^4",
31+
"typescript": "^5"
32+
},
33+
"pnpm": {
34+
"onlyBuiltDependencies": [
35+
"sharp",
36+
"unrs-resolver"
37+
]
38+
}
39+
}

0 commit comments

Comments
 (0)