Create so called "rules for AI" written in Markdown, used by tools such as GitHub Copilot, Cursor and Windsurf, through an interactive, visual interface.
- Build AI Rules: Create customized rule sets for different editors (Copilot, Cursor, Windsurf)
- Export Options: Easily copy to clipboard or download as markdown files
- Smart Import: Automatically generate rules by dropping package.json or requirements.txt files
-
Installation
npm install
-
Development
npm run dev
-
Build
npm run build
- Astro 5
- TypeScript 5
- React 18.3
- Tailwind 4
- Zustand
- Lucide React
The project uses a feature flags system to separate deployments from releases. Feature flags can be used to control functionality availability based on the environment (local
, integration
, prod
). The system supports flags for:
- API endpoints
- Astro pages
- UI components visibility
For detailed documentation about feature flags implementation, see .ai/feature-flags.md
.
This project uses a comprehensive testing stack including unit tests and end-to-end tests.
Unit tests are implemented using Vitest with JSDOM for browser environment simulation and React Testing Library for component testing.
Available commands:
# Run unit tests
npm run test
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
# Generate coverage report
npm run test:coverage
E2E tests are implemented using Playwright with the Page Object Model pattern for maintainable tests.
Available commands:
# Run E2E tests
npm run test:e2e
# Run E2E tests with UI
npm run test:e2e:ui
# Generate test code with codegen
npm run test:e2e:codegen
tests/unit/
- Unit teststests/setup/
- Test setup filese2e/
- End-to-end testse2e/page-objects/
- Page Object Model classese2e/fixtures/
- Test fixtures and data
Tests are automatically run in the CI/CD pipeline using GitHub Actions. See .github/workflows/tests.yml
for configuration.
Send updates to:
src/data/dictionaries.ts
src/data/rules/...
Important: Introduce translations for new rules in src/i18n/translations.ts
, otherwise the unit test will fail.
When contributing new rules, please:
- Be specific: "Use React.memo for expensive components" not "Optimize components"
- Make it actionable: Provide clear guidance that can be immediately applied
- Include placeholders: Use
{{placeholder_text}}
for project-specific values - Follow conventions: Match the style and structure of existing rules
- Focus on best practices: Rules should represent industry standards, not personal preferences
See examples in src/data/rules/
directory for each technology stack.
10xDevs - launching soon 🚀
Thanks goes to these wonderful people (emoji key):
Damian 💻 |
pawel-twardziak 💻 |
Michal Dudziak 🚧 |
Artur Laskowski 💻 |
We're recognizing all contributors with all-contributors. Feel invited to collaborate!