Architecture Overview
Skyhitz is a multi-package monorepo:
packages/api
: Cloudflare Worker GraphQL API + Soroban/Algolia/R2 clientspackages/solito
: Cross-platform app (Next.js web + Expo RN)packages/api/contract
: Soroban Rust contract and TS client bindingspackages/docs
: This documentation site (Docusaurus)
Core services:
- GraphQL API: authentication, search, investing/mining, earnings
- Soroban contract: on-chain state for entries, tvl, escrow, shares, earnings
- Algolia: search indices (
entriesIndex
,ratingReplicaIndex
,sharesIndex
) - Cloudflare R2: object storage for metadata and media (audio/video/images)
Key flows:
- Search: internal entries (Algolia) + external providers (Audius, Sound.xyz)
- Preview: resolve external audio URLs, play via unified player
- Mine: pin media/metadata to R2, compute partition, run Soroban ops, then index entry & sync shares to Algolia
- Invest: user invests, contract updates, Algolia tvl/apr/escrow and shares synced
- Claim: preview earnings read-only; only invoke claim when claimable > 0