diff --git a/.gitignore b/.gitignore index 2b02b01..db7bec8 100644 --- a/.gitignore +++ b/.gitignore @@ -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 \ No newline at end of file diff --git a/bun.lock b/bun.lock deleted file mode 100644 index 84e01fe..0000000 --- a/bun.lock +++ /dev/null @@ -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=="], - } -} diff --git a/index.html b/index.html deleted file mode 100644 index fc308e4..0000000 --- a/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - OpenCode Agents - - -
- - - \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index 2c42691..0000000 --- a/package.json +++ /dev/null @@ -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" - } -} \ No newline at end of file diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 98e597f..0000000 --- a/src/main.js +++ /dev/null @@ -1,319 +0,0 @@ -import './style.css' - -document.querySelector('#app').innerHTML = ` -
- -
- -
-
-
-

- Supercharge Your Development
- with AI Agents -

-

- Transform your coding workflow with intelligent AI agents that understand your codebase, - write tests, generate documentation, and accelerate development by 3x. -

-
-
-
10K+
-
Developers
-
-
-
500K+
-
Lines of Code
-
-
-
99.9%
-
Uptime
-
-
-
- - -
-
- Trusted by teams at -
- - - -
-
-
-
-
-
function analyzeCode(codebase) {
-
const patterns = AI.analyze(codebase);
-
const suggestions = AI.optimize(patterns);
-
return suggestions;
-
}
-
-
-
- -
-
-

Powerful Features for Modern Development

-

Everything you need to build better software, faster

-
- -
-
-
๐Ÿ”
-

Smart Code Analysis

-

Advanced AI analyzes your entire codebase to identify patterns, potential bugs, and optimization opportunities in real-time.

-
    -
  • Pattern recognition across languages
  • -
  • Security vulnerability detection
  • -
  • Performance bottleneck identification
  • -
-
- -
-
๐Ÿงช
-

Automated Testing

-

Generate comprehensive test suites automatically with AI-powered test case creation and TDD workflow support.

-
    -
  • Unit, integration, and E2E tests
  • -
  • Edge case coverage
  • -
  • Test maintenance automation
  • -
-
- -
-
๐Ÿ“
-

Intelligent Documentation

-

Create, maintain, and update documentation automatically as your code evolves with contextual understanding.

-
    -
  • API documentation generation
  • -
  • Code comment suggestions
  • -
  • README and changelog updates
  • -
-
- -
-
๐Ÿ”„
-

Code Refactoring

-

AI-powered refactoring suggestions to improve code quality, maintainability, and follow best practices.

-
    -
  • Automated code improvements
  • -
  • Design pattern suggestions
  • -
  • Legacy code modernization
  • -
-
- -
-
๐Ÿค
-

Team Collaboration

-

Seamlessly integrate with your existing workflow and collaborate with team members through shared AI insights.

-
    -
  • Git integration
  • -
  • Team code reviews
  • -
  • Knowledge sharing
  • -
-
- -
-
โšก
-

Performance Optimization

-

Identify and fix performance issues automatically with AI-driven optimization recommendations.

-
    -
  • Memory optimization
  • -
  • Query optimization
  • -
  • Load time improvements
  • -
-
-
-
- -
-
-

Loved by Developers Worldwide

-

See what our community is saying

-
- -
-
-
- "OpenCode Agents reduced our development time by 60% and improved code quality dramatically." -
-
-
๐Ÿ‘จโ€๐Ÿ’ป
-
-
Sarah Chen
-
Senior Developer, TechCorp
-
-
-
- -
-
- "The AI suggestions are incredibly accurate. It's like having an expert pair programmer available 24/7." -
-
-
๐Ÿ‘ฉโ€๐Ÿ’ผ
-
-
Mike Rodriguez
-
Lead Engineer, StartupXYZ
-
-
-
- -
-
- "Documentation that stays up-to-date automatically? Game changer for our open source projects." -
-
-
๐Ÿง‘โ€๐Ÿ”ฌ
-
-
Dr. Emily Watson
-
Research Scientist, InnovateLab
-
-
-
-
-
-
- - -` - -// 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); -}); \ No newline at end of file diff --git a/src/style.css b/src/style.css deleted file mode 100644 index 5cbb9cd..0000000 --- a/src/style.css +++ /dev/null @@ -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; - } -} \ No newline at end of file