Producto propio · Angular · Demo abierta

taller.arBeta pública

Empezó siendo el Excel del taller de mi viejo. Pasó por un proyecto de facultad que terminaron usando más de diez talleres reales. Hoy es taller.ar: un producto propio, reescrito desde cero en Angular 22, con roles, multi-taller y una demo abierta que podés probar ahora mismo sin registrarte.

Rol
Diseño & Desarrollo
Producto propio, de punta a punta
Stack
Angular 22 · PrimeNG 21
Signals · SCSS
Antes: Next.js · Laravel
Período
2023 — Presente
Beta pública · taller.ar

Podés probarla ahora

La beta está publicada con datos de ejemplo y sin base de datos: entrás, tocás todo y no rompés nada. En el login hay un acceso rápido que te deja entrar con un click como superadmin, como dueño de taller o como mecánico, para ver cómo cambia la app según el rol. Si preferís escribirlo: cualquiera de los usuarios de la lista con la clave 1234.

Pablo, mi padre, tiene su propio taller de aire acondicionado automotor. Para registrar las órdenes de reparación usaba un Excel — largo, pesado, sin vínculos entre clientes, autos ni historial. Funcional a medias, imposible de consultar desde el celu en el medio de un trabajo.

Las aplicaciones del mercado no eran mucho mejores: viejas, de instalación local, atadas a una sola máquina y con interfaces que parecían de otra época. El UX era anticuado en todo lo que importa: usabilidad, acceso mobile y flujos pensados para el usuario real — no para el técnico que las desarrolló.

2023 · addcar

El parcial

En la facultad había que entregar una app real. Cansado de los típicos carritos de compra, hice el sistema que el taller de mi viejo necesitaba.

2023 — 2024 · ABM Taller

La que se usó de verdad

Full-stack en Next.js y Laravel. Salió de la facultad y la terminaron usando más de diez talleres, con 1.200 autos cargados.

2026 · taller.ar

El producto

Reescritura completa en Angular 22 con dominio propio, sistema de roles, multi-taller y una beta pública que cualquiera puede probar.

ABM Taller — pantalla de login de la versión en Next.js y Laravel
ABM Taller — home del sistema en la versión anterior
ABM Taller — la versión que usaron los primeros talleres

Reescribir algo que funciona casi nunca se justifica. Acá sí, y por una razón concreta: ABM Taller era un trabajo práctico que se volvió software de producción sin haber sido diseñado para eso. Servía para un taller, no para diez. No tenía roles, no tenía forma de separar los datos de un taller de los de otro, y cada cliente nuevo era un deploy aparte.

El salto no fue de tecnología, fue de producto: pasar de "una app para el taller de mi viejo" a "una app que cualquier taller puede usar". Eso cambia el modelo de datos, la autenticación y la navegación desde la raíz. Reescribir salió más barato que parchear.

La otra razón fue de oficio: quería construirla con lo que Angular hace bien hoy — signals, componentes standalone, el control flow nuevo y lazy loading por ruta — en lugar de arrastrar patrones de dos versiones atrás.

taller.ar — login con acceso rápido de demo por rol
El login, con el acceso rápido que deja entrar como cualquiera de los cinco perfiles
taller.ar — dashboard con contadores de clientes, vehículos, órdenes activas y mecánicos
Dashboard — el estado del taller de un vistazo, y las órdenes recientes abajo
taller.ar — listado de órdenes de trabajo con filtros por estado
taller.ar — formulario de alta de una orden de trabajo
taller.ar — listado de clientes con búsqueda y paginación
taller.ar — listado de vehículos vinculados a sus clientes
taller.ar — listado de mecánicos del taller
taller.ar — configuración del taller y sus miembros
Órdenes, clientes, vehículos, mecánicos y la configuración del taller
Órdenes de trabajo

Alta, seguimiento y cierre, con estados (pendiente, en progreso, listo, entregado), fecha estimada y monto.

Clientes

Base de clientes vinculada a sus vehículos y a todo su historial de órdenes.

Vehículos

Registro por patente con el historial de intervenciones de cada auto.

Mecánicos

Equipo del taller, con las órdenes asignadas a cada uno.

Mi taller

Datos del taller y sus miembros. El superadmin además administra todos los talleres del sistema.

Modo oscuro

Tema claro y oscuro completo, con la preferencia guardada en el dispositivo.

Roles en dos dimensiones. Hay tres perfiles — superadmin, admin y miembro — y además un usuario puede o no pertenecer a un taller. Eso da casos que la app tiene que resolver bien: un usuario nuevo sin taller va al onboarding, un admin ve solo su taller, y el superadmin ve todos. La navegación se resuelve con cuatro guards de ruta encadenados (authGuard, tallerGuard, superadminGuard, onboardingGuard), que mandan a cada usuario donde corresponde en lugar de mostrarle una pantalla vacía o esconderle botones.

Vale aclarar qué son esos guards y qué no: resuelven la experiencia de navegación, no la seguridad. Un guard corre en el cliente y se saltea. La barrera real va a estar en la base, con Row Level Security por taller, cuando el backend entre en juego. Confundir las dos cosas es de los errores más caros en apps multi-inquilino, y prefiero dejarlo escrito antes que dar a entender que un guard alcanza.

Angular moderno, sin arrastre. Todos los componentes son standalone y con ChangeDetectionStrategy.OnPush. El estado se maneja con signals (signal(), computed(), viewChild()) y las plantillas usan el control flow nativo — @if, @for, @empty — en vez de las directivas viejas. Cada ruta carga con loadComponent, así que el bundle inicial solo trae el login.

Un tema, no un theme. PrimeNG 21 con el preset Aura personalizado en ámbar, y el modo oscuro resuelto con una sola clase en el <html> que PrimeNG recibe por darkModeSelector. Los componentes usan :host-context(.dark-mode) para sus overrides puntuales, y las páginas de listado comparten un partial de SCSS — no hay estilos duplicados entre módulos.

La demo es parte del producto. El acceso rápido del login con cinco usuarios preconfigurados no es un atajo de desarrollo: es la forma de que alguien entienda el sistema de roles en treinta segundos, sin crear una cuenta. Para un producto que todavía está buscando sus primeros usuarios, eso vale más que cualquier landing.

Migración de versiones al día. El proyecto arrancó en Angular 19 y hoy corre en la 22, pasando por la 20 y la 21. Mantener eso al día en un side project es aburrido, pero es exactamente lo que evita que dentro de dos años la reescritura vuelva a ser la única salida.

taller.ar — dashboard en modo oscuro
taller.ar — órdenes de trabajo en modo oscuro
El mismo sistema en oscuro — un taller no siempre tiene buena luz

taller.ar está en beta pública, con datos de ejemplo y sin base de datos todavía. La autenticación y la persistencia son mock: todo vive en memoria y en localStorage. Eso es deliberado — la interfaz y los flujos se validan antes de comprometerse con un esquema de datos, que es lo caro de cambiar después.

Lo próximo es Supabase: mover la autenticación y los datos, con RLS por taller para que la separación entre talleres sea del lado de la base y no de la interfaz. La app ya está escrita esperando eso — el AuthService tiene la misma firma que va a tener con Supabase detrás.

Los números de abajo son de ABM Taller, la versión anterior, que sí estuvo en uso real. taller.ar todavía no tiene usuarios: por eso está publicada como demo abierta y no como producto cerrado.

Probar la demo — taller.ar

¿Querés ver otros proyectos?