A simple peer-to-peer bulletin board for the Holochain community, enabling creators, developers, and organizations to post requests and offers for services, skills, and resources with direct contact facilitation.
Warning
This project is in alpha and is not production ready. Expect breaking changes, incomplete features, and potential instability. Use at your own risk.
# Clone and setup
git clone https://github.com/Happening-Community/requests-and-offers.git
cd requests-and-offers && nix develop
bun install && bun start- 📋 Project Overview - Complete project introduction and features
- 🚀 Quick Reference - Essential commands, patterns, and workflows
- 🏗️ Architecture - System design and 7-layer Effect-TS architecture
- 🔧 Developer Guide - Setup and development workflow
- 🆘 Troubleshooting - Common issues and solutions
- 📚 Full Documentation Index - Comprehensive documentation catalog
- Requirements: Overview | Features | Use Cases
- Technical: API Reference | Zomes | Testing
- Community: Contributing | Discord | Website
# (from project root)
# Development Mode - Full Holochain app with dev features
bun start # Start complete Holochain app (2 agents by default)
AGENTS=3 bun start # Custom number of agentsbun test # All tests
bun test:ui # Frontend tests
bun test:unit # Unit tests (requires Nix)
bun test:integration # Integration testsbun build:zomes # Build zomes
bun build:happ # Build complete hApp
bun package # Package for distributionNote: Unit tests require Nix environment due to hREA integration. Use
nix develop --command bun test:unitfor autonomous execution.
The project uses atomic environment-based feature control through the DevFeatures Service, providing fine-grained control over development features without a master switch.
Each development feature is independently controlled via environment variables:
# Mock/Testing Utilities - Shows mock data buttons in forms for testing
VITE_MOCK_BUTTONS_ENABLED=false
# Network Peers Display - Shows all network peers in test mode
VITE_PEERS_DISPLAY_ENABLED=false- Purpose: Full development experience with debugging tools
- Command:
bun start(from project root) - Features: Mock data buttons, network peers display, development utilities
- Environment: Uses
.envwith atomic feature control - Service: DevFeatures Service provides centralized feature management
The application supports production builds through Vite:
- Production Build:
bun run build(from ui directory)
Development features are controlled at runtime via the atomic environment variables in .env, not through different build configurations.
The DevFeatures Service follows the 7-layer Effect-TS architecture:
- Service Layer:
DevFeaturesServicewith Context.Tag dependency injection - Schema Validation: Type-safe Effect Schema definitions
- Component Integration: Used across all form components
- Production Safety: Automatic removal via Vite tree-shaking
Usage Example:
import { shouldShowMockButtons } from '$lib/services/devFeatures.service';
// In components without Effect context
if (shouldShowMockButtons()) {
// Show mock data buttons
}For detailed information, see Architecture Overview and Developer Guide.
requests-and-offers/
├── dnas/requests_and_offers/ # Holochain DNA with coordinator/integrity zomes
├── ui/ # SvelteKit frontend with 7-layer Effect-TS architecture
├── tests/sweettest/ # Sweettest integration tests (Rust)
└── documentation/ # Comprehensive project documentationSee Architecture Overview for detailed system design.
This project is currently transitioning to a simplified MVP approach:
- Bulletin Board: Simple request/offer listing system
- Direct Contact: Clear display of contact information for communication
- User Management: Archive/delete own listings
- Search & Browse: Find requests and offers by keywords and tags
- Exchange Process: Proposal, agreement, and review workflows
- In-App Messaging: Secure communication between users
- Reputation System: Review and rating mechanisms
- Advanced Matching: Algorithmic request/offer matching
See MVP Documentation for details on the simplified approach.
- Discord: Join our community
- Website: hAppenings.community
- Contributing: See Contributing Guide
- License: Cryptographic Autonomy License v1.0
