Designing an Internal Business Platform with Laravel, Vue, Inertia, AI, and Modern Web Technologies

During the development of Lyra Interactive, I began building an internal Customer Relationship Management (CRM) platform to help manage business development, sales outreach, proposals, and company research.

Rather than relying on an off-the-shelf CRM, I wanted complete control over the workflow. My goal was to create an application tailored specifically to how I wanted to organize leads, evaluate opportunities, and automate repetitive tasks.

Although Lyra Interactive ultimately never launched commercially, the CRM became an excellent sandbox for experimenting with modern Laravel development, AI integration, data import/export workflows, and scalable application architecture.

The Goal

The CRM was designed around one simple idea: Build a system that would help a small agency spend less time organizing information and more time finding opportunities.

Instead of trying to compete with Salesforce, HubSpot, or Zoho, the application focused only on features that mattered for my workflow.

That included:

  • Company management
  • Contact organization
  • Lead scoring
  • Status tracking
  • Proposal opportunities
  • RFP monitoring
  • Importing and exporting business data
  • Business profile management
  • AI experimentation
  • Google Places integration
  • Administrative utilities

Everything was designed specifically around how I preferred to work.

Dashboard

The dashboard acted as the central overview of the CRM.

It highlighted:

  • Companies requiring callbacks
  • Recently imported businesses
  • Highest-scoring opportunities
  • Upcoming work requiring attention

Instead of presenting raw numbers, the goal was to surface actionable information immediately after logging in.

Company Directory

The Company Directory became the heart of the application.

Features included:

  • Server-side pagination
  • Searching
  • Filtering
  • Bulk actions
  • Tags
  • Campaign assignments
  • Status management
  • Opportunity scoring
  • Quick action menus

As the business database grew into the tens of thousands of records, efficient searching and pagination became increasingly important.

One area I spent considerable time on was organizing information so that high-value companies naturally rose to the top of the workflow.

Importing Large Data Sets

One of the most important features was importing business information from CSV files.

The importer supported:

  • Uploading spreadsheets
  • Assigning campaigns
  • Applying tags
  • Setting default statuses
  • Defining relationship types
  • Mapping metadata

Rather than forcing every CSV to match an exact schema, the importer handled much of the repetitive organization automatically.

This dramatically reduced the amount of manual cleanup required after importing new prospect lists.

Export Tools

The opposite side of the workflow was exporting information.

The CRM could generate full CSV exports of company data while tracking export progress in real time.

This made it easy to:

  • create backups
  • migrate data
  • analyze information externally
  • prepare mailing campaigns

Status & Workflow Management

Rather than hardcoding business states throughout the application, statuses and relationship types were managed centrally.

Example statuses included:

  • New
  • Contacted
  • Qualified
  • Proposal
  • Closed Won
  • Closed Lost

Relationship types such as Lead, Prospect, Customer, Partner, and Vendor allowed the CRM to adapt to different types of organizations without changing application logic.

Internal Business Utilities

As the project expanded, I began building additional tools that supported the agency itself.

These included:

  • database backups
  • import/export management
  • Avery 94200 mailing label generation
  • multiple business profile management
  • OpenAI configuration
  • Google Platform configuration
  • administrative utilities

These features transformed the CRM into more than a contact manager—it gradually became an internal operations platform.

AI Integration

One area I was particularly interested in exploring was AI-assisted workflows.

The CRM included infrastructure for connecting with multiple large language model providers, including OpenAI and other compatible APIs through Prism.

Although the project never reached the stage of fully automated prospect analysis, the architecture was designed with future AI features in mind, such as:

  • company summaries
  • lead qualification
  • opportunity scoring
  • proposal assistance
  • business research
  • workflow automation

This project also became one of my first opportunities to incorporate AI directly into my development process.

Throughout development I used ChatGPT and OpenAI Codex as engineering assistants for brainstorming architecture, refining implementation details, generating boilerplate code, debugging problems, and accelerating routine development tasks. Rather than replacing traditional programming, AI served as another tool that allowed me to iterate faster while maintaining control over the application’s design and technical direction.

Lessons Learned

Building a CRM from scratch reinforced just how many moving parts exist in business software.

Beyond CRUD operations, there are considerations like:

  • application architecture
  • data modeling
  • background jobs
  • imports
  • exports
  • permissions
  • search performance
  • long-running processes
  • UI consistency
  • future scalability

Even though the project remains unfinished, it represents one of the largest Laravel applications I’ve built independently and provided an opportunity to explore patterns that extend far beyond traditional website development.

Technologies Used

Backend

  • PHP 8.2
  • Laravel 12
  • Composer
  • Laravel Eloquent
  • MySQL
  • SQLite (testing)
  • Laravel Queues
  • Laravel Cache
  • Laravel Sessions
  • Laravel Tinker
  • Laravel Artisan

Frontend

  • Vue 3
  • Inertia.js
  • Vite
  • Tailwind CSS
  • Blade
  • Axios
  • Ziggy
  • Font Awesome
  • Trix Editor
  • Quill
  • AOS
  • Spotlight.js

Packages & Libraries

  • Spatie Laravel Permission
  • Spatie Laravel Tags
  • Spatie Laravel Backup
  • Laravel Excel
  • League CSV
  • Prism PHP
  • CreativeOrange Gravatar

Services

  • Google Places API
  • Google Cloud
  • OpenAI
  • Anthropic
  • Gemini
  • Groq
  • Ollama
  • Mistral
  • DeepSeek
  • xAI
  • ElevenLabs
  • OpenRouter
  • Voyage AI

Development

  • PHPUnit
  • Laravel Pint
  • Laravel Sail
  • Laravel Pail
  • Faker
  • Mockery
  • NPM
  • Vite
  • Composer

Looking Back

Not every side project becomes a finished product, but that doesn’t diminish its value.

This CRM allowed me to explore modern Laravel architecture, experiment with AI-powered workflows, and build an application around real business needs instead of hypothetical examples. While Lyra Interactive ultimately closed before the platform could be completed, the experience continues to influence how I approach application design today.

Looking back, it’s one of those projects I’m glad I built—not because it became a product, but because it made me a stronger developer.