Cómo dejé Airtable y construí mi propia herramienta de bookmarks en 2 tardes (por menos de 15 €)

Share on:

Bookmark post cover

AI, Productivity

  • Tras 5 años usando Airtable para gestionar mi biblioteca de recursos, la extensión de captura se volvió de pago. Un toque de atención sobre la dependencia del software de terceros (Vendor Lock-in).

  • Creé una solución propia a medida combinando una extensión para Chromium, un panel privado y la capa pública integrada en mi web, con Supabase como fuente única de verdad y DeepSeek Harness como un agente de desarrollo.

  • Aposté por Cloudflare Workers frente a Vercel para el despliegue.

  • El resultado: 327 bookmarks migrados, desarrollo completado en dos tardes y un coste total de < 15 €.

Hace ya 15 años que decidí crear Mockup, concebido inicialmente como un portfolio y un rincón digital donde dejar mis reflexiones a lo largo del tiempo. Ha sufrido muchas modificaciones, pero una de las mayores ha sido la que te voy a contar hoy. Todo gracias a una decisión de producto y, cómo no, a la ayuda de la inteligencia artificial.

Fue en el año 2021 cuando hice la migración de la web a Framer y abrí la sección de bookmarks. Mi intención era sencilla: plasmar webs, artículos, herramientas y otros recursos que me resultaban útiles en mi formación y entretenimiento, por si a otros les pudieran aportar el mismo valor.

Wayback machina screenshot for www.mockup.es

Durante más de cinco años confié ciegamente en una herramienta de terceros para gestionar esta biblioteca personal, que ya acumulaba 327 enlaces curados sobre diseño, estrategia de producto y tecnología.

Esa herramienta era Airtable. En su momento, era el "Excel con esteroides" perfecto: me permitía obtener un iframe para integrar el contenido directamente en mi web y contaba con una extensión web clipper que hacía un fetch relativamente sencillo para añadir nuevo contenido a la base de datos y tener la versión web actualizada automáticamente.

Hasta que un día, Airtable decidió cambiar sus condiciones (como hace toda empresa) y la extensión que usaba para capturar esos enlaces empezó a pedirme dinero.

Ese fue el empujón que necesitaba para tomar una decisión radical.


1. El detonante

Guardar un enlace era un gesto trivial. Veía una web interesante, hacía clic en la extensión de Airtable y listo: título, descripción y URL quedaban guardados en la nube. Cuando la extensión se volvió de pago, entendí que el problema iba mucho más allá de una simple suscripción mensual:

  • Dependencia crítica (Vendor Lock-in): Tus hábitos y tus flujos de trabajo quedan atrapados en plataformas que pueden cambiar sus precios o sus características cuando les venga en gana.

  • Tus datos no son tan tuyos: Exportar información desde herramientas SaaS suele ser un proceso farragoso donde, casi siempre, te dejas metadatos o imágenes de por medio.

  • Coste sin retorno real: Pagar licencias recurrentes por un software hipervitaminado del que solo aprovechas un 5% de sus funcionalidades no tiene sentido financiero ni operativo.

Para una necesidad tan específica, pasar por caja no salía a cuenta. Necesitaba una solución propia, ligera y bajo mi control absoluto.

2. El nuevo enfoque: diseñando a medida

En lugar de buscar un sustituto comercial que tarde o temprano volvería a cambiar sus reglas, he diseñado un sistema a medida respondiendo a tres necesidades claras:

  1. Una extensión propia y privada para Chromium: Un capturador que extrae automáticamente el título, la descripción y la imagen de vista previa de la página, avisándome además si el enlace ya existe en mi base de datos.

  2. Un panel de administración privado: El backstage para filtrar, etiquetar, organizar y decidir qué contenido se queda en borrador y qué sale a la luz.

  3. Una capa pública integrada: El escaparate limpio en mockup.es/bookmarks donde muestro exclusivamente lo que yo decido publicar.


La regla de oro de la arquitectura: Una sola fuente de verdad

Todas las piezas del sistema consumen y escriben sobre Supabase, una base de datos PostgreSQL en la nube.

Sí, lo sé, sigo dependiendo de un tercero, pero seamos realistas: tampoco voy a montarme y mantener un servidor privado (de momento) para este caso de uso, entre otras cosas porque operativamente no sería rentable.

Lo clave aquí es cómo uso Supabase. Aprovechando sus políticas de Row Level Security (RLS), reglas de seguridad nativas a nivel de fila, garantizo por arquitectura que la web pública solo tenga permisos para leer los datos marcados explícitamente como "publicados". Mientras tanto, el panel privado y la extensión gestionan la escritura. Todo queda sincronizado y seguro a coste cero.

Supabase screenshot


3. Construir con IA: DeepSeek Harness

Para llevar esto a cabo sin tirarme años aprendiendo código, he usado DeepSeek Harness. Y quiero detenerme aquí un momento.

DeepSeek Harness no es un chat al que le pides fragmentos de código sueltos. Es un entorno de desarrollo agentico. Funciona como un ingeniero de software senior que trabaja codo con codo contigo: analiza el contexto completo de tu proyecto, propone la arquitectura, escribe las migraciones complejas de la base de datos, levanta la infraestructura y resuelve la lógica asíncrona de la extensión del navegador en cuestión de minutos. Todo bajo el lema "Everything is a plugin. Every run is traceable."

Claude Code, Cowork, Antigravity 2.0 y OpenCode son herramientas que ya ofrecen una experiencia de agente lista para usar: desde programar y trabajar con repositorios (Claude Code, OpenCode) hasta ejecutar tareas complejas y coordinar múltiples agentes (Cowork, Antigravity). La diferencia principal está en cuánto control ofrecen sobre esa experiencia: Claude y Antigravity proporcionan un sistema bastante definido, mientras que OpenCode permite mayor libertad para elegir modelos, proveedores y herramientas.

DeepSeek Harness va un paso más allá: en lugar de ser simplemente otro agente, plantea una infraestructura modular para construir el propio sistema de agentes. Modelos, herramientas, skills, sesiones, sandbox, almacenamiento, loops y scheduling pueden componerse como piezas intercambiables. En pocas palabras: Claude Code te da un agente, Antigravity te da un centro para orquestar agentes, OpenCode te da un agente de código configurable y DeepSeek Harness te da las piezas para construir tu propio sistema de agentes.

Trabajar así cambia las reglas del juego. Además de que los resultados, al menos para este objetivo, han sido excepcionales y con un coste irrisorio comparado con otros modelos como opus, sonnet, fable, astra, gemini…

Por ejemplo, para mantener una coherencia visual absoluta en la capa pública, forcé a la IA a implementar los componentes leyendo al milímetro el archivo design.md del sistema de diseño de Mockup. Gracias a esa instrucción de contexto, la lista de bookmarks, el plugin y el backoffice respeta exactamente la tipografía, los espaciados y los tokens de color del resto del sitio, sin romper la identidad visual.

Backoffice

Slide 1


Bookmarks embebidos


Extensión para Chromium

Plugin chromium


4. Infraestructura. ¿Cloudflare o Vercel?

A la hora de desplegar la web, el camino fácil en el ecosistema actual suele ser Vercel. Sin embargo, para este proyecto aposté por la red de Cloudflare (específicamente a través de Cloudflare Workers).

Las razones fueron por rendimiento y, sobre todo, tranquilidad mental:

  • Inmunidad a picos de tráfico: La capa gratuita de Cloudflare en ancho de banda y peticiones es infinitamente más generosa para proyectos personales o blogs que pueden recibir picos repentinos de visitas.

  • Rendimiento en el borde (Edge): La red global de Cloudflare sirve el contenido estático y los assets a una velocidad ridícula desde el servidor físicamente más cercano al usuario, sin tener que configurar prácticamente nada.

  • Cero riesgo de "facturas sorpresa": Mientras que otros proveedores pueden cobrarte sumas obscenas si un bot malicioso o un ataque de scraping dispara tus invocaciones de servidor, Cloudflare gestiona la protección y el límite de consumo con muchísima más robustez en sus planes hobby.

Seamos realistas, el ancho de banda consumido va a ser cercano al cero, pero me apetecía probar un sistema nuevo y… nunca se sabe.


5. El desglose de costes y la gran migración

Migrar los datos acumulados durante casi cinco años fue la prueba de fuego: 327 bookmarks, 8 colecciones y 85 etiquetas, manteniendo intacta la fecha de creación original de cada enlace (desde febrero de 2021).

Simplemente:

  • Exporte cada sección desde Airtable a su CSV correspondiente

  • Creé las especificaciones del proyecto con su objetivo, lo que necesita conseguir y el por qué

  • Añadí design.md y los csv

  • Aproveché para limpiar links rotos y rehacer algunos screenshots para las cards

  • Puse a currar a Deepseek, siguiendo también paso a paso sobre lo que necesitaba para las diferentes conexiones entre ecosistemas.

Y aquí el coste real de independizarme:

Concepto

Proveedor / Herramienta

Coste

API de IA (Desarrollo)

DeepSeek V4 Pro

~ 10,72 € (12.31 USD)

Base de Datos PostgreSQL

Supabase (Plan Gratuito)

0,00 €

Hosting y CDN

Cloudflare (Workers)

0,00 €

Dominio y Marca

Infraestructura en mockup.es

0,00 € (obviando el pago de Framer y el dominio)

Tiempo de desarrollo

2 tardes

< 15,00 €

El coste total de construir todo el sistema y ser dueño de mis datos fue menor que el precio de dos meses de suscripción de la herramienta que pretendía cobrármelo.


Lecciones para el futuro: lo que te puedes llevar

Si tienes un proceso diario o una tarea repetitiva secuestrada por una herramienta de pago que te genera más fricción que valor, aquí tienes tres reglas de oro para crear tu propia alternativa hoy mismo:

  1. Define el problema antes de abrir la IA: La claridad de producto se resuelve con lápiz y papel. Yo sabía exactamente qué campos necesitaba y qué reglas de publicación quería antes de escribir el primer prompt en DeepSeek.

  2. Exige portabilidad de datos desde el día 1: Tu base de datos en la nube no es tu copia de seguridad. Construye siempre un exportador a JSON o CSV sin formatos propietarios que te aten.

  3. Construir es barato; decidir qué construir sigue siendo humano: La IA te permite tirar miles de líneas de código funcional en segundos. Pero tener la disciplina para no añadir features innecesarias es, y seguirá siendo, trabajo de pura gestión de producto.


Reflexión final

Nunca en la historia de la tecnología había sido tan barato y rápido construir software a medida. Y, paradójicamente, al mismo tiempo nunca había sido tan fácil llenar el entorno digital de herramientas basura que nadie necesita realmente.

La diferencia entre el ruido genérico y una herramienta verdaderamente útil no la marca la sofisticación del código generado por la IA, sino la claridad del problema que estás intentando resolver. Y eso me ha divertido, ayudado a seguir aprendiendo y lo más importante, puedo volver a generar entradas a golpe de click.

Share on:

© 2025 Carlos López. All Rights reserved.

© 2025 Carlos López. All Rights reserved.