Week of March 14-17, 2026
What We've Been Working On
This week started with a simple bug fix and ended up being way more work than expected. The bounties page was broken on mobile, and while fixing it, we kept finding other things that needed attention. One thing led to another, and we ended up rebuilding a bunch of stuff under the hood.
Here's what happened.
📱 The Bounties Page Was Broken on Mobile
The horizontal scrollbar made it impossible to browse bounties on your phone. Not great for a feature that's supposed to help skaters get paid.
What we fixed:
- Made the grid responsive: 1 column on phone, 2 on tablet, 3 on desktop
- Removed the horizontal scroll
- Better spacing overall
Check it out: skatehive.app/bounties
Then We Made Bounties More Visible
Once the page was working, we realized bounties were kind of hidden. You had to know to go to /bounties to see them. So we integrated them into the feed:
Bounty preview cards
When someone posts a POIDH bounty link, it now shows as a card with:
- The prize amount (in ETH and USD)
- The trick/challenge
- A claim button right there
Inline claiming
You can claim bounties directly from the feed now. No need to navigate away. Claims also get posted to Hive automatically.
Sidebar ticker
The community payout widget now alternates between showing total magazine rewards and open bounties. Updates every few seconds with a little animation. Click it to go to the bounties page.
📚 Fixed the Docs Too
While working on bounties, we noticed the docs were hard to use — especially for non-English speakers. So we rewrote them.
Bounties Documentation in 4 Languages
- English, Português, Español, Luganda
- Inline screenshots showing exactly what to do
- Covers both HIVE and ETH bounties (Base & Arbitrum)
Each guide walks through:
- How to browse bounties
- How to create one
- How to claim rewards
See the guides: docs.skatehive.app/docs/Features/bounties
Added Search
Hit / or Ctrl+K to search the docs instantly. Works in all 4 languages, no external API needed.
Try it: docs.skatehive.app
🚀 Then We Looked at Performance... And It Was Bad
After shipping the bounties stuff, we ran PageSpeed Insights. The homepage scored poorly:
- 6.6 second load time
- 3.8MB of images on the first screen
- 6 render-blocking Google Fonts we weren't even using intentionally
People were waiting over 6 seconds to see the feed. That's way too long.
So we went through the whole app and optimized what we could.
What We Did
1. Made the Feed Load Faster
Problem: The feed was making 3-6 separate blockchain calls, one after another. Each one waited for the previous to finish.
Fix:
- Combined everything into one API call
- Falls back to blockchain if the API is down
- Removed duplicate calls (the identity system was fetching the same data twice)
- Added memoization to prevent unnecessary re-renders
- Made the leaderboard only load when you open the airdrop modal (it was loading on every page for no reason)
Result: Feed appears instantly now.
2. Removed OnchainKit
We were using Coinbase's OnchainKit for wallet stuff. It's a solid library, but it was loading 6 Google Fonts we didn't need, which blocked the page from rendering.
We replaced it with a small custom component that does the same thing using wagmi directly.
Before: 257KB, 6 font requests
After: 139KB, 0 font requests
Same features, way less bloat.
3. Optimized Our Own Fonts
Once we removed the OnchainKit fonts, we looked at ours:
- Converted from TTF to WOFF2 (40% smaller)
- Added preload hints so they download right away
- Removed an unused font
- Deleted 3 other font files we weren't using
Every KB matters for fonts since they block rendering.
4. Fixed the Image Problem
Problem: Images from IPFS were loading at full resolution — 2000-4000px wide. A single thumbnail could be 800KB. The feed was loading almost 4MB of images.
Fix:
- Built a proxy through Hive's image service
- Resizes to 768px for inline images, 320x180 for thumbnails
- Converts to WebP automatically
- Added lazy loading
- GIFs stay as-is (the proxy would strip their animation)
Before: 3.8MB of images
After: ~1MB
5. Deferred Non-Critical JavaScript
A bunch of components were loading on every page even though they weren't needed right away:
- Post editor (loads when you click create post)
- Coin creator (loads when you use it)
- Search overlay (loads when you hit /)
- Airdrop modal (loads when you click it)
- Embed components (only load if a post has that embed type)
We moved all of these to load after the feed appears.
Result: The feed shows up faster because it's not waiting for a bunch of code it doesn't need yet.
6. Removed the Farcaster Miniapp SDK
We used to be tightly coupled to running inside the Farcaster app. We removed that dependency.
What stayed:
- Farcaster login
- Farcaster profiles
- Warpcast links
- Frame support
What left:
- The miniapp SDK
- A bunch of connector overrides
SkateHive is now a web app that works with Farcaster, not a Farcaster app that happens to be on the web.
7. Cleaned Up Dead Code
Once we started removing things, we kept going:
- 4 unused files
- 2 unused dependencies
- The entire OnchainKit package
- 578 lines of code total
Less code = less to maintain.
8. Fixed a Bug
The link accounts modal was showing up for people who had already linked their accounts. Turns out it was checking before the data finished loading. Fixed that.
9. Updated Zora SDK
The old version had a breaking change. Updated to 0.4.7 and adapted the code.
🖼️ Social Sharing (In Progress)
We've been setting up custom Open Graph images for when people share SkateHive links on social media. Most routes have them now.
Dynamic pages (bounties, profiles, map, leaderboard) generate custom images on the fly. Everything else uses the default for now.
The Numbers
| Metric | Before | Expected After | Change |
|---|---|---|---|
| Load time (LCP) | 6.6s | ~3-4s | 40-50% faster |
| JavaScript blocking | 1,370ms | ~800ms | 42% less |
| Image size | 3.8MB | ~1MB | 74% smaller |
| Render-blocking fonts | 6 fonts (240ms) | 0 | Gone |
The homepage should load about 2-3 seconds faster.
What Changed for Users
- Page loads way faster
- Bounty cards show up in the feed
- Sidebar shows total bounties/rewards
- Account linking modal doesn't pop up incorrectly anymore
- Everything else looks the same
All the changes are under the hood. Same SkateHive, just faster.
What's Next
- Video tutorials for bounties (in multiple languages)
- More custom OG images for sharing
- Better onboarding guides
- Whatever the community needs
If there's something you want to see, let us know.
Questions? Join us on Discord.
Want to support development? Delegate HIVE to .
Built by skaters, for skaters. 🛹