Boundless is a decentralized crowdfunding and grants platform built on the Stellar blockchain that empowers creators, innovators, and communities to launch and fund projects in a transparent and secure manner. Leveraging Soroban smart contracts, the platform facilitates milestone-based fund releases with built-in escrow mechanisms, ensuring that funds are only released when specific project milestones are met and independently verified. This approach minimizes risks for backers and provides creators with the financial support they need to drive innovation forward.
- Decentralized crowdfunding and grant management on the Stellar blockchain
- Milestone-based fund distribution using escrow and smart contracts
- Secure and transparent community voting and feedback systems
- Flexible user roles including campaign creators, grant applicants, managers, and admins
- Integrated authentication with email, social login, and KYC verification
- Multi-wallet support for Stellar ecosystem (Freighter, Albedo, Rabet, xBull, Lobstr, Hana, HOT Wallet)
- Comprehensive backend support with RESTful API endpoints and robust security measures
- Automated contract deployment and upgrade processes using CI/CD pipelines
- Smart Contracts: Rust (Soroban SDK)
- Frontend: TypeScript, Next.js 15, React 19, Tailwind CSS, Zustand
- Backend: Node.js, RESTful APIs, Prisma ORM, PostgreSQL
- Blockchain Integration: Stellar SDK, Soroban smart contracts
- Authentication: NextAuth.js v5 with Google OAuth and credentials
- UI Components: Radix UI primitives with custom styling
- Animations: GSAP, Framer Motion
- DevOps: GitHub Actions, Vercel, Docker
boundless/
βββ app/ # Next.js App Router
β βββ (landing)/ # Landing page routes
β β βββ about/ # About page components
β β βββ blog/ # Blog functionality
β β βββ code-of-conduct/ # Code of conduct page
β β βββ contact/ # Contact page
β β βββ disclaimer/ # Disclaimer page
β β βββ grants/ # Grants information
β β βββ hackathons/ # Hackathon pages
β β βββ privacy/ # Privacy policy
β β βββ projects/ # Projects page
β β βββ terms/ # Terms of service
β β βββ waitlist/ # Waitlist signup
β β βββ layout.tsx # Landing layout
β β βββ page.tsx # Landing page
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ waitlist/ # Waitlist API
β βββ auth/ # Authentication pages
β β βββ email-verified/ # Email verification success
β β βββ forgot-password/ # Password reset request
β β βββ reset-password/ # Password reset form
β β βββ signin/ # Sign in page
β β βββ signup/ # Sign up page
β β βββ verify-email/ # Email verification
β βββ comment/ # Comment functionality
β βββ dashboard/ # User dashboard
β βββ preview/ # Preview functionality
β βββ test/ # Test pages
β βββ user/ # User-specific pages
β β βββ campaigns/ # User campaigns
β β βββ projects/ # User projects
β β βββ layout.tsx # User layout
β βββ error.tsx # Error page
β βββ favicon.ico # Site favicon
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ loading.tsx # Loading page
β βββ not-found.tsx # 404 page
β βββ providers.tsx # App providers
β βββ robots.ts # Robots.txt
β βββ sitemap.ts # Sitemap generation
βββ components/ # React components
β βββ About-Mission/ # About mission components
β βββ auth/ # Authentication components
β βββ buttons/ # Button components
β βββ campaigns/ # Campaign-related components
β β βββ back-project/ # Project backing flow
β β βββ backing-history/ # Backing history
β β βββ launch/ # Campaign launch
β β βββ LaunchCampaignFlow.tsx
β βββ comment/ # Comment components
β βββ comments/ # Comments system
β βββ connect-wallet/ # Wallet connection UI
β βββ landing-page/ # Landing page components
β βββ layout/ # Layout components
β βββ loading/ # Loading components
β βββ overview/ # Overview components
β βββ project/ # Project components
β βββ providers/ # Provider components
β βββ sheet/ # Sheet components
β βββ skeleton/ # Skeleton components
β βββ stepper/ # Stepper components
β βββ testimonials/ # Testimonial components
β βββ ui/ # Reusable UI components (48 components)
β βββ wallet/ # Wallet-related components
β βββ waitlist/ # Waitlist components
βββ hooks/ # Custom React hooks
β βββ use-account.ts # Account management hook
β βββ use-auth.ts # Authentication hook
β βββ use-fadegradient.ts # Fade gradient hook
β βββ use-local-storage-draft.ts # Local storage draft hook
β βββ use-mobile.ts # Mobile detection hook
β βββ use-notifications.ts # Notifications hook
β βββ use-wallet-protection.ts # Wallet protection hook
β βββ use-wallet.ts # Wallet management hook
βββ lib/ # Utility libraries
β βββ api/ # API client and types
β βββ auth/ # Authentication utilities
β βββ data/ # Data utilities
β βββ stores/ # Zustand stores
β βββ wallet-utils.ts # Wallet utilities
β βββ utils.ts # General utilities
β βββ config.ts # Configuration
β βββ logger.ts # Logging utilities
β βββ metadata.ts # Metadata utilities
β βββ mock.ts # Mock data
β βββ motion.ts # Motion utilities
β βββ structured-data.ts # Structured data
βββ types/ # TypeScript type definitions
β βββ project.ts # Project types
β βββ backing-history.ts # Backing history types
β βββ logger.types.ts # Logger types
βββ public/ # Static assets
β βββ wallets/ # Wallet icons
β βββ landing/ # Landing page assets
β βββ auth/ # Authentication assets
β βββ empty/ # Empty state assets
β βββ team/ # Team assets
βββ scripts/ # Build and deployment scripts
β βββ setup-branch-protection.sh
βββ constants/ # Application constants
βββ auth.ts # NextAuth configuration
βββ middleware.ts # Next.js middleware
βββ next.config.ts # Next.js configuration
βββ tsconfig.json # TypeScript configuration
βββ eslint.config.mjs # ESLint configuration
βββ postcss.config.mjs # PostCSS configuration
βββ components.json # UI components configuration
βββ vercel.json # Vercel deployment configuration
βββ package.json # Dependencies and scripts
βββ package-lock.json # Package lock file
βββ CONTRIBUTING.md # Contribution guidelines
βββ DEVELOPMENT.md # Development workflow
βββ LICENSE # MIT License
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher) - Download here
- npm or yarn - Package manager
- Git - Version control
- Docker (optional) - For local blockchain and database services
-
Fork the repository:
- Go to boundless-frontend
- Click the "Fork" button in the top-right corner
- This creates a copy of the repository in your GitHub account
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/boundless-frontend.git cd boundless-frontend -
Add upstream remote:
git remote add upstream https://github.com/boundlessfi/boundless-frontend.git
-
Install dependencies:
npm install # or yarn install -
Configure environment variables: Create a
.env.localfile in the root directory:touch .env.local
Fill in the required environment variables in
.env.local:# NextAuth Configuration NEXTAUTH_SECRET=your-secret-key NEXTAUTH_URL=http://localhost:3000 # Google OAuth (optional) GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret # API Configuration NEXT_PUBLIC_API_URL=http://localhost:8000/api # Stellar Configuration NEXT_PUBLIC_STELLAR_NETWORK=testnet NEXT_PUBLIC_APP_URL=http://localhost:3000 # Trustless Work Configuration (optional) # Get your API key from: https://docs.trustlesswork.com NEXT_PUBLIC_TRUSTLESS_WORK_API_KEY=your-trustless-work-api-key
-
Run the development server:
npm run dev # or yarn dev -
Open your browser: Navigate to http://localhost:3000 to see the application.
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Run ESLint with auto-fix
npm run type-check # Run TypeScript type checking
npm run format # Format code with Prettier
npm run format:check # Check formatting without changing files
# Testing
npm run test # Run tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage
# Git Hooks
npm run prepare # Install Husky hooksflowchart TD
A["Step 1 - Visit Boundless Platform"] --> B1["Step 2 - Sign Up and KYC Verification"]
B1 --> B2["Step 3 - Choose Role: Crowdfund Creator, Grant Applicant, Grant Creator or Admin"]
B2 -- Crowdfund Creator --> CF1["Submit Project Idea for Validation"]
CF1 --> CF2["Public Feedback and Voting"]
CF2 --> CF3{"Does Idea Meet Threshold?"}
CF3 -- No --> CFX["Rejected β Back to Editing or Archive"]
CF3 -- Yes --> CF4["Create Campaign with Milestones and Funding Goal"]
CF4 --> CF5["Campaign Goes Live with Deadline"]
CF5 --> CF6["Users Back Project β Funds Held in Escrow"]
CF6 --> CF7{"Goal Met by Deadline?"}
CF7 -- No --> CF8["Refund All Backers"]
CF7 -- Yes --> CF9["Project Execution Starts"]
CF9 --> CF10["Submit Milestone Proof"]
CF10 --> CF11["Admin or DAO Reviews Milestone"]
CF11 --> CF12{"Was Milestone Approved?"}
CF12 -- No --> CF13["Send Back for Revision or Cancel Project"]
CF12 -- Yes --> CF14["Release Funds for Milestone"]
CF14 --> CF9 & Z["Project Completed"]
B2 -- Grant Applicant --> G1["Submit Proposal for Grant"]
G1 --> G2["Community and Admin Review"]
G2 --> G3{"Approved for Grant?"}
G3 -- No --> GX["Rejected β Back to Edit or Archive"]
G3 -- Yes --> G4["Grant Creator Reviews and Edits Milestones"]
G4 --> G5["Final Approval and Escrow Lock"]
G5 --> G6["Project Execution Starts"]
G6 --> G7["Submit Milestone Proof"]
G7 --> G8["Admin or DAO Reviews"]
G8 --> G9{"Milestone Approved?"}
G9 -- No --> G10["Revise or Pause Grant"]
G9 -- Yes --> G11["Release Funds for Milestone"]
G11 --> G6 & Z
B2 -- Grant Creator --> GR1["Create Grant Program"]
GR1 --> GR2["Define Rules and Milestones"]
GR2 --> GR3["Launch Grant for Applications"]
GR3 --> GR4["Review Submitted Proposals"]
GR4 --> GR5{"Approve Any?"}
GR5 -- No --> GRX["Close Grant or Extend Deadline"]
GR5 -- Yes --> GR6["Approve and Escrow Funds"]
GR6 --> GR7["Monitor Progress"]
GR7 --> GR8["Approve or Reject Milestones"]
B2 -- Admin --> AD1["Admin Dashboard Access"]
AD1 --> AD2["Manage KYC Submissions"] & AD3["Oversee Campaigns and Grants"]
AD3 --> AD4["Review Flagged Projects or Milestones"]
AD4 --> AD5{"Valid Issue Found?"}
AD5 -- Yes --> AD6["Pause or Cancel Project, Initiate Refund"]
AD5 -- No --> AD7["Approve and Allow Continuation"]
GR8 --> Z
AD6 --> Z
AD7 --> Z
H1["Organizer Creates Hackathon Grant"] --> H2["Set Deadline, Rules, Prize Pool"]
H2 --> H3["Hackathon Goes Live"]
H3 --> H4["Participants Apply or Join"]
H4 --> H5["Build + Submit Final Project"]
H5 --> H6["Judging Panel + Public Voting"]
H6 --> H7["Select Winners"]
H7 --> H8["Disburse Prizes via Soroban"]
We welcome contributions from the community! Please follow these steps:
- Fork the repository and create your branch from
main - Clone your fork and set up the project locally
- Create a descriptive branch name (e.g.,
feature/add-auth,fix/typo-in-readme) - Make your changes with clear, concise commits following Conventional Commits
- Write tests for new features or bug fixes
- Ensure all tests pass and code quality checks pass
- Open a pull request with a clear description of your changes
For detailed contribution guidelines, see CONTRIBUTING.md.
For development workflow and best practices, see DEVELOPMENT.md.
This project is licensed under the MIT License. See LICENSE for details.
- Stellar Development Foundation
- Soroban SDK
- Next.js, Tailwind CSS, Zustand
- Radix UI for accessible components
- GSAP for animations
- Docker, Vercel, GitHub Actions
- Documentation: GitHub Wiki
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: hello@boundlessfi.xyz
Made with β€οΈ by the Boundless team