\n
Available for new projects

Product Developer & AI Architect

Self-taught builder of web applications. I orchestrate AI systems as my development team, combining human architecture with machine speed. No CS degree. Just 6 years of shipping products that work.

React Node.js WordPress AI Workflows

Current Stack

WordPress PHP JavaScript Tailwind CSS React MySQL Git
Project Estimator

Ready to build something great?

Get an instant, detailed estimate for your next web app, business site, or custom software project.

Start Your Project

Selected Work

Real projects for real clients. From WordPress sites to custom applications.

View GitHub

Bordados
Pando

Industrial ERP

AI Powered
Ver Proyecto

Bordados Pando ERP

40% faster order management
200+ orders/day automated
Next.js 15 Firebase Genkit AI

Arrancandonga

Branding Studio

Ver Proyecto

Arrancandonga

MVP React CDN → Astro SSG
100/100 Lighthouse score
Astro React Tailwind
How I Work

From Idea to Deploy

A streamlined process amplified by AI. I design the architecture, orchestrate the development, and curate the final result. Faster delivery without sacrificing quality.

01

Discovery

Understanding your business goals, users, and technical requirements. AI-assisted research and competitor analysis.

1-2 days
02

Architecture

I design the system structure, database schema, and component hierarchy. Human decisions, AI-enhanced planning.

2-3 days
03

AI-Accelerated Build

Orchestrating AI agents for rapid development while I audit, refine, and optimize every line of code.

1-2 weeks
04

Deploy & Scale

Production deployment, performance optimization, and monitoring setup. You get a product that works from day one.

Launch ready

Tech Stack

Technologies I use to build products. Always learning, always evolving.

Frontend

React / Next.js
JavaScript (ES6+)
Tailwind CSS

Backend

Node.js
PHP
Firebase

CMS & Data

WordPress
MySQL
Redis

AI & Tools

LLMs & Agents
Git
Figma

Interactive Labs

Complex functionalities built from scratch with detailed technical explanations. No libraries, no dependencies. Just raw code demonstrating problem-solving capabilities and deep understanding of web fundamentals.

Algorithm: Fisher-Yates Shuffle + 3D CSS

From a production Tarot card system • 22 cards • True randomness

Deck ready (22 cards)

🌙 The Moon
☀️ The Sun

Time Complexity

O(n)

Space Complexity

O(1)

Cards Shuffled

0

Why Fisher-Yates?

The Fisher-Yates shuffle produces a uniformly random permutation. Each element has exactly 1/n probability of ending up in any position. This is crucial for a fair card draw.

fisher-yates.js
function fisherYatesShuffle(array) {
  // Create a copy to avoid mutating original
  const arr = [...array];
  
  // Iterate from last to first element
  for (let i = arr.length - 1; i > 0; i--) {
    // Pick random index from 0 to i
    const j = Math.floor(Math.random() * (i + 1));
    
    // Swap elements at i and j
    [arr[i], arr[j]] = [arr[j], arr[i]];
  }
  
  return arr;
}

// Usage with 22 Tarot cards
const deck = ['The Fool', 'The Magician', ...];
const shuffled = fisherYatesShuffle(deck);
const selection = [shuffled[0], shuffled[1]];

Native Drag & Drop API

TODO

API Research

DOING

DONE

Try dragging the card between columns

Virtual Scroll (10K Items)

Rendering only visible items • 0 DOM nodes

Real-time Validation

8+ characters
Uppercase letter
Number
Special character

Canvas Particle System

Typewriter Algorithm

|

CSS 3D Transforms

FRONT
BACK

Click to flip

Blog

Thoughts on Building

Lessons learned, technical deep dives, and the stories behind the projects.

Story

March 8, 2025 5 min read

Building This Portfolio: Why I Ditched Templates

After 20 years of building websites, I finally made something that represents how I actually work. No WordPress themes, no page builders—just code...

Read post

Case Study

February 15, 2025 8 min read

Lessons from Building an Industrial ERP Solo

Bordados Pando needed to process 200+ orders daily. Here's how I built a system that reduced their management time by 40%...

Read post

Code Vault

Reusable snippets I use across projects.

Debounce Function

const debounce = (fn, delay) => {
    let timer;
    return (...args) => {
        clearTimeout(timer);
        timer = setTimeout(() => fn.apply(this, args), delay);
    };
};

Fetch Wrapper

async function api(endpoint, options = {}) {
    const res = await fetch(`/wp-json/custom/v1${endpoint}`, {
        headers: { 'Content-Type': 'application/json' },
        ...options
    });
    if (!res.ok) throw new Error('API Error');
    return res.json();
}

About Me

20 years of building for the web. From table layouts to AI-powered applications.

horacio@portfolio:~
$ whoami
horacio_morales - Product Developer & AI Architect
$ cat experience.json
{
  "web_design": "20 years",
  "wordpress": "Since 2016",
  "modern_stack": "React, Node, Firebase",
  "current_focus": "AI-accelerated development"
}
$ status --availability
🟢 Open to new projects
$ _

The Journey

Started 20 years ago with table-based layouts and Flash animations. Built my first WordPress site in 2016—it was ugly, but it worked. Since then, I've shipped solutions for restaurants, shops, and industrial clients. No CS degree, just continuous learning.

How I Work Now

I architect systems and orchestrate AI agents to accelerate development. I review every line of code, optimize performance, and ensure the final product meets professional standards. Faster delivery, same quality.

What I Do

Build complete web applications—from interface to deployment. Handle frontend, backend, databases, and server configuration. Self-taught means I had to learn every layer, which turns out to be useful.

20+
Years
50+
Projects
100%
Self-Taught
Free Quote in 24-48h

Let's Build Something Amazing

Tell me about your project. No technical knowledge required.

What do you need?

Select what best describes your project

Landing Page

Single page to showcase your product

Business Website

Multi-page site with CMS

Web Application

Custom functionality, dashboards

Online Store

Sell products with payments

I'm not sure

Describe your idea and I'll help