Skip to content

Latest commit

 

History

History
294 lines (156 loc) · 4.66 KB

File metadata and controls

294 lines (156 loc) · 4.66 KB

Technology Stack Documentation

  1. Stack Overview

Last Updated: 11 Feb 2026 Version: 1.0

Architecture Pattern

Type: Client-Side Web3 dApp (On-Chain + Mobile Client)

Pattern: Wallet-Native Mobile Architecture

Deployment: Mobile App (iOS / Android) + Solana Blockchain

  1. Frontend Stack (Mobile – Expo) Core Framework

Framework: Expo (React Native)

Version: SDK 50+

Reason: Rapid cross-platform development, OTA updates, strong RN ecosystem

Documentation: https://docs.expo.dev/

License: MIT

UI Library

Library: React Native

Version: 0.73+ (via Expo)

Reason: Cross-platform native UI, component model consistency

Documentation: https://reactnative.dev/

License: MIT

Language / Type Safety

Language: TypeScript

Version: 5.x

Configuration: Strict mode enabled

Reason: Safer wallet interactions & transaction logic, fewer runtime failures

Navigation

Library: Expo Router

Version: Latest

Reason: File-based routing, predictable navigation structure

Documentation: https://expo.github.io/router/

License: MIT

State Management

Library: Zustand

Version: 4.x

Reason: Minimal boilerplate, ideal for wallet & session state

Documentation: https://github.com/pmndrs/zustand

License: MIT

Styling / UI System

Approach: NativeWind (Tailwind for React Native)

Version: Latest

Reason: Utility-first styling with RN compatibility

Documentation: https://www.nativewind.dev/

License: MIT

Wallet Integration

Library: Solana Mobile Wallet Adapter (MWA)

Packages:

@solana-mobile/mobile-wallet-adapter-protocol

@solana-mobile/mobile-wallet-adapter-react-native

Reason: Standard wallet connection & signing flow on mobile

Documentation: https://solanamobile.com/

License: Apache 2.0

Blockchain Client

Library: @solana/web3.js

Version: 1.x

Reason: Official SDK for transactions & program interaction

Documentation: https://solana-labs.github.io/solana-web3.js/

License: MIT

Secure Key / Session Storage

Library: Expo Secure Store

Reason: Encrypted storage for non-sensitive session data

Documentation: https://docs.expo.dev/versions/latest/sdk/securestore/

Forms / Validation

Library: React Hook Form

Validation: Zod

Reason: Performance & predictable validation behavior

  1. Backend Stack (On-Chain Logic) Blockchain Platform

Platform: Solana

Networks: Devnet (development), Mainnet (production)

Reason: High throughput, low fees, fast confirmation times

Smart Contract Layer

Language: Rust

Framework: Anchor

Reason: Safer program development, IDL generation, reduced boilerplate

Documentation: https://www.anchor-lang.com/

License: Apache 2.0

Program Design

Model: Program Derived Addresses (PDAs)

Reason: Deterministic accounts & secure rule enforcement

NFT Standard / Metadata

Standard: Metaplex Token Metadata Program

Reason: Solana ecosystem compatibility for NFTs

Documentation: https://docs.metaplex.com/

Decentralized Storage

Options: Arweave / IPFS

Use Cases: NFT metadata, ticket artwork, event details

  1. DevOps & Infrastructure Version Control

System: Git

Platform: GitHub

Branch Strategy:

main → Production

develop → Staging

feature/* → Feature branches

CI/CD

Platform: GitHub Actions

Workflows:

Type checking & linting

Expo build validation

Anchor build & tests

Mobile App Distribution

Tooling: Expo Application Services (EAS)

Reason: Simplified iOS / Android builds & submissions

Documentation: https://docs.expo.dev/eas/

Hosting (Optional APIs / Indexers)

Platform: Railway / Fly.io / Supabase Edge Functions

Use Cases:

Event indexing

Analytics

Notification helpers

Monitoring

Error Tracking: Sentry (React Native SDK)

Reason: Runtime error visibility

Documentation: https://docs.sentry.io/

  1. Testing Mobile Testing

Unit Tests: Jest / Vitest

Component Tests: React Native Testing Library

E2E Tests: Detox (optional for MVP)

Program Testing

Framework: Anchor Test Framework

Reason: Deterministic Solana program validation

Coverage Target

Goal: 80% coverage on critical transaction logic

  1. Development Tools Code Quality

Linter: ESLint

Formatter: Prettier

Reason: Consistent style & early bug detection

IDE Recommendations

Editor: VS Code

Extensions:

ES7+ React Snippets

ESLint

Prettier

Rust Analyzer

Blockchain Tooling

Solana CLI → Keypairs, cluster config, deployments

Anchor CLI → Program builds, tests, IDL management

  1. Environment Variables Required Variables
# Solana
EXPO_PUBLIC_SOLANA_RPC_URL="https://api.devnet.solana.com"
EXPO_PUBLIC_NETWORK="devnet"

# Program
EXPO_PUBLIC_PROGRAM_ID="YourProgramPublicKey"

# App
EXPO_PUBLIC_APP_NAME="Solana NFT Ticketing"

# Storage (Optional)
EXPO_PUBLIC_ARWEAVE_GATEWAY="https://arweave.net"
EXPO_PUBLIC_IPFS_GATEWAY="https://ipfs.io"

# Environment
NODE_ENV="development"