Skip to content

Crate-Protocol/crate-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crate Logo

Crate · Mobile

React Native app — check earnings, discover beats, and get paid from your phone.

License Expo React Native TypeScript Stellar

Overview · Features · Screens · Quick Start · Contributing


Currently Building

Feature Status Branch
Discover feed with genre filters ✅ Done main
Earnings screen with one-tap withdraw ✅ Done main
Beat upload from phone audio library 🔄 In Progress feat/mobile-upload
Push notification on beat sale 🔄 In Progress feat/push-notifications
App Store / Play Store release 📋 Planned

Overview

Producers in emerging markets are mobile-first. They shouldn't need a laptop to check if a beat sold, withdraw earnings, or upload a new track.

Crate Mobile brings the full marketplace to iOS and Android. Built with Expo 53 and Expo Router for file-based navigation, NativeWind for Tailwind-style CSS, and @stellar/stellar-sdk for direct contract interaction — no wallet browser extension required.

"Most producers making beats in Lagos, Accra, or Nairobi are doing it on a phone. Crate is built for them."


Features

  • Discover feed — Browse beats by genre (Trap, R&B, Drill, Afrobeats, Lo-Fi) and BPM
  • Live earnings — Real-time XLM balance pulled directly from the Soroban contract
  • One-tap withdraw — Pull accumulated earnings to your Stellar wallet in seconds
  • Upload from phone — Select audio from your library, set pricing, list on-chain
  • Push notifications — Get notified the moment a beat sells
  • Secure wallet storage — Keypair managed with expo-secure-store, never leaves the device
  • Dark theme — Same #0a0a0a / #facc15 design system as the web app

Screens

Tab Description
Discover Beat grid with search + genre/BPM filter chips
Upload Audio picker + pricing form + on-chain submit
Earnings Live balance, withdrawal history, one-tap withdraw
Profile Wallet management, your listings, settings

Tech Stack

Layer Technology
Framework Expo 53, React Native 0.79
Navigation Expo Router 5 (file-based tabs)
Styling NativeWind (Tailwind for React Native)
Stellar @stellar/stellar-sdk
Wallet expo-secure-store — keypair encrypted on-device
Notifications expo-notifications
Audio expo-av for 30-second beat previews
File picker expo-document-picker for audio upload

Quick Start

Prerequisites

  • Node.js 20+
  • Expo Go app on your phone or iOS/Android simulator
# Clone
git clone https://github.com/Crate-Protocol/crate-mobile.git
cd crate-mobile

# Install
npm install

# Configure
cp .env.example .env

# Start
npx expo start

Scan the QR code with Expo Go or press i (iOS) / a (Android).

Environment Variables

EXPO_PUBLIC_CONTRACT_ID=CA7DGEWWS3VH5J2I4I7FFEB5UHK2MJSYWDKDQKXQM7GDNLI2IRATDTLG
EXPO_PUBLIC_NETWORK=TESTNET
EXPO_PUBLIC_HORIZON_URL=https://horizon-testnet.stellar.org
EXPO_PUBLIC_API_URL=http://localhost:3001

Project Structure

app/
├── _layout.tsx          # Root layout — dark theme, fonts
└── (tabs)/
    ├── _layout.tsx      # Bottom tab bar (4 tabs)
    ├── index.tsx        # Discover — beat feed + filters
    ├── upload.tsx       # Upload — audio + pricing form
    ├── earnings.tsx     # Earnings — balance + history
    └── profile.tsx      # Profile — wallet + settings

src/
├── components/
│   ├── SampleCard.tsx   # Beat card with waveform bars
│   └── WaveformBars.tsx # Decorative audio visualization
├── hooks/
│   └── useWallet.ts     # Keypair generation + secure storage
└── constants/
    └── theme.ts         # Design tokens

Design Tokens

// src/constants/theme.ts
export const theme = {
  colors: {
    bg:      "#0a0a0a",   // App background
    surface: "#111111",   // Cards, inputs
    border:  "#1a1a1a",   // Dividers
    accent:  "#facc15",   // Primary action (yellow)
    text:    "#ffffff",   // Primary text
    muted:   "#737373",   // Secondary text
  },
}

Building for Production

# Requires Expo EAS account
npx eas build --platform ios
npx eas build --platform android
npx eas build --platform all

Contributing

# Fork → clone → branch
git checkout -b feat/your-feature

# Make changes, then open a PR

Ecosystem

Repo Description
crate-frontend React 18 + TypeScript web app
crate-backend Node.js API, IPFS proxy, analytics
crate-contracts Soroban smart contracts (Rust)

License

MIT — see LICENSE


Crate
Built on Stellar · React Native · Open Source

Stars Forks Issues

About

Crate — React Native + Expo mobile app for producers on the go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors