March 8, 2026
How I Built a Lead Capture System Using Laravel and Filament
In 2026, I decided to rebuild my developer portfolio with a clear goal: turn it into more than just a showcase website. I wanted it to act as a lead generation system—capable of capturing leads, scoring them automatically, initiating follow-ups, and providing a dashboard for management. This article details how I built the system step by step, including architecture, tools, and automation strategies.
The Problem: Most Portfolios Don’t Capture Leads
Most developer portfolios suffer from the same problem:
-
They display projects.
-
They have a contact form.
-
But they don’t generate actionable leads.
A typical scenario:
-
Someone submits a message.
-
It arrives in your inbox.
-
You reply manually.
-
No tracking, scoring, or follow-up occurs.
I wanted to solve this by creating a mini CRM directly in my portfolio, where leads are automatically categorized and nurtured.
Tech Stack: Choosing Speed and Maintainability
The stack was selected for quick development and ease of maintenance:
Backend:
-
Laravel 12
-
SQLite (development)
-
Jobs and queues for automation
Admin Panel:
- Filament 5
Frontend:
-
Blade templates
-
Tailwind CSS v4
-
Alpine.js
-
Livewire
Build Tools:
- Vite for asset compilation
This setup allowed me to build a fully functional app without heavy frontend frameworks.
System Architecture
The portfolio is divided into three main layers:
1️⃣ Frontend: Lead Capture
The landing page includes multiple sections:
-
Hero
-
Problem statement
-
Case studies
-
Portfolio
-
Blog
-
Contact
The contact form is the entry point of the funnel.
2️⃣ Backend: Lead Management
When a user submits a contact form:
A Lead record is created:
| Field | Description |
|-------|-------------|
| project_type | Type of project |
| budget_range | Budget range |
| urgency | Urgency level |
| score | Calculated lead score |
| status | Pipeline stage (new, contacted, etc.) |
A ContactMessage record is also created to separate lead data from the user’s message.
3️⃣ Admin Panel: Filament Resources
All lead management happens through Filament, including:
-
Leads
-
Projects
-
Blog posts
-
Services
-
Skills
-
Contact messages
The dashboard includes widgets for visualizing lead metrics:
-
Leads this month
-
Hot leads
-
Conversion rate
-
Latest leads
The Livewire Lead Form
I implemented the form using Livewire, which enables reactive validation and logic without heavy JavaScript.
Form fields:
-
Name
-
Email
-
Project type
-
What they want to automate
-
Budget
-
Urgency
Workflow on submission:
Lead Scoring Automation
One of the most critical features is lead scoring, which helps prioritize high-value leads.
Each lead gets a score from 0–15 based on:
-
Budget
-
Urgency
-
Project type
Example scoring logic:
| Factor | Points |
|--------|--------|
| Budget > $5000 | +5 |
| Urgency High | +4 |
| Automation Project | +3 |
Leads are classified automatically as:
-
Cold
-
Warm
-
Hot
This enables quick prioritization in the admin dashboard.
Automated Follow-Up Sequence
Once a lead is created, the system triggers an automatic follow-up flow:
-
Immediate email to the client
-
Follow-up at +2 days
-
Follow-up at +5 days
-
Follow-up at +10 days
This is handled using Laravel jobs and the scheduler, ensuring no lead is left behind.
Main job: SendLeadFollowup
Email Provider Integration
The system can sync leads with an email marketing provider (Brevo) via a webhook.
Job: SyncLeadToEmailProvider
Environment variables in .env:
This allows:
-
CRM tracking
-
Adding leads to a mailing list
-
Automated email campaigns
Sales Pipeline
Each lead progresses through a simple pipeline:
-
New
-
Contacted
-
Meeting Scheduled
-
Proposal Sent
-
Won
-
Lost
This transforms the portfolio into a mini CRM for sales follow-ups.
SEO Integration
I also integrated basic SEO best practices:
-
Dynamic meta titles and descriptions
-
Open Graph tags
-
Sitemap.xml
-
robots.txt
-
Schema.org: Person and Website
The blog supports SEO-friendly content:
Results
The result is a fully functional lead generation system embedded in a portfolio, including:
-
Optimized landing page
-
Intelligent contact form
-
Lead scoring and classification
-
Automated email sequence
-
Admin panel with pipeline visualization
All built with Laravel + Filament + Livewire.
Next Steps and Improvements
Planned improvements:
-
Individual project pages for better SEO
-
Full blog index page
-
Project image galleries
-
Automated tests
-
Production deployment with queue workers
Conclusion
A portfolio doesn’t need to be static.
With Laravel, Livewire, and Filament, it’s possible to build a complete lead capture system that generates opportunities automatically.
This approach turns a simple portfolio into a business-generating machine.
Related articles
How to Integrate Laravel with Email Marketing Providers
Learn how to integrate Laravel with email marketing providers to automate campaigns, manage subscribers, and improve customer communication. This guide explains the benefits and key implementation steps.
What Is Lead Scoring and Why Your Business Needs It
Lead scoring is a powerful marketing and sales strategy that helps businesses identify which prospects are most likely to become customers. Learn how lead scoring works and why it can significantly improve your sales efficiency.