Crystal Siege
A charity Minecraft event for the One of Us Charity, in memory of Technoblade, where viewers donate to buy in-game effects for the players they're watching.

Crystal Siege: Refractured is a charity event for One of Us, produced by bumpyEvents. Six teams of creators compete in Minecraft, and viewers can donate to change what happens in the game.
I am the sole web developer on the project. The site connects to the game through an event API built by another bumpyEvents developer.
What I did
- Built the public site, with pages for teams and players, the incentive shop and the donation goals.
- Built the cart and the checkout, which sends viewers to Tiltify to donate.
- Built the admin dashboard that the event team uses to manage players, incentives, carts, donations and fulfilment.
- Set up the caching so that pages stay up to date without every visitor hitting the server.
- Sole web developer
- One of Us, with bumpyEvents
- 2025 and 2026
- fov.oneofusglobal.org
Built with
- Next.js
- React
- TypeScript
- tRPC
- Clerk
- Tiltify
- Cloudflare Turnstile
- Tailwind CSS
- Vercel
The six teams
Ruby Rangers
Topaz Thieves
Emerald Explorers
Sapphire Sorcerers
Amethyst Artificers
Pearl Paladins
Incentives
Every player has their own shop of incentives, which are effects that happen to them in the game. Viewers pick a player, add incentives to a cart and check out by donating through Tiltify.
Each cart has a limit per player, and the checkout is protected by Cloudflare Turnstile.

Donation goals
The site shows the total raised against eleven goals, starting at $1,000 and going up to $40,000, with a stretch goal at $50,000.
Underpaid donations
If someone donates less than their cart total, the cart is marked as underpaid and the items are held until someone on the team decides what to do with it.
Admins can also simulate a donation to test everything from start to finish. Test donations are never added to the total.
Caching
The pages need to load quickly and also stay up to date during the event. Each API call sets how long it can be cached for, and the cached copies are served from the CDN. When the team changes something in the dashboard, the affected pages are refreshed.
Sign-in is only checked on the admin pages, which means every public page can be cached.

Results
About $75,000 raised
The Crystal Siege events have raised about $75,000 for charity.
Underpaid carts are held
Nothing is given out in the game until the donation matches the cart or an admin approves it.
Cached at the CDN
Public pages are served from the CDN and refreshed when the event team changes something.