Fermin Perdomo

Senior Full Stack Engineer | PHP | JavaScript

Posts

How to render realtime record with firebase in react the right way

If you’ve ever worked with Firebase Realtime Database, you know how magical it feels to see data update instantly in your app. But here’s the catch: once your database starts growing to thousands or even millions of records, that magic can quickly turn into lag, unnecessary bandwidth costs, and frustrated users.

A common mistake is to subscribe to an entire node and dump everything into state. It works fine when your dataset is small — but at scale, you’ll end up trying to render way more than your UI (or your users) can handle.

The good news? You don’t have to choose between “realtime” and “performance.” With the right approach, you can keep your app fast, efficient, and responsive even as your database grows.

Simple way to create an api service with Laravel

1) New project + API mode

composer create-project laravel/laravel thirdparty-api
cd thirdparty-api
php artisan serve

In .env set your DB and APP_URL.


Outbound AI Agents with VICIdial + Ultravox

I’ve been experimenting with combining VICIdial (classic Asterisk-based dialer) with Ultravox (speech-language model for real-time voice AI). The goal: let the dialer place calls, route live answers to an AI bot, and then transfer to a human closer when needed.

Most call centers still run VICIdial, one of the most reliable dialers out there. But what if every live answer could be handled first by an AI agent—qualifying, answering FAQs, even delivering compliance lines—before a closer picks up?

How to create an MCP server with PHP

One of the biggest challenges in AI adoption is connecting models with the right tools and data securely. That’s where MCP comes in.

Model Context Protocol (MCP) is a new open standard designed by Anthropic to improve how AI models access and interact with external information and tools. At its core, MCP is about making AI agents more capable, scalable, and secure by decoupling the agent from the messy context management and custom tool integrations that developers currently juggle.

How to Safely Build Dynamic Tracking Links with Query Parameters in JavaScript

When working with affiliate platforms like Everflow, it's common to dynamically append tracking parameters (e.g., sub1, sub2) to a base tracking link.

At first glance, this seems straightforward: simply concatenate the parameters with an ampersand (&). But if you’re not careful, you could end up with broken links, double question marks (??), or missing values. In this post, we’ll explore a safe, modern way to build URLs with query parameters using JavaScript’s URL and URLSearchParams APIs.

How to Build a Medicare AI Voice Bot Integrated with VICIdial

Are you looking to modernize your call center by automating outbound Medicare calls? In this post, we’ll show you how to create a working proof of concept for a voice bot that answers Medicare questions, compares plans, and guides users through enrollment—all powered by AI and connected to VICIdial.

Step-by-Step: Generate SEO Image from Blog Post Title in Laravel

In this tutorial, you will learn how to create an image for your blog using HTML and text.

How to Configures Twilio as a SIP trunk in Vicidial

In this post, I will teach how to configure Twilio as a SIP trunk in vicidial.

Trigger Outbound Calls from Laravel Using VICIdial API Wrapper

VICIdial is one of the most powerful open-source contact center solutions in the world, but integrating it with modern web applications like Laravel can be a challenge—especially if you're trying to initiate outbound calls programmatically.

In this post, you'll learn how to trigger outbound calls from Laravel using the masterfermin02/vicidial-api-wrapper package and VICIdial’s external_dial Non-Agent API function.

How to Add Reactions to Laravel Using reactify

I added a reaction system to my blog posts, and it doesn't have to be complicated. With Reactify, you can easily make any Eloquent model capable of receiving reactions. 


In this guide, I'll walk you through the step-by-step process of setting up Reactify. Let's get started!

Older articles