Business & Operations

SalesCRM

Source code included

Self-hosted B2B sales CRM with AI assistant, deal scoring, training academy and offline mobile app

Built by Build Nest Updated 9 Oct 2026 34,512 lines of code

Open live demo Built withOpenAI CodexClaude Code

Why SalesCRM

What makes it better
than the alternatives

  1. 01

    Self-hosted with full source code

    Laravel 12 (PHP 8.2) and MySQL 8, no vendor lock-in or per-seat fees

  2. 02

    AI features are optional

    The CRM works fully without an Anthropic key; Deal Pulse scoring uses rules, not AI

  3. 03

    Offline mobile app

    Installable PWA that captures leads at events without signal, syncs when back online

  4. 04

    Sales training academy

    Courses, quizzes, AI role-play scenarios, gamification with points, streaks and badges

  5. 05

    Role-based visibility

    Reps see their own deals, managers see their team, Head of Sales sees everything

Leads & Pipeline

  • Leads with stages
  • priority
  • source
  • expected value
  • close date and activity timeline
  • Kanban pipeline board with drag-and-drop between stages (LeadStage table
  • PipelineController)
  • Duplicate detection on company name and contact email (LeadController::checkDuplicates)
  • Bulk import from Excel or CSV (BulkImportController
  • Import/ImportFormat)
  • Excel export of filtered lead lists (LeadController::export
  • PhpSpreadsheet)

Activities & Tasks

  • Activity log per lead: calls
  • meetings
  • emails
  • notes with timestamps (Activity table)
  • Tasks with due dates
  • priority and completion tracking (Task table
  • TaskController)
  • Follow-ups list showing overdue and due-today items in the team's timezone (FollowUpController)
  • Urgent Attention list: stalled
  • overdue and at-risk deals with reasons (UrgentAttentionController)
  • Activity feed with My/Team tabs and filters by type and date (ActivityController)

Contacts & Companies

  • Contacts with name
  • email
  • phone
  • designation
  • industry and notes (Contact table
  • ContactController)
  • Companies with address
  • website
  • industry
  • entity type and notes (Company table
  • CompanyController)
  • Relationship pages showing all deals
  • activities and proposals per contact or company
  • Visiting-card scanning with AI (CardScanController
  • AI/CardReader
  • Anthropic Vision API)
  • Shared address book visible to all signed-in users (SECURITY.md)

Proposals

  • Proposal creation with auto-numbering
  • status
  • validity period and file uploads (Proposal table
  • ProposalController)
  • File storage in storage/app/private with access control (ProposalDocumentController)
  • Expiry reminders: scheduled job flags proposals nearing expiry (CheckProposalExpiry command)
  • Proposal alerts view showing expiring and expired proposals (ProposalAlert view
  • ProposalController::alerts)
  • Status tracking: Draft
  • Sent
  • Accepted
  • Rejected
  • Expired (ProposalStatus enum)

Targets & Commission

  • Monthly revenue targets for company
  • teams and individuals (Target table
  • TargetController)
  • Commission tracking: set amount
  • deal value
  • notes
  • paid status (Commission table
  • CommissionController)
  • Head of Sales sets and marks commissions paid; others view their visible commissions
  • Unset commissions list for won deals without commission records (CommissionController::index)
  • Commission totals: total
  • paid
  • pending (CommissionController)

Reports & Analytics

  • Dashboard per role: KPIs
  • pipeline
  • revenue
  • tasks
  • proposals (DashboardController
  • DashboardService)
  • Analytics area with six tabs: overview
  • revenue
  • leads
  • contacts
  • proposals
  • team (AnalyticsController)
  • Sales performance report: rep stats
  • win rates
  • conversion rates (PerformanceService)
  • Pipeline report by stage with value and count (ReportController::pipeline)
  • Lead source report showing origin breakdown (ReportController::leadSource)
  • Revenue report with monthly actuals vs targets (ReportController::revenue)

AI Assistant (optional)

  • Chat interface answering questions from live CRM data visible to the signed-in user (AIAssistantController
  • AI/AssistantContext)
  • Weekly coaching brief on screen or by email (WeeklyBriefController
  • AI/WeeklyBrief)
  • Account and contact research with optional live web search (AIFeaturesController
  • AI/WebSearch
  • Tavily API)
  • Deal Pulse: rule-based health score for open deals with AI explanation (DealPulseController
  • DealPulseService)
  • Visiting-card scanning using Anthropic Vision API (CardReader)
  • Rate limited to 20 requests per person per minute (throttle:ai middleware)

Training Academy

  • Courses
  • lessons and quizzes with points
  • streaks and badges (TrainingCourse
  • TrainingLesson
  • TrainingQuiz tables)
  • Weekly training module chosen for each rep's weakest area (WeeklyTrainingJob
  • Training/WeaknessAnalyzer
  • Training/ModuleWriter)
  • Role-Play Arena: AI-powered sales scenario practice (RolePlayController
  • RolePlayService
  • RolePlayScenarios)
  • Gamification: points
  • streaks
  • badges
  • leaderboard (Training/Gamification
  • TrainingService)
  • Team progress tracking for managers (Training/TeamProgress
  • TrainingController::team)
  • Job history showing generated modules and emails (TrainingController::jobHistory)

Mobile App (PWA)

  • Installable progressive web app with offline support (resources/mobile/sw.js
  • mobile-assets/)
  • Event lead capture: photograph cards
  • add notes
  • works without signal (Mobile/CaptureController)
  • Event management: create events
  • assign reps
  • track captured leads (Mobile/EventController)
  • Follow-ups list on mobile (Mobile/FollowUpController)
  • Lead list and detail views (Mobile/LeadController)
  • Syncs when back online; offline page shown when no connection (mobile-assets/offline.html)

Settings & Administration

  • User management: create
  • edit
  • deactivate users with roles (Settings/UserController
  • User table)
  • Four roles: Head of Sales
  • Sales Manager
  • Sales Executive
  • Viewer (RoleId enum
  • role: middleware)
  • SMTP configuration with encrypted password storage (Settings/SmtpController
  • MailSettings service)
  • Pipeline stage management: add
  • edit
  • reorder
  • mark as won/lost (Settings/StagesController)
  • Scheduled jobs: overdue tasks
  • proposal expiry
  • deal scoring
  • weekly training (ScheduledJobs service)
  • Profile settings: change password
  • timezone
  • notification preferences (Settings/ProfileController)

Quality report

Manually reviewed

93/ 100

Automated audit score

✓ Passed the audit

Passed the audit and a manual review.
Audit run: 7 Oct 2026
Reviewed by Vibe96 staff, Dubai.

Security93
Code structure82
Docs & completeness100
Dependency health100
Build & deploy92
Reviewer notes (3 minor)

Weak default passwords in example files; no real credentials found; database access is mostly safe; a few unindexed foreign keys and one raw sql call need attention; access control is comprehensive with minor gaps on read-only endpoints. None of these stop the software from working; the developer has been told and improvements come in a future update.

Versions & updates

1.0.0
First release9 Oct 2026✓ Reviewed & audited

No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.

Quality report

What you get

  • </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
  • ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
  • ↻One year of updatesEvery new version the builder publishes, free for 12 months.
  • ♧30 days of supportInstallation and defect support through Vibe96 tickets.
$299Single-site licence Details