DPG Pipeline is a comprehensive web-based platform designed to accelerate the development, funding, and sustainability of Digital Public Goods (DPGs). Built with modern web technologies and powered by a robust backend, it serves as a central hub for connecting contributors, funders, and DPG projects while ensuring compliance with the Digital Public Goods Standard.
π§ Status: Currently in active development. We welcome contributions and feedback from the community!
- Comprehensive Project Profiles: Detailed project pages with descriptions, goals, team information, and progress tracking
- Real-time Updates: Live project updates with commenting system for transparent communication
- Member Management: Team collaboration tools with role-based permissions
- Interactive Pipeline Visualization: Animated pipeline showing project progression through DPG compliance stages
- Multi-type Contributions: Support for both financial and non-financial resource contributions
- Crowdsourced Funding: Community-driven funding mechanisms for sustainable project development
- Resource Tracking: Detailed tracking of all contributions and resource allocation
- Contributor Recognition: Public acknowledgment and profiling of project supporters
- Automated Evaluation Process: Streamlined assessment against Digital Public Goods Standard criteria
- Compliance Tracking: Real-time monitoring of project compliance status
- Documentation Support: Guided documentation creation for DPG certification
- Expert Review System: Community and expert review processes for validation
- Advanced Search & Filtering: Powerful search capabilities with category-based filtering
- Project Categories: Organized project classification system
- Recommendation Engine: AI-powered project recommendations based on user interests
- Leaderboards: Community recognition and project popularity tracking
- Personalized Profiles: Comprehensive user profiles with contribution history and interests
- Bookmarking System: Save and organize favorite projects
- Activity Feeds: Stay updated with project developments and community activity
- Mobile-Responsive Design: Seamless experience across all devices
- Secure Authentication: Supabase-powered authentication with social login options
- Content Security Policy: Comprehensive CSP implementation for enhanced security
- Data Protection: Encrypted data transmission and secure storage
- CSRF Protection: Built-in protection against cross-site request forgery
- SvelteKit: Modern, reactive web framework with server-side rendering
- TypeScript: Type-safe development with enhanced code quality
- TailwindCSS: Utility-first CSS framework with custom design system
- Shadcn/ui: Modern UI component library adapted for Svelte
- Space Grotesk: Primary typography with modern geometric design
- Supabase: Backend-as-a-Service providing database, authentication, and real-time features
- PostgreSQL: Robust relational database for data persistence
- Node.js: Server-side JavaScript runtime environment
- Vite: Next-generation frontend build tool for fast development
- Vitest: Unit testing framework with TypeScript support
- Prettier: Code formatting for consistent style
- ESLint: Code linting for quality assurance
- GitHub Actions: Continuous integration and deployment
- GitHub API: Repository integration and automated project tracking
- OpenAI API: AI-powered features and content generation
- Sentry: Error tracking and performance monitoring
- Vercel: Deployment and hosting platform
Ensure you have the following installed on your development machine:
- Node.js (v20.12.0 or higher) - Download
- npm (comes with Node.js) or yarn as package manager
- Git for version control
- Vercel CLI (optional, for deployment) - Install Guide
-
Clone the Repository
git clone https://github.com/christex-foundation/pipeline.git cd pipeline
-
Install Dependencies
npm install
-
Environment Configuration
Choose one of the following methods:
Option A: Pull from Vercel (Recommended for team members)
npx vercel env pull
Option B: Manual Configuration
cp .env.example .env
Then configure your
.env
file with the following variables:# Supabase Configuration VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key PRIVATE_SUPABASE_SERVICE_KEY=your_supabase_service_role_key # Optional: Third-party Services OPENAI_API_KEY=your_openai_api_key SENTRY_DSN=your_sentry_dsn
-
Database Setup
Follow our comprehensive Database Setup Guide to configure your Supabase database with the required schema.
-
Start Development Server
npm run dev
Your application will be available at
http://localhost:5173
# Development server with hot reload
npm run dev
# Production build
npm run build
# Preview production build
npm run preview
# Run tests
npm run test
# Type checking
npm run check
# Type checking with watch mode
npm run check:watch
# Code formatting
npm run format
pipeline/
βββ src/
β βββ lib/ # Reusable Svelte components
β β βββ components/ # UI components (shadcn/ui)
β β βββ server/ # Server-side utilities
β β β βββ repo/ # Database repository layer
β β β βββ service/ # Business logic services
β β β βββ validator/ # Input validation schemas
β β βββ stores/ # Svelte stores for state management
β β βββ utils/ # Utility functions
β βββ routes/ # SvelteKit file-based routing
β β βββ (auth)/ # Authentication routes
β β βββ api/ # API endpoints
β β βββ explore/ # Project discovery pages
β β βββ profile/ # User profile management
β β βββ project/ # Project-specific pages
β β βββ resources/ # Educational content
β βββ app.html # HTML template
β βββ app.css # Global styles
β βββ service-worker.js # PWA service worker
βββ static/ # Static assets
βββ docs/ # Documentation
β βββ DB_SETUP.md # Database configuration guide
β βββ STYLE_GUIDE.md # Design system documentation
β βββ dpg-evaluation-process.md
βββ db/ # Database schema and migrations
βββ tailwind.config.js # Tailwind CSS configuration
βββ svelte.config.js # SvelteKit configuration
βββ package.json # Project dependencies and scripts
Our application follows a comprehensive design system built on TailwindCSS with custom configurations:
- Primary Accent: Purple (
#ad89fd
) - Used for primary actions and brand elements - Secondary Accent: Lime (
#bde35b
) - Used for highlights and positive interactions - Dashboard Theme: Dark theme with carefully crafted gray scale for optimal readability
- Primary Font: Space Grotesk - Modern geometric sans-serif
- Type Scale: Comprehensive scale from display (hero text) to labels (UI elements)
For detailed design guidelines, see our Style Guide.
Our custom Tailwind configuration includes:
- Dashboard Color System: Comprehensive color palette for dark theme
- Typography Scale: Professional typography system with consistent sizing
- Component Patterns: Reusable utility combinations for common components
Key configurations include:
- Security: Content Security Policy (CSP) and CSRF protection
- Performance: Service worker, prerendering, and optimization settings
- Aliases: Path aliases for cleaner imports
Variable | Description | Required |
---|---|---|
VITE_SUPABASE_URL |
Your Supabase project URL | β |
VITE_SUPABASE_ANON_KEY |
Supabase anonymous key | β |
PRIVATE_SUPABASE_SERVICE_KEY |
Supabase service role key | β |
OPENAI_API_KEY |
OpenAI API key for AI features | β |
SENTRY_DSN |
Sentry DSN for error tracking | β |
We welcome contributions from developers, designers, and DPG enthusiasts! Here's how you can get involved:
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch from
main
- Make your changes following our coding conventions
- Test your changes thoroughly
- Submit a pull request with a clear description
- Follow the existing code style and conventions
- Write meaningful commit messages
- Include tests for new features
- Update documentation when necessary
- Keep PRs focused and manageable in size
For detailed contribution guidelines, see CONTRIBUTING.md.
We are committed to providing a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.
To enable real-time GitHub integration and automated project updates:
- Navigate to your project's Settings on GitHub
- Go to Webhooks β Add webhook
- Set Payload URL to:
https://pipeline-tau.vercel.app/api/github/webhook
- Choose Content type:
application/json
- Select Send me everything for events
- Click Add webhook
This enables automatic synchronization of project data with GitHub repositories.
- Database Setup Guide: Complete database configuration instructions
- Style Guide: Design system and component patterns
- Contributing Guide: How to contribute to the project
- DPG Evaluation Process: Understanding DPG compliance evaluation
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically with each push to main branch
# Build the application
npm run build
# Deploy to your preferred hosting platform
npm run preview # Test the build locally first
- Service Worker: Enabled for offline functionality and faster loading
- Prerendering: Static pages are pre-rendered for better SEO and performance
- Error Tracking: Sentry integration for comprehensive error monitoring
- Performance Monitoring: Built-in analytics and performance tracking
- Content Security Policy: Comprehensive CSP headers for XSS protection
- CSRF Protection: Built-in CSRF token validation
- Secure Headers: Additional security headers for enhanced protection
- Input Validation: Server-side validation using Zod schemas
- Authentication: Secure authentication flow with Supabase
- Issues: Report bugs and request features on GitHub Issues
- Discussions: Join community discussions on GitHub Discussions
- Documentation: Comprehensive guides in the
/docs
directory
- Watch the repository for updates
- Star the project if you find it useful
- Follow @ChristexFoundation for announcements
This project is licensed under the MIT License - see the LICENSE file for details.
- Digital Public Goods Alliance for establishing the DPG Standard
- Christex Foundation for project sponsorship and support
- Open Source Community for the amazing tools and libraries that make this project possible
- Contributors who help improve and maintain this platform
π Visit DPG Pipeline β’ π Documentation β’ π€ Contribute β’ π Report Issues
Made with β€οΈ by the Christex Foundation team