Bonded2/Bonded-App

1

stars

147

commits

JavaScript

primary language

Dec 17, 2025

updated

README

Bonded App

Project stewardship:
This repository is maintained as part of the Together Alone Ventures (TAV) research and product portfolio.
https://github.com/Together-Alone-Ventures/tav-org

Relationship verification app for immigration success. Privacy-first. AI runs fully in-browser. Storage on ICP blockchain.

Architecture

The Bonded app follows a clean separation of concerns:

  • Frontend: React PWA deployed to traditional web hosting (Vercel/Netlify)
  • Backend: Single ICP canister for secure blockchain storage
  • AI Processing: All AI models run client-side in the browser for privacy

Features

  • πŸ” Privacy-First: All AI processing happens in your browser - no data sent to external servers
  • πŸ€– AI-Powered Filtering: Automatic content filtering using in-browser AI models
  • πŸ’ Threshold Cryptography: 2-of-3 key management for relationship evidence
  • πŸ“± Progressive Web App: Install on your phone like a native app
  • πŸ”— Blockchain Storage: Immutable evidence storage on Internet Computer
  • 🌐 Offline-First: Works without internet, syncs when connected

Tech Stack

Frontend

  • React 18 with TypeScript
  • Vite for fast builds
  • PWA with offline support
  • @dfinity/agent for ICP communication
  • TensorFlow.js for in-browser AI
  • Tesseract.js for OCR

Backend

  • Rust canisters on Internet Computer
  • Stable memory for persistent storage
  • Threshold cryptography implementation

Getting Started

Prerequisites

  • Node.js 16+ and npm
  • DFX SDK for Internet Computer development
  • Git

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/bonded-app.git
cd bonded-app
  1. Install dependencies:
npm install
cd src/bonded-app-frontend && npm install
  1. Start local ICP network:
dfx start --clean
  1. Deploy backend canister:
dfx deploy bonded-app-backend
  1. Generate frontend declarations:
dfx generate bonded-app-backend
  1. Configure frontend environment:
cd src/bonded-app-frontend
cp env.example .env
# Edit .env with your canister ID
  1. Start frontend development server:
npm run dev

Deployment

See DEPLOYMENT.md for detailed deployment instructions.

Quick Deploy

Backend (ICP):

dfx deploy bonded-app-backend --network ic

Frontend (Vercel):

cd src/bonded-app-frontend
vercel

Project Structure

bonded-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ bonded-app-backend/     # Rust backend canister
β”‚   β”‚   β”œβ”€β”€ src/                # Rust source files
β”‚   β”‚   └── Cargo.toml          # Rust dependencies
β”‚   └── bonded-app-frontend/    # React PWA frontend
β”‚       β”œβ”€β”€ src/                # React source files
β”‚       β”œβ”€β”€ public/             # Static assets
β”‚       └── package.json        # Frontend dependencies
β”œβ”€β”€ dfx.json                    # ICP configuration
β”œβ”€β”€ package.json                # Root dependencies
└── DEPLOYMENT.md               # Deployment guide

Development

Frontend Development

cd src/bonded-app-frontend
npm run dev

Backend Development

dfx build
dfx deploy

Testing

# Test backend
dfx canister call bonded-app-backend health_check

# Test frontend
cd src/bonded-app-frontend
npm test

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • DFINITY Foundation for the Internet Computer platform
  • The open-source AI community for in-browser models
  • All contributors who have helped shape Bonded

Support

For support, email support@bonded.app or open an issue in this repository.

Contributors

okwareddevnest

83 commits

StephaneSavanah

37 commits

rodalbores

19 commits

renoschubert

4 commits

Bonded2/Bonded-App

1

stars

147

commits

JavaScript

primary language

Dec 17, 2025

updated

README

Bonded App

Project stewardship:
This repository is maintained as part of the Together Alone Ventures (TAV) research and product portfolio.
https://github.com/Together-Alone-Ventures/tav-org

Relationship verification app for immigration success. Privacy-first. AI runs fully in-browser. Storage on ICP blockchain.

Architecture

The Bonded app follows a clean separation of concerns:

  • Frontend: React PWA deployed to traditional web hosting (Vercel/Netlify)
  • Backend: Single ICP canister for secure blockchain storage
  • AI Processing: All AI models run client-side in the browser for privacy

Features

  • πŸ” Privacy-First: All AI processing happens in your browser - no data sent to external servers
  • πŸ€– AI-Powered Filtering: Automatic content filtering using in-browser AI models
  • πŸ’ Threshold Cryptography: 2-of-3 key management for relationship evidence
  • πŸ“± Progressive Web App: Install on your phone like a native app
  • πŸ”— Blockchain Storage: Immutable evidence storage on Internet Computer
  • 🌐 Offline-First: Works without internet, syncs when connected

Tech Stack

Frontend

  • React 18 with TypeScript
  • Vite for fast builds
  • PWA with offline support
  • @dfinity/agent for ICP communication
  • TensorFlow.js for in-browser AI
  • Tesseract.js for OCR

Backend

  • Rust canisters on Internet Computer
  • Stable memory for persistent storage
  • Threshold cryptography implementation

Getting Started

Prerequisites

  • Node.js 16+ and npm
  • DFX SDK for Internet Computer development
  • Git

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/bonded-app.git
cd bonded-app
  1. Install dependencies:
npm install
cd src/bonded-app-frontend && npm install
  1. Start local ICP network:
dfx start --clean
  1. Deploy backend canister:
dfx deploy bonded-app-backend
  1. Generate frontend declarations:
dfx generate bonded-app-backend
  1. Configure frontend environment:
cd src/bonded-app-frontend
cp env.example .env
# Edit .env with your canister ID
  1. Start frontend development server:
npm run dev

Deployment

See DEPLOYMENT.md for detailed deployment instructions.

Quick Deploy

Backend (ICP):

dfx deploy bonded-app-backend --network ic

Frontend (Vercel):

cd src/bonded-app-frontend
vercel

Project Structure

bonded-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ bonded-app-backend/     # Rust backend canister
β”‚   β”‚   β”œβ”€β”€ src/                # Rust source files
β”‚   β”‚   └── Cargo.toml          # Rust dependencies
β”‚   └── bonded-app-frontend/    # React PWA frontend
β”‚       β”œβ”€β”€ src/                # React source files
β”‚       β”œβ”€β”€ public/             # Static assets
β”‚       └── package.json        # Frontend dependencies
β”œβ”€β”€ dfx.json                    # ICP configuration
β”œβ”€β”€ package.json                # Root dependencies
└── DEPLOYMENT.md               # Deployment guide

Development

Frontend Development

cd src/bonded-app-frontend
npm run dev

Backend Development

dfx build
dfx deploy

Testing

# Test backend
dfx canister call bonded-app-backend health_check

# Test frontend
cd src/bonded-app-frontend
npm test

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • DFINITY Foundation for the Internet Computer platform
  • The open-source AI community for in-browser models
  • All contributors who have helped shape Bonded

Support

For support, email support@bonded.app or open an issue in this repository.

Contributors

okwareddevnest

83 commits

StephaneSavanah

37 commits

rodalbores

19 commits

renoschubert

4 commits

Languages

JavaScript

66.2%

CSS

21.3%

Rust

9.0%

HTML

1.9%

Shell

1.5%