Blockchain-based crowdfunding platform on the Stellar Network
Transparent Β· Borderless Β· Secure
OrbitChain is a full-featured, decentralized crowdfunding platform that leverages the Stellar blockchain to enable transparent, borderless fundraising. Project creators can raise funds in XLM, USDC, or any Stellar-based asset, while donors benefit from complete on-chain visibility β every contribution is verifiable on the Stellar ledger.
The platform serves three primary audiences:
- Donors β Discover and contribute to global fundraising campaigns using their preferred Stellar wallet.
- Creators β Launch social impact projects, track donations in real time, and withdraw funds directly on-chain.
- Admins β Oversee the ecosystem through campaign approval workflows, KYC management, and analytics dashboards.
Built with Next.js 14, the Stellar ecosystem, and a modern TypeScript stack, OrbitChain provides a performant, responsive, and accessible user experience across devices.
| Feature | Description |
|---|---|
| Campaign Discovery | Browse, search, and filter campaigns by category, urgency, and verification status |
| Multi-Asset Donations | Contribute in XLM, USDC, NGNT, or any Stellar-based asset |
| Wallet Integration | Connect via Freighter, Albedo, LOBSTR, Rabet, xBull, Hana, or WalletConnect |
| On-Chain Transparency | Every donation is recorded on the Stellar ledger and publicly verifiable |
| Bookmarks | Save and manage favorite campaigns for quick access |
| Feature | Description |
|---|---|
| Campaign Creation | Launch projects with rich media, milestones, and funding goals |
| Multi-Currency Goals | Accept contributions in XLM, USDC, and custom Stellar assets |
| Real-Time Tracking | Live donation feed, funding progress charts, and analytics |
| Direct Withdrawals | Withdraw funds directly to any Stellar wallet address |
| Draft Management | Save and resume campaign drafts before publishing |
| Feature | Description |
|---|---|
| Campaign Moderation | Review, approve, or reject submitted campaigns |
| User Management | Manage user roles and KYC verification status |
| Withdrawal Oversight | Approve, reject, and track withdrawal requests |
| Analytics Dashboard | Platform-wide metrics, reports, and exportable data |
| Audit Logs | Comprehensive activity logs for compliance and security |
- Dark Mode β Full dark mode support with system preference detection and smooth transitions
- Responsive Design β Optimized for desktop, tablet, and mobile devices
- Accessibility β WCAG-compliant components with keyboard navigation and screen reader support
- SEO Optimized β Dynamic Open Graph tags, structured data, sitemap, and canonical URLs
- Image Optimization β Cloudinary integration with automatic WebP/AVIF conversion, responsive sizing, and lazy loading
- Animations β Fluid page transitions and micro-interactions powered by Framer Motion
orbitchain-web/
βββ app/ # Next.js 14 App Router (pages, layouts, API routes)
β βββ (main)/ # Main application layout and pages
β βββ admin/ # Admin dashboard pages
β βββ auth/ # Authentication pages (login, signup, password reset)
β βββ campaigns/ # Campaign listing and detail pages
β βββ dashboard/ # Creator dashboard pages
β βββ projects/ # Project detail and discovery pages
β βββ api/ # API route handlers
βββ components/ # Reusable UI components
β βββ ui/ # Primitive UI components (Button, Card, Modal, Toast, etc.)
β βββ campaigns/ # Campaign-related components
β βββ donations/ # Donation flow components (modal, asset selector, chart)
β βββ projects/ # Project detail components
β βββ admin/ # Admin panel components
β βββ legal/ # Legal and policy page components
βββ hooks/ # Custom React hooks
βββ store/ # Zustand state management stores
βββ lib/ # Core utilities and services
β βββ stellar/ # Stellar SDK - config, validation, formatting, connection
β βββ auth/ # Authentication utilities and session management
β βββ api/ # API client and endpoint modules
β βββ cache/ # Caching utilities
β βββ env.ts # Type-safe environment variable validation
βββ types/ # TypeScript type definitions
βββ utils/ # General utility functions
βββ features/ # Feature-specific logic
βββ data/ # Static data (FAQ, etc.)
βββ contexts/ # React contexts (Theme, etc.)
βββ docs/ # Documentation
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js 14 (App Router) | Server-side rendering, API routes, file-based routing |
| Language | TypeScript (strict mode) | Type safety across the entire codebase |
| Styling | TailwindCSS 3 | Utility-first CSS with dark mode support |
| Blockchain | Stellar SDK + Soroban RPC | On-chain transactions, wallet interaction, smart contracts |
| State Management | Zustand 5 | Lightweight, TypeScript-first state management |
| Server State | TanStack React Query 5 | Data fetching, caching, and mutation management |
| Authentication | NextAuth.js 4 | OAuth (Google, GitHub), email/password, session management |
| Forms | React Hook Form + Yup/Zod | Performant forms with schema validation |
| UI/UX | Framer Motion, Recharts, Lucide | Animations, charts, and icons |
| Image Management | Cloudinary (next-cloudinary) | Upload, optimization, and CDN delivery |
| Notifications | Custom toast system | In-app notifications and alerts |
- Node.js 18+ (LTS recommended)
- npm 9+ (or pnpm, yarn)
- A Stellar wallet extension (Freighter, Albedo, etc.) for local testing
- (Optional) PostgreSQL database for server-side features
# Clone the repository
git clone https://github.com/your-username/orbitchain-web.git
cd orbitchain-web
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env.local
# Edit .env.local with your configuration (see Configuration section)
# Start the development server
npm run devThe application will be available at http://localhost:3000.
Copy .env.example to .env.local and configure the following required variables:
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_URL |
Backend API base URL |
NEXT_PUBLIC_STELLAR_NETWORK |
testnet, mainnet, or futurenet |
NEXT_PUBLIC_STELLAR_HORIZON_URL |
Horizon server URL |
NEXT_PUBLIC_SOROBAN_RPC_URL |
Soroban RPC endpoint |
NEXT_PUBLIC_STELLAR_NETWORK_PASSPHRASE |
Network passphrase |
AUTH_SECRET |
JWT/session signing secret (32+ characters) |
DATABASE_URL |
PostgreSQL connection string |
See README.env.md for the full list of optional variables and wallet configuration.
npm run devnpm run build
npm start| Script | Command | Description |
|---|---|---|
dev |
npm run dev |
Start development server |
build |
npm run build |
Build for production |
start |
npm run start |
Start production server |
lint |
npm run lint |
Run ESLint |
type-check |
npm run type-check |
Run TypeScript type checking |
storybook |
npm run storybook |
Launch Storybook component library |
build-storybook |
npm run build-storybook |
Build Storybook for deployment |
OrbitChain supports multiple Stellar wallets:
- Freighter β Browser extension wallet
- Albedo β OAuth-based wallet integration
- LOBSTR β Mobile-first wallet
- Rabet β Browser extension wallet
- xBull β Cross-platform wallet
- Hana β Crypto-native wallet
- WalletConnect β Mobile wallet support via QR code
We welcome contributions! Please follow these guidelines:
-
Fork the repository and create a feature branch:
git checkout -b feat/your-feature-name
-
Write clear, conventional commit messages:
feat: add wallet connection modal fix: resolve donation API error refactor: clean up campaign creation form docs: update API documentation -
Ensure code quality:
npm run lint # Check for lint issues npm run type-check # Verify TypeScript types
-
Open a Pull Request from your fork back to the
mainbranch with a clear description of the change.
# Run Storybook component tests
npm run storybook
# Run type checking
npm run type-check
# Run linter
npm run lintThis project is licensed under the MIT License β see the LICENSE file for details.