app.union.build is built to be user friendly, extremely reliable, and blazing fast. It achieves this through a stack of optimized tools that do most processing at compile time (before you even use the app), and by connecting to our optimized hubble indexer over our GraphQL API.
Run the following to start a development server, once it's running edit the files in app/
and you'll see your changes reflected immediately in the browser.
nix run .#app-dev-server
To fetch the latest GraphQL schema, run
nix run .#app-fetch-schema
It's a SvelteKit app that compiles to a static site such that it can later be distributed using decentralized providers like IPFS.
Data is fetched from graphql.union.build. The GraphQL queries are defined in ./src/lib/graphql/documents
, and types for it are generated by gql.tada. We use TanStack Query to periodically fetch new data (both for GraphQL and REST).
For interacting with EVM chains, we use Wagmi & Viem. For interacting with Cosmos chains, we use CosmJS.
The basis for our components are generated by shadcn-svelte, and then modified to adhere to our brand guidelines. Styling is done using Tailwind.
We're currently migrating from Svelte 4 to Svelte 5
rm -rf node_modules
rm package-lock.json
npm update # <- important part, this ignores aarch64-only cache.
# update npmDepsHash in app.nix