diff --git a/.gitignore b/.gitignore index ea16ef2eaeae4c264ee23475196e40cce7a96e75..1c707ffbe81dfea03dc1139956a270f85e38a31e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules +**/node_modules /.pnp .pnp.* .yarn/* @@ -14,8 +14,9 @@ /coverage # next.js -/.next/ -/out/ +**/.next/ +**/out/ +**/dist # production /build @@ -39,4 +40,4 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts -.claude +.claude \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef73a8d9ab986179a788c1edab2c683074d56f44..5fac950750bff6ac4bd13d78b04c171c76548462 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,21 +9,26 @@ cache: untracked: true key: '$CI_PROJECT_ID' paths: - - node_modules/ - - _site/vendor/ - - .bundled/ - - .npm/ + - .pnpm-store/ + - apps/web/node_modules/ + - apps/web/.next/ + - packages/hive-lib/node_modules/ + - packages/hive-lib/dist/ build: stage: build + before_script: + - corepack enable + - corepack prepare pnpm@latest --activate + - pnpm config set store-dir .pnpm-store script: - ls -l - - npm ci --cache .npm --prefer-offline - - npm run build + - pnpm install --frozen-lockfile + - pnpm build - echo "BUILD SUCCESSFULLY" artifacts: paths: - - out/ + - apps/web/out/ expire_in: 20 mins # environment: # name: development @@ -42,7 +47,7 @@ deploy_staging: - export DISTRIBUTION_ID=$DISTRIBUTION_ID - pip install awscli --upgrade --user - export PATH=~/.local/bin:$PATH - - aws s3 sync --acl public-read --delete out $S3_BUCKET_NAME_STAGING + - aws s3 sync --acl public-read --delete apps/web/out $S3_BUCKET_NAME_STAGING #- aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths '/*' - echo "DEPLOYED SUCCESSFULLY TO STAGING" environment: @@ -62,7 +67,7 @@ deploy_master: - export DISTRIBUTION_ID=$DISTRIBUTION_ID - pip install awscli --upgrade --user - export PATH=~/.local/bin:$PATH - - aws s3 sync --acl public-read --cache-control "max-age=2592000, public" --delete out $S3_BUCKET_NAME_PRODUCTION + - aws s3 sync --acl public-read --cache-control "max-age=2592000, public" --delete apps/web/out $S3_BUCKET_NAME_PRODUCTION - aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths '/*' - echo "DEPLOYED SUCCESSFULLY TO PRODUCTION" environment: diff --git a/components.json b/apps/web/components.json similarity index 100% rename from components.json rename to apps/web/components.json diff --git a/eslint.config.mjs b/apps/web/eslint.config.mjs similarity index 100% rename from eslint.config.mjs rename to apps/web/eslint.config.mjs diff --git a/messages/de.json b/apps/web/messages/de.json similarity index 90% rename from messages/de.json rename to apps/web/messages/de.json index 6fb75a20532ffe27e263da53a1e0974354261ef0..8386cfc6a31c035bc5788d43b2f300f03880321d 100644 --- a/messages/de.json +++ b/apps/web/messages/de.json @@ -15,7 +15,7 @@ "dafButton": "Learn more", "exchanges": { "title": "Listed Exchanges", - "subtitle": "Hive is available at the top exchanges for your convenience." + "subtitle": "Trade HIVE on 40+ exchanges worldwide. Maximum liquidity, maximum accessibility." }, "hbdTitle": "Hive Backed Dollar", "hbdText": "HBD is a USD-pegged algorithmic stablecoin backed by HIVE. We currently provide one of the highest interest rates in the crypto space for holding HBD in savings.", @@ -25,11 +25,11 @@ "fastText": "Transactions are processed and confirmed in 3 seconds. Hive is using OBI (one-block irreversibility) meaning that transactions become irreversible in less than 3 seconds. No need to wait for confirmations.", "fastButton": "Learn more", "feeTitle": "Fast with No Fees", - "feeText": "Built for people and communities, Hive technology has enjoyed 3 second transactions and zero gas fees for years. For the technically inclined, we're a Delegated Proof of Stake (DPoS) chain, allowing those who invest the most time and resources into Hive to realize the most value.", - "feeText2": "Fresh accounts by default have some free RC to help them start.", + "feeText": "Experience lightning-fast 3-second transactions with zero gas fees. Our Delegated Proof of Stake technology empowers users and communities, not intermediaries.", + "feeText2": "", "decTitle": "Decentralized", "decText": "Hive is one of the most decentralized blockchains. There is no single entity or organization that controlls the network. Everything is run by the community members.", - "decText2": "The initiative behind the creation of Hive was decentralization. The community came together to create something that can not be overtaken by the centralized entities.", + "decText2": "", "usernameTitle": "Readable Wallet Addresses", "usernameText": "Wallet addresses in Hive are easy to remember. They look and act just like usernames in traditional applications. In other words, a username is a wallet address and a social media handle at the same time." }, diff --git a/messages/en.json b/apps/web/messages/en.json similarity index 90% rename from messages/en.json rename to apps/web/messages/en.json index a4521db188472ac0989d92a25250efea8de822ce..d0c896ffb92c76813b4e1420dfeb3fc54d94e41a 100644 --- a/messages/en.json +++ b/apps/web/messages/en.json @@ -13,7 +13,7 @@ "dafButton": "Learn more", "exchanges": { "title": "Listed Exchanges", - "subtitle": "Hive is available at the top exchanges for your convenience." + "subtitle": "Trade HIVE on 40+ exchanges worldwide. Maximum liquidity, maximum accessibility." }, "hbdTitle": "Hive Backed Dollar", "hbdText": "HBD is a USD-pegged algorithmic stablecoin backed by HIVE. We currently provide one of the highest interest rates in the crypto space for holding HBD in savings.", @@ -23,11 +23,11 @@ "fastText": "Transactions are processed and confirmed in 3 seconds. Hive is using OBI (one-block irreversibility) meaning that transactions become irreversible in less than 3 seconds. No need to wait for confirmations.", "fastButton": "Learn more", "feeTitle": "Fast with No Fees", - "feeText": "Built for people and communities, Hive technology has enjoyed 3 second transactions and zero gas fees for years. For the technically inclined, we're a Delegated Proof of Stake (DPoS) chain, allowing those who invest the most time and resources into Hive to realize the most value.", - "feeText2": "Fresh accounts by default have some free RC to help them start.", + "feeText": "Experience lightning-fast 3-second transactions with zero gas fees. Our Delegated Proof of Stake technology empowers users and communities, not intermediaries.", + "feeText2": "", "decTitle": "Decentralized", "decText": "Hive is one of the most decentralized blockchains. There is no single entity or organization that controlls the network. Everything is run by the community members.", - "decText2": "The initiative behind the creation of Hive was decentralization. The community came together to create something that can not be overtaken by the centralized entities.", + "decText2": "", "usernameTitle": "Readable Wallet Addresses", "usernameText": "Wallet addresses in Hive are easy to remember. They look and act just like usernames in traditional applications. In other words, a username is a wallet address and a social media handle at the same time." }, diff --git a/next.config.ts b/apps/web/next.config.ts similarity index 69% rename from next.config.ts rename to apps/web/next.config.ts index 3488965ef6e082b100ee9f984379f9264ad5154a..c0ab059671199c0ce44c772397d003e5bdd924ed 100644 --- a/next.config.ts +++ b/apps/web/next.config.ts @@ -1,7 +1,7 @@ -import type { NextConfig } from "next"; -import createNextIntlPlugin from 'next-intl/plugin'; +import type {NextConfig} from 'next' +import createNextIntlPlugin from 'next-intl/plugin' -const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts'); +const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts') const nextConfig: NextConfig = { // Static export configuration @@ -14,6 +14,6 @@ const nextConfig: NextConfig = { // Add trailing slashes for better static hosting trailingSlash: true, -}; +} -export default withNextIntl(nextConfig); +export default withNextIntl(nextConfig) diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 0000000000000000000000000000000000000000..77bca5434a28204414a2104d5733ea46ab08692f --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,49 @@ +{ + "name": "@hiveio/web", + "version": "2.0.0", + "author": "therealwolf42", + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build && node scripts/post-build.js", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^7.1.0", + "@fortawesome/free-brands-svg-icons": "^7.1.0", + "@fortawesome/free-solid-svg-icons": "^7.1.0", + "@fortawesome/react-fontawesome": "^3.1.0", + "@radix-ui/react-dialog": "^1.1.15", + "@hiveio/hive-lib": "workspace:*", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-slot": "^1.2.4", + "@tailwindcss/postcss": "^4.1.17", + "@tippyjs/react": "^4.2.6", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "dayjs": "^1.11.19", + "lucide-react": "^0.553.0", + "next": "16.0.1", + "next-intl": "^4.5.1", + "next-pwa": "^5.6.0", + "postcss": "^8.5.6", + "react": "19.2.0", + "react-dom": "19.2.0", + "sass": "^1.94.0", + "tailwind-merge": "^3.4.0", + "tailwindcss": "^4.1.17", + "tippy.js": "^6.3.7", + "zustand": "^5.0.8" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "16.0.1", + "tw-animate-css": "^1.4.0", + "typescript": "^5" + } +} diff --git a/postcss.config.mjs b/apps/web/postcss.config.mjs similarity index 100% rename from postcss.config.mjs rename to apps/web/postcss.config.mjs diff --git a/public/README.md b/apps/web/public/README.md similarity index 100% rename from public/README.md rename to apps/web/public/README.md diff --git a/public/favicons/android-chrome-192x192.png b/apps/web/public/favicons/android-chrome-192x192.png similarity index 100% rename from public/favicons/android-chrome-192x192.png rename to apps/web/public/favicons/android-chrome-192x192.png diff --git a/public/favicons/android-chrome-512x512.png b/apps/web/public/favicons/android-chrome-512x512.png similarity index 100% rename from public/favicons/android-chrome-512x512.png rename to apps/web/public/favicons/android-chrome-512x512.png diff --git a/public/favicons/apple-touch-icon.png b/apps/web/public/favicons/apple-touch-icon.png similarity index 100% rename from public/favicons/apple-touch-icon.png rename to apps/web/public/favicons/apple-touch-icon.png diff --git a/public/favicons/favicon-16x16.png b/apps/web/public/favicons/favicon-16x16.png similarity index 100% rename from public/favicons/favicon-16x16.png rename to apps/web/public/favicons/favicon-16x16.png diff --git a/public/favicons/favicon-32x32.png b/apps/web/public/favicons/favicon-32x32.png similarity index 100% rename from public/favicons/favicon-32x32.png rename to apps/web/public/favicons/favicon-32x32.png diff --git a/public/favicons/favicon.ico b/apps/web/public/favicons/favicon.ico similarity index 100% rename from public/favicons/favicon.ico rename to apps/web/public/favicons/favicon.ico diff --git a/public/favicons/site.webmanifest b/apps/web/public/favicons/site.webmanifest similarity index 100% rename from public/favicons/site.webmanifest rename to apps/web/public/favicons/site.webmanifest diff --git a/public/file.svg b/apps/web/public/file.svg similarity index 100% rename from public/file.svg rename to apps/web/public/file.svg diff --git a/public/globe.svg b/apps/web/public/globe.svg similarity index 100% rename from public/globe.svg rename to apps/web/public/globe.svg diff --git a/public/hive-branding.zip b/apps/web/public/hive-branding.zip similarity index 100% rename from public/hive-branding.zip rename to apps/web/public/hive-branding.zip diff --git a/public/icon.png b/apps/web/public/icon.png similarity index 100% rename from public/icon.png rename to apps/web/public/icon.png diff --git a/public/images/apps/AstralWars.png b/apps/web/public/images/apps/AstralWars.png similarity index 100% rename from public/images/apps/AstralWars.png rename to apps/web/public/images/apps/AstralWars.png diff --git a/public/images/apps/CUB.svg b/apps/web/public/images/apps/CUB.svg similarity index 100% rename from public/images/apps/CUB.svg rename to apps/web/public/images/apps/CUB.svg diff --git a/public/images/apps/LeoDex_Logo_no_Name.png b/apps/web/public/images/apps/LeoDex_Logo_no_Name.png similarity index 100% rename from public/images/apps/LeoDex_Logo_no_Name.png rename to apps/web/public/images/apps/LeoDex_Logo_no_Name.png diff --git a/public/images/apps/Pinmapple_Logo.svg b/apps/web/public/images/apps/Pinmapple_Logo.svg similarity index 100% rename from public/images/apps/Pinmapple_Logo.svg rename to apps/web/public/images/apps/Pinmapple_Logo.svg diff --git a/public/images/apps/SkateHype.png b/apps/web/public/images/apps/SkateHype.png similarity index 100% rename from public/images/apps/SkateHype.png rename to apps/web/public/images/apps/SkateHype.png diff --git a/public/images/apps/WOO.png b/apps/web/public/images/apps/WOO.png similarity index 100% rename from public/images/apps/WOO.png rename to apps/web/public/images/apps/WOO.png diff --git a/public/images/apps/actifit.png b/apps/web/public/images/apps/actifit.png similarity index 100% rename from public/images/apps/actifit.png rename to apps/web/public/images/apps/actifit.png diff --git a/public/images/apps/apeminingclub.png b/apps/web/public/images/apps/apeminingclub.png similarity index 100% rename from public/images/apps/apeminingclub.png rename to apps/web/public/images/apps/apeminingclub.png diff --git a/public/images/apps/arcadecolony.svg b/apps/web/public/images/apps/arcadecolony.svg similarity index 100% rename from public/images/apps/arcadecolony.svg rename to apps/web/public/images/apps/arcadecolony.svg diff --git a/public/images/apps/beeswap.png b/apps/web/public/images/apps/beeswap.png similarity index 100% rename from public/images/apps/beeswap.png rename to apps/web/public/images/apps/beeswap.png diff --git a/public/images/apps/blackhive.png b/apps/web/public/images/apps/blackhive.png similarity index 100% rename from public/images/apps/blackhive.png rename to apps/web/public/images/apps/blackhive.png diff --git a/public/images/apps/blocktunes.png b/apps/web/public/images/apps/blocktunes.png similarity index 100% rename from public/images/apps/blocktunes.png rename to apps/web/public/images/apps/blocktunes.png diff --git a/public/images/apps/bropoker.png b/apps/web/public/images/apps/bropoker.png similarity index 100% rename from public/images/apps/bropoker.png rename to apps/web/public/images/apps/bropoker.png diff --git a/public/images/apps/brosino.png b/apps/web/public/images/apps/brosino.png similarity index 100% rename from public/images/apps/brosino.png rename to apps/web/public/images/apps/brosino.png diff --git a/public/images/apps/cryptobrewmaster.png b/apps/web/public/images/apps/cryptobrewmaster.png similarity index 100% rename from public/images/apps/cryptobrewmaster.png rename to apps/web/public/images/apps/cryptobrewmaster.png diff --git a/public/images/apps/cryptoshots.png b/apps/web/public/images/apps/cryptoshots.png similarity index 100% rename from public/images/apps/cryptoshots.png rename to apps/web/public/images/apps/cryptoshots.png diff --git a/public/images/apps/dbuzz.png b/apps/web/public/images/apps/dbuzz.png similarity index 100% rename from public/images/apps/dbuzz.png rename to apps/web/public/images/apps/dbuzz.png diff --git a/public/images/apps/dcity.png b/apps/web/public/images/apps/dcity.png similarity index 100% rename from public/images/apps/dcity.png rename to apps/web/public/images/apps/dcity.png diff --git a/public/images/apps/dcrops.svg b/apps/web/public/images/apps/dcrops.svg similarity index 100% rename from public/images/apps/dcrops.svg rename to apps/web/public/images/apps/dcrops.svg diff --git a/public/images/apps/dlease.png b/apps/web/public/images/apps/dlease.png similarity index 100% rename from public/images/apps/dlease.png rename to apps/web/public/images/apps/dlease.png diff --git a/public/images/apps/dlux.svg b/apps/web/public/images/apps/dlux.svg similarity index 100% rename from public/images/apps/dlux.svg rename to apps/web/public/images/apps/dlux.svg diff --git a/public/images/apps/ecency.svg b/apps/web/public/images/apps/ecency.svg similarity index 100% rename from public/images/apps/ecency.svg rename to apps/web/public/images/apps/ecency.svg diff --git a/public/images/apps/engage.png b/apps/web/public/images/apps/engage.png similarity index 100% rename from public/images/apps/engage.png rename to apps/web/public/images/apps/engage.png diff --git a/public/images/apps/engrave.png b/apps/web/public/images/apps/engrave.png similarity index 100% rename from public/images/apps/engrave.png rename to apps/web/public/images/apps/engrave.png diff --git a/public/images/apps/exode.png b/apps/web/public/images/apps/exode.png similarity index 100% rename from public/images/apps/exode.png rename to apps/web/public/images/apps/exode.png diff --git a/public/images/apps/exxp.png b/apps/web/public/images/apps/exxp.png similarity index 100% rename from public/images/apps/exxp.png rename to apps/web/public/images/apps/exxp.png diff --git a/public/images/apps/fullalt.png b/apps/web/public/images/apps/fullalt.png similarity index 100% rename from public/images/apps/fullalt.png rename to apps/web/public/images/apps/fullalt.png diff --git a/public/images/apps/genesisleaguesports.png b/apps/web/public/images/apps/genesisleaguesports.png similarity index 100% rename from public/images/apps/genesisleaguesports.png rename to apps/web/public/images/apps/genesisleaguesports.png diff --git a/public/images/apps/hashkings.png b/apps/web/public/images/apps/hashkings.png similarity index 100% rename from public/images/apps/hashkings.png rename to apps/web/public/images/apps/hashkings.png diff --git a/public/images/apps/hive-inbox.png b/apps/web/public/images/apps/hive-inbox.png similarity index 100% rename from public/images/apps/hive-inbox.png rename to apps/web/public/images/apps/hive-inbox.png diff --git a/public/images/apps/hive-tube.svg b/apps/web/public/images/apps/hive-tube.svg similarity index 100% rename from public/images/apps/hive-tube.svg rename to apps/web/public/images/apps/hive-tube.svg diff --git a/public/images/apps/hiveanalytics.png b/apps/web/public/images/apps/hiveanalytics.png similarity index 100% rename from public/images/apps/hiveanalytics.png rename to apps/web/public/images/apps/hiveanalytics.png diff --git a/public/images/apps/hivebuzz.png b/apps/web/public/images/apps/hivebuzz.png similarity index 100% rename from public/images/apps/hivebuzz.png rename to apps/web/public/images/apps/hivebuzz.png diff --git a/public/images/apps/hivedex.png b/apps/web/public/images/apps/hivedex.png similarity index 100% rename from public/images/apps/hivedex.png rename to apps/web/public/images/apps/hivedex.png diff --git a/public/images/apps/hivehub.svg b/apps/web/public/images/apps/hivehub.svg similarity index 100% rename from public/images/apps/hivehub.svg rename to apps/web/public/images/apps/hivehub.svg diff --git a/public/images/apps/hiveland.png b/apps/web/public/images/apps/hiveland.png similarity index 100% rename from public/images/apps/hiveland.png rename to apps/web/public/images/apps/hiveland.png diff --git a/public/images/apps/hivelist.png b/apps/web/public/images/apps/hivelist.png similarity index 100% rename from public/images/apps/hivelist.png rename to apps/web/public/images/apps/hivelist.png diff --git a/public/images/apps/hivepunks.png b/apps/web/public/images/apps/hivepunks.png similarity index 100% rename from public/images/apps/hivepunks.png rename to apps/web/public/images/apps/hivepunks.png diff --git a/public/images/apps/hivesigner.svg b/apps/web/public/images/apps/hivesigner.svg similarity index 100% rename from public/images/apps/hivesigner.svg rename to apps/web/public/images/apps/hivesigner.svg diff --git a/public/images/apps/hivewallet.png b/apps/web/public/images/apps/hivewallet.png similarity index 100% rename from public/images/apps/hivewallet.png rename to apps/web/public/images/apps/hivewallet.png diff --git a/public/images/apps/holozing.png b/apps/web/public/images/apps/holozing.png similarity index 100% rename from public/images/apps/holozing.png rename to apps/web/public/images/apps/holozing.png diff --git a/public/images/apps/immortalcreed.png b/apps/web/public/images/apps/immortalcreed.png similarity index 100% rename from public/images/apps/immortalcreed.png rename to apps/web/public/images/apps/immortalcreed.png diff --git a/public/images/apps/inleo.avif b/apps/web/public/images/apps/inleo.avif similarity index 100% rename from public/images/apps/inleo.avif rename to apps/web/public/images/apps/inleo.avif diff --git a/public/images/apps/keychain.svg b/apps/web/public/images/apps/keychain.svg similarity index 100% rename from public/images/apps/keychain.svg rename to apps/web/public/images/apps/keychain.svg diff --git a/public/images/apps/king-of-duels.svg b/apps/web/public/images/apps/king-of-duels.svg similarity index 100% rename from public/images/apps/king-of-duels.svg rename to apps/web/public/images/apps/king-of-duels.svg diff --git a/public/images/apps/ledger.png b/apps/web/public/images/apps/ledger.png similarity index 100% rename from public/images/apps/ledger.png rename to apps/web/public/images/apps/ledger.png diff --git a/public/images/apps/leofinance.png b/apps/web/public/images/apps/leofinance.png similarity index 100% rename from public/images/apps/leofinance.png rename to apps/web/public/images/apps/leofinance.png diff --git a/public/images/apps/liketu.png b/apps/web/public/images/apps/liketu.png similarity index 100% rename from public/images/apps/liketu.png rename to apps/web/public/images/apps/liketu.png diff --git a/public/images/apps/lucksacks.png b/apps/web/public/images/apps/lucksacks.png similarity index 100% rename from public/images/apps/lucksacks.png rename to apps/web/public/images/apps/lucksacks.png diff --git a/public/images/apps/muterra.png b/apps/web/public/images/apps/muterra.png similarity index 100% rename from public/images/apps/muterra.png rename to apps/web/public/images/apps/muterra.png diff --git a/public/images/apps/nftmart.png b/apps/web/public/images/apps/nftmart.png similarity index 100% rename from public/images/apps/nftmart.png rename to apps/web/public/images/apps/nftmart.png diff --git a/public/images/apps/nftshowroom.png b/apps/web/public/images/apps/nftshowroom.png similarity index 100% rename from public/images/apps/nftshowroom.png rename to apps/web/public/images/apps/nftshowroom.png diff --git a/public/images/apps/nfttunz.png b/apps/web/public/images/apps/nfttunz.png similarity index 100% rename from public/images/apps/nfttunz.png rename to apps/web/public/images/apps/nfttunz.png diff --git a/public/images/apps/peakd.svg b/apps/web/public/images/apps/peakd.svg similarity index 100% rename from public/images/apps/peakd.svg rename to apps/web/public/images/apps/peakd.svg diff --git a/public/images/apps/podping.png b/apps/web/public/images/apps/podping.png similarity index 100% rename from public/images/apps/podping.png rename to apps/web/public/images/apps/podping.png diff --git a/public/images/apps/psyberx.png b/apps/web/public/images/apps/psyberx.png similarity index 100% rename from public/images/apps/psyberx.png rename to apps/web/public/images/apps/psyberx.png diff --git a/public/images/apps/rabona.png b/apps/web/public/images/apps/rabona.png similarity index 100% rename from public/images/apps/rabona.png rename to apps/web/public/images/apps/rabona.png diff --git a/public/images/apps/redhive.png b/apps/web/public/images/apps/redhive.png similarity index 100% rename from public/images/apps/redhive.png rename to apps/web/public/images/apps/redhive.png diff --git a/public/images/apps/reverio.svg b/apps/web/public/images/apps/reverio.svg similarity index 100% rename from public/images/apps/reverio.svg rename to apps/web/public/images/apps/reverio.svg diff --git a/public/images/apps/riseofthepixels.png b/apps/web/public/images/apps/riseofthepixels.png similarity index 100% rename from public/images/apps/riseofthepixels.png rename to apps/web/public/images/apps/riseofthepixels.png diff --git a/public/images/apps/risingstar.png b/apps/web/public/images/apps/risingstar.png similarity index 100% rename from public/images/apps/risingstar.png rename to apps/web/public/images/apps/risingstar.png diff --git a/public/images/apps/snapie.png b/apps/web/public/images/apps/snapie.png similarity index 100% rename from public/images/apps/snapie.png rename to apps/web/public/images/apps/snapie.png diff --git a/public/images/apps/splinterlands.png b/apps/web/public/images/apps/splinterlands.png similarity index 100% rename from public/images/apps/splinterlands.png rename to apps/web/public/images/apps/splinterlands.png diff --git a/public/images/apps/splinterroyale.png b/apps/web/public/images/apps/splinterroyale.png similarity index 100% rename from public/images/apps/splinterroyale.png rename to apps/web/public/images/apps/splinterroyale.png diff --git a/public/images/apps/stemgeeks.png b/apps/web/public/images/apps/stemgeeks.png similarity index 100% rename from public/images/apps/stemgeeks.png rename to apps/web/public/images/apps/stemgeeks.png diff --git a/public/images/apps/stemsocial.png b/apps/web/public/images/apps/stemsocial.png similarity index 100% rename from public/images/apps/stemsocial.png rename to apps/web/public/images/apps/stemsocial.png diff --git a/public/images/apps/terracore.png b/apps/web/public/images/apps/terracore.png similarity index 100% rename from public/images/apps/terracore.png rename to apps/web/public/images/apps/terracore.png diff --git a/public/images/apps/threespeak.svg b/apps/web/public/images/apps/threespeak.svg similarity index 100% rename from public/images/apps/threespeak.svg rename to apps/web/public/images/apps/threespeak.svg diff --git a/public/images/apps/travelfeed.svg b/apps/web/public/images/apps/travelfeed.svg similarity index 100% rename from public/images/apps/travelfeed.svg rename to apps/web/public/images/apps/travelfeed.svg diff --git a/public/images/apps/tribaldex.png b/apps/web/public/images/apps/tribaldex.png similarity index 100% rename from public/images/apps/tribaldex.png rename to apps/web/public/images/apps/tribaldex.png diff --git a/public/images/apps/truvvl.svg b/apps/web/public/images/apps/truvvl.svg similarity index 100% rename from public/images/apps/truvvl.svg rename to apps/web/public/images/apps/truvvl.svg diff --git a/public/images/apps/vessel.png b/apps/web/public/images/apps/vessel.png similarity index 100% rename from public/images/apps/vessel.png rename to apps/web/public/images/apps/vessel.png diff --git a/public/images/apps/vimm.png b/apps/web/public/images/apps/vimm.png similarity index 100% rename from public/images/apps/vimm.png rename to apps/web/public/images/apps/vimm.png diff --git a/public/images/apps/vsc.png b/apps/web/public/images/apps/vsc.png similarity index 100% rename from public/images/apps/vsc.png rename to apps/web/public/images/apps/vsc.png diff --git a/public/images/apps/waivio.png b/apps/web/public/images/apps/waivio.png similarity index 100% rename from public/images/apps/waivio.png rename to apps/web/public/images/apps/waivio.png diff --git a/public/images/apps/worldmappin.svg b/apps/web/public/images/apps/worldmappin.svg similarity index 100% rename from public/images/apps/worldmappin.svg rename to apps/web/public/images/apps/worldmappin.svg diff --git a/public/images/branding.svg b/apps/web/public/images/branding.svg similarity index 100% rename from public/images/branding.svg rename to apps/web/public/images/branding.svg diff --git a/public/images/contributors/bartekwrona.png b/apps/web/public/images/contributors/bartekwrona.png similarity index 100% rename from public/images/contributors/bartekwrona.png rename to apps/web/public/images/contributors/bartekwrona.png diff --git a/public/images/decentralized.png b/apps/web/public/images/decentralized.png similarity index 100% rename from public/images/decentralized.png rename to apps/web/public/images/decentralized.png diff --git a/public/images/distribution.svg b/apps/web/public/images/distribution.svg similarity index 100% rename from public/images/distribution.svg rename to apps/web/public/images/distribution.svg diff --git a/public/images/exchanges/7b.png b/apps/web/public/images/exchanges/7b.png similarity index 100% rename from public/images/exchanges/7b.png rename to apps/web/public/images/exchanges/7b.png diff --git a/public/images/exchanges/HTX.svg b/apps/web/public/images/exchanges/HTX.svg similarity index 100% rename from public/images/exchanges/HTX.svg rename to apps/web/public/images/exchanges/HTX.svg diff --git a/public/images/exchanges/LCX.png b/apps/web/public/images/exchanges/LCX.png similarity index 100% rename from public/images/exchanges/LCX.png rename to apps/web/public/images/exchanges/LCX.png diff --git a/public/images/exchanges/StealthEX.png b/apps/web/public/images/exchanges/StealthEX.png similarity index 100% rename from public/images/exchanges/StealthEX.png rename to apps/web/public/images/exchanges/StealthEX.png diff --git a/public/images/exchanges/beaxy.png b/apps/web/public/images/exchanges/beaxy.png similarity index 100% rename from public/images/exchanges/beaxy.png rename to apps/web/public/images/exchanges/beaxy.png diff --git a/public/images/exchanges/binance.svg b/apps/web/public/images/exchanges/binance.svg similarity index 100% rename from public/images/exchanges/binance.svg rename to apps/web/public/images/exchanges/binance.svg diff --git a/public/images/exchanges/bitay.png b/apps/web/public/images/exchanges/bitay.png similarity index 100% rename from public/images/exchanges/bitay.png rename to apps/web/public/images/exchanges/bitay.png diff --git a/public/images/exchanges/bitget.svg b/apps/web/public/images/exchanges/bitget.svg similarity index 100% rename from public/images/exchanges/bitget.svg rename to apps/web/public/images/exchanges/bitget.svg diff --git a/public/images/exchanges/bithumb.png b/apps/web/public/images/exchanges/bithumb.png similarity index 100% rename from public/images/exchanges/bithumb.png rename to apps/web/public/images/exchanges/bithumb.png diff --git a/public/images/exchanges/bitpanda.png b/apps/web/public/images/exchanges/bitpanda.png similarity index 100% rename from public/images/exchanges/bitpanda.png rename to apps/web/public/images/exchanges/bitpanda.png diff --git a/public/images/exchanges/bitrue.png b/apps/web/public/images/exchanges/bitrue.png similarity index 100% rename from public/images/exchanges/bitrue.png rename to apps/web/public/images/exchanges/bitrue.png diff --git a/public/images/exchanges/bitsonic.svg b/apps/web/public/images/exchanges/bitsonic.svg similarity index 100% rename from public/images/exchanges/bitsonic.svg rename to apps/web/public/images/exchanges/bitsonic.svg diff --git a/public/images/exchanges/bittrex.svg b/apps/web/public/images/exchanges/bittrex.svg similarity index 100% rename from public/images/exchanges/bittrex.svg rename to apps/web/public/images/exchanges/bittrex.svg diff --git a/public/images/exchanges/bkex.png b/apps/web/public/images/exchanges/bkex.png similarity index 100% rename from public/images/exchanges/bkex.png rename to apps/web/public/images/exchanges/bkex.png diff --git a/public/images/exchanges/blocktrades.svg b/apps/web/public/images/exchanges/blocktrades.svg similarity index 100% rename from public/images/exchanges/blocktrades.svg rename to apps/web/public/images/exchanges/blocktrades.svg diff --git a/public/images/exchanges/btcc.svg b/apps/web/public/images/exchanges/btcc.svg similarity index 100% rename from public/images/exchanges/btcc.svg rename to apps/web/public/images/exchanges/btcc.svg diff --git a/public/images/exchanges/bydfi.png b/apps/web/public/images/exchanges/bydfi.png similarity index 100% rename from public/images/exchanges/bydfi.png rename to apps/web/public/images/exchanges/bydfi.png diff --git a/public/images/exchanges/changelly.png b/apps/web/public/images/exchanges/changelly.png similarity index 100% rename from public/images/exchanges/changelly.png rename to apps/web/public/images/exchanges/changelly.png diff --git a/public/images/exchanges/changenow.png b/apps/web/public/images/exchanges/changenow.png similarity index 100% rename from public/images/exchanges/changenow.png rename to apps/web/public/images/exchanges/changenow.png diff --git a/public/images/exchanges/coindcx.svg b/apps/web/public/images/exchanges/coindcx.svg similarity index 100% rename from public/images/exchanges/coindcx.svg rename to apps/web/public/images/exchanges/coindcx.svg diff --git a/public/images/exchanges/coinex.png b/apps/web/public/images/exchanges/coinex.png similarity index 100% rename from public/images/exchanges/coinex.png rename to apps/web/public/images/exchanges/coinex.png diff --git a/public/images/exchanges/coinoswap.png b/apps/web/public/images/exchanges/coinoswap.png similarity index 100% rename from public/images/exchanges/coinoswap.png rename to apps/web/public/images/exchanges/coinoswap.png diff --git a/public/images/exchanges/cryptex24.svg b/apps/web/public/images/exchanges/cryptex24.svg similarity index 100% rename from public/images/exchanges/cryptex24.svg rename to apps/web/public/images/exchanges/cryptex24.svg diff --git a/public/images/exchanges/digifinex.svg b/apps/web/public/images/exchanges/digifinex.svg similarity index 100% rename from public/images/exchanges/digifinex.svg rename to apps/web/public/images/exchanges/digifinex.svg diff --git a/public/images/exchanges/easybit.svg b/apps/web/public/images/exchanges/easybit.svg similarity index 100% rename from public/images/exchanges/easybit.svg rename to apps/web/public/images/exchanges/easybit.svg diff --git a/public/images/exchanges/gateio.svg b/apps/web/public/images/exchanges/gateio.svg similarity index 100% rename from public/images/exchanges/gateio.svg rename to apps/web/public/images/exchanges/gateio.svg diff --git a/public/images/exchanges/hbtc.png b/apps/web/public/images/exchanges/hbtc.png similarity index 100% rename from public/images/exchanges/hbtc.png rename to apps/web/public/images/exchanges/hbtc.png diff --git a/public/images/exchanges/hitbtc.png b/apps/web/public/images/exchanges/hitbtc.png similarity index 100% rename from public/images/exchanges/hitbtc.png rename to apps/web/public/images/exchanges/hitbtc.png diff --git a/public/images/exchanges/hive-engine.png b/apps/web/public/images/exchanges/hive-engine.png similarity index 100% rename from public/images/exchanges/hive-engine.png rename to apps/web/public/images/exchanges/hive-engine.png diff --git a/public/images/exchanges/hotbit.png b/apps/web/public/images/exchanges/hotbit.png similarity index 100% rename from public/images/exchanges/hotbit.png rename to apps/web/public/images/exchanges/hotbit.png diff --git a/public/images/exchanges/hotcoin.png b/apps/web/public/images/exchanges/hotcoin.png similarity index 100% rename from public/images/exchanges/hotcoin.png rename to apps/web/public/images/exchanges/hotcoin.png diff --git a/public/images/exchanges/huobi.svg b/apps/web/public/images/exchanges/huobi.svg similarity index 100% rename from public/images/exchanges/huobi.svg rename to apps/web/public/images/exchanges/huobi.svg diff --git a/public/images/exchanges/indodax.png b/apps/web/public/images/exchanges/indodax.png similarity index 100% rename from public/images/exchanges/indodax.png rename to apps/web/public/images/exchanges/indodax.png diff --git a/public/images/exchanges/ionomy.png b/apps/web/public/images/exchanges/ionomy.png similarity index 100% rename from public/images/exchanges/ionomy.png rename to apps/web/public/images/exchanges/ionomy.png diff --git a/public/images/exchanges/jucoin.png b/apps/web/public/images/exchanges/jucoin.png similarity index 100% rename from public/images/exchanges/jucoin.png rename to apps/web/public/images/exchanges/jucoin.png diff --git a/public/images/exchanges/kcex.svg b/apps/web/public/images/exchanges/kcex.svg similarity index 100% rename from public/images/exchanges/kcex.svg rename to apps/web/public/images/exchanges/kcex.svg diff --git a/public/images/exchanges/leodex.webp b/apps/web/public/images/exchanges/leodex.webp similarity index 100% rename from public/images/exchanges/leodex.webp rename to apps/web/public/images/exchanges/leodex.webp diff --git a/public/images/exchanges/mandala.png b/apps/web/public/images/exchanges/mandala.png similarity index 100% rename from public/images/exchanges/mandala.png rename to apps/web/public/images/exchanges/mandala.png diff --git a/public/images/exchanges/mxc.png b/apps/web/public/images/exchanges/mxc.png similarity index 100% rename from public/images/exchanges/mxc.png rename to apps/web/public/images/exchanges/mxc.png diff --git a/public/images/exchanges/nami.png b/apps/web/public/images/exchanges/nami.png similarity index 100% rename from public/images/exchanges/nami.png rename to apps/web/public/images/exchanges/nami.png diff --git a/public/images/exchanges/nami.webp b/apps/web/public/images/exchanges/nami.webp similarity index 100% rename from public/images/exchanges/nami.webp rename to apps/web/public/images/exchanges/nami.webp diff --git a/public/images/exchanges/nominex.svg b/apps/web/public/images/exchanges/nominex.svg similarity index 100% rename from public/images/exchanges/nominex.svg rename to apps/web/public/images/exchanges/nominex.svg diff --git a/public/images/exchanges/pionex.png b/apps/web/public/images/exchanges/pionex.png similarity index 100% rename from public/images/exchanges/pionex.png rename to apps/web/public/images/exchanges/pionex.png diff --git a/public/images/exchanges/probit.png b/apps/web/public/images/exchanges/probit.png similarity index 100% rename from public/images/exchanges/probit.png rename to apps/web/public/images/exchanges/probit.png diff --git a/public/images/exchanges/probit_white.png b/apps/web/public/images/exchanges/probit_white.png similarity index 100% rename from public/images/exchanges/probit_white.png rename to apps/web/public/images/exchanges/probit_white.png diff --git a/public/images/exchanges/routelay_white.png b/apps/web/public/images/exchanges/routelay_white.png similarity index 100% rename from public/images/exchanges/routelay_white.png rename to apps/web/public/images/exchanges/routelay_white.png diff --git a/public/images/exchanges/sequoir.svg b/apps/web/public/images/exchanges/sequoir.svg similarity index 100% rename from public/images/exchanges/sequoir.svg rename to apps/web/public/images/exchanges/sequoir.svg diff --git a/public/images/exchanges/simpleswap.png b/apps/web/public/images/exchanges/simpleswap.png similarity index 100% rename from public/images/exchanges/simpleswap.png rename to apps/web/public/images/exchanges/simpleswap.png diff --git a/public/images/exchanges/simplex.svg b/apps/web/public/images/exchanges/simplex.svg similarity index 100% rename from public/images/exchanges/simplex.svg rename to apps/web/public/images/exchanges/simplex.svg diff --git a/public/images/exchanges/steem-engine.svg b/apps/web/public/images/exchanges/steem-engine.svg similarity index 100% rename from public/images/exchanges/steem-engine.svg rename to apps/web/public/images/exchanges/steem-engine.svg diff --git a/public/images/exchanges/swapspace.svg b/apps/web/public/images/exchanges/swapspace.svg similarity index 100% rename from public/images/exchanges/swapspace.svg rename to apps/web/public/images/exchanges/swapspace.svg diff --git a/public/images/exchanges/swapzone.svg b/apps/web/public/images/exchanges/swapzone.svg similarity index 100% rename from public/images/exchanges/swapzone.svg rename to apps/web/public/images/exchanges/swapzone.svg diff --git a/public/images/exchanges/tokocrypto.png b/apps/web/public/images/exchanges/tokocrypto.png similarity index 100% rename from public/images/exchanges/tokocrypto.png rename to apps/web/public/images/exchanges/tokocrypto.png diff --git a/public/images/exchanges/upbit.svg b/apps/web/public/images/exchanges/upbit.svg similarity index 100% rename from public/images/exchanges/upbit.svg rename to apps/web/public/images/exchanges/upbit.svg diff --git a/public/images/exchanges/wazirx.png b/apps/web/public/images/exchanges/wazirx.png similarity index 100% rename from public/images/exchanges/wazirx.png rename to apps/web/public/images/exchanges/wazirx.png diff --git a/public/images/exchanges/weex.svg b/apps/web/public/images/exchanges/weex.svg similarity index 100% rename from public/images/exchanges/weex.svg rename to apps/web/public/images/exchanges/weex.svg diff --git a/public/images/exchanges/xbts.png b/apps/web/public/images/exchanges/xbts.png similarity index 100% rename from public/images/exchanges/xbts.png rename to apps/web/public/images/exchanges/xbts.png diff --git a/public/images/exchanges/xt.png b/apps/web/public/images/exchanges/xt.png similarity index 100% rename from public/images/exchanges/xt.png rename to apps/web/public/images/exchanges/xt.png diff --git a/public/images/fast.png b/apps/web/public/images/fast.png similarity index 100% rename from public/images/fast.png rename to apps/web/public/images/fast.png diff --git a/public/images/fees.png b/apps/web/public/images/fees.png similarity index 100% rename from public/images/fees.png rename to apps/web/public/images/fees.png diff --git a/public/images/groups/defi.png b/apps/web/public/images/groups/defi.png similarity index 100% rename from public/images/groups/defi.png rename to apps/web/public/images/groups/defi.png diff --git a/public/images/groups/game.png b/apps/web/public/images/groups/game.png similarity index 100% rename from public/images/groups/game.png rename to apps/web/public/images/groups/game.png diff --git a/public/images/groups/social.png b/apps/web/public/images/groups/social.png similarity index 100% rename from public/images/groups/social.png rename to apps/web/public/images/groups/social.png diff --git a/public/images/hbd.svg b/apps/web/public/images/hbd.svg similarity index 100% rename from public/images/hbd.svg rename to apps/web/public/images/hbd.svg diff --git a/public/images/hive.svg b/apps/web/public/images/hive.svg similarity index 100% rename from public/images/hive.svg rename to apps/web/public/images/hive.svg diff --git a/public/images/progressiveApp.svg b/apps/web/public/images/progressiveApp.svg similarity index 100% rename from public/images/progressiveApp.svg rename to apps/web/public/images/progressiveApp.svg diff --git a/public/images/serverCluster.svg b/apps/web/public/images/serverCluster.svg similarity index 100% rename from public/images/serverCluster.svg rename to apps/web/public/images/serverCluster.svg diff --git a/public/images/username.png b/apps/web/public/images/username.png similarity index 100% rename from public/images/username.png rename to apps/web/public/images/username.png diff --git a/public/images/vault.svg b/apps/web/public/images/vault.svg similarity index 100% rename from public/images/vault.svg rename to apps/web/public/images/vault.svg diff --git a/public/images/websites/dapp-com.png b/apps/web/public/images/websites/dapp-com.png similarity index 100% rename from public/images/websites/dapp-com.png rename to apps/web/public/images/websites/dapp-com.png diff --git a/public/images/websites/dapp-review.svg b/apps/web/public/images/websites/dapp-review.svg similarity index 100% rename from public/images/websites/dapp-review.svg rename to apps/web/public/images/websites/dapp-review.svg diff --git a/public/images/websites/hivedapps-com.svg b/apps/web/public/images/websites/hivedapps-com.svg similarity index 100% rename from public/images/websites/hivedapps-com.svg rename to apps/web/public/images/websites/hivedapps-com.svg diff --git a/public/images/websites/hiveprojects.png b/apps/web/public/images/websites/hiveprojects.png similarity index 100% rename from public/images/websites/hiveprojects.png rename to apps/web/public/images/websites/hiveprojects.png diff --git a/public/images/websites/rayo.svg b/apps/web/public/images/websites/rayo.svg similarity index 100% rename from public/images/websites/rayo.svg rename to apps/web/public/images/websites/rayo.svg diff --git a/public/images/websites/stateofthedapps.svg b/apps/web/public/images/websites/stateofthedapps.svg similarity index 100% rename from public/images/websites/stateofthedapps.svg rename to apps/web/public/images/websites/stateofthedapps.svg diff --git a/public/next.svg b/apps/web/public/next.svg similarity index 100% rename from public/next.svg rename to apps/web/public/next.svg diff --git a/public/opengraph.png b/apps/web/public/opengraph.png similarity index 100% rename from public/opengraph.png rename to apps/web/public/opengraph.png diff --git a/public/sitemap.xml b/apps/web/public/sitemap.xml similarity index 100% rename from public/sitemap.xml rename to apps/web/public/sitemap.xml diff --git a/public/sw.js b/apps/web/public/sw.js similarity index 100% rename from public/sw.js rename to apps/web/public/sw.js diff --git a/public/vercel.svg b/apps/web/public/vercel.svg similarity index 100% rename from public/vercel.svg rename to apps/web/public/vercel.svg diff --git a/public/videos/marketing.mp4 b/apps/web/public/videos/marketing.mp4 similarity index 100% rename from public/videos/marketing.mp4 rename to apps/web/public/videos/marketing.mp4 diff --git a/public/whitepaper.pdf b/apps/web/public/whitepaper.pdf similarity index 100% rename from public/whitepaper.pdf rename to apps/web/public/whitepaper.pdf diff --git a/public/window.svg b/apps/web/public/window.svg similarity index 100% rename from public/window.svg rename to apps/web/public/window.svg diff --git a/scripts/post-build.js b/apps/web/scripts/post-build.js similarity index 100% rename from scripts/post-build.js rename to apps/web/scripts/post-build.js diff --git a/src/app/[locale]/about/page.tsx b/apps/web/src/app/[locale]/about/page.tsx similarity index 100% rename from src/app/[locale]/about/page.tsx rename to apps/web/src/app/[locale]/about/page.tsx diff --git a/src/app/[locale]/brand/page.tsx b/apps/web/src/app/[locale]/brand/page.tsx similarity index 100% rename from src/app/[locale]/brand/page.tsx rename to apps/web/src/app/[locale]/brand/page.tsx diff --git a/src/app/[locale]/contributors/page.tsx b/apps/web/src/app/[locale]/contributors/page.tsx similarity index 100% rename from src/app/[locale]/contributors/page.tsx rename to apps/web/src/app/[locale]/contributors/page.tsx diff --git a/src/app/[locale]/core-dev-meetings/page.tsx b/apps/web/src/app/[locale]/core-dev-meetings/page.tsx similarity index 100% rename from src/app/[locale]/core-dev-meetings/page.tsx rename to apps/web/src/app/[locale]/core-dev-meetings/page.tsx diff --git a/src/app/[locale]/developers/page.tsx b/apps/web/src/app/[locale]/developers/page.tsx similarity index 100% rename from src/app/[locale]/developers/page.tsx rename to apps/web/src/app/[locale]/developers/page.tsx diff --git a/src/app/[locale]/eco/page.tsx b/apps/web/src/app/[locale]/eco/page.tsx similarity index 99% rename from src/app/[locale]/eco/page.tsx rename to apps/web/src/app/[locale]/eco/page.tsx index 27083e70d2230dc8f4e708e0396301c4f4d7766e..94ebf0a24fa555f017de3f49d9945656914ccc6e 100644 --- a/src/app/[locale]/eco/page.tsx +++ b/apps/web/src/app/[locale]/eco/page.tsx @@ -58,7 +58,7 @@ function EcoContent() { return (
-
+
{/* Hero Section */}

diff --git a/src/app/[locale]/hbd/page.tsx b/apps/web/src/app/[locale]/hbd/page.tsx similarity index 100% rename from src/app/[locale]/hbd/page.tsx rename to apps/web/src/app/[locale]/hbd/page.tsx diff --git a/src/app/[locale]/layout.tsx b/apps/web/src/app/[locale]/layout.tsx similarity index 100% rename from src/app/[locale]/layout.tsx rename to apps/web/src/app/[locale]/layout.tsx diff --git a/apps/web/src/app/[locale]/page.tsx b/apps/web/src/app/[locale]/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..2c37c3fd8dabf66360907327a0a525ea1c5849cd --- /dev/null +++ b/apps/web/src/app/[locale]/page.tsx @@ -0,0 +1,126 @@ +'use client'; + +import { useTranslations } from 'next-intl'; +import { useRouter } from '@/i18n/routing'; +import { Button } from '@/components/ui/button'; +import { Logo } from '@/components/logo/Logo'; +import { ScrollIndicator } from '@/components/ScrollIndicator'; +import { RootEco } from '@/components/root/RootEco'; +import { useAssets } from '@/hooks/useAssets'; +import { EXCHANGES } from '@/lib/data/var'; + +// Live Activity Components +import { DynamicHero } from '@/components/hero/DynamicHero'; + +export default function HomePage() { + const router = useRouter(); + const t = useTranslations(); + const { getImage } = useAssets(); + + const go = (link: string) => { + window.open(link, '_blank'); + }; + + const getExchangeImage = (image: string) => { + return getImage(`exchanges/${image}`); + }; + + return ( +
+
+ {/* Dynamic Hero with Live Block Number and Activities */} + +
+ + {/* Ecosystem */} + + + {/* Core Features Section */} +
+
+

+ Why Hive? +

+ {/* Features Grid */} +
+ {/* Feature 1: Fast & Free */} +
+
+ No fees +
+

{t('root.feeTitle')}

+

+ {t('root.feeText')} +

+

+ {t('root.feeText2')} +

+
+ + {/* Feature 2: Decentralized */} +
+
+ Decentralized +
+

{t('root.decTitle')}

+

+ {t('root.decText')} +

+

+ {t('root.decText2')} +

+
+ + {/* Feature 3: DeFi Made Simple */} +
+
+ HBD DeFi +
+

DeFi Made Simple

+

+ Earn up to 15% APR on HBD, our decentralized stablecoin pegged to USD. +

+
+
+
+
+ + {/* Exchanges */} +
+
+
+

+ {t('root.exchanges.title')} +

+

+ {t('root.exchanges.subtitle')} +

+
+ +
+ {EXCHANGES.map((exchange) => ( + + {exchange.name} + + ))} +
+
+
+
+ ); +} diff --git a/apps/web/src/app/[locale]/roadmap/page.tsx b/apps/web/src/app/[locale]/roadmap/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e283988b8aec75ca80294e63e03caf47959f161e --- /dev/null +++ b/apps/web/src/app/[locale]/roadmap/page.tsx @@ -0,0 +1,350 @@ +'use client'; + +interface Milestone { + type: 'hardfork' | 'update' | 'future'; + version?: number | string; + date: string; + title: string; + description: string; + link?: string; + features: string[]; + status?: 'completed' | 'planned' | 'in-progress'; +} + +const milestones: Milestone[] = [ + // Future planned items + { + type: 'future', + date: 'Q3 2026', + title: 'Mobile Node Infrastructure', + description: 'Bringing Hive node technology to ARM-based mobile devices, enabling personal API nodes and greater decentralization.', + status: 'planned', + features: [ + 'Pruned HAF API nodes on ARM-based cell phones', + 'Personal API node capabilities on mobile devices', + 'Optimized storage and performance for mobile hardware', + 'Enhanced decentralization through mobile node distribution', + ], + }, + { + type: 'future', + date: 'Q2 2026', + title: 'Mobile Blockchain Nodes', + description: 'Enabling full Hived blockchain nodes to run on ARM-based mobile devices, expanding node accessibility.', + status: 'planned', + features: [ + 'Hived blockchain nodes on ARM-based cell phones', + 'Optimized resource usage for mobile devices', + 'Enhanced node distribution and accessibility', + 'Mobile-first node management tools', + ], + }, + { + type: 'future', + date: 'Q1 2026', + title: 'Smart Contracts & API Modernization', + description: 'Prototyping smart contract capabilities and modernizing the API stack with REST-based interfaces and enhanced community features.', + status: 'planned', + features: [ + 'Smart contract design prototyping', + 'REST-based API prototype for Hivemind', + 'New community functionality for Hivemind', + 'Customizable Hive websites (@peakd)', + 'Updates to Denser web app', + 'Layer 2 Transaction Inspector release', + ], + }, + { + type: 'future', + date: 'Q4 2025', + title: 'HAF Enhancements & Developer Tools', + description: 'Major updates to Hive Application Framework, lightweight account support, and new developer libraries for building on Hive.', + status: 'planned', + features: [ + 'Updated HAF (base layer for designing API servers)', + 'Lightweight HAF version with pruned tables', + 'Lightweight accounts with social media-based login', + 'Support for 2nd layer transactions', + 'Real-time app responses to new blocks', + 'Wax library optimization for server-side API caches', + 'Python WorkerBee library for lightweight block processing', + 'Denser: modern replacement for Condenser web app', + 'Clive: new CLI and Terminal UI wallet', + 'Coinbase Mesh API support', + ], + }, + + // Recent updates and HF28 + { + type: 'hardfork', + version: 28, + date: 'November 19, 2025', + title: 'Enhanced Voting & Security', + description: 'A major overhaul of the voting system and key security improvements with substantial codebase modifications.', + link: 'https://hive.blog/hive-160391/@gtg/brace-yourself-hardfork-is-coming', + status: 'completed', + features: [ + 'Vote power consistently remains at 100% with ~10 full-power votes daily', + 'Stricter key hierarchy enforcement preventing higher authority keys from lower-level actions', + 'Enhanced signature handling capabilities', + '4,036 commits with 331,273 additions and 648,056 deletions', + ], + }, + { + type: 'update', + date: 'September 2023', + title: 'HAF (Hive Application Framework) Launch', + description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + status: 'completed', + features: [ + 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris', + 'Duis aute irure dolor in reprehenderit in voluptate velit esse', + 'Excepteur sint occaecat cupidatat non proident, sunt in culpa', + ], + }, + { + type: 'hardfork', + version: 27, + date: 'October 24, 2022', + title: 'Witness Schedule Fix', + description: 'Critical bug fix for backup witness block production scheduling to ensure fair reward distribution.', + link: 'https://hive.blog/hive/@hiveio/hf27-is-coming-on-october-24th-some-slight-additional-evolution-needed', + status: 'completed', + features: [ + 'Fixed backup witness scheduling bug causing unfair block production', + 'No replay required - minimal downtime for upgrades', + 'Improved witness participation incentives', + ], + }, + { + type: 'hardfork', + version: 26, + date: 'October 11, 2022', + title: 'Evolution', + description: 'Third community-driven protocol upgrade bringing significant improvements for creators, developers, and infrastructure.', + link: 'https://hive.blog/hive/@hiveio/the-evolution-of-hive-hardfork-26', + status: 'completed', + features: [ + 'One Block Irreversibility (OBI) - transaction finality in milliseconds', + 'Removed voting restrictions - multiple votes per block allowed', + 'RC delegation with posting keys', + 'Compressed block logs reducing storage requirements', + 'HBD debt ratio limits shifted to 20%/30%', + 'Simdjson integration - 7x faster JSON validation', + ], + }, + { + type: 'hardfork', + version: 25, + date: 'June 30, 2021', + title: 'Equilibrium', + description: 'Rebalancing the ecosystem with improved curation, HBD stability, and governance mechanisms.', + link: 'https://hive.blog/hive/@hiveio/hive-hardfork-25-is-on-the-way-hive-to-reach-equilibrium-on-june-30th-2021', + status: 'completed', + features: [ + 'Eliminated 5-minute curation reverse auction penalty', + 'HIVE to HBD conversion for stablecoin equilibrium', + 'HBD savings account interest - no-risk DeFi', + 'Recurring payment operations for subscriptions', + 'Governance votes expire after 1 year of inactivity', + 'Post-payout voting for appreciation without reward impact', + ], + }, + { + type: 'hardfork', + version: 24, + date: 'October 6, 2020', + title: 'Eclipse', + description: 'Major upgrade after extensive community testing, bringing improved performance and exchange integration.', + link: 'https://hive.blog/hiveblockchain/@hiveio/final-hive-hf24-date-set-october-6-2020', + status: 'completed', + features: [ + 'Timestamp-based activation system', + 'Faster node startup and replay capabilities', + 'Extensive Hivemind API improvements', + 'Reduced exchange maintenance downtime', + 'Enhanced quality assurance and testing protocols', + ], + }, + { + type: 'hardfork', + version: 23, + date: 'March 20, 2020', + title: 'The Birth of Hive', + description: 'Hive blockchain officially launched as a community-driven fork from Steem, establishing true decentralization.', + link: 'https://hive.blog/communityfork/@hiveio/announcing-the-launch-of-hive-blockchain', + status: 'completed', + features: [ + '1:1 token airdrop from Steem to Hive', + 'DPOS governance with 30-day voting delay protection', + 'Excluded ninja-mined stake for true decentralization', + 'Community-driven blockchain free from corporate control', + 'Open-source codebase on GitHub', + ], + }, + { + type: 'hardfork', + version: 'HF 1 - HF 22', + date: '2016 - 2020', + title: 'Foundation', + description: 'The early years of blockchain development, laying the groundwork for what would become Hive.', + status: 'completed', + features: [ + 'Core blockchain infrastructure development', + 'DPOS consensus mechanism', + 'Smart media tokens research', + 'Community governance systems', + ], + }, +]; + +export default function RoadmapPage() { + const getStatusColor = (status?: string) => { + switch (status) { + case 'completed': + return 'bg-[#e31337]'; + case 'in-progress': + return 'bg-[#ff9800]'; + case 'planned': + return 'bg-[#212529]'; + default: + return 'bg-[#e31337]'; + } + }; + + const getTypeLabel = (milestone: Milestone) => { + if (milestone.type === 'hardfork') { + return typeof milestone.version === 'number' ? `HF ${milestone.version}` : milestone.version; + } + if (milestone.type === 'future' && milestone.version) { + return typeof milestone.version === 'number' ? `HF ${milestone.version}` : milestone.version; + } + if (milestone.type === 'future') { + return 'Soon'; + } + return 'Update'; + }; + + return ( +
+
+ {/* Hero Section */} +
+

+ Hive Roadmap. +

+

+ Our journey from inception to the future. Track major hardforks, updates, and planned developments in Hive's evolution as a community-driven blockchain. +

+

+ For the latest development updates, follow{' '} + + @blocktrades + +

+
+ + {/* Timeline */} +
+ {/* Vertical line */} +
+ + {/* Milestone items - reverse order (newest/future first) */} +
+ {milestones.map((milestone, idx) => ( +
+ {/* Circle marker */} +
+ {milestone.status === 'in-progress' && ( +
+ )} +
+ + {/* Content card */} +
+ {/* Header */} +
+
+
+ + {getTypeLabel(milestone)} + + {milestone.date} +
+

+ {milestone.title} +

+
+ {milestone.link && ( + + Read More + + + + + )} +
+ + {/* Description */} +

+ {milestone.description} +

+ + {/* Features */} + {milestone.features.length > 0 && ( +
+

+ {milestone.status === 'planned' ? 'Planned Features' : milestone.status === 'in-progress' ? 'Features in Development' : 'Key Features'} +

+
    + {milestone.features.map((feature, featureIdx) => ( +
  • + + + + {feature} +
  • + ))} +
+
+ )} +
+
+ ))} +
+
+ +
+
+ ); +} diff --git a/src/app/[locale]/wallets/page.tsx b/apps/web/src/app/[locale]/wallets/page.tsx similarity index 83% rename from src/app/[locale]/wallets/page.tsx rename to apps/web/src/app/[locale]/wallets/page.tsx index 9fb7d47435ea8da8d391f64fd49d77d242527ff0..7f11f03581b963c4d390d47741038aa9b264dbd6 100644 --- a/src/app/[locale]/wallets/page.tsx +++ b/apps/web/src/app/[locale]/wallets/page.tsx @@ -10,7 +10,7 @@ export default function WalletsPage() { return (
-
+
{/* Hero Section */}

@@ -22,9 +22,9 @@ export default function WalletsPage() {

{/* Wallets Grid */} -
+
{WALLETS.map((wallet) => ( - + ))}
diff --git a/src/app/favicon.ico b/apps/web/src/app/favicon.ico similarity index 100% rename from src/app/favicon.ico rename to apps/web/src/app/favicon.ico diff --git a/src/app/globals.css b/apps/web/src/app/globals.css similarity index 93% rename from src/app/globals.css rename to apps/web/src/app/globals.css index e5368a08b810ac5436066cf739f222a480dbe2e4..2977d86f25c1b57ee41b41ef28aa9cac9e2eb42a 100644 --- a/src/app/globals.css +++ b/apps/web/src/app/globals.css @@ -184,3 +184,30 @@ .tippy-popper[x-placement^='right'] .tippy-arrow { border-right-color: black; } + +/* Activity Feed Animations */ +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes scrollLeft { + from { + transform: translateX(0); + } + to { + transform: translateX(-33.333%); + } +} + +.animate-fade-in { + animation: fadeIn 0.3s ease-out forwards; +} + +.animate-scroll-left { + animation: scrollLeft linear infinite; +} diff --git a/src/app/layout.tsx b/apps/web/src/app/layout.tsx similarity index 100% rename from src/app/layout.tsx rename to apps/web/src/app/layout.tsx diff --git a/src/app/page.tsx b/apps/web/src/app/page.tsx similarity index 100% rename from src/app/page.tsx rename to apps/web/src/app/page.tsx diff --git a/src/components/Icon.tsx b/apps/web/src/components/Icon.tsx similarity index 79% rename from src/components/Icon.tsx rename to apps/web/src/components/Icon.tsx index fec8bb7bdf5dad7d68312a17bd2ea9d6a385449f..32dcf4f16ee5f24604a7aeb33fd8f23aa165416d 100644 --- a/src/components/Icon.tsx +++ b/apps/web/src/components/Icon.tsx @@ -43,10 +43,27 @@ export const Icon: React.FC = ({ }; }, [tooltip]); - if (!icon || !link) { + if (!icon) { return null; } + if (!link) { + return ( + + + + ); + } + return ( = ({ @@ -31,7 +32,8 @@ export const App: React.FC = ({ openModal = false, openDetailed = false, detailed = false, - style + style, + size = 110 }) => { const { getImage } = useAssets(); const [hover, setHover] = useState(false); @@ -53,6 +55,9 @@ export const App: React.FC = ({ }; const getWebsiteUrl = () => { + if (!item.website) { + return '#'; + } if (typeof item.website === 'string') { return item.website; } @@ -79,12 +84,15 @@ export const App: React.FC = ({ detailed ? 'flex-row flex-wrap items-start justify-start cursor-default mx-[30px] my-[15px]' : '' }`; - const innerClasses = `flex justify-center items-center rounded-[15%] bg-[#e2e2ec] h-[110px] w-[110px] p-3 mb-2 transition-transform duration-500 ${ + const innerClasses = `flex justify-center items-center rounded-[15%] bg-[#e2e2ec] p-3 mb-2 transition-transform duration-500 ${ move && !detailed && hover ? '-translate-y-[10%]' : '' }`; const innerContent = ( -
+
{item.name} {

Similar Apps

-
+
{similarEco.map((eco) => ( { showName={false} openModal={true} appType="eco" + size={40} style={{ opacity: eco.id === activeEco.id ? '0.333' : '1' }} @@ -64,7 +65,7 @@ export const EcoDetailed: React.FC = () => { Explore Ecosystem
-
+
{otherEco.map((eco) => ( { showName={false} openModal={true} appType="eco" + size={40} style={{ opacity: eco.id === activeEco.id ? '0.333' : '1' }} diff --git a/src/components/color/Color.tsx b/apps/web/src/components/color/Color.tsx similarity index 100% rename from src/components/color/Color.tsx rename to apps/web/src/components/color/Color.tsx diff --git a/src/components/contributors/ContributorLabel.tsx b/apps/web/src/components/contributors/ContributorLabel.tsx similarity index 100% rename from src/components/contributors/ContributorLabel.tsx rename to apps/web/src/components/contributors/ContributorLabel.tsx diff --git a/src/components/contributors/Contributors.tsx b/apps/web/src/components/contributors/Contributors.tsx similarity index 100% rename from src/components/contributors/Contributors.tsx rename to apps/web/src/components/contributors/Contributors.tsx diff --git a/src/components/contributors/ContributorsContributor.tsx b/apps/web/src/components/contributors/ContributorsContributor.tsx similarity index 100% rename from src/components/contributors/ContributorsContributor.tsx rename to apps/web/src/components/contributors/ContributorsContributor.tsx diff --git a/src/components/footer/Footer.tsx b/apps/web/src/components/footer/Footer.tsx similarity index 100% rename from src/components/footer/Footer.tsx rename to apps/web/src/components/footer/Footer.tsx diff --git a/src/components/footer/FooterNavigation.tsx b/apps/web/src/components/footer/FooterNavigation.tsx similarity index 100% rename from src/components/footer/FooterNavigation.tsx rename to apps/web/src/components/footer/FooterNavigation.tsx diff --git a/src/components/header/Header.tsx b/apps/web/src/components/header/Header.tsx similarity index 51% rename from src/components/header/Header.tsx rename to apps/web/src/components/header/Header.tsx index bcd7f371c5b41486b52fe2b8251ba018d57831f2..b31fb2cf81dc3fb9ce507344167d2b69a7afe0b8 100644 --- a/src/components/header/Header.tsx +++ b/apps/web/src/components/header/Header.tsx @@ -6,6 +6,7 @@ import { Logo } from '@/components/logo/Logo'; import { Navigation } from '@/components/navigation/Navigation'; import { MobileMenu } from '@/components/mobile-menu/MobileMenu'; import { LanguageSelector } from '@/components/LanguageSelector'; +import { InfobarCompact } from '@/components/infobar/InfobarCompact'; interface HeaderProps { items?: any[]; @@ -14,6 +15,10 @@ interface HeaderProps { export const Header: React.FC = ({ items = [] }) => { const headerRef = useRef(null); + // Split items into navigation items and button items + const navigationItems = items.filter(item => !item.isButton); + const buttonItems = items.filter(item => item.isButton); + // Use useLayoutEffect to update header height before browser paint useLayoutEffect(() => { if (headerRef.current) { @@ -36,17 +41,30 @@ export const Header: React.FC = ({ items = [] }) => { }, []); return ( -