Tus maquetas sin contador de archivos
El plan gratis de Figma se corta en tres archivos. Acá abrís todos los proyectos que quieras, con todas las funciones.
Diseño
Un lienzo vectorial chico para wireframes, sin todo lo multijugador.
Figma cuesta US$16–55 por persona / mes, o sea US$192–660 al año. Tenés dos caminos:
Opción 1 · Instalar
Penpot es la alternativa open source a Figma. Tenés componentes reutilizables, variantes, bibliotecas compartidas, prototipos clickeables, colaboración en tiempo real y design tokens. Penpot dibuja en SVG y arma el layout con Flex y CSS Grid, igual que el navegador: una maqueta bien hecha sale como código que tu desarrollador reconoce, y la inspección del código está abierta para todos, mientras que Figma cobra un asiento Dev por eso. Online, el plan gratis de penpot.app te da todas las funciones, hasta ocho miembros de equipo, 10 GB de almacenamiento y siete días de historial. En tu propio servidor con Docker, no hay ningún tope. Antes de dejar Figma: no hay equivalente a FigJam, hay menos plugins, y pasar un archivo grande de Figma no es un simple copiar y pegar.
| Criterio | Penpot | Figma |
|---|---|---|
| Precio | US$0 online, con todas las funciones incluidas | US$16–55 por persona al mes |
| Cantidad de archivos | Ilimitados, solo cuenta tu almacenamiento | Tres archivos en el plan gratis |
| Leer el código de una maqueta | Abierto para todos | Asiento Dev, €15 al mes (€12 anual) |
| Prototipos y componentes | Sí, con variantes y bibliotecas compartidas | Sí |
| Layout | Flex y CSS Grid, lo que realmente usa el navegador | Auto layout propio |
| Dónde viven tus archivos | En su nube, o en tu servidor con Docker | En la nube de Figma |
| Pizarra estilo FigJam | Sin equivalente | Sí, como extra |
El camino más simple: una cuenta gratis en penpot.app, nada que instalar, con todas las funciones habilitadas. Si querés tus archivos en tu propia máquina o servidor, el prompt también hace la instalación con Docker.
Te pregunta si te quedás online o si lo alojás vos, y después te acompaña en tu primera maqueta:
Quiero pasar de Figma a Penpot (la herramienta de diseño open source, repositorio de GitHub penpot/penpot, sitio penpot.app). Primero preguntame si quiero usar la versión online gratuita en penpot.app (plan Professional a 0 euros, todas las funciones, hasta ocho miembros de equipo, 10 GB de almacenamiento) o alojarlo yo mismo con Docker, y explicame qué gano y qué pierdo en cada caso. Para el autoalojamiento, guiame paso a paso con el docker-compose oficial de la documentación de Penpot, diciéndome qué máquina hace falta, cómo configurar el envío de mails y cómo respaldar mis archivos. Después hacé que cree un primer proyecto: una maqueta de pantalla, un componente reutilizable, un prototipo clickeable con dos pantallas enlazadas, y mostrame cómo un desarrollador lee el código CSS de mi maqueta. Por último, explicame cómo traer mis archivos de Figma existentes y qué cosas salen mal en esa migración.
Revisá el repositorio de GitHub y comprobá si es seguro instalarlo considerando mi equipo y mi infraestructura. Haceme todas las preguntas que puedas, usando widgets, para aclarar mi pedido y ser lo más preciso posible.Pasar un archivo grande de Figma casi nunca sale bien. Armá tu próxima maqueta directo en Penpot y juzgá desde ahí.
Lee el CSS de cada elemento sin necesitar un asiento pago. Ahí es donde Penpot más plata le ahorra a un equipo chico.
El plan gratis de Figma se corta en tres archivos. Acá abrís todos los proyectos que quieras, con todas las funciones.
Flex y CSS Grid en lugar de un sistema a medida: lo que ponés en pantalla, el desarrollador lo encuentra en su hoja de estilos.
Componentes, variantes, tokens de color y tipografía, alojados en tu casa si querés. Ningún proveedor puede cambiar las reglas.
Hecho con: Clojure 72.8% · Rust 6.9% · JavaScript 6.8% · TypeScript 5.8% · SCSS 3.5%
Datos públicos del repositorio en GitHub, tomados el 8 de octubre de 2026.
Opción 2 · Construir
Esta versión es para quien arma productos y dibuja interfaces web y móviles de baja fidelidad en solitario. El objetivo: crear wireframes reutilizables en un lienzo rápido y exportarlos para implementarlos. Si necesitás más que eso, seguí pagando: la gracia de armarlo vos es tener una herramienta hecha a medida de tu forma de trabajar, no copiar el roadmap de una empresa con inversores.
Mismo desarrollo, otro logo: esta v1 también reemplaza a Sketch, porque resuelven el mismo trabajo central.
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 prompt | formas, texto, seleccionar, mover y deshacer en el lienzo, frames, componentes reutilizables, autoguardado, exportación a png y json |
|---|---|
| Lo que queda afuera | motor multijugador, plugins, booleanos vectoriales, handoff para devs |
File, Page, Node, Component, Asset, Revision
Canvas o SVG del navegador, IndexedDB
Astro, Alpine, SVG
Tratá el JSON de diseño y el SVG importados como no confiables, sanitizá los assets, poné un tope a la complejidad del documento y hacé que el autoguardado siempre se pueda recuperar.
No construyas multijugador, comentarios, ramas, plugins, handoff para desarrolladores, operaciones booleanas vectoriales ni publicación de sistemas de diseño.
Elegí tu stack, copiá el prompt y pegáselo a tu agente de código (Claude Code, Cursor, Codex…).
Estás construyendo un producto de software listo para producción llamado “Framepad”, una alternativa deliberadamente enfocada a Figma. Armá un corte vertical completo y usable, no una landing page, ni una maqueta estática, ni un conjunto 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: alguien que arma productos y dibuja interfaces web y móviles de baja fidelidad en solitario.
Resultado principal: crear wireframes reutilizables en un lienzo rápido y exportarlos para implementarlos.
Principio del producto: optimizá el flujo exacto de abajo en lugar de copiar toda la amplitud de Figma. Quien lo use por primera vez tiene que entender qué hacer desde la propia 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. El diseñador crea un frame móvil, dibuja formas y texto, importa una imagen, agrupa elementos, los alinea y ve cómo el archivo se autoguarda.
2. El diseñador convierte un grupo de botones en un componente local, coloca tres instancias, cambia sus etiquetas y actualiza la geometría del componente en cada instancia.
3. El diseñador reabre el archivo, restaura una revisión autoguardada después de una mala edición, exporta un PNG, exporta el JSON fuente e importa ese JSON en un archivo nuevo.
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. Explorador de archivos: miniaturas, fecha de modificación, crear, duplicar, importar, renombrar, archivar, eliminar y estado de recuperación para guardados interrumpidos.
2. Lienzo: páginas, árbol de capas, paleta de herramientas, límites de selección, zoom, desplazamiento, alineación, orden, agrupado, deshacer y rehacer, y estado del autoguardado.
3. Propiedades: posición, dimensiones, relleno, trazo, tipografía, ajuste de imagen, creación de componentes, cambios por instancia, validación y restablecer cambios.
4. Exportación y revisiones: selección de frames, escala del PNG, exportación a JSON, historial de revisiones, vista previa de restauración, avisos de importación y detalles de error acotados.
FUNCIONES PRINCIPALES
1. páginas y frames con presets de dispositivos comunes
2. herramientas de rectángulo, elipse, línea, texto, imagen y grupo
3. selección, mover, redimensionar, duplicar, alinear, orden de capas y deshacer
4. componentes locales reutilizables con ediciones simples de texto
5. autoguardado más exportación e importación en PNG y JSON
COMPORTAMIENTO DETALLADO Y REGLAS DE NEGOCIO
Tratá esto como requisitos del producto que se validan en el servidor, no como sugerencias de interfaz:
1. Representá el documento como un árbol versionado con IDs de nodo estables, padre y orden de capas explícitos, geometría numérica finita y ningún valor importado ejecutable.
2. Cada mutación del lienzo es un comando con datos inversos; el autoguardado agrupa comandos en revisiones y nunca limpia el estado sucio antes de que la persistencia durable haya salido bien.
3. Las instancias de componentes heredan geometría y estilo mientras los cambios soportados y explícitos se mantienen locales; rechazá ciclos y referencias a componentes eliminados de forma determinista.
4. Sanitizá el SVG y el JSON importados, poné un tope a los nodos y al tamaño de los assets, ignorá los campos desconocidos y generá las exportaciones a partir de una revisión guardada y congelada.
MODELO DE DATOS Y CICLO DE VIDA
Diseñá un esquema relacional chico centrado en File, Page, Node, Component, Asset, Revision. 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 Astro, Alpine, SVG 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, a través de un adaptador acotado y apropiado para el framework elegido. Si el flujo central realmente necesita APIs nativas o del navegador, mantené ese entorno como la superficie principal de ejecución en lugar de simular capacidades inaccesibles o inventar una superficie web innecesaria.
Integrá con Canvas o SVG del navegador e IndexedDB. 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
Tratá el JSON de diseño y el SVG importados como no confiables, sanitizá los assets, poné un tope a la complejidad del documento y hacé que el autoguardado siempre se pueda recuperar.
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 conjunto agrupado de nodos, mover, deshacer y rehacer devuelven a cada hijo a las coordenadas exactas esperadas y a su orden de capa.
2. Dadas tres instancias de componente con etiquetas modificadas, cambiar el relleno de la fuente actualiza todas las instancias sin reemplazar sus etiquetas.
3. Dados datos importados maliciosos o excesivamente grandes, la importación falla de forma segura, sin scripts, sin pedidos externos y sin dañar los archivos existentes.
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 construyas multijugador, comentarios, ramas, plugins, handoff para desarrolladores, operaciones booleanas vectoriales ni publicación de sistemas de diseño.La app que armes con este prompt lleva en el footer «Creado por aurelioagency.com».
Prompts cortos para resolver la pieza más difícil sin construir todo.
Construí el sistema de comandos para un lienzo de wireframes vectoriales.
Cada mutación (mover, redimensionar, cambiar de padre, eliminar, cambiar estilo) es un objeto comando que guarda tanto el cambio como los datos necesarios para revertirlo: un delete guarda el subárbol eliminado completo con el id de su padre y su índice de capa, un move guarda las coordenadas previas de cada nodo afectado. Deshacer saca de la pila y aplica el inverso; rehacer vuelve a aplicar. Nada de comparar snapshots, nada de volver a derivar el estado.
El caso de prueba que rompe las implementaciones ingenuas: seleccioná un grupo de nodos anidados, arrastralo y deshacé. Cada descendiente tiene que volver a sus coordenadas previas exactas y el grupo a su posición de capa exacta. Los gestos compuestos, como un arrastre que además ajusta y alinea, tienen que registrarse como un solo comando, de modo que un solo deshacer revierta el gesto entero. Poné un tope a la profundidad de la pila y definí qué invalida el rehacer (cualquier comando nuevo).
Listo cuando: veinte operaciones aleatorias, al deshacerse, vuelvan a un estado idéntico (comparación profunda) al documento original; mover un grupo, deshacer y rehacer sea exacto a la coordenada para cada hijo; y un arrastre con ajuste automático se deshaga en un solo paso.Construí componentes locales para un lienzo de diseño: convertir una selección en componente, colocar instancias y dejar que las instancias modifiquen propiedades específicas, como la etiqueta de un botón, mientras heredan todo lo demás.
Representá una instancia como una referencia al componente más un mapa de cambios ralo, con clave por id de nodo dentro del componente y nombre de propiedad, nunca como una copia profunda. El render resuelve primero los valores del componente y después aplica los cambios. Editar la geometría o el relleno del componente se propaga de inmediato a todas las instancias, salvo las propiedades que una instancia modificó de forma explícita: esas se quedan locales. Soportá restablecer el cambio por propiedad para volver a la herencia.
Hacé cumplir las reglas estructurales de forma determinista: rechazá un componente que contenga una instancia de sí mismo, directa o transitivamente, y definí qué pasa cuando se elimina un componente que tiene instancias: se separan en grupos comunes con sus valores resueltos fijados.
Listo cuando: cambiar el relleno del maestro actualice tres instancias y cada una conserve su etiqueta modificada; crear una referencia cíclica entre componentes se rechace con un error claro; y eliminar un componente deje a las ex instancias visualmente idénticas como grupos separados.Construí el autoguardado para un editor de lienzo local-first que persiste en el almacenamiento del navegador.
Editar produce un flujo de comandos; el autoguardado los agrupa, con un debounce de unos segundos después de la última edición más un tope de intervalo fijo, en revisiones numeradas escritas de forma durable. El invariante del que depende todo: el indicador de cambios sin guardar se limpia solo después de que la transacción de escritura se confirme. Nunca lo limpies de forma optimista; si la escritura falla (cuota excedida, pestaña cerrada a la fuerza en plena transacción), la interfaz tiene que seguir diciendo que no está guardado.
Al abrir un archivo, detectá un guardado interrumpido (una revisión más nueva que el último puntero confirmado) y ofrecé recuperarlo con una vista previa, en vez de elegir un lado en silencio. Mantené un historial de revisiones acotado, adelgazalo con la antigüedad (todas las recientes, después una por hora, después una por día) y dejá que el usuario restaure cualquier revisión guardada: restaurar crea una revisión nueva en vez de reescribir la historia.
Listo cuando: matar la pestaña en plena edición pierda como máximo la ventana del debounce; una falla por cuota de almacenamiento deje el indicador de cambios activo con una advertencia visible; y restaurar una revisión vieja conserve la posibilidad de volver a la más nueva.Construí una importación segura para una herramienta de diseño que acepta imágenes SVG y su propio formato de documento JSON.
Tratá ambos como controlados por un atacante. Para SVG: parseá y después reconstruí a partir de una lista blanca de elementos y atributos visuales, eliminando elementos script, atributos de manejadores de eventos, foreignObject y referencias externas; que el render no dispare ningún pedido a URLs remotas, y que los atributos style se filtren a propiedades visuales seguras. Para documentos JSON: validá contra un esquema estricto, exigí números finitos en toda la geometría (las coordenadas NaN e Infinity corrompen todos los cálculos de límites posteriores), verificá que las referencias a padres formen un árbol sin ciclos e ignorá los campos desconocidos en lugar de fallar, para mantener la compatibilidad hacia adelante.
Hacé cumplir topes de recursos antes de instanciar nada: cantidad máxima de nodos, profundidad máxima de anidamiento, tamaño máximo de assets embebidos, controlados durante el parseo para que un archivo malicioso falle rápido sin reservar memoria.
Listo cuando: un SVG con script embebido y referencias a imágenes externas se importe como formas visibles inertes sin ningún pedido de red; un archivo JSON con padres cíclicos o geometría NaN se rechace con errores con nombre; y un documento de un millón de nodos falle en milisegundos sin congelar la pestaña.Figma cuesta US$16–55 por persona al mes en sus planes pagos públicos, o sea US$192–660 por 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.
El prompt de construcción 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, Alpine, SVG. Elegí el stack que ya conocés: importa más el alcance que el framework.
Una v1 útil necesita: páginas y frames con presets de dispositivos comunes; herramientas de rectángulo, elipse, línea, texto, imagen y grupo; selección, mover, redimensionar, duplicar, alinear, orden de capas y deshacer; componentes locales reutilizables con ediciones simples de texto; autoguardado más exportación e importación en PNG y JSON. Todo lo demás es alcance de más hasta que lo extrañes en serio.
No construyas multijugador, comentarios, ramas, plugins, handoff para desarrolladores, operaciones booleanas vectoriales ni publicación de sistemas de diseño.
Sí. Figma y Sketch resuelven el mismo trabajo central: crear wireframes reutilizables en un lienzo rápido y exportarlos para implementarlos. La v1 acotada de esta página cubre lo que la mayoría usa de cualquiera de los dos, así que un solo desarrollo enfocado reemplaza al que pagues hoy.
Sí. Penpot es open source: el código es público e instalarlo no cuesta nada. A lo sumo pagás el hosting si lo ponés en un servidor, muchas veces unos pocos euros al mes. Figma, en cambio, cuesta €20 por mes.
No. El nivel es principiante y la instalación lleva unos 5 minutos con el prompt de la página: Claude hace el trabajo y vos respondés sus preguntas.
Penpot hace casi todo lo que hace Figma, sin suscripción, y tus datos se quedan con vos. La comparación punto por punto está en la página.
Sí. Con una herramienta open source instalada de tu lado, tus archivos quedan en tu equipo o en tu servidor. Nadie puede cerrarte la cuenta ni cambiarte el precio.
¿Sin tiempo para hacerlo?
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