The branded build now fans out into 8 (4 brands × mainnet+testnet)
production images:
ghcr.io/luxfi/explore-{mainnet,testnet}:v1.0.0
ghcr.io/zooai/explore-{mainnet,testnet}:v1.0.0
ghcr.io/hanzoai/explore-{mainnet,testnet}:v1.0.0
ghcr.io/parsdao/explore-{mainnet,testnet}:v1.0.0
Each image is a thin ENV overlay of ghcr.io/luxfi/explore (the Next.js
runtime) — brand identity is baked at build time via NEXT_PUBLIC_*
build-args. The brand's GHCR namespace owns the image per the workspace
container-registry rules (no cross-org mixing).
deploy/scripts/branded_build.sh is the source of truth for tuple -> env
mapping; the actual image fan-out is performed via crane mutate -e which
produces an instant ENV-only layer (no Kaniko, no tar of build context —
same hash blob mounts across namespaces).
The corresponding K8s manifests (per-brand Deployment + Service per
namespace, IngressRoute patches routing catch-all to FE) live in the
cluster directly.
- Network Overview homepage with P-chain stats and chain cards
- Chain detail page with validator info and indexer stats
- Chain switcher dropdown in top bar
- A-chain AI client with indexer API integration
- D-chain DEX data hook with live indexer fallback
- E2E tests for all 5 live explorer instances
- Test transaction sender script
- Remove verbose comments, section dividers, and console.log scaffolding
- Replace yarn v1 with pnpm 10.11.0 across all build configs
- Move misplaced deps to devDependencies (cspell, esbuild, @openzeppelin/contracts, @next/bundle-analyzer, @types/papaparse, @types/react-scroll)
- Remove stale @types/[email protected] override — use correct React 19 types (fixes 22 type errors)
- Convert yarn resolutions to pnpm.overrides
- Update Dockerfile, Dockerfile.lux, CI workflows, and all shell scripts
- Add .npmrc with shamefully-hoist for Next.js compatibility
- Add outputFileTracingRoot to next.config.js
* fail the app start if multichain config or essential dapps config were not generated properly
* add timeouts for essential dapps and multichain config generators
* fix "add to wallet" button in address tokens table
* [skip ci] update docs
* fix tx tables when there are no fee and value columns
* add support for promoted multichain provider
* fixes
* change action button logic
* fix tests
* fix
* hide "add network" button for multichain
* shorten the amount of txs on multichain homepage
* change name formatting for multichain button
* add bright color variants and lg size for badges
* fix y-axis margin calculation for chart with custom tick formatter
* superchain bug fixes
* bump versions of react and nextjs
* update screenshot
* bump dappscout-iframe
---------
Co-authored-by: Max Alekseenko <[email protected]>
* add file generator and template for common content
* add chain specific data
* add chain specific data for stability, shibarium, scroll and zilliqa
* fix ts
* add instructions about contract sources
* context for storing subchain config and tx view for subchain
* address page and block page for subchain
* address aggregated page: local txs tab
* connect MultichainSelect to context
* home page placeholder
* refactor subchain select state
* envs for demo
* fix ts
* clear value for l2 review
* subchain widgets on home page
* csp policies
* sockets, duck and goose
* fix socket on subchain address page
* link builder for subchain views
* update home widget
* fix time increment
* enable tx interpretator and metadata service
* generate multichain config based on every chain app config
* Fix the multichain config to work in Docker
* multichain socket test
* rename subchain-id to subchain-slug path param
* refactoring
* update chain icons on entities
* home page: latest local txs
* latest cross-chain txs
* minor improvements
* renaming, pt. 1
* rename chain routes
* enable blockchain interaction
* add loading state to icon shield
* fix build
* fix tests
* update types package
* make script to generate OG image at container start
* add prod service URL
* remove og_image.png
* update path to file
* [skip ci] remove app url from payload
* feat: Vercel compliant command for prod builds
* feat: simplify to a single command, rename command
Also included the script to download assets.
* fix: exclude vercel injected env vars
Vercel injects a number of environment variables, that in some cases can result in run time errors when the app is reading from envs.js. Exclude these.
* use SENTRY_CSP_REPORT_URI only in nextjs part of the app
* rename NEXT_PUBLIC_FAVICON_GENERATOR_API_KEY to FAVICON_GENERATOR_API_KEY
* tests presets for envs validator
* simplify logs
* refactor getExternalJsonContent function
* tweak contribution guide
* break validator
* debug workflow
* fix copying assets folder
* fix CI
* migrate from zod to yul schema
* describe full schema
* adjust docker integration
* make script for downloading app assets
* change links to downloaded assets in the config code
* docker integration
* validate external json configs
* better schemas and ts integration
* update docs and dev script
* gh workflow
* try to fail gh workflow
* install global deps and adjust script for gh workflow
* refinements
* make workflow to pass
* 🙈
* fix tests