Krayin CRM
Free, open-source Laravel & Vue.js CRM for SMEs and enterprises to manage the complete customer lifecycle.
Krayin CRM is a self-hosted, open-source customer relationship management platform built on Laravel (PHP) and Vue.js, offering end-to-end customer lifecycle management for small to large businesses. It provides modular sales, marketing, support, and analytics tools with an extensible package architecture, enabling organizations to customize workflows, add custom attributes, and build automation without vendor lock-in.
The platform is built as a collection of Webkul namespaced Laravel packages, each handling a distinct CRM domain — leads, contacts, activities, marketing campaigns, email templates, data transfers, and automation workflows. A central ViewRenderEventManager allows extensions and third-party packages to inject UI into any admin view without modifying core templates, forming the backbone of Krayin’s plugin ecosystem.
Out of the box, Krayin supports pipeline-based lead management with Kanban and list views, custom field definitions per entity, email ingestion via IMAP, SendGrid-powered campaign automation, and webhook-driven workflow triggers. Official extensions provide multi-tenant SaaS isolation, WhatsApp lead generation, and VoIP calling directly from the CRM interface.
Deployment requires PHP 8.3+, MySQL 8.0.32+, and either Apache or NGINX. A managed cloud hosting option is available for teams that want the open-source software without the infrastructure overhead.
What You Get
- Pipeline-Based Lead Management - Create multiple sales pipelines with custom stages, probability weights, and drag-and-drop Kanban boards to track deals from first contact to close.
- Custom Attributes System - Add unlimited custom fields (text, date, select, lookup, checkbox) to leads, contacts, organizations, and products without writing any code or database migrations.
- Email Ingestion via IMAP - Connect any IMAP mailbox so incoming emails are automatically parsed, matched to existing CRM records, and accessible from the lead or contact timeline.
- Workflow & Webhook Automation - Define event-based workflows that trigger email sends, field updates, or outbound webhook calls to external systems when records meet configurable conditions.
- Campaign & Email Template Engine - Build reusable email templates and send targeted marketing campaigns with tracking, using SendGrid as the delivery backend.
- DataGrid with Export - Every list view in Krayin uses a configurable DataGrid component with filtering, column sorting, bulk actions, and Excel/CSV export built in.
- Role-Based Access Control - Define granular ACL roles and assign users to groups, controlling which modules, records, and actions each team member can access.
- Multi-Tenant SaaS Extension - Deploy one Krayin installation serving multiple isolated tenants, each with their own data, users, and branding, via the official extension.
- WhatsApp & VoIP Integration - Capture leads from WhatsApp messages and make/receive VoIP calls with call logging directly inside the CRM through official paid extensions.
- Activity & Task Tracking - Log calls, meetings, emails, notes, and tasks against any lead or contact with due dates, reminders, and team assignment.
Common Use Cases
- B2B sales team managing complex deal pipelines - A software company configures multiple pipelines for different product lines, uses custom attributes to track contract values and procurement timelines, and automates follow-up emails when a lead enters the negotiation stage.
- Agency running a white-label CRM for clients - Using the Multi-Tenant SaaS extension, an agency deploys one Krayin instance and provisions isolated CRM environments for each client, each with separate branding, users, and data.
- E-commerce support team centralizing customer inquiries - An online retailer connects their support inbox via IMAP and WhatsApp integration so all inbound messages create leads automatically, routed by product category to the right sales rep.
- Educational institution tracking enrollment and alumni - A university uses Krayin to manage prospective student records through an admissions pipeline, logging outreach activities and tracking conversion rates from inquiry to enrollment.
- Marketing team running lead nurture campaigns - A SaaS company uploads a contact list via the Data Transfer module, segments it with tags, and triggers an automated email sequence with SendGrid when contacts match workflow conditions.
Under The Hood
Architecture Krayin CRM is structured as a collection of independently versioned Laravel packages under the Webkul namespace, each encapsulating a CRM domain: Lead, Contact, Activity, Marketing, Automation, Email, DataGrid, and others. Konekt Concord manages service provider discovery and registration, allowing packages to hook into the application lifecycle without modifying the host application. The repository pattern via a custom Eloquent repository base class decouples data access logic from controllers, and constructor-injected dependencies throughout keep coupling low. The most distinctive architectural element is the ViewRenderEventManager: a Blade-exposed singleton that fires named Laravel events at injection points in admin views, collects any Blade template strings registered by listeners, and renders them inline — enabling plugins to add UI to any admin page without template inheritance or monkey-patching.
Tech Stack The backend runs Laravel 12.x on PHP 8.3+, using Eloquent ORM against MySQL 8.0.32+, Laravel Sanctum for API authentication, and webklex/laravel-imap for mailbox integration. GuzzleHTTP powers outbound webhook delivery. The frontend is Vue 3 (esm-bundler build) mounted on a single root app instance, with Blade components acting as wrappers that pass server-side data into Vue components as JSON-encoded props and slot content. Vite 5.x with the Laravel Vite plugin handles asset bundling. Laravel Pint enforces PHP code style via a Laravel preset. Pest PHP and PHPUnit provide the testing stack, and Laravel Sail enables containerized local development.
Code Quality The test suite is minimal — three feature test files covering admin login, dashboard access, and a help page. Core business logic including lead creation, workflow execution, attribute persistence, and campaign delivery has no automated test coverage. Laravel Pint is configured and enforced for code formatting consistency. No static analysis tooling such as PHPStan or Psalm is present in the project. Error handling relies primarily on Laravel framework defaults rather than custom exception classes or structured logging. Naming conventions are applied consistently across all packages, and inline documentation comments are present on repository methods and service classes, but coverage is uneven.
What Makes It Unique The ViewRenderEventManager is the project’s most technically distinctive contribution: it transforms Laravel’s event system into a declarative UI composition mechanism, letting any package inject rendered Blade views into predefined slots in the admin interface without overriding templates. This creates a plugin surface that is both safe and expressive. The DataGrid abstraction is another notable investment — rather than coupling list views to individual controllers, a generic DataGrid class handles column definition, filtering, mass actions, and export in a reusable way across all 20+ entity list views. The Blade component library (form, drawer, modal, accordion, shimmer, flat-picker, datagrid) functions as a domain-specific admin UI kit that keeps the Vue and server-side layers interoperable without committing to a full SPA architecture.
Self-Hosting
Krayin CRM is released under the MIT License, which is one of the most permissive open-source licenses available. You can use it commercially, modify the source freely, integrate it into proprietary products, and redistribute it without any obligation to open-source your own code. The only requirement is preserving the copyright notice. There are no open-core restrictions, no feature gates behind a commercial license, and no telemetry or license key enforcement in the codebase.
Self-hosting Krayin requires a Linux server with PHP 8.3+, Composer 2.5+, MySQL 8.0.32+ (or compatible), and either Apache 2 or NGINX as the web server, with at least 3 GB of RAM recommended. Installation is handled via a custom Artisan command that runs database migrations and seeds. You are responsible for managing all infrastructure: provisioning servers, configuring SSL, setting up queue workers for background jobs (email processing, workflow execution), scheduling Laravel’s task scheduler for periodic jobs, and handling database backups and upgrades. Docker-based deployment is documented, and Laravel Sail provides a containerized local development environment, but production containerization is left to the operator.
For teams that prefer not to manage infrastructure, Krayin offers a managed cloud hosting option where their team handles setup, security, and configuration on dedicated infrastructure under your own domain. The official extension marketplace adds capabilities (Multi-Tenant SaaS, WhatsApp, VoIP) as paid add-ons, and community support is available through the Krayin forums. There is no published SLA, no guaranteed uptime commitment, and no enterprise support contract for self-hosted deployments — operational responsibility stays entirely with your team.
Related Apps
PocketBase
Databases · Ecommerce · Authentication
Open Source realtime backend in 1 file — embedded SQLite, auth, file storage, and admin UI as a single Go binary.
PocketBase
MITOdoo
ERP · CRM · Productivity
The open source ERP platform that integrates CRM, accounting, inventory, manufacturing, and 60+ business apps into one seamlessly connected suite.
Odoo
Othertwenty
CRM
The open-source CRM you build, ship, and version like the rest of your stack — with customizable objects, AI agents, and a TypeScript SDK.