Skip to content

TECH_STACK.md

CeloHT edited this page Aug 10, 2026 · 1 revision

CeloHT Technology Stack

Document Type: Technical Architecture Reference Project: CeloHT Status: Active / Evolving Last Updated: August 2026 Authors: Johnny Dubic & CeloHT Community


1. Overview

CeloHT uses a modern Web3-oriented technology architecture designed to support decentralized applications, financial education, community programs, environmental initiatives, and open-source development.

The technology stack is intentionally modular so individual components can evolve without requiring unnecessary changes throughout the ecosystem.


2. Technology Principles

CeloHT technology decisions should prioritize:

  • Security
  • Reliability
  • Maintainability
  • Performance
  • Interoperability
  • Open-source development
  • Developer experience
  • User accessibility
  • Long-term sustainability

Technology should serve the project mission rather than become an objective by itself.


3. High-Level Stack

The CeloHT stack can be represented as:

Users
  │
  ▼
Web / Mobile Interfaces
  │
  ▼
React / Next.js
  │
  ▼
TypeScript Application Layer
  │
  ├──────────────┐
  ▼              ▼
Backend/API    Wallet Integration
  │              │
  ▼              ▼
Database       Celo Network
  │              │
  │         ┌────┴────┐
  │         ▼         ▼
  │        CELO      cUSD
  │
  ▼
Analytics / Operations

4. Frontend

CeloHT web applications may use:

  • React
  • Next.js
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • Lucide Icons

The frontend should prioritize accessibility, performance, responsiveness, and security.


5. Next.js

Next.js may serve as the primary framework for CeloHT web applications.

Potential capabilities include:

  • App Router
  • Server Components
  • Client Components
  • Server-side rendering
  • Static generation
  • API endpoints
  • Metadata and SEO
  • Route handling

The specific Next.js version should be pinned in each repository's package configuration.


6. React

React provides the component-based user-interface architecture.

CeloHT interfaces should favor:

  • Reusable components
  • Clear state management
  • Predictable data flow
  • Accessible interactions
  • Minimal unnecessary rendering

7. TypeScript

TypeScript should be preferred for application code where supported.

Benefits include:

  • Static type checking
  • Better developer tooling
  • Safer refactoring
  • Explicit interfaces
  • Reduced runtime errors

8. Styling

CeloHT interfaces may use Tailwind CSS for utility-based styling.

Design systems should maintain consistency across:

  • Typography
  • Spacing
  • Components
  • Responsive layouts
  • Accessibility
  • Brand elements

9. UI Components

shadcn/ui may be used for reusable interface components.

Potential components include:

  • Buttons
  • Dialogs
  • Forms
  • Cards
  • Tables
  • Navigation
  • Dropdowns
  • Tabs

Components should remain accessible and adaptable to CeloHT's visual identity.


10. Icons

Lucide Icons may be used for interface icons.

Icons should:

  • Communicate clearly
  • Include accessible labels where necessary
  • Avoid replacing important textual information

11. Animation

Framer Motion may be used where animation improves user experience.

Animation should not:

  • Reduce accessibility
  • Create unnecessary distraction
  • Significantly increase page weight
  • Interfere with critical actions

12. Blockchain

CeloHT's Web3 infrastructure is centered on the Celo ecosystem.

Potential blockchain integrations include:

  • Celo mainnet
  • Celo test environments
  • CELO
  • cUSD
  • Smart contracts
  • Blockchain RPC endpoints

13. CELO

CELO is the native asset of the Celo blockchain.

Within CeloHT applications, CELO may be used for supported blockchain transactions and network gas requirements.

CeloHT should clearly distinguish CELO from any CeloHT project token.


14. cUSD

cUSD may be supported for stable-value digital transactions within compatible CeloHT applications.

Applications must clearly communicate that stable-value assets remain subject to the risks and characteristics of their underlying ecosystem.


15. No CeloHT Token

CeloHT does not require a proprietary token.

The technology stack should therefore not imply that users need to purchase a CeloHT token to access the ecosystem.

See:

NO_TOKEN_POLICY.md


16. Wallet Integration

CeloHT applications may integrate with compatible wallets, including:

  • Valora
  • MiniPay
  • WalletConnect-compatible wallets

Wallet integrations should use established standards and should never require users to disclose private keys.


17. WalletConnect

WalletConnect may provide interoperability with compatible wallet applications.

Integration should clearly identify:

  • Network
  • Account
  • Transaction
  • Requested permissions

18. Smart Contracts

Where decentralized logic is required, CeloHT may use Solidity-based smart contracts.

Smart contracts should follow:

  • Minimalism
  • Least privilege
  • Testing
  • Security review
  • Source verification

See SMART_CONTRACTS.md.


19. Solidity

Solidity is the primary language for EVM-compatible smart contracts where CeloHT requires custom on-chain logic.

Compiler versions should be explicitly pinned.

Example:

Solidity
   ↓
Contract Source
   ↓
Compiler
   ↓
Bytecode + ABI
   ↓
Celo Network

20. OpenZeppelin

OpenZeppelin libraries may be used for established smart-contract patterns.

Examples include:

  • Access control
  • Security utilities
  • Standard interfaces
  • Contract modules

Dependencies should be version-pinned and reviewed.


21. Backend

CeloHT backend services may use JavaScript/TypeScript-compatible server environments.

Potential responsibilities include:

  • API endpoints
  • Authentication
  • Authorization
  • Data processing
  • Blockchain indexing
  • Notifications
  • Program management

22. APIs

APIs should follow consistent principles:

  • Input validation
  • Authentication
  • Authorization
  • Rate limiting
  • Error handling
  • Logging
  • Versioning

Sensitive API endpoints should require appropriate authorization.


23. Database

A relational database may be used for application data.

Potential data domains include:

  • Users
  • Agents
  • Courses
  • Lessons
  • Quizzes
  • Communities
  • Programs
  • Events
  • Analytics

Database schemas should be version-controlled.


24. Supabase

Where appropriate, CeloHT projects may use Supabase for backend infrastructure.

Potential services include:

  • PostgreSQL
  • Authentication
  • Storage
  • APIs
  • Realtime functionality

Supabase credentials must never be committed to public repositories.


25. PostgreSQL

PostgreSQL may serve as the primary relational database for structured application data.

Database design should emphasize:

  • Referential integrity
  • Appropriate indexing
  • Constraints
  • Query performance
  • Backup and recovery
  • Least-privilege access

26. Authentication

Authentication may combine conventional application authentication with wallet-based authentication depending on the application.

Authentication architecture should be documented independently.

See:

AUTHENTICATION_ARCHITECTURE.md


27. Authorization

Authorization should enforce permissions according to user roles and application requirements.

The principle of least privilege should apply throughout the system.

See:

AUTHORIZATION_MODEL.md


28. Data Privacy

CeloHT should avoid storing unnecessary personal information.

Sensitive data should be:

  • Minimized
  • Protected
  • Access-controlled
  • Encrypted where appropriate
  • Deleted when no longer required

See:

DATA_PRIVACY.md


29. Hosting

CeloHT applications may use modern cloud hosting platforms.

Hosting decisions should consider:

  • Reliability
  • Security
  • Cost
  • Performance
  • Geographic availability
  • Vendor dependency

30. Vercel

Vercel may be used for compatible Next.js applications.

Potential capabilities include:

  • Application deployment
  • Edge delivery
  • Serverless functions
  • Preview deployments
  • Environment management
  • Web analytics

Specific projects should document their actual deployment provider rather than assuming Vercel.


31. GitHub

GitHub may serve as a central platform for:

  • Source code
  • Documentation
  • Issues
  • Pull requests
  • Releases
  • Discussions
  • Collaboration

Repositories should follow appropriate branch protection and access controls.


32. GitHub Actions

GitHub Actions may automate:

  • Tests
  • Linting
  • Type checking
  • Builds
  • Security checks
  • Deployment

Example pipeline:

Push / Pull Request
        ↓
Lint
        ↓
Type Check
        ↓
Tests
        ↓
Security Checks
        ↓
Build
        ↓
Deploy

33. Code Quality

Projects should use automated quality checks where practical.

Possible tools include:

  • ESLint
  • Prettier
  • TypeScript
  • Commitlint
  • Husky

The exact tool configuration belongs to each repository.


34. Testing

Testing should cover multiple layers:

  • Unit tests
  • Integration tests
  • End-to-end tests
  • Smart-contract tests
  • Security tests

See TESTING.md.


35. Security

Security tooling may include:

  • CodeQL
  • Dependency scanning
  • Secret scanning
  • Static analysis
  • Smart-contract analysis

Automated tooling does not replace manual security review.


36. Dependency Management

Dependencies should be:

  • Pinned or appropriately constrained
  • Regularly reviewed
  • Updated responsibly
  • Checked for vulnerabilities

Dependabot or equivalent tooling may be used.


37. Environment Configuration

Different environments should use separate configurations.

Typical environments:

Development
     ↓
Testing
     ↓
Staging
     ↓
Production

See ENVIRONMENT_CONFIGURATION.md.


38. Secrets Management

Secrets must never be committed to public source repositories.

Examples include:

  • API keys
  • Database credentials
  • Deployment tokens
  • Private infrastructure credentials
  • Authentication secrets

Use appropriate environment-variable or secret-management systems.


39. Blockchain RPC

Blockchain applications require RPC access to interact with the Celo network.

Applications should:

  • Validate chain IDs
  • Handle provider failures
  • Avoid exposing provider secrets
  • Consider redundancy for critical services

40. Blockchain Explorers

Blockchain explorers can provide public transaction and contract visibility.

Where applicable, CeloHT documentation should link to authoritative explorer records for official contract deployments.


41. Indexing

Where an application needs efficient access to blockchain history, an indexing layer may be used.

Indexing can reduce unnecessary direct blockchain queries.

Indexed data should remain distinguishable from canonical blockchain state.


42. Storage

Off-chain storage may be used for:

  • Documents
  • Images
  • Educational materials
  • Program records
  • Application assets

Storage permissions should be explicitly configured.


43. CDN

A CDN may improve delivery of:

  • Static assets
  • Images
  • Public content
  • JavaScript bundles
  • CSS

Caching rules should not accidentally expose private information.


44. Monitoring

Production applications should monitor:

  • Availability
  • Latency
  • Error rates
  • Database health
  • API usage
  • Blockchain provider status

Alerts should focus on actionable problems.


45. Logging

Logs should provide enough information to investigate operational issues.

Logs should not unnecessarily contain:

  • Passwords
  • Private keys
  • Seed phrases
  • Authentication tokens
  • Sensitive personal data

46. Performance

Performance engineering should focus on:

  • Core Web Vitals
  • API latency
  • Database performance
  • Bundle size
  • Image optimization
  • Blockchain request efficiency

See PERFORMANCE.md.


47. Accessibility

CeloHT interfaces should strive to meet modern accessibility standards.

Important considerations include:

  • Keyboard navigation
  • Screen-reader compatibility
  • Color contrast
  • Focus states
  • Form labels
  • Error messages
  • Responsive design

48. Internationalization

CeloHT may support multiple languages.

Potential languages include:

  • Haitian Creole
  • French
  • English

Translations should preserve technical meaning and avoid mixing languages unnecessarily.


49. Documentation

Technical documentation should include:

  • Setup instructions
  • Architecture
  • API references
  • Deployment procedures
  • Security requirements
  • Troubleshooting
  • Contribution guidelines

Documentation should evolve with implementation.


50. Developer Experience

CeloHT should make it easy for contributors to:

  • Clone repositories
  • Install dependencies
  • Configure environments
  • Run tests
  • Start development servers
  • Understand architecture
  • Submit changes

51. Local Development

A typical development workflow may resemble:

Clone Repository
      ↓
Install Dependencies
      ↓
Configure Environment
      ↓
Run Development Server
      ↓
Run Tests
      ↓
Create Branch
      ↓
Submit Pull Request

Exact commands belong in repository-specific documentation.


52. Release Management

Releases should be reproducible and documented.

Release processes should define:

  • Version
  • Changes
  • Testing
  • Approval
  • Deployment
  • Rollback

See RELEASE_PROCESS.md.


53. Versioning

Software versions should follow a consistent strategy.

Where Semantic Versioning is appropriate:

MAJOR.MINOR.PATCH

See VERSIONING.md.


54. Architecture Evolution

The technology stack is not permanent.

Components may be replaced when:

  • Security requires it
  • Performance requires it
  • Costs become unreasonable
  • Better standards emerge
  • Maintenance becomes impractical
  • Community requirements change

55. Technology Selection

New technologies should be evaluated based on:

  1. Security
  2. Reliability
  3. Community support
  4. Maintainability
  5. Cost
  6. Performance
  7. Interoperability
  8. Strategic fit

Popularity alone is not sufficient justification.


56. Vendor Lock-In

CeloHT should understand the risks associated with external providers.

Critical systems should have migration strategies where practical.


57. Open Source

Open-source development allows contributors and researchers to inspect and improve CeloHT technology.

Public code should therefore maintain appropriate standards for:

  • Quality
  • Documentation
  • Security
  • Licensing
  • Contribution

58. Licensing

Each repository should clearly state its applicable software and documentation licenses.

Licensing decisions should be reviewed where third-party dependencies or external intellectual property are involved.


59. Technical Debt

CeloHT should track significant technical debt.

Technical debt may include:

  • Outdated dependencies
  • Temporary architecture
  • Missing tests
  • Legacy code
  • Performance limitations
  • Documentation gaps

Technical debt should be prioritized according to risk and impact.


60. Technology Roadmap

Technology priorities should align with CeloHT's broader roadmap.

Potential priorities include:

  • Improved wallet integrations
  • Better education tools
  • Agent infrastructure
  • Security improvements
  • Analytics
  • Environmental tracking
  • Developer tooling
  • Mobile accessibility

61. Final Architecture Principle

Technology should remain a means to accomplish CeloHT's mission.

The goal is not to maximize the number of technologies used.

The goal is to build a system that is:

Secure. Reliable. Open. Accessible. Maintainable. Useful.


Document Status: Active / Evolving Maintained By: CeloHT Community Primary Authors: Johnny Dubic & CeloHT Community

CeloHT

Community-powered Web3 for real-world impact.

CeloHT is an open-source community initiative building practical solutions around Web3, financial inclusion, education, decentralized services, and environmental impact.

Learn. Build. Participate. Impact.

Clone this wiki locally