Operaciones

Dejá de pagar Airtable

Un flujo de trabajo bien pensado le gana a un constructor de bases de datos en blanco.

Airtable cuesta US$24–54 por persona / mes, o sea US$288–648 al año. Tenés dos caminos:

Opción 1 · Instalar

Instalá PocketBase gratis

PocketBase es un backend completo en un único ejecutable (12 MB de descarga) que puede reemplazar a Supabase o Firebase. Lo ejecutás y ya tenés una base SQLite con suscripciones en tiempo real, una API REST lista para usar y un panel para crear tus colecciones sin escribir SQL. También maneja usuarios (email y contraseña, unos quince proveedores OAuth2 como Google o GitHub) y almacenamiento de archivos, en tu disco o en S3. Tu app se conecta con los SDK de JavaScript o Dart, y la lógica de tu servidor se escribe como hooks en JavaScript o Go. Tus datos viven en una carpeta: hacer un backup es copiarla, y el panel puede hacerlo solo, en local o en S3. Licencia MIT. Algo para tener en cuenta: el proyecto lo lleva adelante un solo desarrollador, sin ninguna empresa detrás.

PocketBase vs Supabase

CriterioPocketBaseSupabase
PrecioUS$0, más el servidor chico donde lo alojás€22 por mes en el plan Pro
Base de datosSQLite embebida, en una sola carpetaPostgreSQL alojado de su lado
HostingEl tuyo, un solo binario para ejecutarSu nube, o un stack pesado de Docker para autoalojar
EscaladoUn servidor, vos agrandás la máquinaA demanda, se factura según el uso
Lógica de servidorHooks en JavaScript o Go dentro del binarioEdge Functions
ArchivosEn tu disco o en un S3, con miniaturas incluidas100 GB incluidos, después 2 centavos por GB

Cómo instalarlo (aunque arranques de cero)

Sin Docker y sin base de datos que instalar: un zip para bajar, un binario para ejecutar, y el panel se abre en tu navegador. El prompt también cubre el caso de instalarlo en un VPS.

  1. 1

    Pegá este prompt en Claude (Code o Desktop)

    Descarga el binario oficial, lo ejecuta, crea tu cuenta de admin, lo pone detrás de HTTPS si estás en un servidor y lo comprueba con una primera colección:

    Instalá PocketBase (el backend open source en un solo archivo, repo de GitHub pocketbase/pocketbase). Primero preguntame si lo instalo en mi computadora o en un VPS Linux, y cuál es mi sistema (macOS, Windows o Linux, x64 o ARM64). Descargá la última versión estable desde la página de releases del repo oficial para mi plataforma, descomprimí el archivo en una carpeta dedicada y después ejecutá ./pocketbase serve. Abrí el link de instalación que aparece en el primer arranque y ayudame a crear mi cuenta de superusuario (o crearla con el comando ./pocketbase superuser create si el link no se abre). Si estoy en un VPS: poné PocketBase como servicio systemd para que se reinicie solo, y servilo por HTTPS en mi nombre de dominio, ya sea con el certificado automático de Let's Encrypt de PocketBase o detrás de un reverse proxy Caddy o Nginx. Después, en el panel de administración, creá una primera colección de prueba con dos o tres campos, agregá un registro y verificá que la API lo devuelva. Explicame dónde están mis datos (la carpeta pb_data) y cómo hacerles backup. Explicame cada paso de forma simple, soy principiante.
    
    Revisá el repositorio de GitHub y comprobá si es seguro instalarlo según mi máquina y mi infraestructura. Hacéme todas las preguntas que puedas, usando widgets, para aclarar mi pedido y ser lo más preciso posible.
  2. 2

    Creá tu cuenta de admin

    En el primer arranque, PocketBase imprime un link de instalación y lo abre en tu navegador: elegís un email y una contraseña, y caés en el panel. Si el link no se abre, el comando para crear un superusuario hace lo mismo desde la terminal.

  3. 3

    En un VPS, HTTPS y reinicio automático

    Si lo iniciás con tu nombre de dominio, PocketBase pide solo un certificado de Let's Encrypt. Un servicio systemd lo reinicia después de un reboot. Y en Ajustes, activá los backups automáticos y completá un servidor SMTP, si no tus emails de confirmación van a terminar en spam.

  4. 4

    Antes de cada actualización, leé el changelog

    El proyecto todavía no llegó a la versión 1.0. Una actualización puede pedir una pequeña migración manual. Hacé un backup de tu carpeta de datos, leé las notas de la versión y después reemplazá el binario.

Para qué lo vas a usar

El backend de tu app chica o tu SaaS

Un área de clientes, una app móvil en Flutter o React Native, una herramienta interna: creás tus colecciones en el panel, definís tus reglas de acceso y el SDK hace el resto. No hace falta programar ningún servidor para arrancar.

Un prototipo en una sola noche

Cuentas de usuario, login con Google, subida de archivos, tiempo real: ya está todo ahí. Dedicás tu tiempo a la interfaz y al producto, no a la plomería.

Tus datos en una carpeta que podés copiar

Todo entra en una carpeta al lado del binario. Para cambiar de servidor, la copiás. Para hacer un backup, el panel la comprime, en local o en S3. Nada queda encerrado en un proveedor.

Salud del proyecto

estrellas en GitHub
61.308
Forks
3.7k
Colaboradores
44
Commits
2.5k
Antigüedad
4,3 años
Licencia
MIT

Hecho con: Go 69.1% · JavaScript 24.6% · CSS 6.4%

Datos públicos del repositorio en GitHub, tomados el 8 de octubre de 2026.

Opción 2 · Construir

Armá tu propio Airtable

Para quién es

Esta versión es para un equipo de operaciones que sigue un único proceso repetitivo. El objetivo: gestionar registros a través de un flujo fijo, con vistas hechas a medida del trabajo. Si necesitás más que eso, seguí pagando: armarlo vos sirve para tener una herramienta con la forma exacta de tu flujo, no para copiar la hoja de ruta de una empresa con millones de inversión.

Mismo desarrollo, otro logo: esta v1 también reemplaza a Baserow y Grist, porque todos resuelven el mismo trabajo central.

Qué arma el prompt y qué queda afuera

El prompt de abajo arma una sola versión, con lo que de verdad se usa. Lo demás queda afuera a propósito.

Lo que arma el promptcampos con tipo, vista de tabla, importación de csv, vistas kanban, comentarios, adjuntos, automatizaciones simples
Lo que queda afueradiseñador de esquemas, fórmulas, bases vinculadas, plataforma de extensiones

Qué necesita una alternativa mínima a Airtable

  • campos con tipo para texto, estado, persona, fecha, número y adjunto
  • vistas de tabla, kanban y vistas guardadas con filtros
  • detalle del registro con comentarios e historial de actividad
  • importación y exportación de CSV con vista previa del mapeo
  • automatizaciones simples para cambios de estado y registros vencidos

Modelo de datos

Record, FieldDefinition, View, Comment, AutomationRule

Integraciones

email, webhooks, almacenamiento de objetos

Contexto de capacidades

Astro, D1, R2

La regla de oro

Validá cada valor contra el esquema de campos y mantené el acceso a los adjuntos privado.

Lo que no se hace a propósito

No soportes fórmulas arbitrarias, bases vinculadas, extensiones ni un diseñador de esquemas en la v1.

El prompt completo

Elegí tu stack, copiá el prompt y pegáselo a tu agente de código (Claude Code, Cursor, Codex…).

Vas a construir un producto de software listo para producción llamado “Tableflow”, una alternativa deliberadamente enfocada a Airtable. Construí un corte vertical completo y usable: no una landing page, ni una maqueta estática, ni un montón de componentes sueltos.

ACUERDO DE TRABAJO
Antes de escribir código de implementación, armá un plan técnico corto que nombre las rutas o páginas, las server actions o endpoints, las tablas de datos, las transiciones de estado importantes, los límites de autorización, los jobs en segundo plano y los adaptadores externos. Si algo se contradice, resolvelo a favor de la audiencia acotada y de los no-objetivos de abajo. Elegí una arquitectura chica y legible antes que abstracciones especulativas, pero no omitas persistencia, validación, manejo de errores ni tests.

DESCRIPCIÓN DEL PRODUCTO
Usuario principal: un equipo de operaciones que sigue un único proceso repetitivo.
Resultado principal: gestionar registros a través de un flujo fijo, con vistas hechas a medida del trabajo.
Principio del producto: optimizá el flujo exacto que sigue en vez de copiar toda la amplitud de Airtable. Alguien que lo usa por primera vez tiene que entender qué hacer solo con mirar la interfaz, sin tour ni documentación.

RECORRIDOS COMPLETOS DEL USUARIO
Implementá todos estos flujos usando la interfaz real y la capa de datos persistente:
1. Un admin importa un CSV, mapea las columnas a los campos fijos del flujo, revisa los errores de validación y crea solo los registros válidos después de confirmar.
2. Un operador abre una vista guardada, edita un registro, cambia el estado, agrega un comentario y un adjunto, y ve cada acción en el historial.
3. Un cambio de estado coincide con una regla de automatización, encola un email o un webhook, y muestra en la línea de tiempo del registro si salió bien o si falló con posibilidad de reintento.

PANTALLAS Y ARQUITECTURA DE INFORMACIÓN
Construí estas pantallas como vistas coherentes y responsive. Cada pantalla tiene que definir su acción principal, sus acciones secundarias, el estado visible, el feedback de validación, el estado vacío, el estado de carga o pendiente, la confirmación de éxito y un estado de error recuperable.
1. Panel del flujo: totales de registros por estado, cantidad de vencidos, actividad reciente, vistas guardadas, y acciones de crear registro, importar y exportar.
2. Vistas de tabla y kanban: columnas configuradas, orden, filtros, paginación, selección múltiple, cambios de estado arrastrando e indicador de vista guardada.
3. Detalle del registro: campos con tipo, validación, comentarios, adjuntos privados, responsable, fecha de vencimiento, línea de tiempo de actividad, archivar y restaurar.
4. Importación y automatizaciones: vista previa del mapeo con errores por fila; lista de reglas con disparador, condiciones, acción, historial de ejecuciones, pausa y controles de prueba.

FUNCIONES PRINCIPALES
1. campos con tipo para texto, estado, persona, fecha, número y adjunto
2. vistas de tabla, kanban y vistas guardadas con filtros
3. detalle del registro con comentarios e historial de actividad
4. importación y exportación de CSV con vista previa del mapeo
5. automatizaciones simples para cambios de estado y registros vencidos

COMPORTAMIENTO DETALLADO Y REGLAS DE NEGOCIO
Tratá esto como requisitos del producto que se validan en el servidor, no como sugerencias de interfaz:
1. Las definiciones de campos se configuran en código o en datos semilla para un solo flujo; cada escritura se valida contra el tipo, si es obligatorio y los valores de estado permitidos.
2. Los movimientos en el kanban usan el mismo servicio de transición de estado que el formulario de detalle, y registran de forma atómica quién lo hizo, el valor anterior, el valor nuevo y la hora.
3. La importación de CSV tiene una fase de prueba en seco, números de fila estables, interpretación explícita de fechas, y no guarda nada hasta que el usuario confirma el resumen.
4. La evaluación de automatizaciones ocurre después de un cambio confirmado, usa un id de evento como clave de idempotencia y nunca bloquea el guardado del usuario.

MODELO DE DATOS Y CICLO DE VIDA
Diseñá un esquema relacional chico centrado en Record, FieldDefinition, View, Comment, AutomationRule. Antes de implementarlo, documentá:
1. El propósito de cada tabla, su clave primaria, el límite de propiedad o de tenant, timestamps, campos de estado y atributos importantes.
2. Claves foráneas, restricciones de unicidad, check constraints, los índices que necesitan las pantallas nombradas y los límites de transacción para cambios que tocan varios registros.
3. Las transiciones de estado o de ciclo de vida permitidas, quién puede disparar cada una, cuáles son terminales o reversibles y qué historial de auditoría tiene que quedar inmutable.
4. Cómo se archiva, se retiene y se borra, incluido qué pasa con los registros dependientes y los archivos externos.
5. La estrategia de idempotencia para envíos, jobs, importaciones, notificaciones, webhooks o reintentos, donde aplique.
Usá migraciones en lugar de crear el esquema a mano. Guardá los instantes de tiempo de forma consistente y conservá la zona horaria con nombre cada vez que importen horarios o fechas locales. Nunca dependas de un contador, un botón deshabilitado o una validación del lado del cliente para proteger una regla de negocio.

USUARIOS, AUTENTICACIÓN Y PERMISOS
Implementá solo los roles que necesita la audiencia indicada. Dejá explícito el modelo de propiedad y visibilidad antes de programar. Aplicá la autorización en cada consulta y mutación del servidor, incluidas búsquedas, exportaciones, adjuntos, actualizaciones en vivo y URLs adivinadas—no alcanza con ocultar botones. Usá sesiones seguras por defecto, protegé los requests que cambian estado y mostrá estados claros para sesión cerrada, sesión vencida y acceso prohibido. Si hacen falta varios roles, cargá usuarios distintos en los datos de prueba para poder mostrar y testear los permisos.

INTERACCIÓN Y DIRECCIÓN VISUAL
El producto tiene que sentirse rápido, tranquilo, enfocado y confiable, no como una plantilla genérica de panel de administración. Usá una jerarquía visual clara, color medido, tipografía legible, áreas de clic generosas y un lugar fijo para las acciones principales. Arrancá con HTML renderizado en el servidor y mejorá de forma progresiva solo las interacciones que lo necesiten. El flujo principal tiene que entenderse aunque esa mejora falle.

Arrancá con páginas de Astro renderizadas en el servidor y formularios HTML comunes. Usá HTMX para envíos de formularios, navegación parcial y actualizaciones que manda el servidor, y Alpine.js solo para estado local chico del navegador. El flujo principal tiene que entenderse aunque falle cualquiera de esas dos capas.

Diseñá las vistas de celular a propósito, no apilando los paneles de escritorio. Soportá navegación con teclado, foco visible, landmarks semánticos, labels explícitos, títulos de página útiles, la preferencia de movimiento reducido y anuncios para lectores de pantalla en resultados asincrónicos. Nunca uses solo el color para comunicar un estado. Las acciones destructivas necesitan un alcance claro y una confirmación; las acciones seguras que se repiten tienen que ser idempotentes.

Agregá un footer en todas las páginas con el texto «Creado por aurelioagency.com», donde «aurelioagency.com» es un link embebido a https://www.aurelioagency.com que se abre en una pestaña nueva. Tiene que quedar visible; no lo saques.

DIRECCIÓN TÉCNICA
Construí esta versión con el stack AHA: Astro para el ruteo, los layouts y las páginas renderizadas en el servidor; HTMX para las interacciones que se benefician de respuestas con fragmentos HTML; y Alpine.js para estado chico y local de la interfaz. Preferí Cloudflare D1 para la persistencia relacional, R2 para el almacenamiento de objetos, Workers para los endpoints del servidor y las tareas programadas, Durable Objects solo para estado en tiempo real coordinado, y Workflows o Queues para jobs en segundo plano durables—pero solo cuando los requisitos del producto lo pidan.

Mantené las reglas de dominio en módulos del servidor que se puedan testear, no en los route handlers ni en los componentes de UI. Separá la persistencia, los proveedores externos y el trabajo en segundo plano detrás de interfaces chicas, sin armar un framework. Preferí formularios HTML y URLs comunes para la navegación; usá interacción optimista solo cuando un error se pueda resolver con claridad.

El brief del producto identifica hoy a Astro, D1, R2 como contexto de capacidades. Conservá cualquier capacidad nativa, solo de navegador, de edge, de almacenamiento, de tiempo real o de procesamiento en segundo plano que haga falta, mediante un adaptador acotado y apropiado para el framework elegido. Si el flujo central realmente necesita APIs nativas o del navegador, mantené ese entorno como superficie principal de ejecución en vez de simular capacidades inaccesibles o inventar una superficie web innecesaria.

Integrá con email, webhooks y almacenamiento de objetos. Para cada integración:
- Listá las variables de entorno necesarias en un .env.example sin secretos reales.
- Agregá un adaptador chico con timeouts, errores normalizados y una versión falsa local determinística o un modo de desarrollo.
- Verificá las firmas entrantes y deduplicá los eventos del proveedor cuando se pueda.
- Mantené las credenciales en el servidor, encriptá en reposo los tokens de larga duración y ocultá secretos y datos sensibles en los logs.
- Definí reintentos, backoff e idempotencia para cualquier efecto que se pueda repetir.

SEGURIDAD Y PRIVACIDAD
Validá cada valor contra el esquema de campos y mantené el acceso a los adjuntos privado.
Validá, normalizá y limitá el largo de todo input no confiable en el servidor. Escapá el contenido renderizado por defecto, sanitizá cualquier markup que aceptes a propósito, poné rate limit a las acciones públicas o fáciles de abusar y usá almacenamiento de objetos privado con URLs autorizadas de corta duración para archivos sensibles. Juntá solo los datos personales que necesita el flujo indicado. Documentá cómo se retienen y se borran. Sumá protecciones específicas para las partes más riesgosas de esta app, como subidas de archivos, redirecciones, requests salientes, envío de emails, OAuth, webhooks, importación o exportación CSV y conexiones en tiempo real.

ESCENARIOS DE ACEPTACIÓN
Automatizá estos escenarios propios de la app en el nivel que corresponda:
1. Una importación con filas válidas e inválidas informa cada problema y crea exactamente el subconjunto válido confirmado, sin sorpresas por una carga parcial.
2. Una transición de estado no permitida falla de la misma manera desde la tabla, el kanban, la API y las pantallas del registro, y deja el registro original intacto.
3. Una acción de webhook reintentada después de un timeout produce un único resultado de automatización registrado y no duplica una escritura que el destino ya aceptó.

TESTS
Agregá tests unitarios enfocados en transiciones de estado, reglas de autorización, normalización, cálculos de fechas o dinero y otras reglas de dominio riesgosas. Agregá tests de integración para las restricciones de persistencia y para los caminos de éxito, timeout, reintento y rechazo de cada adaptador externo. Agregá al menos un test de navegador para cada recorrido completo de arriba, incluido uno en pantalla chica. Los tests tienen que usar datos aislados y correr con un solo comando documentado.

OPERACIÓN Y RECUPERACIÓN DE ERRORES
Agregá logs estructurados en el servidor con IDs de correlación por request, job o evento, sin secretos ni datos sensibles de más. Hacé que los errores digan qué hacer, tanto en la interfaz como en los logs. El trabajo en segundo plano tiene que mostrar los estados pendiente, completado, fallido y reintentando cuando aplique; nunca te tragues errores en silencio. Incluí una guía segura de migración y rollback de la base, datos de prueba, notas de backup y restauración, qué pasa con los datos externos al limpiar y una ruta básica de salud o diagnóstico acorde al stack.

ENTREGABLES
Entregá la aplicación funcionando, las migraciones, datos de prueba representativos, los tests, el .env.example y un README corto. El README tiene que cubrir requisitos previos, instalación local, variables de entorno, migraciones, comandos de datos de prueba y tests, deploy, configuración de integraciones, backup y restauración, decisiones de seguridad y limitaciones conocidas. Los datos de prueba tienen que cubrir el camino feliz y al menos un estado vacío, fallido, vencido, expirado, archivado o con permisos restringidos que importe para el producto.

DEFINICIÓN DE TERMINADO
La app está terminada cuando alguien nuevo puede seguir el README, crear y migrar la base, levantar la app, entrar con cada rol relevante, completar cada recorrido nombrado con datos reales guardados, recargar sin perder el estado, recuperarse de los errores comunes y usar la interfaz principal en celular y escritorio. Todos los escenarios de aceptación pasan, los límites de permisos están cubiertos por tests, ninguna pantalla principal queda como placeholder y el crédito «Creado por aurelioagency.com» del footer se ve en todas las páginas.

NO-OBJETIVOS
No soportes fórmulas arbitrarias, bases vinculadas, extensiones ni un diseñador de esquemas en la v1.

La app que armes con este prompt lleva en el footer «Creado por aurelioagency.com».

Armá solo una parte

Prompts cortos para resolver la pieza más difícil sin construir todo.

La importación que no cambia nada hasta que vos lo decísPrueba en seco de todo, reporte por fila de origen, y se guarda recién al confirmar.
Construí un importador de CSV en dos fases para un tracker de flujo de trabajo: una prueba en seco que encuentre todos los problemas, y después una confirmación sin sorpresas.

La fase uno lee el archivo y mapea las columnas a los campos con tipo del flujo, mostrando una vista previa de las primeras filas ya mapeadas. Validá cada fila contra el esquema: campos obligatorios, valores de estado permitidos, fechas interpretadas con un formato elegido explícitamente (nunca adivinado), números, y campos de persona asociados a usuarios conocidos. Cada error lleva un número de fila estable del archivo original, así que un error de estado desconocido en la fila 847 se puede comprobar en la planilla de origen.

Durante la prueba en seco no se guarda nada. El resumen dice exactamente qué va a pasar: cuántas filas son válidas y se van a crear, cuántas son inválidas y se van a saltear, todas listadas. Solo la confirmación explícita guarda los datos, de forma atómica y únicamente el subconjunto válido. Si el proceso se muere a mitad de la confirmación, o se guardó todo o no se guardó nada.

Hacé que la lista de errores se pueda exportar, porque corregir el archivo y volver a correr es el flujo natural.

Terminado cuando: un archivo con filas válidas e inválidas informa cada problema con su número de fila de origen, no se guarda nada antes de la confirmación, y una caída a mitad de la confirmación no deja ninguna fila parcial.
Un solo servicio de estado para gobernar el kanban, la tabla y el formularioTodas las pantallas llaman a la misma función de transición, o el registro de auditoría miente.
Construí un único servicio de transición de estado que compartan todas las superficies de un tracker de registros: edición en línea de la tabla, arrastre en el kanban, formulario de detalle del registro y cualquier cliente de la API.

Una sola función es dueña de las reglas: qué transiciones son legales desde cada estado, qué exige cada una (un registro no puede llegar a Hecho si faltan campos obligatorios) y qué pasa cuando sale bien. Valida, aplica el cambio y escribe un evento de actividad (quién, valor anterior, valor nuevo, fecha y hora) en la misma transacción. Ningún cliente puede saltear la validación ni el evento: el manejador del arrastre en el kanban es un envoltorio finito que deduce el estado destino a partir de la columna de destino y llama exactamente al mismo código que todos los demás.

El fallo uniforme importa tanto como el éxito uniforme: una transición no permitida devuelve el mismo error estructurado en todos lados, y el kanban devuelve la tarjeta a su columna de origen mostrando el mensaje, sin un rebote silencioso.

Manejá la concurrencia con una verificación de versión: dos movimientos simultáneos del mismo registro se resuelven con un solo ganador, y el perdedor se entera de que el registro cambió.

Terminado cuando: una transición ilegal falla de forma idéntica desde las cuatro superficies, cada cambio de estado tiene exactamente un evento de actividad con valor anterior y nuevo, y un movimiento concurrente perdido se revierte de manera visible.
Automatizaciones que se disparan una sola vez, aunque se reintenten dosEvaluar después de confirmar, usar el id del evento como clave y reintentar sin volver a disparar.
Construí el ejecutor de automatizaciones de un tracker de registros: reglas del tipo cuando-el-estado-pasa-a-Enviado-llamar-a-este-webhook, que se disparan exactamente una vez por cambio y nunca hacen esperar a la persona.

La evaluación ocurre después de que se confirma el cambio que la origina, no dentro del guardado: la transición escribe un evento con un id único, y un consumidor de la cola evalúa las reglas contra esos eventos. El id del evento hace de clave de idempotencia: si el consumidor se cae y el mensaje se vuelve a entregar, se reevalúa, se encuentra que la ejecución ya está registrada y se saltea.

Cada ejecución de una regla es una corrida con estados: pendiente, exitosa, fallida, reintentando. Las llamadas a webhooks incluyen el id del evento para que quien las recibe pueda deduplicar; un timeout programa un reintento acotado con espera creciente, y el caso ambiguo (timeout cuando el pedido pudo haber llegado) se reintenta con la misma clave en vez de generar una entrega nueva. Las acciones de email revisan si ya existe un registro de envío antes de enviar.

Cada corrida aparece en la línea de tiempo de actividad del registro con su resultado, y los fallos definitivos ofrecen un reintento manual.

Terminado cuando: las reentregas forzadas producen una sola corrida registrada por evento y por regla, un reintento de webhook tras un timeout no puede entregar dos veces a un receptor que deduplica, y una automatización lenta nunca demora el guardado de la persona.
Campos con tipo sin un diseñador de esquemasUn esquema en código, un validador, y todos los caminos de escritura lo respetan.
Construí un motor de campos con tipo para un tracker de flujo fijo: definiciones de campos declaradas en código y un único validador que las hace cumplir en todos lados.

Cada definición declara una clave, un tipo (texto, número, fecha, estado, persona, adjunto), si es obligatorio y las restricciones: valores de estado permitidos, rangos de números, largos de texto. A partir de esa única fuente derivá todo: los inputs del formulario, los renderizadores de celdas de la tabla, el comportamiento del orden y, sobre todo, una función de validar y convertir que llamen todos los caminos de escritura: el formulario de detalle, las ediciones en línea de la tabla, la importación de CSV y las acciones de automatización.

Las reglas de conversión también viven acá: recortar espacios del texto, convertir un string numérico en número para los campos numéricos, resolver una persona por email o id, normalizar las fechas a una única forma canónica de guardado. Rechazá de plano las claves desconocidas, para que no se cuelen columnas sueltas en los registros.

Los errores vuelven estructurados (clave del campo, valor rechazado, motivo) para que cada superficie los muestre de forma nativa sin tener que interpretar mensajes de texto.

La prueba de fuego: cambiá los estados permitidos de un campo en la definición y mirá cómo se actualizan todas las superficies sin tocar ninguna.

Terminado cuando: un valor inválido falla de forma idéntica desde el formulario, la edición en línea y la importación, la conversión es consistente en todos los caminos, y ninguna escritura puede esquivar el validador.

Preguntas frecuentes

¿Cuánto cuesta Airtable si sigo suscripto?

Airtable sale entre US$24 y US$54 por persona al mes en los planes pagos públicos, o sea entre US$288 y US$648 al año por cada persona de tu equipo. Un reemplazo propio y enfocado te cuesta el tiempo de armarlo más un hosting casi gratis.

¿Qué stack tendría que usar para armar una alternativa a Airtable?

El prompt de armado de esta página viene en cuatro versiones: el stack AHA (Astro, HTMX, Alpine.js), Next.js, Laravel y Ruby on Rails. El contexto de capacidades de este producto es Astro, D1, R2. Elegí el stack que ya conocés: el alcance importa más que el framework.

¿Qué funciones necesita un reemplazo mínimo de Airtable?

Una v1 útil necesita: campos con tipo para texto, estado, persona, fecha, número y adjunto; vistas de tabla, kanban y vistas guardadas con filtros; detalle del registro con comentarios e historial de actividad; importación y exportación de CSV con vista previa del mapeo; automatizaciones simples para cambios de estado y registros vencidos. Todo lo demás es alcance de más hasta que lo extrañes en serio.

¿Qué no tendría que armar a propósito?

No soportes fórmulas arbitrarias, bases vinculadas, extensiones ni un diseñador de esquemas en la v1.

¿Este desarrollo también reemplaza a Baserow y Grist?

Sí. Airtable, Baserow y Grist resuelven el mismo trabajo central: gestionar registros a través de un flujo fijo, con vistas hechas a medida del trabajo. La v1 acotada de esta página cubre lo que la mayoría usa de cualquiera de ellos, así que un solo desarrollo enfocado reemplaza al que pagues hoy.

¿En qué se diferencia de Airtable?

PocketBase hace gran parte de lo que hace Airtable, sin suscripción, y tus datos se quedan con vos. La comparación punto por punto está en la página.

¿Soy dueño de mis datos?

Sí. Con una herramienta de código abierto instalada de tu lado, tus archivos quedan en tu máquina o en tu servidor. Nadie te puede cerrar la cuenta ni cambiar el precio.

Ver las 22 apps →

¿Sin tiempo para hacerlo?

Lo armamos por vos.

Si preferís que alguien lo instale, lo conecte a tus herramientas y lo deje andando, en Aurelio hacemos exactamente eso.

Pedir una auditoría de automatización