Skip to content

Latest commit

 

History

History
125 lines (95 loc) · 6.66 KB

File metadata and controls

125 lines (95 loc) · 6.66 KB

SentrisCloud

sentriscloud-frontend

SentrisCloud frontend monorepo — apps built on Sentrix Chain.

status monorepo node pnpm turborepo typescript next


What's in here

Eight Next.js apps, one shared wallet-config package, one Turborepo pipeline.

App What it is Live URL
chain-landing Sentrix Chain protocol site (EN / ID) sentrixchain.com
landing SentrisCloud company / brand site sentriscloud.com
scan Block explorer — mainnet + testnet, EIP-3091 compliant scan.sentrixchain.com
faucet Mainnet + testnet SRX faucet, Turnstile-protected faucet.sentrixchain.com
solux Self-custody web wallet — keys stay on-device solux.sentriscloud.com
coinblast Bonding-curve memecoin launchpad coinblast.sentriscloud.com
dex Uniswap-V2-style AMM dex.sentrixchain.com
airdrop Eligibility-check + claim widget airdrop.sentrixchain.com

Solux's mobile wallet (Flutter) is in a separate repo: sentriscloud/solux. Same brand and protocol; keys are managed independently per device.

Quick start

Prerequisites: Node ≥ 20, pnpm 10 (npm i -g pnpm@10), git.

git clone git@github.com:sentriscloud/frontend.git sentriscloud-frontend
cd sentriscloud-frontend
pnpm install
pnpm dev                          # all apps in parallel (Turbo)
# or run a single app:
pnpm --filter @sentriscloud/scan dev

Build, lint, type-check:

pnpm build                        # all apps
pnpm --filter @sentriscloud/coinblast build
pnpm lint
pnpm typecheck

pnpm dev runs every app in parallel; Next.js will increment ports starting at 3000 if any are taken. To pin one, prefix PORT=<n> (see Apps).

Apps

Each app lives at apps/<name>/ and uses the workspace name @sentriscloud/<name>. All eight are Next.js 15 + React 19 + Tailwind.

Name Workspace Notes
chain-landing @sentriscloud/chain-landing i18n via next-intl (EN default, ID toggle)
landing @sentriscloud/landing brand / company site
scan @sentriscloud/scan locale-prefixed routes; in-app mainnet/testnet switcher
solux @sentriscloud/solux on-device keystore via wallet-config; cross-app sign popup
faucet @sentriscloud/faucet Cloudflare Turnstile required for prod
coinblast @sentriscloud/coinblast bonding-curve launchpad on CoinBlastFactory
dex @sentriscloud/dex UniswapV2-fork AMM
airdrop @sentriscloud/airdrop claim widget gated on per-address eligibility

Run any one with pnpm --filter @sentriscloud/<name> dev. next dev defaults to port 3000; if you want to run several at once, set PORT=<n> in front (e.g. PORT=3008 pnpm --filter @sentriscloud/coinblast dev). Apps with .env.example files expect those values copied to .env.local before first run.

Structure

sentriscloud-frontend/
├── apps/
│   ├── airdrop/          claim widget (airdrop.sentrixchain.com)
│   ├── chain-landing/    sentrixchain.com — protocol site + docs
│   ├── coinblast/        bonding-curve launchpad
│   ├── dex/              UniswapV2-fork AMM
│   ├── faucet/           mainnet + testnet faucet
│   ├── landing/          sentriscloud.com — company site
│   ├── scan/             block explorer
│   └── solux/            self-custody web wallet
├── packages/
│   └── wallet-config/    shared wagmi/RainbowKit config + Solux popup-signer
├── turbo.json            pipeline (build / dev / lint / typecheck / test / clean)
├── pnpm-workspace.yaml
├── tsconfig.base.json
└── package.json

packages/wallet-config is the shared chain config + connector setup every app imports. Use it instead of duplicating wagmi setup per app.

Deploy

Each app deploys as a systemd service on the build host running next start against the app's .next/ build output (coinblast.service, solux.service, sentrix-scan.service, sentrix-dex.service, sentrix-faucet.service, sentrix-airdrop.service, sentrix-landing.service, sentriscloud-landing.service). Caddy on the same host terminates TLS and routes each subdomain to the local port. Builds are produced from this repo's pnpm --filter <app> build and the service is restarted via systemctl restart <unit>. There is no GHCR or container registry wired up at the moment; only apps/chain-landing/ ships a Dockerfile, kept for parity but not part of the prod path.

Where things live

Adding a new app

mkdir -p apps/my-app
cd apps/my-app
pnpm init
# set "name": "@sentriscloud/my-app" in package.json

pnpm-workspace.yaml already globs apps/* and packages/*, so the new workspace is picked up on the next pnpm install. Add build/dev/lint/typecheck scripts to match the Turbo pipeline in turbo.json.

License

No LICENSE file is committed yet — source is All rights reserved until one lands. The Sentrix Chain protocol itself (separate repo, sentrix-labs/sentrix) is BUSL-1.1; this monorepo's license is decided independently and will be added here when finalized.