Your Circle, Your Bank - Stack Together, Claim Sovereignty on Bitcoin's First ZK Rollup
Traditional banking and savings face critical challenges:
- Banks Control Your Money - You need permission to access, send, or save your own funds
- Geographic Barriers - Savings tools aren't available everywhere, exclude billions globally
- Lack of Sovereignty - Third parties can freeze, seize, or restrict your wealth
- Isolated Savings - Saving alone lacks accountability and motivation
- No Transparency - Hidden fees, opaque terms, and unclear savings progress
- Technology Barriers - Bitcoin and DeFi can feel intimidating and complex to adopt alone
Your circle, your bank. Xersha empowers you to stack Bitcoin with friends, claim financial sovereignty, and access borderless financeβall without traditional banks.
Built on Citrea (Bitcoin's first ZK Rollup), Xersha combines the security of Bitcoin with the accountability of saving together. Take control of your wealth, save without borders, and reach your goals faster with your closest circle.
- Create or Join Circles - Start a savings circle for any goal (vacation, wedding, community project)
- Invite Friends - Add members to save together and stay accountable
- Track Progress - See real-time updates as your circle reaches milestones
- Celebrate Together - Share achievements through a social feed experience
- Secure & Transparent - Built on Bitcoin for censorship-resistant, transparent savings
Built on Citrea - Bitcoin's first zero-knowledge rollup that brings programmability to Bitcoin while maintaining its security guarantees.
What is Citrea?
- Bitcoin's First ZK Rollup - Scalable Layer 2 built on Bitcoin
- EVM Compatible - Full support for Solidity smart contracts
- Trust-Minimized Bridge - Clementine bridge using BitVM technology
- Bitcoin Security - Inherits Bitcoin's security model while adding programmability
Why Citrea for Cirkulo?
- β‘ Smart Contracts - Programmable savings circles and automated distributions
- π Bitcoin Settlement - Final settlement on Bitcoin's secure base layer
- π Scalability - Handle thousands of circles without Bitcoin's throughput limitations
- π οΈ Developer Friendly - Build with familiar EVM tools (Solidity, Hardhat, etc.)
- β Your Circle, Your Bank - You hold the keys, you control the fundsβnot banks, not us, not anyone
- β Financial Sovereignty - True ownership and control over your wealth
- β Save Without Borders - Access global finance from anywhere, no geographic restrictions
- β Full Transparency - Every contribution recorded on Bitcoin's immutable blockchain
- β Censorship-Resistant - No one can freeze, seize, or block your savings
- β Smart Contract Automation - Programmable savings circles with transparent rules
- β Stack Together - Bitcoin adoption is easier and more fun with friends by your side
Track all your active circles, view contribution history, and celebrate milestones with your community through an engaging social feed.
New to Bitcoin or crypto? No problem! Cirkulo makes it easy to get started:
- Join circles with friends who can guide you through your first transactions
- Learn together in a supportive community environment
- No judgment, no pressure - everyone starts somewhere
- Bitcoin and Citrea might sound unfamiliar, but your friends make it approachable
Discover and join community fundraising initiatives:
- π± Community gardens
- π Animal shelter support
- π School supplies drives
- π Medical funds for friends
- β½ Youth sports programs
- π³ Environmental projects
Savings circles powered by smart contracts on Citrea (Bitcoin Layer 2):
- Real-time progress tracking with on-chain verification
- Immutable transaction history settled on Bitcoin
- Programmable distribution rules for circle completion
- Zero-knowledge proofs for enhanced privacy
- No hidden fees or intermediaries
- Install on any device (iOS, Android, Desktop)
- Works offline with service workers
- Native app-like experience
- Fast, responsive, and accessible
- Share updates and celebrations
- React to milestones with emojis
- Comment on achievements
- Tag hashtags for discoverability
- See member activity in real-time
- Total saved across all circles
- Active circles overview
- Goals completed counter
- Monthly savings trends
- Individual circle progress bars
- Citrea - Bitcoin's first zero-knowledge rollup
- Smart Contracts - Deployed on Citrea testnet for savings circle logic
- EVM Compatibility - Solidity development with familiar tooling
- BitVM Bridge - Trust-minimized Clementine bridge to Bitcoin
- Bitcoin Settlement - Final settlement on Bitcoin's base layer
- React Router 7 - Modern SPA framework with file-based routing
- TypeScript - Type-safe development with strict mode
- Vite - Lightning-fast HMR and build tooling
- Tailwind CSS v4 - Latest version with
@themedirective - OKLCH Color Space - Perceptually uniform colors for better gradients
- shadcn/ui Patterns - Accessible component architecture
- Lucide React - Beautiful, consistent iconography
- Custom Momentum Wave Logo - 6 logo concepts designed in-house
- Service Workers - Offline support and caching
- Web App Manifest - Installable on all platforms
- Responsive Design - Mobile-first approach (sm:, md:, lg:, xl: breakpoints)
- Accessibility - WCAG AA compliant with proper ARIA labels
- React 19 - Latest with new hooks and features
- React Router Loaders - Data fetching and caching
- Local State - useState, useReducer for component state
- Context API - Authentication and global state
- TypeScript 5.9 - Latest type system features
- ESLint + Prettier - Code quality and formatting
- Hot Module Replacement - Instant feedback during development
- Path Aliases - Clean imports with
app/prefix
- Node.js 18+ (LTS recommended)
- npm 9+ or pnpm 8+
- Git for cloning the repository
# Clone the repository
git clone https://github.com/pragma-collective/cirkulo.git
cd cirkulo
# Navigate to PWA directory
cd cirkulo-pwa
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:5173
# Start dev server with HMR
npm run dev
# Type checking
npm run typecheck
# Production build
npm run build
# Start production server
npm startCreate a .env file in the cirkulo-pwa directory:
# Optional: Dynamic.xyz authentication environment ID
VITE_DYNAMIC_ENVIRONMENT_ID=your_environment_id# Build Docker image
docker build --build-arg VITE_DYNAMIC_ENVIRONMENT_ID=your_id -t cirkulo-pwa .
# Run container
docker run -p 3000:3000 cirkulo-pwaThe production build uses Caddy for serving with SPA fallback routing.
cirkulo/
βββ cirkulo-pwa/ # Main PWA application
β βββ app/
β β βββ components/
β β β βββ landing/ # Landing page sections
β β β βββ dashboard/ # Dashboard components
β β β βββ explore/ # Explore page components
β β β βββ ui/ # Reusable UI components
β β β βββ layouts/ # Layout components
β β βββ routes/ # Page routes
β β β βββ home.tsx # Landing page
β β β βββ dashboard.tsx # Main dashboard
β β β βββ explore.tsx # Public circles
β β β βββ onboarding.tsx # User onboarding
β β β βββ login.tsx # Authentication
β β βββ lib/ # Utilities and helpers
β β βββ types/ # TypeScript type definitions
β β βββ context/ # React context providers
β β βββ app.css # Global styles with OKLCH colors
β βββ public/ # Static assets
β β βββ manifest.json # PWA manifest
β β βββ favicon.svg # App icon
β βββ react-router.config.ts # Router configuration (SPA mode)
β βββ tailwind.config.ts # Tailwind customization
β βββ package.json
βββ README.md # This file
app/routes.ts- Route definitions using React Router 7app/app.css- OKLCH color system and Tailwind directivesapp/components/xersha-logo.tsx- Active logo (Momentum Wave)app/components/layouts/authenticated-layout.tsx- Shared layout for app pagesapp/lib/mock-data.ts- Sample data for developmentpublic/manifest.json- PWA configuration
We use the OKLCH color space for perceptually uniform colors and smoother gradients:
- Primary (Orange):
#ea7c3f- Inspired by Citrea, our Bitcoin Layer 2 - Secondary (Purple): Accent color for variety and visual interest
- Semantic Colors: Success (teal), Warning (amber), Error (red), Info (blue)
- WCAG AA Compliant: All text meets 4.5:1 contrast ratio minimum
Designed 6 unique logo concepts, each with Icon, Horizontal, and Full variants:
- Momentum Wave (Current) - Three ascending waves representing growth
- Spark Circle - Celebration and community energy
- Cosmic Unity - Interconnected orbits
- Golden Abundance - Prosperity and wealth
- Unity Circles - Interlocking rings of community
- Connected X - Network effect visualization
View all logos at /logo-showcase route.
- Breakpoints: sm (640px), md (768px), lg (1024px), xl (1280px)
- Bottom Navigation: Mobile-only tab bar (hidden md:)
- Desktop Navigation: Header nav links (visible md:+)
- Adaptive Layouts: 1-col mobile, 2-col tablet, 3-col desktop
- Touch Targets: Minimum 44x44px for WCAG AAA compliance
- β Semantic HTML with proper heading hierarchy
- β ARIA labels and roles throughout
- β Keyboard navigation with visible focus indicators
- β Screen reader friendly (tested with NVDA, VoiceOver)
- β Color contrast compliance (WCAG AA)
- β Progress bars with proper aria attributes
- β Skip links for main content
- β€οΈ Passion for financial inclusion and community
- β‘ Speed - Vite + React Router 7 for instant dev experience
- π¨ Design - Custom OKLCH color system and 6 logo concepts
- βΏ Accessibility - WCAG AA compliant from day one
- π± Mobile-First - Progressive Web App architecture
- π Citrea - Bitcoin's first ZK Rollup for programmable savings
- π Security - BitVM bridge and Bitcoin settlement for trust-minimized Layer 2
Made with β€οΈ by Pragma Collective
Your circle, your bank. Stack together, claim sovereignty. Save without borders on Bitcoin.