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.
-
-
-
-
-
500K+
-
Lines of Code
-
-
-
-
- Start Free Trial
- Watch Demo
-
-
-
Trusted by teams at
-
- ๐ข TechCorp
- ๐ StartupXYZ
- ๐ก InnovateLab
-
-
-
-
-
-
function analyzeCode(codebase) {
-
const patterns = AI.analyze(codebase);
-
const suggestions = AI.optimize(patterns);
-
return suggestions;
-
}
-
-
-
-
-
-
-
-
-
-
๐
-
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
-
-
-
-
-
-
-
-
-
-
-
- "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