Remove unused files and clean up project structure by deleting .gitignore, bun.lock, index.html, package.json, main.js, and style.css. Update .gitignore to include only necessary entries for environment variables and build outputs.

This commit is contained in:
darrenhinde 2025-08-26 01:02:31 +01:00
parent 6b15d0a32e
commit 412d5141c3
6 changed files with 25 additions and 1135 deletions

113
.gitignore vendored
View file

@ -1,46 +1,22 @@
# Environment variables and API keys
.env
.env.local
.env.development
.env.test
.env.production
.env.*.local
# API keys and secrets
*.key
*.pem
*.p12
*.pfx
secrets/
keys/
api-keys/
# Telegram bot tokens (specific to this project)
telegram-token.txt
telegram-config.json
bot-token.txt
# Node.js
# Dependencies
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
pnpm-debug.log*
# Bun
bun.lockb
# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# TypeScript
*.tsbuildinfo
# Build outputs
dist/
build/
# IDE and editor files
.vscode/
.idea/
*.swp
*.swo
*~
out/
*.tsbuildinfo
# OS generated files
.DS_Store
@ -51,25 +27,30 @@ build/
ehthumbs.db
Thumbs.db
# IDE files
.vscode/
.idea/
*.swp
*.swo
*~
# Logs
logs/
logs
*.log
# Runtime data
pids/
pids
*.pid
*.seed
*.pid.lock
# Coverage directory used by tools like istanbul
coverage/
*.lcov
# nyc test coverage
.nyc_output
# Dependency directories
jspm_packages/
# Temporary folders
tmp/
temp/
# Optional npm cache directory
.npm
@ -77,49 +58,5 @@ jspm_packages/
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
public
# Storybook build outputs
.out
.storybook-out
# Temporary folders
tmp/
temp/
# OpenCode specific
.opencode/log/
.opencode/cache/
.opencode/temp/
# Local development
.local/
local/
# Bun
.bun

116
bun.lock
View file

@ -1,116 +0,0 @@
{
"lockfileVersion": 1,
"workspaces": {
"": {
"name": "opencode-agents-landing",
"devDependencies": {
"vite": "^5.0.8",
},
},
},
"packages": {
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="],
"@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="],
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.21.5", "", { "os": "android", "cpu": "arm64" }, "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A=="],
"@esbuild/android-x64": ["@esbuild/android-x64@0.21.5", "", { "os": "android", "cpu": "x64" }, "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA=="],
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.21.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ=="],
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.21.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw=="],
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.21.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g=="],
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.21.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ=="],
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.21.5", "", { "os": "linux", "cpu": "arm" }, "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA=="],
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.21.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q=="],
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.21.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg=="],
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg=="],
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg=="],
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.21.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w=="],
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA=="],
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.21.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A=="],
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.21.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ=="],
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.21.5", "", { "os": "none", "cpu": "x64" }, "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg=="],
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.21.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow=="],
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.21.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg=="],
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.21.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A=="],
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.21.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA=="],
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="],
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.48.1", "", { "os": "android", "cpu": "arm" }, "sha512-rGmb8qoG/zdmKoYELCBwu7vt+9HxZ7Koos3pD0+sH5fR3u3Wb/jGcpnqxcnWsPEKDUyzeLSqksN8LJtgXjqBYw=="],
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.48.1", "", { "os": "android", "cpu": "arm64" }, "sha512-4e9WtTxrk3gu1DFE+imNJr4WsL13nWbD/Y6wQcyku5qadlKHY3OQ3LJ/INrrjngv2BJIHnIzbqMk1GTAC2P8yQ=="],
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.48.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+XjmyChHfc4TSs6WUQGmVf7Hkg8ferMAE2aNYYWjiLzAS/T62uOsdfnqv+GHRjq7rKRnYh4mwWb4Hz7h/alp8A=="],
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.48.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-upGEY7Ftw8M6BAJyGwnwMw91rSqXTcOKZnnveKrVWsMTF8/k5mleKSuh7D4v4IV1pLxKAk3Tbs0Lo9qYmii5mQ=="],
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.48.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-P9ViWakdoynYFUOZhqq97vBrhuvRLAbN/p2tAVJvhLb8SvN7rbBnJQcBu8e/rQts42pXGLVhfsAP0k9KXWa3nQ=="],
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.48.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-VLKIwIpnBya5/saccM8JshpbxfyJt0Dsli0PjXozHwbSVaHTvWXJH1bbCwPXxnMzU4zVEfgD1HpW3VQHomi2AQ=="],
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.48.1", "", { "os": "linux", "cpu": "arm" }, "sha512-3zEuZsXfKaw8n/yF7t8N6NNdhyFw3s8xJTqjbTDXlipwrEHo4GtIKcMJr5Ed29leLpB9AugtAQpAHW0jvtKKaQ=="],
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.48.1", "", { "os": "linux", "cpu": "arm" }, "sha512-leo9tOIlKrcBmmEypzunV/2w946JeLbTdDlwEZ7OnnsUyelZ72NMnT4B2vsikSgwQifjnJUbdXzuW4ToN1wV+Q=="],
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.48.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Vy/WS4z4jEyvnJm+CnPfExIv5sSKqZrUr98h03hpAMbE2aI0aD2wvK6GiSe8Gx2wGp3eD81cYDpLLBqNb2ydwQ=="],
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.48.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-x5Kzn7XTwIssU9UYqWDB9VpLpfHYuXw5c6bJr4Mzv9kIv242vmJHbI5PJJEnmBYitUIfoMCODDhR7KoZLot2VQ=="],
"@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.48.1", "", { "os": "linux", "cpu": "none" }, "sha512-yzCaBbwkkWt/EcgJOKDUdUpMHjhiZT/eDktOPWvSRpqrVE04p0Nd6EGV4/g7MARXXeOqstflqsKuXVM3H9wOIQ=="],
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.48.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UK0WzWUjMAJccHIeOpPhPcKBqax7QFg47hwZTp6kiMhQHeOYJeaMwzeRZe1q5IiTKsaLnHu9s6toSYVUlZ2QtQ=="],
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.48.1", "", { "os": "linux", "cpu": "none" }, "sha512-3NADEIlt+aCdCbWVZ7D3tBjBX1lHpXxcvrLt/kdXTiBrOds8APTdtk2yRL2GgmnSVeX4YS1JIf0imFujg78vpw=="],
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.48.1", "", { "os": "linux", "cpu": "none" }, "sha512-euuwm/QTXAMOcyiFCcrx0/S2jGvFlKJ2Iro8rsmYL53dlblp3LkUQVFzEidHhvIPPvcIsxDhl2wkBE+I6YVGzA=="],
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.48.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-w8mULUjmPdWLJgmTYJx/W6Qhln1a+yqvgwmGXcQl2vFBkWsKGUBRbtLRuKJUln8Uaimf07zgJNxOhHOvjSQmBQ=="],
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.48.1", "", { "os": "linux", "cpu": "x64" }, "sha512-90taWXCWxTbClWuMZD0DKYohY1EovA+W5iytpE89oUPmT5O1HFdf8cuuVIylE6vCbrGdIGv85lVRzTcpTRZ+kA=="],
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.48.1", "", { "os": "linux", "cpu": "x64" }, "sha512-2Gu29SkFh1FfTRuN1GR1afMuND2GKzlORQUP3mNMJbqdndOg7gNsa81JnORctazHRokiDzQ5+MLE5XYmZW5VWg=="],
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.48.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-6kQFR1WuAO50bxkIlAVeIYsz3RUx+xymwhTo9j94dJ+kmHe9ly7muH23sdfWduD0BA8pD9/yhonUvAjxGh34jQ=="],
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.48.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-RUyZZ/mga88lMI3RlXFs4WQ7n3VyU07sPXmMG7/C1NOi8qisUg57Y7LRarqoGoAiopmGmChUhSwfpvQ3H5iGSQ=="],
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.48.1", "", { "os": "win32", "cpu": "x64" }, "sha512-8a/caCUN4vkTChxkaIJcMtwIVcBhi4X2PQRoT+yCK3qRYaZ7cURrmJFL5Ux9H9RaMIXj9RuihckdmkBX3zZsgg=="],
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
"esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="],
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
"rollup": ["rollup@4.48.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.48.1", "@rollup/rollup-android-arm64": "4.48.1", "@rollup/rollup-darwin-arm64": "4.48.1", "@rollup/rollup-darwin-x64": "4.48.1", "@rollup/rollup-freebsd-arm64": "4.48.1", "@rollup/rollup-freebsd-x64": "4.48.1", "@rollup/rollup-linux-arm-gnueabihf": "4.48.1", "@rollup/rollup-linux-arm-musleabihf": "4.48.1", "@rollup/rollup-linux-arm64-gnu": "4.48.1", "@rollup/rollup-linux-arm64-musl": "4.48.1", "@rollup/rollup-linux-loongarch64-gnu": "4.48.1", "@rollup/rollup-linux-ppc64-gnu": "4.48.1", "@rollup/rollup-linux-riscv64-gnu": "4.48.1", "@rollup/rollup-linux-riscv64-musl": "4.48.1", "@rollup/rollup-linux-s390x-gnu": "4.48.1", "@rollup/rollup-linux-x64-gnu": "4.48.1", "@rollup/rollup-linux-x64-musl": "4.48.1", "@rollup/rollup-win32-arm64-msvc": "4.48.1", "@rollup/rollup-win32-ia32-msvc": "4.48.1", "@rollup/rollup-win32-x64-msvc": "4.48.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-jVG20NvbhTYDkGAty2/Yh7HK6/q3DGSRH4o8ALKGArmMuaauM9kLfoMZ+WliPwA5+JHr2lTn3g557FxBV87ifg=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"vite": ["vite@5.4.19", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA=="],
}
}

View file

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OpenCode Agents</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

View file

@ -1,14 +0,0 @@
{
"name": "opencode-agents-landing",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"vite": "^5.0.8"
}
}

View file

@ -1,319 +0,0 @@
import './style.css'
document.querySelector('#app').innerHTML = `
<header class="header">
<nav class="nav">
<div class="nav-brand">
<span class="nav-logo">🤖</span>
<span class="nav-title">OpenCode Agents</span>
</div>
<ul class="nav-menu">
<li><a href="#features">Features</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="#docs">Docs</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<button class="nav-cta">Get Started</button>
</nav>
</header>
<main>
<section class="hero">
<div class="hero-content">
<h1 class="hero-title">
Supercharge Your Development<br>
<span class="hero-highlight">with AI Agents</span>
</h1>
<p class="hero-subtitle">
Transform your coding workflow with intelligent AI agents that understand your codebase,
write tests, generate documentation, and accelerate development by 3x.
</p>
<div class="hero-stats">
<div class="stat">
<div class="stat-number">10K+</div>
<div class="stat-label">Developers</div>
</div>
<div class="stat">
<div class="stat-number">500K+</div>
<div class="stat-label">Lines of Code</div>
</div>
<div class="stat">
<div class="stat-number">99.9%</div>
<div class="stat-label">Uptime</div>
</div>
</div>
<div class="hero-actions">
<button class="cta-button primary" id="get-started">Start Free Trial</button>
<button class="cta-button secondary" id="watch-demo">Watch Demo</button>
</div>
<div class="hero-trust">
<span class="trust-text">Trusted by teams at</span>
<div class="trust-logos">
<span class="trust-logo">🏢 TechCorp</span>
<span class="trust-logo">🚀 StartupXYZ</span>
<span class="trust-logo">💡 InnovateLab</span>
</div>
</div>
</div>
<div class="hero-visual">
<div class="code-preview">
<div class="code-line">function analyzeCode(codebase) {</div>
<div class="code-line indent"> const patterns = AI.analyze(codebase);</div>
<div class="code-line indent"> const suggestions = AI.optimize(patterns);</div>
<div class="code-line indent"> return suggestions;</div>
<div class="code-line">}</div>
</div>
</div>
</section>
<section id="features" class="features-section">
<div class="section-header">
<h2>Powerful Features for Modern Development</h2>
<p>Everything you need to build better software, faster</p>
</div>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">🔍</div>
<h3>Smart Code Analysis</h3>
<p>Advanced AI analyzes your entire codebase to identify patterns, potential bugs, and optimization opportunities in real-time.</p>
<ul class="feature-benefits">
<li>Pattern recognition across languages</li>
<li>Security vulnerability detection</li>
<li>Performance bottleneck identification</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">🧪</div>
<h3>Automated Testing</h3>
<p>Generate comprehensive test suites automatically with AI-powered test case creation and TDD workflow support.</p>
<ul class="feature-benefits">
<li>Unit, integration, and E2E tests</li>
<li>Edge case coverage</li>
<li>Test maintenance automation</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">📝</div>
<h3>Intelligent Documentation</h3>
<p>Create, maintain, and update documentation automatically as your code evolves with contextual understanding.</p>
<ul class="feature-benefits">
<li>API documentation generation</li>
<li>Code comment suggestions</li>
<li>README and changelog updates</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">🔄</div>
<h3>Code Refactoring</h3>
<p>AI-powered refactoring suggestions to improve code quality, maintainability, and follow best practices.</p>
<ul class="feature-benefits">
<li>Automated code improvements</li>
<li>Design pattern suggestions</li>
<li>Legacy code modernization</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">🤝</div>
<h3>Team Collaboration</h3>
<p>Seamlessly integrate with your existing workflow and collaborate with team members through shared AI insights.</p>
<ul class="feature-benefits">
<li>Git integration</li>
<li>Team code reviews</li>
<li>Knowledge sharing</li>
</ul>
</div>
<div class="feature-card">
<div class="feature-icon">⚡</div>
<h3>Performance Optimization</h3>
<p>Identify and fix performance issues automatically with AI-driven optimization recommendations.</p>
<ul class="feature-benefits">
<li>Memory optimization</li>
<li>Query optimization</li>
<li>Load time improvements</li>
</ul>
</div>
</div>
</section>
<section class="testimonials">
<div class="section-header">
<h2>Loved by Developers Worldwide</h2>
<p>See what our community is saying</p>
</div>
<div class="testimonials-grid">
<div class="testimonial-card">
<div class="testimonial-content">
"OpenCode Agents reduced our development time by 60% and improved code quality dramatically."
</div>
<div class="testimonial-author">
<div class="author-avatar">👨‍💻</div>
<div class="author-info">
<div class="author-name">Sarah Chen</div>
<div class="author-role">Senior Developer, TechCorp</div>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="testimonial-content">
"The AI suggestions are incredibly accurate. It's like having an expert pair programmer available 24/7."
</div>
<div class="testimonial-author">
<div class="author-avatar">👩‍💼</div>
<div class="author-info">
<div class="author-name">Mike Rodriguez</div>
<div class="author-role">Lead Engineer, StartupXYZ</div>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="testimonial-content">
"Documentation that stays up-to-date automatically? Game changer for our open source projects."
</div>
<div class="testimonial-author">
<div class="author-avatar">🧑‍🔬</div>
<div class="author-info">
<div class="author-name">Dr. Emily Watson</div>
<div class="author-role">Research Scientist, InnovateLab</div>
</div>
</div>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="footer-content">
<div class="footer-section">
<h4>🤖 OpenCode Agents</h4>
<p>Empowering developers with intelligent AI assistance for better software development.</p>
</div>
<div class="footer-section">
<h4>Product</h4>
<ul>
<li><a href="#features">Features</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="#docs">Documentation</a></li>
<li><a href="#api">API</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Company</h4>
<ul>
<li><a href="#about">About</a></li>
<li><a href="#blog">Blog</a></li>
<li><a href="#careers">Careers</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Support</h4>
<ul>
<li><a href="#help">Help Center</a></li>
<li><a href="#community">Community</a></li>
<li><a href="#status">Status</a></li>
<li><a href="#feedback">Feedback</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 OpenCode Agents. All rights reserved.</p>
<div class="footer-links">
<a href="#privacy">Privacy Policy</a>
<a href="#terms">Terms of Service</a>
</div>
</div>
</footer>
`
// Event listeners for interactive elements
document.querySelector('#get-started').addEventListener('click', () => {
// Smooth scroll to features section
document.querySelector('#features').scrollIntoView({
behavior: 'smooth'
});
});
document.querySelector('#watch-demo').addEventListener('click', () => {
alert('🎬 Demo video coming soon! In the meantime, explore our features below.');
});
// Navigation smooth scrolling
document.querySelectorAll('.nav-menu a').forEach(link => {
link.addEventListener('click', (e) => {
e.preventDefault();
const targetId = link.getAttribute('href');
const targetSection = document.querySelector(targetId);
if (targetSection) {
targetSection.scrollIntoView({
behavior: 'smooth'
});
}
});
});
// Header scroll effect
let lastScrollTop = 0;
const header = document.querySelector('.header');
window.addEventListener('scroll', () => {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if (scrollTop > lastScrollTop && scrollTop > 100) {
// Scrolling down
header.style.transform = 'translateY(-100%)';
} else {
// Scrolling up
header.style.transform = 'translateY(0)';
}
lastScrollTop = scrollTop;
});
// Add intersection observer for animations
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}
});
}, observerOptions);
// Observe feature cards and testimonial cards
document.querySelectorAll('.feature-card, .testimonial-card').forEach(card => {
card.style.opacity = '0';
card.style.transform = 'translateY(30px)';
card.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
observer.observe(card);
});
// Add loading animation for hero content
document.addEventListener('DOMContentLoaded', () => {
const heroContent = document.querySelector('.hero-content');
heroContent.style.opacity = '0';
heroContent.style.transform = 'translateY(30px)';
setTimeout(() => {
heroContent.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
heroContent.style.opacity = '1';
heroContent.style.transform = 'translateY(0)';
}, 300);
});

View file

@ -1,585 +0,0 @@
/* Reset and Base Styles */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
color: #1a1a1a;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
overflow-x: hidden;
}
/* Header Styles */
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
z-index: 1000;
transition: all 0.3s ease;
}
.nav {
max-width: 1200px;
margin: 0 auto;
padding: 1rem 2rem;
display: flex;
align-items: center;
justify-content: space-between;
}
.nav-brand {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 1.5rem;
font-weight: 700;
color: #764ba2;
}
.nav-logo {
font-size: 1.8rem;
}
.nav-title {
background: linear-gradient(45deg, #667eea, #764ba2);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.nav-menu {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-menu a {
text-decoration: none;
color: #666;
font-weight: 500;
transition: color 0.3s ease;
}
.nav-menu a:hover {
color: #764ba2;
}
.nav-cta {
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
padding: 0.75rem 1.5rem;
border-radius: 25px;
border: none;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
}
.nav-cta:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
}
/* Main Content */
main {
margin-top: 80px;
}
/* Hero Section */
.hero {
min-height: 90vh;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
max-width: 1200px;
margin: 0 auto;
padding: 4rem 2rem;
}
.hero-content {
display: flex;
flex-direction: column;
gap: 2rem;
}
.hero-title {
font-size: 3.5rem;
font-weight: 800;
line-height: 1.1;
color: white;
}
.hero-highlight {
background: linear-gradient(45deg, #ffd89b, #19547b);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-subtitle {
font-size: 1.25rem;
color: rgba(255, 255, 255, 0.9);
max-width: 500px;
line-height: 1.6;
}
.hero-stats {
display: flex;
gap: 3rem;
margin: 2rem 0;
}
.stat {
text-align: center;
}
.stat-number {
font-size: 2.5rem;
font-weight: 800;
color: white;
display: block;
}
.stat-label {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.8);
text-transform: uppercase;
letter-spacing: 1px;
margin-top: 0.5rem;
}
.hero-actions {
display: flex;
gap: 1rem;
flex-wrap: wrap;
}
.cta-button {
padding: 1rem 2rem;
border-radius: 50px;
font-weight: 600;
font-size: 1.1rem;
cursor: pointer;
border: none;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
text-align: center;
}
.cta-button.primary {
background: linear-gradient(45deg, #ffd89b, #19547b);
color: white;
box-shadow: 0 10px 30px rgba(255, 216, 155, 0.3);
}
.cta-button.primary:hover {
transform: translateY(-3px);
box-shadow: 0 20px 40px rgba(255, 216, 155, 0.4);
}
.cta-button.secondary {
background: rgba(255, 255, 255, 0.1);
color: white;
border: 2px solid rgba(255, 255, 255, 0.3);
backdrop-filter: blur(10px);
}
.cta-button.secondary:hover {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.5);
}
.hero-trust {
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.trust-text {
color: rgba(255, 255, 255, 0.8);
font-size: 0.9rem;
margin-bottom: 1rem;
display: block;
}
.trust-logos {
display: flex;
gap: 2rem;
flex-wrap: wrap;
}
.trust-logo {
color: rgba(255, 255, 255, 0.9);
font-weight: 600;
font-size: 0.9rem;
}
.hero-visual {
display: flex;
align-items: center;
justify-content: center;
}
.code-preview {
background: rgba(0, 0, 0, 0.8);
border-radius: 15px;
padding: 2rem;
font-family: 'Fira Code', monospace;
font-size: 1.1rem;
line-height: 1.6;
color: #e6e6e6;
border: 1px solid rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
animation: codeGlow 2s ease-in-out infinite alternate;
}
.code-line {
margin-bottom: 0.5rem;
}
.code-line.indent {
margin-left: 2rem;
}
@keyframes codeGlow {
from {
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
to {
box-shadow: 0 20px 40px rgba(102, 126, 234, 0.2);
}
}
/* Features Section */
.features-section {
background: rgba(255, 255, 255, 0.95);
padding: 6rem 2rem;
backdrop-filter: blur(10px);
}
.section-header {
text-align: center;
margin-bottom: 4rem;
}
.section-header h2 {
font-size: 2.5rem;
font-weight: 700;
color: #1a1a1a;
margin-bottom: 1rem;
}
.section-header p {
font-size: 1.2rem;
color: #666;
max-width: 600px;
margin: 0 auto;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
}
.feature-card {
background: white;
padding: 2rem;
border-radius: 20px;
border: 1px solid rgba(0, 0, 0, 0.05);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.feature-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(45deg, #667eea, #764ba2);
transform: scaleX(0);
transition: transform 0.3s ease;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.feature-card:hover::before {
transform: scaleX(1);
}
.feature-icon {
font-size: 3rem;
margin-bottom: 1.5rem;
display: block;
}
.feature-card h3 {
font-size: 1.5rem;
font-weight: 700;
color: #1a1a1a;
margin-bottom: 1rem;
}
.feature-card p {
color: #666;
margin-bottom: 1.5rem;
line-height: 1.6;
}
.feature-benefits {
list-style: none;
padding: 0;
}
.feature-benefits li {
color: #555;
margin-bottom: 0.5rem;
padding-left: 1.5rem;
position: relative;
}
.feature-benefits li::before {
content: '✓';
position: absolute;
left: 0;
color: #667eea;
font-weight: bold;
}
/* Testimonials Section */
.testimonials {
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
padding: 6rem 2rem;
}
.testimonials-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
}
.testimonial-card {
background: white;
padding: 2rem;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.05);
}
.testimonial-content {
font-size: 1.1rem;
color: #555;
line-height: 1.6;
margin-bottom: 1.5rem;
font-style: italic;
}
.testimonial-author {
display: flex;
align-items: center;
gap: 1rem;
}
.author-avatar {
font-size: 2rem;
width: 50px;
height: 50px;
border-radius: 50%;
background: linear-gradient(45deg, #667eea, #764ba2);
display: flex;
align-items: center;
justify-content: center;
}
.author-info {
flex: 1;
}
.author-name {
font-weight: 600;
color: #1a1a1a;
}
.author-role {
font-size: 0.9rem;
color: #666;
}
/* Footer */
.footer {
background: #1a1a1a;
color: white;
padding: 4rem 2rem 2rem;
}
.footer-content {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem;
margin-bottom: 2rem;
}
.footer-section h4 {
color: white;
margin-bottom: 1rem;
font-size: 1.1rem;
}
.footer-section p {
color: #ccc;
line-height: 1.6;
margin-bottom: 1rem;
}
.footer-section ul {
list-style: none;
}
.footer-section ul li {
margin-bottom: 0.5rem;
}
.footer-section ul li a {
color: #ccc;
text-decoration: none;
transition: color 0.3s ease;
}
.footer-section ul li a:hover {
color: #667eea;
}
.footer-bottom {
max-width: 1200px;
margin: 0 auto;
padding-top: 2rem;
border-top: 1px solid #333;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1rem;
}
.footer-bottom p {
color: #ccc;
font-size: 0.9rem;
}
.footer-links {
display: flex;
gap: 2rem;
}
.footer-links a {
color: #ccc;
text-decoration: none;
font-size: 0.9rem;
transition: color 0.3s ease;
}
.footer-links a:hover {
color: #667eea;
}
/* Responsive Design */
@media (max-width: 1024px) {
.hero {
grid-template-columns: 1fr;
gap: 2rem;
text-align: center;
}
.hero-stats {
justify-content: center;
}
.footer-content {
grid-template-columns: 1fr 1fr;
gap: 2rem;
}
}
@media (max-width: 768px) {
.nav {
padding: 1rem;
}
.nav-menu {
display: none;
}
.hero {
padding: 2rem 1rem;
}
.hero-title {
font-size: 2.5rem;
}
.hero-stats {
flex-direction: column;
gap: 1rem;
}
.features-grid {
grid-template-columns: 1fr;
}
.testimonials-grid {
grid-template-columns: 1fr;
}
.footer-content {
grid-template-columns: 1fr;
text-align: center;
}
.footer-bottom {
flex-direction: column;
text-align: center;
}
.footer-links {
justify-content: center;
}
}
@media (max-width: 480px) {
.hero-actions {
flex-direction: column;
}
.cta-button {
width: 100%;
}
.trust-logos {
justify-content: center;
}
}