Contributing to Webui

Thank you for your interest in contributing to Webui! We're an open-source design-to-code platform built by developers, for developers. This guide outlines the standards, workflows, and best practices to ensure smooth collaboration.

💡 First-time contributor?

Start by checking our Good First Issues tag on GitHub. We welcome contributions of all sizes, from typo fixes to major features.

🛠️ Local Development Setup

Before you begin, ensure your environment meets the following requirements:

$ git clone https://github.com/webui/core.git\n$ cd core\n$ pnpm install\n$ pnpm dev

The development server will start at http://localhost:3000. Hot module replacement is enabled for instant feedback.

📁 Project Structure

Webui uses a monorepo architecture managed by Turborepo. Key directories include:

DirectoryDescription
/apps/webMain Next.js application & documentation site
/packages/uiShared React component library & design tokens
/packages/coreCode generation engine & AST transformers
/packages/iconsOptimized SVG icon system
/playgroundInteractive testing environment for contributors

🌿 Branching & Workflow

We follow a simplified Gitflow model optimized for rapid iteration:

  1. Create a feature branch from main: git checkout -b feature/your-feature-name
  2. Make changes incrementally. Squash commits before opening a PR.
  3. Prefix your branch name with: feat/, fix/, docs/, or refactor/
  4. Never commit directly to main. All changes require review.

✍️ Commit Conventions

We use Conventional Commits to automate changelogs and versioning. Structure your messages as:

type(scope): description\n\n[optional body]\n\n[optional footer]

Types: feat, fix, docs, style, refactor, perf, test, chore

Example: feat(ui): add responsive grid system with auto-layout

🎨 Code Standards

Consistency is key. Our tooling enforces these rules automatically via pre-commit hooks:

✨ Tip

Run pnpm lint:fix and pnpm format before pushing. CI will fail if formatting rules are violated.

♿ Accessibility Requirements

Webui is committed to WCAG 2.1 AA compliance. All components must:

Run pnpm test:a11y to automatically audit your changes.

📤 Submitting Pull Requests

Before opening a PR, ensure your branch is up to date with main and all checks pass. Your PR description should follow this template:

## Type of Change\n- [ ] Bug fix\n- [ ] New feature\n- [ ] Documentation update\n\n## Description\nBrief summary of the change and motivation.\n\n## Testing\nSteps to verify the change works as expected.\n\n## Screenshots (if applicable)\n[Attach visual diffs for UI changes]

PR Checklist

👀 Review Process

Every PR requires at least two approvals from core maintainers. Reviewers will check for:

  1. Code quality & adherence to standards
  2. Test coverage & edge cases
  3. Performance implications
  4. Documentation completeness
  5. Alignment with project roadmap

Reviews are constructive. If feedback is requested, respond promptly and keep the conversation focused on the code. We squash and merge after approval.

🤝 Community Guidelines

We foster an inclusive, respectful environment. By contributing, you agree to:

Violations may result in temporary or permanent removal from the project.

❓ FAQ

How do I request a new feature?

Open a Discussion on GitHub. Vote on existing proposals to help prioritize the roadmap.

Can I contribute translations?

Yes! Check the /packages/i18n directory and follow our localization guide. PRs for new languages are welcome.

How often are releases published?

We release bi-weekly on Tuesdays. Minor patches may drop sooner for critical fixes.

💬 Need Help?

Stuck on something? Join our community channels:

📄 Last updated: January 2025 | 📑 Version 2.4.1 | 🌍 MIT License