WeCraft is a public build-in-public platform connecting technical founders and developers, built with Phoenix LiveView and implementing a context-driven architecture with clean separation of concerns.
WeCraft enables technical founders to showcase their projects and connect with skilled developers who want to contribute to exciting ventures. Whether you're building the next big SaaS, exploring fintech solutions, or working on cutting-edge healthtech innovations, WeCraft helps you find the right collaborators.
- Project Showcase: Technical founders can create detailed project profiles with descriptions, tech stacks, and current status
- Developer Matching: Smart search and filtering to match developers with projects based on technical skills and business domains
- Real-time Chat: Built-in messaging system for project discussions and collaboration
- Magic Link Authentication: Passwordless login system for seamless user experience
- Tag-based Discovery: Comprehensive tagging system for technologies (Elixir, Phoenix, React, etc.) and business domains (Fintech, Healthtech, SaaS, etc.)
- Project Status Tracking: Track projects from idea stage through development to live deployment
- Phoenix Contexts: Clean separation with
Accounts,Projects,Profiles, andChatscontexts - Use Case Pattern: Business logic delegated to
WeCraft.*.UseCases.*UseCasemodules - Domain Models: Schema validation and business logic in
lib/we_craft/*/ - LiveView Frontend: Interactive web layer in
lib/we_craft_web/with real-time updates
- Magic Link Based: No passwords required - uses email token-based authentication
- Scoped Authentication: User sessions with
WeCraft.Accounts.Scope.for_user/1 - User Roles: Technical Founder or Developer personas
- Session Management: Secure token-based sessions with remember-me functionality
- PostgreSQL: Primary database with array fields for flexible tag storage
- Project Status Enum:
[:idea, :in_dev, :private_beta, :public_beta, :live] - Tag Validation: Predefined technical and business tag lists with validation
- Real-time Features: Chat messaging with Phoenix PubSub
- Elixir 1.15+
- Erlang/OTP 26+
- Node.js (for assets)
- PostgreSQL
- (Optional) asdf for version management
-
Clone the repository
git clone https://github.com/the-nerd-company/we-craft.git cd we-craft -
Setup development environment with asdf (recommended)
make init-asdf
-
Install dependencies and setup database
mix setup
-
Start the Phoenix server
mix phx.server
-
Visit the application
Open
localhost:4000in your browser
- Manual dependency installation:
mix deps.get - Database setup:
mix ecto.setup - Asset compilation:
mix assets.build - Full database reset:
mix ecto.reset
# Run tests (with database reset)
make test
# Generate test coverage reports
make coverage
# Reset test database only
make reset-test-db
# Extract and merge translations
make generate-translations
# Build assets for development
mix assets.build
# Build assets for production
mix assets.deploylib/
βββ we_craft/ # Core business logic
β βββ accounts/ # User management & authentication
β βββ projects/ # Project management & search
β βββ profiles/ # User profile management
β βββ chats/ # Real-time messaging
βββ we_craft_web/ # Web interface
β βββ live/ # LiveView modules
β βββ components/ # Reusable UI components
β βββ controllers/ # HTTP controllers
βββ we_craft.ex # Main application module
test/
βββ we_craft/ # Business logic tests
βββ we_craft_web/ # Web layer tests
βββ support/ # Test fixtures and helpers
WeCraft uses a comprehensive tagging system for project discovery:
Technical Tags: elixir, phoenix, react, javascript, python, docker, kubernetes, etc.
Business Domains: fintech, healthtech, saas, ecommerce, productivity, analytics, etc.
Tags are validated against predefined lists and automatically normalized to lowercase.
All major features use Phoenix LiveView with proper mount hooks:
live_session :require_authenticated_user,
on_mount: [{WeCraftWeb.UserAuth, :require_authenticated}]The project includes comprehensive test coverage:
# Run all tests with fresh test database
make test
# Generate LCOV coverage report
make coverage
# Run specific test files
mix test test/we_craft/projects/Tests use fixtures from test/support/fixtures/*_fixtures.ex:
AccountsFixtures.user_fixture/1for authenticated usersProjectsFixtures.project_fixture/1for test projectsAccountsFixtures.user_scope_fixture/1for scoped contexts
The project includes multi-stage Docker builds:
# Build and push Docker image
make build-and-push-docker-image
# Deploy to production
make deploy-to-prod- Web Server: Bandit adapter for optimal Phoenix LiveView performance
- Telemetry: OpenTelemetry integration with custom logger backend
- Assets: Minified CSS/JS with Phoenix digest for cache busting
- Database: PostgreSQL with connection pooling
WeCraft includes comprehensive monitoring:
- OpenTelemetry: Distributed tracing and metrics
- Phoenix LiveDashboard: Real-time application metrics
- Custom Telemetry: Application-specific metrics and logging
- Health Checks:
/healthendpoint for load balancer monitoring
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run tests (
make test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
The project maintains high code quality with:
- Credo: Static code analysis
- Dialyzer: Type checking and static analysis
- ExCoveralls: Test coverage reporting
- Git Hooks: Pre-commit hooks for code quality
This project is open source with a non-commercial license.
WeCraft Open Source License (Non-Commercial) - See LICENSE file for details.
- Personal use and learning
- Educational purposes
- Research and development
- Open source contributions
- Non-profit organizations
- Forking and modifying the code
- Commercial use without permission
- Selling the software or services based on it
- Monetizing through advertising, subscriptions, etc.
- Offering as a service (SaaS)
- Any revenue-generating activities
Want to use WeCraft commercially? Commercial licenses are available! Please contact the project owner for reasonable commercial licensing terms that support the ongoing development of this open source project.
We welcome contributions from the community! By contributing, you help make WeCraft better for everyone while the project remains free for non-commercial use.