Productividad

Dejá de pagar Linear

Un gestor de issues afilado para la forma en que tu equipo ya trabaja.

Linear cuesta US$10–16 por persona / mes, o sea US$120–192 al año. Tenés dos caminos:

Opción 1 · Instalar

Instalá Plane gratis

Plane es una herramienta completa de gestión de proyectos que instalás en tu propio servidor, en lugar de Jira, Linear o ClickUp. Tenés work items, ciclos para tus sprints, módulos para dividir un trabajo grande, cinco formas de mostrar la misma lista, vistas guardadas, páginas de documentación al lado del trabajo y una bandeja de entrada para clasificar los pedidos que llegan. La edición Community es AGPL v3 sin ningún módulo bloqueado escondido en el código: las funciones pagas están en una edición Commercial aparte y cerrada. Autohosteado, equivale al plan gratuito de su nube. El límite: la wiki de la empresa, el registro de tiempo, los dashboards, las plantillas de proyecto y la recepción de pedidos por mail o formulario web requieren una licencia paga.

Plane vs Linear

CriterioPlaneLinear
PrecioUS$0, solo pagás tu servidorUS$10–16 por persona al mes
Tus datosEn tu casa, en una base Postgres de la que hacés backupEn sus servidores
Cantidad de personasIlimitada, sin costo por cabezaCada persona extra se cobra
Sprints, módulos y páginasIncluidos en la versión gratuitaIncluidos, con un máximo de 5 equipos
Recepción de pedidosIncluida; el mail y los formularios son pagosIncluida; la clasificación asistida está en Business
CódigoAGPL v3, para leer y hacer forkCerrado

Cómo instalarlo (aunque arranques de cero)

Esto no es una app que se descarga. Plane corre en un servidor: pensá en una máquina con 2 núcleos y 4 GB de memoria como mínimo, 8 GB apenas lo usen varios, más un nombre de dominio apuntando a ella.

  1. 1

    Pegá este prompt en Claude Code

    Parte de tu servidor vacío, instala la edición Community desde el repo oficial, configura el dominio y el HTTPS, y después crea tu cuenta de administrador:

    Instalá Plane en mi servidor empezando desde cero (la herramienta open source de gestión de proyectos, repositorio de GitHub makeplane/plane). Conectate por SSH a mi VPS, verificá que Docker y Docker Compose estén presentes y, si no, instalalos. Creá una carpeta plane-selfhost, descargá el script setup.sh de la última versión publicada del repositorio oficial, hacelo ejecutable y lanzá la instalación de la edición Community, la que tiene licencia AGPL. Después abrí el archivo plane.env: poné mi nombre de dominio con https en WEB_URL y CORS_ALLOWED_ORIGINS, elegí un puerto libre para LISTEN_HTTP_PORT y reemplazá todos los valores secretos que vienen por defecto por valores generados al azar, en particular SECRET_KEY, la contraseña de Postgres y las claves del almacenamiento de archivos. Instalá Caddy adelante para obtener automáticamente el certificado HTTPS de mi dominio, levantá los servicios y guiame para crear la cuenta de administrador de la instancia en la página god-mode y configurar mi servidor SMTP. Para terminar, creamos juntos un primer proyecto con una tarea y un ciclo, para verificar que todo funciona. Explicá cada paso de forma simple, soy principiante.
    
    Revisá el repositorio de GitHub y fijate si es seguro instalarlo con mi máquina y mi infraestructura. Hacime todas las preguntas que puedas, usando widgets, para aclarar mi pedido y ser lo más preciso posible.
  2. 2

    Calculá bien la máquina que necesitás

    Plane no es un contenedor, son unos diez: la app web, la API, los trabajos en segundo plano, la colaboración en tiempo real, más Postgres, Redis, RabbitMQ y el almacenamiento de archivos. El mínimo oficial es de 2 núcleos y 4 GB de memoria, y se recomiendan 8 GB en producción.

  3. 3

    Cambiá los secretos y mantené la instancia actualizada

    Un aviso de seguridad de agosto de 2026 trató justamente de claves secretas que venían fijas en los archivos de despliegue de la edición Community. Generá las tuyas, aplicá las actualizaciones apenas salga una versión y corré seguido el backup incluido en el script setup.sh: exporta la base de datos, Redis y los archivos subidos.

Para qué lo vas a usar

Tus proyectos de clientes, ordenados en ciclos

Un proyecto por cliente, tus work items adentro y un ciclo de dos semanas para lo que estás haciendo ahora. El gráfico de burn-down al final del ciclo te dice si venís al ritmo, sin una planilla aparte que completar.

Los pedidos que llegan dejan de perderse

La recepción manda los pedidos a una cola separada. Mirás, aceptás, rechazás o convertís uno en work item. Eso sí, la clasificación por mail y los formularios públicos están en los planes pagos.

La documentación en el mismo lugar que el trabajo

Las páginas viven dentro del proyecto, con un editor de texto de verdad. La especificación, las notas de reuniones y las decisiones quedan al lado de los work items, en vez de dormir en una tercera herramienta que nadie abre.

Salud del proyecto

estrellas en GitHub
60.482
Forks
6k
Colaboradores
173
Commits
7.2k
Antigüedad
3,9 años
Licencia
AGPL-3.0

Hecho con: TypeScript 69.2% · Python 27.6% · HTML 2.4% · Shell 0.5%

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

Opción 2 · Construir

Armá tu propio Linear

Para quién es

Este desarrollo apunta a un equipo de producto que entrega software en ciclos semanales. El objetivo: registrar, priorizar y completar issues con la menor ceremonia posible. Si necesitás más que eso, seguí pagando: la gracia de armarlo vos es tener una herramienta hecha a la medida de tu forma de trabajar, no reconstruir el roadmap de una empresa con millones de inversión.

Mismo desarrollo, otro logo: esta v1 también reemplaza a Jira y Shortcut, porque todos resuelven el mismo trabajo de fondo.

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 promptissues, estados, vista de backlog, ciclos, menú de comandos, gráfico de throughput, links a GitHub
Lo que queda afueramotor de sincronización offline, todo en tiempo real, roadmaps

Qué necesita una alternativa mínima a Linear

  • creación rápida de issues con título, descripción, prioridad, etiqueta y responsable
  • vistas de backlog, ciclo activo y completados
  • navegación pensada para el teclado y menú de comandos
  • comentarios en los issues, historial de estados y links relacionados
  • avance del ciclo y un gráfico simple de throughput

Modelo de datos

Team, Issue, Cycle, Label, Comment

Integraciones

links a issues o pull requests de GitHub

Contexto técnico

Astro, HTMX, D1

La regla de oro

Usá identificadores únicos y duraderos y registrá cada cambio de estado.

Lo que no se construye a propósito

No armes roadmaps, iniciativas entre equipos, flujos de trabajo personalizados ni sincronización profunda con Git.

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 “Straightline”, una alternativa deliberadamente enfocada a Linear. Construí un corte vertical completo y usable, no una landing, 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 producto que entrega software en ciclos semanales.
Resultado principal: registrar, priorizar y completar issues con la menor ceremonia posible.
Principio del producto: optimizá exactamente el flujo de abajo en lugar de copiar toda la amplitud de Linear. Quien lo usa por primera vez tiene que entender qué hacer con solo 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 compañero abre el menú de comandos, crea un issue con título, descripción, prioridad, etiqueta y responsable, y lo deja en el backlog ordenado.
2. En la planificación del ciclo, el equipo pasa los issues elegidos del backlog al próximo ciclo semanal, reordena las prioridades, arranca el ciclo y sigue el avance por estado.
3. Un ingeniero abre un issue que le asignaron, vincula un pull request de GitHub, comenta el resultado, lo hace avanzar por el flujo fijo y lo completa.

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. Espacio de issues: vistas de backlog, ciclo activo y completados con estado, prioridad, etiqueta, responsable, filtros por palabra clave, creación rápida y navegación con teclado.
2. Detalle del issue: identificador duradero, campos editables, descripción en markdown, comentarios, links relacionados de GitHub, historial de estados, ciclo asignado y acción de copiar link.
3. Planificación del ciclo: fechas del ciclo actual y los próximos, backlog candidato ordenado, carga de trabajo por responsable, selección de issues, acción de iniciar el ciclo y vista previa de qué pasa con los issues incompletos.
4. Reporte del ciclo: cantidades completadas versus pendientes, alcance agregado y quitado, throughput por ciclo reciente, tendencia de cumplimiento y links a los issues que lo componen.

FUNCIONES PRINCIPALES
1. creación rápida de issues con título, descripción, prioridad, etiqueta y responsable
2. vistas de backlog, ciclo activo y completados
3. navegación pensada para el teclado y menú de comandos
4. comentarios en los issues, historial de estados y links relacionados
5. avance del ciclo y un gráfico simple de throughput

COMPORTAMIENTO DETALLADO Y REGLAS DE NEGOCIO
Tratá esto como requisitos del producto que se validan en el servidor, no como sugerencias de interfaz:
1. Asigná a cada issue un identificador inmutable dentro del equipo y no lo reutilices nunca después de archivar o borrar; los links tienen que resolverse sin depender de los cambios de título.
2. Usá un único flujo de estados fijo en la v1 y registrá cada cambio de estado, prioridad, responsable y ciclo como un evento inmutable.
3. Permití un solo ciclo activo por equipo; las fechas del ciclo usan la zona horaria del equipo y el traspaso exige un destino explícito para los issues incompletos.
4. Aceptá solo URLs validadas de issues o pull requests de GitHub, guardalas como links relacionados y no des a entender que hay sincronización con el estado de GitHub.

MODELO DE DATOS Y CICLO DE VIDA
Diseñá un esquema relacional chico centrado en Team, Issue, Cycle, Label, Comment. 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, HTMX, D1 como contexto técnico. Conservá cualquier capacidad nativa, solo de navegador, de edge, de almacenamiento, en tiempo real o de procesamiento en segundo plano que haga falta, a través de un adaptador acotado y apropiado para el framework elegido. Si el flujo central realmente necesita APIs nativas o del navegador, dejá ese entorno como la superficie principal de ejecución en vez de simular capacidades inaccesibles o inventar una superficie web innecesaria.

Integrá con los links a issues o pull requests de GitHub. 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
Usá identificadores únicos y duraderos y registrá cada cambio de estado.
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. Dado un compañero en cualquier parte de la app, cuando invoca la creación rápida y envía un título, se crea un issue de backlog con identificador único y queda enfocado.
2. Dados dos usuarios editando un issue desde la misma versión, cuando ambos guardan, el guardado desactualizado muestra un conflicto en lugar de pisar el cambio más nuevo.
3. Dado un ciclo activo que termina con issues incompletos, cuando el responsable lo cierra, el trabajo completado se sigue reportando y cada issue incompleto pasa solo al destino confirmado.

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 armes roadmaps, iniciativas entre equipos, flujos de trabajo personalizados ni sincronización profunda con Git.

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.

ABC-123 para siempre: identificadores que nunca vuelvenContadores atómicos, retiro permanente y links que sobreviven a los títulos.
Construí identificadores duraderos para los issues de un gestor: estilo TEAM-123, únicos para siempre y nunca reciclados.

Cada equipo tiene una clave corta y un contador. Crear un issue incrementa el contador de forma atómica y le pone el número al issue: dos creaciones simultáneas no pueden generar el mismo número, así que incrementá con una operación atómica a nivel de base de datos o con un bloqueo de fila, nunca leyendo y después escribiendo. El contador solo sube: borrar o archivar TEAM-87 retira ese número para siempre. Los huecos no importan; reutilizar es el pecado, porque los links, los mensajes de commit y la memoria de la gente referencian el identificador.

La resolución se hace solo por identificador: el título puede cambiar todos los días y cada link viejo sigue llegando. Renombrar la clave de un equipo es el caso borde picante: o lo prohibís, o mantenés alias de la clave vieja que redirigen, porque TEAM-42 está escrito en cien mensajes de commit que no controlás.

Agregá acciones de copiar link y copiar id en cada issue, y un parseo del identificador que tolere mayúsculas y signos alrededor cuando se pega en la búsqueda.

Listo cuando: la creación concurrente bajo carga nunca duplica un número, el identificador de un issue borrado nunca se vuelve a emitir, y los links sobreviven a los cambios de título y de clave.
Un menú de comandos más rápido que el mouseCoincidencia difusa por subsecuencia, acciones según el contexto y cero mouse.
Construí un menú de comandos pensado para el teclado en un gestor de issues: la interfaz para quienes le tienen bronca al mouse.

Un solo atajo lo abre desde cualquier lugar. Al escribir, filtra una lista mezclada de comandos e issues con coincidencia difusa por subsecuencia (crbg encuentra Create bug report): puntuá las coincidencias por rachas de caracteres consecutivos, aciertos en límites de palabra y posición de la coincidencia, para que el resultado más intuitivo quede primero, y resaltá los caracteres coincidentes en cada resultado.

Hacelo sensible al contexto: con un issue enfocado, sus acciones (asignar, cambiar estado, mover a un ciclo) van por encima de los comandos globales. Soportá el encadenado de comandos: elegís Cambiar estado y aparece una segunda lista con los estados en el mismo campo. Las selecciones recientes ganan un empujoncito de ranking.

Las partes quisquillosas: navegación completa con flechas y enter, foco atrapado mientras está abierto y restaurado exactamente al cerrar, resultados virtualizados pasadas las cien filas, y una búsqueda sobre unos miles de issues que responda en menos de 50 milisegundos: precalculá un índice en minúsculas en lugar de correr regex en cada tecla.

Listo cuando: toda acción del menú se alcanza sin mouse, el puntaje difuso pone primero la respuesta obvia en tus consultas de prueba, y abrir-escribir-enter se siente instantáneo con unos miles de issues.
Cerrá el ciclo sin perder lo que quedóCada issue que sobra tiene un destino explícito, y los reportes se congelan al cerrar.
Construí el cierre y el traspaso de ciclos para un gestor de issues con ciclos semanales. Los issues que sobran son todo el problema.

Un ciclo activo por equipo, con fechas en la zona horaria del equipo. Cerrarlo es una ceremonia deliberada, no una sorpresa de un cron a medianoche: mostrá una vista previa del traspaso que liste todos los issues incompletos y exigí un destino explícito para cada uno (el próximo ciclo o el backlog), con controles de agrupación para que cincuenta issues no sean cincuenta clics. Ningún issue se mueve a ningún lado en silencio.

El trabajo completado sigue acreditado al ciclo cerrado: el reporte se congela al cierre, y los issues traspasados aparecen en el ciclo siguiente sin borrar por dónde pasaron: el recorrido de un issue por tres ciclos se ve en el propio issue. Registrá los movimientos de alcance como eventos (agregado al ciclo, quitado, traspasado) para que los reportes distingan el trabajo planificado de lo que se coló de pasada.

Creá automáticamente el próximo ciclo a partir de la cadencia si no existe, y contemplá el caso feliz: cerrar un ciclo con todo hecho saltea la ceremonia.

Listo cuando: ningún issue incompleto se mueve sin un destino confirmado, los reportes de ciclos cerrados nunca cambian después, y un issue traspasado dos veces muestra su linaje completo de ciclos.
El burn-down armado con eventos, no con fotosReproducí el registro de transiciones para tener gráficos que no mientan.
Construí analíticas de ciclos calculadas a partir de eventos de transición, no del estado actual.

El estado actual no puede responder las preguntas que importan: ¿el alcance de este ciclo fue estable?, ¿cuándo terminó realmente el trabajo? Entonces tratá cada cambio relevante como un evento (transiciones de estado, asignación y salida de un ciclo, cada uno con fecha y autor) y armá el reporte reproduciéndolos.

Derivá: completados versus pendientes por cada día del ciclo (un burn-down que refleje la realidad, incluidos los saltos de alcance a mitad del ciclo), el alcance agregado y quitado después de que empezó el ciclo con los issues responsables listados, y el throughput de los ciclos recientes. La contabilidad complicada: un issue agregado, quitado y vuelto a agregar cuenta una vez, mostrando todos sus eventos de alcance; un issue completado y reabierto dentro del ciclo mueve los conteos diarios en ambas direcciones en los días correctos.

Calculalo a demanda con un caché chico cuya clave sea el id del último evento: la invalidación es trivial porque los eventos solo se agregan. Cada gráfico enlaza a los issues que lo componen, porque un número que no se puede interrogar es un rumor.

Listo cuando: el burn-down reconstruye con exactitud cualquier día pasado solo con eventos, las listas de cambios de alcance nombran cada issue agregado y quitado, y reabrir un issue mueve bien los conteos diarios.

Preguntas frecuentes

¿Cuánto cuesta Linear si sigo suscripto?

Linear sale entre US$10 y US$16 por persona al mes en los planes pagos públicos, o sea entre US$120 y US$192 al año por cada integrante del equipo. Un reemplazo propio y enfocado te cuesta el tiempo de armarlo más un hosting que ronda el cero.

¿Qué stack tengo que usar para armar una alternativa a Linear?

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

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

Una v1 útil necesita: creación rápida de issues con título, descripción, prioridad, etiqueta y responsable; vistas de backlog, ciclo activo y completados; navegación pensada para el teclado y menú de comandos; comentarios en los issues, historial de estados y links relacionados; avance del ciclo y un gráfico simple de throughput. Todo lo demás es agrandar el alcance hasta que lo extrañes de verdad.

¿Qué conviene no construir a propósito?

No armes roadmaps, iniciativas entre equipos, flujos de trabajo personalizados ni sincronización profunda con Git.

¿Este desarrollo también reemplaza a Jira y Shortcut?

Sí. Linear, Jira y Shortcut resuelven el mismo trabajo de fondo: registrar, priorizar y completar issues con la menor ceremonia posible. La v1 de esta página cubre lo que la mayoría usa de cualquiera de ellos, así que un solo desarrollo enfocado reemplaza al que estés pagando hoy.

¿En qué se diferencia de Linear?

Plane hace casi todo lo que hace Linear, sin suscripción, y tus datos se quedan con vos. La comparación punto por punto está en la página.

¿Mis datos son míos?

Sí. Con una herramienta open source instalada de tu lado, tus archivos quedan en tu máquina o en tu servidor. Nadie puede cerrarte la cuenta ni cambiarte 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