Architecture
At top level, it has 3 component
- Crusher app - local app to record and run tests in project
- Test executor - running test across web browser using configuration
- Web app - to manager test, viewing report, share it in team.
Architecture
High level section
- Frontend - React (using Nextjs), Jotai, SWR, Tailwind + emotion.
- Backend - Express, typescript, routing controller, typedi, Prisma.
- Test runner & Worker
- Crusher recorder - Electron, V8, Blink, C++, react, redux. This is not completely open source.
There are also dependencies like bullmq (for job management), postgres, etc.
Codebase
We use monorepo architecture + typescript for shared type checking across packages. We strive to use typescript 100% but might often bypass it with any to develop fast.