A responsive Next.js application that ranks Hypixel SkyBlock shard fusion paths using current Bazaar prices. It uses direct instant-buy prices for listed ingredients, calculates both fast instant-sale and delayed sell-offer values for final outputs, and performs search and sorting in the browser after the server prepares the results.
npm install
npm run devOpen http://localhost:3000.
npm run dev— start the local applicationnpm test— run calculation and formatting testsnpm run lint— run ESLintnpm run build— create a production build
The complete fusion catalog comes from data/fusion-data.json. Direct/Fuse classification comes from the SkyShards acquisition rates in data/rates.json; a shard with a non-zero base acquisition rate is Direct. The app converts the catalog into its own normalized model, removes mirrored ingredient pairs, prices each recipe from its listed Bazaar ingredients, and keeps the lowest-cost recipe for each final output and quantity. The current catalog contains 134,971 unique candidates and up to 408 output/quantity paths.
Expanded results show the direct Bazaar purchases, the fusion, and both exit estimates: fast instant-sale profit through current buy orders and higher-potential sell-offer profit. Paths are ranked by estimated sell-offer profit by default and can also be sorted by sell-offer margin.
Bazaar data is cached for 60 seconds and normalized to the shard products and top-of-book prices the calculator uses. Item metadata is cached for one hour. Missing metadata falls back to the catalog name or a display name derived from the shard ID, while missing market data excludes that candidate from the ranking. Shard icons are served from public/shardIcons with a generated fallback for unknown IDs.
Coin estimates exclude Bazaar taxes, fusion bonuses, and slippage beyond the top order-book entry.
The /shard-alerts page watches Direct shards for price spikes. A scheduled background scan compares the current top instant-sell order with Hypixel's average buy-order price from the same Bazaar snapshot, stores the latest result in Supabase, and lets the page display that saved result without fetching Hypixel when a visitor opens it. No browser-local history is used.
The scheduled flow uses GitHub Actions, a protected Next.js route, and one server-managed Supabase snapshot:
- Run the SQL files in
supabase/migrations/in timestamp order in the Supabase SQL editor. - Set
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY, andCRON_SECRETin the production app environment. Keep the service-role key server-only. - Add
SHARD_ALERTS_URLandCRON_SECRETas GitHub Actions repository secrets.SHARD_ALERTS_URLshould be the production origin, such ashttps://shardflipper.example.com. - Deploy the app, then use the
Refresh shard alertsworkflow's manual dispatch once to verify the first snapshot. The workflow is scheduled every five minutes afterward.
The website reads the latest saved snapshot from Supabase. GitHub Actions is only the scheduler; it does not store alert history in the browser or in the repository.
The catalog and shard icons are used under their MIT license. See THIRD_PARTY_NOTICES.md for attribution. The catalog adapter, pricing reduction, and application code are independently implemented for this project.