======================
DaybydayCRM is an everyday customer relationship management system (CRM) to help you keep track of customers, tasks, appointments, invoices, payments, documents, and other daily workflows. The CRM is available as an open-source, self-hosted platform and as a hosted CRM system on daybydaycrm.com.
Try a demo version of DaybydayCRM at:
If you benefit from or like using DaybydayCRM, please consider helping drive the future development of the project by:
- Starring the project. ⭐
- Creating a pull request. 🚧
- Donating/Sponsoring today. 💛
- Considering the hosted version of DaybydayCRM. ✔️
The project continues to ship features, releases, support, and fixes through community and sponsor support.
- Tasks and leads management
- Invoice management
- Time registration
- User absence and vacation registration
- Client and user appointments
- Role and permission management
- Global search
- Client overview
- Uploading documents and tracking client files
- And much more; see daybydaycrm.com for a broader feature overview
- PHP 8.3+
- Laravel 12
- MySQL/MariaDB
- Redis/queue support
- Blade + Vue 2 + Vite
- PHPUnit, Dusk, and Playwright
- Docker Compose and Makefile-driven workflows
For help getting started, take a look at the wiki first:
make up
make dsh
make setupcomposer install
yarn install
cp .env.example .env
php artisan key:generate
php artisan migrate:fresh --seed
yarn run build
composer devmake test— run PHPUnit with stop-on-failure behaviormake test-filter f=SomeTest— run a filtered PHPUnit subsetmake test-fail— run PHPUnit, stop on first failuremake paratest— run tests in parallel
make e2e-install— install Playwright and browser dependenciesmake e2e-test— run all Playwright e2e testsmake e2e-test STOP_ON_FAILURE=true— run all tests, stop on first failuremake e2e-test-one E2E_SPEC=tests/e2e/auth/auth.spec.js— run a single spec filemake e2e-test-one E2E_SPEC=tests/e2e/auth/auth.spec.js STOP_ON_FAILURE=true— run single spec, stop on failuremake e2e-fail— run Playwright tests, stop on first failuremake e2e-list— list all discovered Playwright testsnpm run test:e2e— run e2e tests directly via npmnpm run test:e2e:stop-on-failure— run e2e tests, stop on first failure
make clear— clear Laravel cachesmake dmfs— fresh migrate/seed inside Dockermake dseed— seed demo and dummy data inside Docker
git ls-files '*.php' | xargs -n1 php -l— minimum required PHP syntax lint before push/PR
AGENTS.md— contributor and AI-agent workflow guide.github/ARCHITECTURE.md— architecture and technical debt notes.github/TESTING.md— testing and isolation standards.github/ROADMAP.md— current modernization roadmap.github/copilot-instructions.md— concise Copilot-specific guidance.junie/*.md— short operational summaries for analysis, testing, fixes, and refactorsCHANGELOG.md— current branch changelog summary
DaybydayCRM follows a layered Laravel architecture:
Routes -> Middleware -> Controllers -> Services/Actions -> Repositories/Models -> Views or JSON responses
Current repository conventions emphasize:
- thin controllers
- FormRequest-based validation
- service/action extraction for business logic
- enums and helpers for fixed value sets
- observer and trait-based model behavior
- explicit JSON vs web response handling
DaybydayCRM follows PSR-2 coding standards.
Before pushing changes:
- keep tests self-contained and factory-driven
- place new HTTP/controller coverage in
tests/Feature/* - normalize dates before assertions
- refresh users after permission changes in tests
- run
git ls-files '*.php' | xargs -n1 php -l
If workflows are available, all tests should pass on GitHub Actions, or failing expectations should be updated to reflect intentional behavior changes.
Feel free to send feedback on Twitter or file an issue. Feature requests are always welcome. If you want to contribute, please take a quick look at the repository guidance above.
You can help translate DaybydayCRM into other languages by copying resources/lang/en into, for example, resources/lang/de and translating the files inside that folder.
DaybydayCRM from version 2.0.0 and up is open-sourced software licensed under the GNU GPLv3. FAQ GPL
DaybydayCRM under and not including version 2.0.0 is open-sourced software licensed under the MIT license.
