Jardinero de Software

Software Gardener. En inglés suena más serio.

A lo largo de muchos años desarrollando software he ido evolucionando mi manera de trabajar, hasta llegar a lo que denomino Jardinería de Software.

La creación de aplicaciones se parece a la jardinería: no solo tienes que diseñar y pensar bien tu idea sino que tienes que cuidarla y adaptarla al medio y a las novedades tecnológicas que cada día son más cambiantes.

Crear software es crear algo que tiene vida, y que hay que cuidar.

Aquí tienes el modo resumido en modo presentación de la chapa más detallada que te cuento abajo, tú eliges, aunque son un poco complementarias.

Ver en modo Presentación

Jardinero de Software

Habrás visto aplicaciones que en pocos meses parecen obsoletas. Yo diseño con la idea de jardinería en la cabeza.

El minimalismo y la simplicidad como única manera posible de adaptación: cosa que es aparentemente sencilla pero implica bastante complejidad.

Diseñar es quitar cosas. Elegir lo que importa, destacarlo y deshacerse de todo lo demás (podar).

Como jardinero de software, me gusta cuidar mis proyectos. No solo se trata de sembrar una idea y esperar a que crezca, sino de nutrirla, podarla y adaptarla a las condiciones cambiantes del entorno.

Otras cosas a tener en cuenta:

Heredar un jardin ajeno. Entrar a cuidar un huerto que plantó alguien antes: primero entender por qué está cada cosa donde está, y no arrancar de raíz lo que no comprendes. (código heredado / legacy)

El compost. Los proyectos que no salieron no se tiran: se pudren bien y abonan los siguientes. El fracaso como tierra fértil.

El injerto. Unir dos plantas para que crezcan como una. Integrar cosas externas e internas.

Dejar en barbecho. A veces lo mejor para una tierra es descansarla una temporada. Pausar un proyecto no es abandonarlo.

No monocultivo. Variar lo que plantas; un huerto de una sola cosa cae entero con una sola plaga. (No depender de una sola tecnología/cliente)

La polinización cruzada. Las abejas no trabajan una sola flor. Lo que aprendes podando una planta lo aplicas a las demás, y lo que florece en un bancal fertiliza el de al lado. (Trabajar en varios proyectos a la vez: cada uno mejora a los otros, y cuando uno se atasca rotas y vuelves con ojos frescos)

Desarrollo + IA

Me baso en el desarrollo dirigido por especificaciones, una forma de trabajar donde primero escribes una especificación detallada de lo que vas a construir, en lenguaje natural estructurado y ordenado, y sólo después escribes el código. Lo que viene siendo el boceto en diseño pasado a boceto de software.

El código pasa a ser una consecuencia, no el documento principal. La idea clave es invertir la jerarquía habitual: el documento de especificaciones es la fuente de verdad, no el código. Este documento va cambiando a lo largo del desarrollo haciendo que el código se adapte a él. Ya que estamos en el jardín podríamos llamarlo tierra de cultivo.

La calidad de una especificación depende de la experiencia acumulada y del aprendizaje continuo, no de la improvisación del Vibe Coding, del que me mantengo muy alejado.

Esta manera de trabajar con herramientas de IA hace que un desarrollador con experiencia funcione como un equipo completo. Para lo que antes necesitabas varias personas coordinándose, hoy puede salir de un único flujo bien planificado. Mismo resultado, menos fricción, más control.

Y cambia también cuántos jardines puede cuidar una persona. Mientras la IA riega y desbroza, el jardinero piensa, decide y poda. Puedo dedicarme a fondo a un solo jardín grande o llevar varios pequeños sin que ninguno se seque, y lo que aprendo en uno lo aplico en los demás.

Cómo se crea una app desde cero

Planificación

mi proceso de desarrollo

Mi forma de diseño

mi forma de diseño

Mi proceso de desarrollo

mi proceso de desarrollo

Puedo encargarme de todo el proceso de desarrollo de una aplicación. Desde la idea inicial hasta el lanzamiento final.

La parte de planificación y gestión del proyecto me gusta. Puedo ayudar a definir el producto, la estrategia de desarrollo y elegir las mejores soluciones tecnológicas.

Mis fortalezas son el diseño de la interfaz y la experiencia de usuario. Identificar los problemas y solucionarlos.

En las demás partes del proceso me gusta colaborar con otros diseñadores y creativos. Pero también puedo encargarme yo.

Aplicaciones

Lo que te conté arriba es mi forma de cultivar; estas apps son lo que crece en mi jardín. No son encargos: las planto entre cliente y cliente, para probar ideas sin plazos. Nacen de mis obsesiones —hacer listas, ordenar cosas, tener la herramienta exacta que quiero usar— y de la necesidad, no para ganar dinero.

Son mis caprichos: las rehago por el placer de mejorarlas, así que nunca están quietas. Las que dejaron de interesarme fueron al compost, que abona a las siguientes. Aquí están las últimas, de las que me siento orgulloso.


Nevera

Nevera es mi lista de la compra y mi recetario, pensada para usarla con una mano mientras la otra cocina. Ordeno los ingredientes por categorías, marco lo que falta y guardo las recetas que veo por ahí. Es la app que más uso: me ha cambiado la forma de comprar y de cocinar.

Todo vive en tu móvil: funciona sin conexión y tus listas son tuyas. Lo que más disfruté fue el importador de recetas, que las arregla si llegan rotas de la IA y solo las guarda cuando están bien. Y el buscador perdona acentos y erratas, para que apuntar la compra sea tan rápido como en un papel.

Tecnologías clave: React Native + Expo · TypeScript · Expo Router · SQLite con Drizzle ORM · Zustand · Tailwind v4 (uniwind) · heroui-native · Fuse.js · react-i18next (ES/EN) · Bun · EAS.


CasiCasi

Cansado de decir no a casi todo, decidí decir CasiCasi a todo: una app para conseguir objetivos jugando, hecha para no decirles que no a Lia y Bruno, mis hijos. El trato: 100 puntos para conseguir lo que quieren, que suben o bajan según lo que hagan y según mi caprichoso e injusto criterio.

Ya adolescentes, pedían otra cosa, así que este verano la rehíce entera. Lo mejor son los retos: les mando un encargo —qué hacer, cuántos puntos vale y para cuándo— en un enlace que abren sin instalar nada. Sé cuándo lo abren y cuándo dicen que está hecho, pero los puntos los doy yo, después de comprobarlo.

Sin cuentas, sin nube y sin datos de nadie: el reto vive un tiempo en una dirección imposible de adivinar y se borra solo, y lo demás no sale del móvil. Su blog se lee en la web y dentro de la propia app.

Tecnologías clave: React Native + Expo 57 · TypeScript · Expo Router · SQLite con Drizzle ORM · Zustand · Tailwind v4 (uniwind) · heroui-native · Skia y Victory Native (la gráfica) · Moti · notificaciones locales y push (Expo) · Next.js y Redis/Upstash para los retos · Bun · EAS.


QVO

¿Qué veo? nace de la desesperación: cinco plataformas, veinte minutos de scroll y al final nada. QVO pone orden: mis listas de películas y series, con los datos de IMDb y en qué plataforma está cada una. La uso a diario y me libra de tragarme demasiadas mierdas (alguna cae, pero menos).

Me obsesioné con dos cosas: que fuera rápida y que se cuidara sola. Enseña al momento lo que ya sabe y comprueba por detrás si hay algo nuevo, sin parpadeos. Y lo lleva todo dentro, sin un servidor aparte, como una planta que no necesita que la rieguen desde fuera. El capricho: una pantalla con mis directores, géneros y actores más vistos, y unas vibraciones con personalidad.

Tecnologías clave: React Native + Expo · TypeScript · Expo Router · SQLite con Drizzle ORM · Zustand · TanStack Query · Tailwind (uniwind) · Zod · Lottie · EAS (compilaciones y actualizaciones por aire).


Citas

Citas son frases célebres que se escriben en pantalla letra a letra, como si alguien las tecleara para ti. Quería un sitio limpio para leer una buena cita, marcarla, buscar entre las mías y proponer las que faltan. La abro para inspirarme, reírme o ponerme a pensar.

Lo que más me enorgullece no se ve: para enlazar citas y cazar las repetidas no uso IA, sino una receta sencilla —de qué hablan, qué palabras comparten y de quién son— que calcula el propio móvil, sin conexión y sin mandar tus datos a ningún sitio. Y las herramientas para moderarlas viven dentro de la app y solo me aparecen a mí: ni web aparte ni servidor que mantener.

Me di varios gustos: recuerda las citas que ya has visto y vuelve a empezar antes de que se acaben, eliges el color con una rueda y la letra se aclara u oscurece según el fondo. Tiene widget para iOS, y en el iPad se convierte en un cuadro que va pasando frases, como un marco digital colgado en la pared.

Tecnologías clave: React Native + Expo 56 · TypeScript · Expo Router · SQLite con Drizzle ORM · Zustand · Tailwind v4 (uniwind) · Moti · Gesture Handler · backend en Redis/Upstash · Bun · EAS.


TICS

TICS hace que mi Mac suene como un teclado mecánico al teclear, y como un ratón al hacer clic. Ese clac sienta bien, y lo quería sin comprarme otro teclado. Vive en la barra de menús, con once teclados para elegir, y el ratón suena con sus clics, el arrastre y la rueda. Me relaja: es un ruido de fondo que va a mi ritmo y se calla cuando me paro a pensar.

La hice en Swift porque iba a estar siempre abierta: tenía que ser ligera, gastar poca memoria y sonar a la vez que la tecla. El reto era de confianza, porque una app que oye cada tecla se parece mucho a un keylogger. Así que solo escucha: sabe qué tecla pulsas, no lo que escribes, no guarda nada y no se conecta a internet. El capricho: también suenan los botones de los ratones Logitech que se queda Logi Options+, y en un MX Master 4 pueden vibrar.

Es gratis y open source, con el código en GitHub.

Tecnologías clave: Swift 6 · SwiftUI · Swift Package Manager, sin proyecto de Xcode · AVAudioEngine · event taps de solo escucha · CoreBluetooth y el HID++ de Logitech · Bun para los scripts.


Editor

Un esqueje para ti. Mi app de ideas no está entre estas: es la libreta donde apunto lo que luego le encargo a la IA, y solo la uso yo. Pero le he cortado el editor de texto para compartirlo. Resalta las etiquetas y los enlaces, sigue las listas y, si se te escapa una errata, te propone en gris la palabra bien escrita. Es gratis y open source, por si quieres plantarlo en tu app.


Plantas distintas del mismo jardín. Lo que comparten no es la tecnología, sino la forma de cuidarlas: pensar antes de plantar, automatizar lo que aburre y no dar nada por bueno hasta que me convence. Son la prueba más honesta de cómo trabajo cuando algo me apasiona.


¿Hablamos?