Diseño

Dejá de pagar Canva

Un editor chico y fiel a tu marca para los gráficos que hacés todas las semanas.

Canva cuesta US$15–30 por persona / mes, o sea US$180–360 al año. Tenés dos caminos:

Opción 1 · Instalar

Instalá Avnac gratis

Avnac es un editor visual al estilo Canva, abierto y liviano: entrás a avnac.design, hacés clic en “Open editor” y listo, ya estás adentro. Sin cuenta, sin email, nada que instalar. Colocás texto, formas, imágenes y vectores, alineás, rotás, agregás sombras, recortás, hasta generás un código QR, y después exportás a PNG, JPG o WebP. Tus proyectos quedan en el almacenamiento local de tu navegador, o sea en tu máquina. También podés ejecutarlo en local o en tu VPS. Licencia AGPL-3.0. Antes de dejar Canva Pro: no hay biblioteca de plantillas ni de fotos, arrancás con un lienzo en blanco, el editor está bloqueado en celulares y el proyecto es joven: su repo principal no se movió desde mayo de 2026.

Avnac vs Canva

CriterioAvnacCanva
PrecioUS$0, en el navegadorUS$15–30 por persona al mes
CuentaNinguna, abrís la página y creásObligatoria
Dónde viven tus archivosEn tu navegador, en tu máquinaCon ellos
Plantillas e imágenes de stockNinguna, lienzo en blancoMillones, esa es su fortaleza
ExportaciónPNG, JPG, WebP, fondo transparente incluidoEl fondo transparente es solo del plan Pro
En el celularNo, solo escritorioSí, app móvil

Cómo instalarlo (aunque arranques de cero)

No hay nada que instalar: el editor está online, sin cuenta. El prompt de abajo es solo para cuando querés tu propia copia en tu servidor, por ejemplo para tu equipo.

  1. 1

    Abrí el editor, eso es todo

    Entrá a avnac.design/editor. Sin cuenta: creás y exportás. Tus proyectos quedan en tu navegador, acordate de exportar lo que importa.

  2. 2

    Si querés tu propia copia, pegá este prompt en Claude

    Trae el proyecto oficial y lo ejecuta en tu máquina o en tu servidor, con la interfaz y el pequeño backend incluidos:

    Instalá Avnac (el editor de visuales open source al estilo Canva, repo de GitHub xt42io/avnac) en mi máquina, siguiendo el README del repositorio. Partí de cero: verificá que Git y Node.js (versión 20 o superior) estén instalados, y si no, instalalos. Cloná el repositorio, después en la carpeta backend hacé npm install, copiá .env.example a .env y ejecutá npm run dev (puerto 3001); en la carpeta frontend hacé npm install y ejecutá npm run dev (puerto 3300). Abrí http://localhost:3300 y verificá que se pueda crear un visual con un texto y una forma, y luego exportarlo a PNG. Si quiero ponerlo en mi servidor para mi equipo, construí el frontend con npm run build, servilo detrás de un reverse proxy Caddy en HTTPS junto con el backend, y explicame cómo actualizarlo. 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.

Para qué lo vas a usar

Una miniatura, una story, un afiche, ahora mismo

Abrís la pestaña, ponés tu título y tu imagen, exportás. Sin login, sin un “pasate a Pro” a la hora de exportar.

Imágenes con texto prolijo y vectores nítidos

Jerarquía de textos, alineación, sombras, formas vectoriales que siguen nítidas al hacer zoom. Para una portada o un carrusel, alcanza.

Un código QR en tu folleto, sin una web de terceros

El generador de QR viene incluido: pegás tu link, lo colocás en la imagen y exportás.

Salud del proyecto

estrellas en GitHub
1569
Forks
201
Colaboradores
8
Commits
696
Antigüedad
0,5 años
Licencia
AGPL-3.0

Hecho con: TypeScript 96.3% · CSS 3.1%

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

Opción 2 · Construir

Armá tu propio Canva

Para quién es

Esta versión es para un negocio chico que produce gráficos recurrentes para redes y anuncios. El objetivo: convertir un puñado de plantillas de marca bloqueadas en imágenes descargables del tamaño correcto. 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 Adobe Express y Kittl, 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 promptplantillas fijas, edición de texto, exportación a png, kit de marca, diseño arrastrando, recorte de imágenes, deshacer
Lo que queda afueramotor de diseño completo, biblioteca de stock, colaboración, video

Qué necesita una alternativa mínima a Canva

  • plantillas de tamaño fijo con espacios editables de texto e imagen
  • colores, tipografías y logo de la marca, y guías de zona segura
  • arrastrar, redimensionar, alinear, ordenar capas y deshacer en los elementos compatibles
  • subida de imágenes, recorte y controles de ajuste
  • exportación a PNG y JPEG en las dimensiones de la plantilla

Modelo de datos

BrandKit, Template, Design, Element, Asset

Integraciones

Canvas del navegador, almacenamiento de objetos R2

Contexto de capacidades

Astro, Alpine, Canvas API

La regla de oro

Permití solo subidas de usuarios con licencia y tipografías de confianza; aislá las entradas del renderizado y mantené los archivos privados detrás de URLs autorizadas.

Lo que no se hace a propósito

No armes edición colaborativa, medios de stock, IA generativa, presentaciones, video ni un mercado público de plantillas.

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 “Posterdesk”, una alternativa deliberadamente enfocada a Canva. 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 negocio chico que produce gráficos recurrentes para redes y anuncios.
Resultado principal: convertir un puñado de plantillas de marca bloqueadas en imágenes descargables del tamaño correcto.
Principio del producto: optimizá el flujo exacto que sigue en vez de copiar toda la amplitud de Canva. 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. El dueño crea un kit de marca, sube un logo, elige colores y tipografías, arma una plantilla cuadrada de anuncio, bloquea los elementos de marca y la guarda para reutilizarla.
2. Un compañero abre la plantilla, reemplaza la foto y el texto, alinea los elementos editables, previsualiza el recorte final y exporta un PNG del tamaño correcto.
3. El dueño duplica un diseño a un segundo tamaño preestablecido, corrige los avisos de desborde, restaura un autoguardado anterior después de un error y descarga las dos variantes.

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: kit de marca, plantillas, diseños recientes, dimensiones, hora de modificación, y acciones de duplicar, archivar y crear a partir de una plantilla.
2. Editor de plantillas: lienzo, capas, herramientas para los elementos compatibles, propiedades, guías de alineación, estado de bloqueo, zona segura, deshacer y rehacer, y estado de guardado.
3. Editor de diseños: espacios editables con restricciones, selector de recursos, controles de recorte, avisos de ajuste del texto, zoom, vista previa, recuperación de autoguardado y acción de exportar.
4. Exportación: dimensiones y formato de salida, calidad, fondo transparente cuando es válido, progreso del renderizado, recuperación ante fallos y descarga.

FUNCIONES PRINCIPALES
1. plantillas de tamaño fijo con espacios editables de texto e imagen
2. colores, tipografías y logo de la marca, y guías de zona segura
3. arrastrar, redimensionar, alinear, ordenar capas y deshacer en los elementos compatibles
4. subida de imágenes, recorte y controles de ajuste
5. exportación a PNG y JPEG en las dimensiones de la plantilla

COMPORTAMIENTO DETALLADO Y REGLAS DE NEGOCIO
Tratá esto como requisitos del producto que se validan en el servidor, no como sugerencias de interfaz:
1. Guardá cada elemento en coordenadas de la plantilla, aplicá las transformaciones de forma determinista, conservá el orden de las capas y mantené deshacer y rehacer como un historial de comandos reversibles.
2. Los elementos bloqueados no se pueden modificar en los diseños derivados; los espacios editables limitan el contenido permitido y rechazan textos o imágenes que violen las reglas de la plantilla.
3. Validá el tipo MIME y el contenido decodificado de las subidas, eliminá los metadatos, limitá las dimensiones en píxeles y servi los archivos privados solo mediante URLs autorizadas de corta duración.
4. Renderizá las exportaciones a partir de la revisión guardada del diseño, con las dimensiones exactas pedidas, para que un reintento produzca los mismos píxeles aunque el borrador cambie.

MODELO DE DATOS Y CICLO DE VIDA
Diseñá un esquema relacional chico centrado en BrandKit, Template, Design, Element, Asset. 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, Alpine, Canvas API 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 el Canvas del navegador y con el almacenamiento de objetos R2. 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
Permití solo subidas de usuarios con licencia y tipografías de confianza; aislá las entradas del renderizado y mantené los archivos privados detrás de URLs autorizadas.
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. Dada una plantilla con el logo bloqueado y el título editable, un diseño derivado puede cambiar el título, pero se rechaza cualquier intento de mover o reemplazar el logo.
2. Dada una subida demasiado grande o disfrazada, el servidor la rechaza antes de guardarla y el diseño actual sigue siendo usable.
3. Dado un diseño guardado de 1080 por 1080, la exportación produce exactamente esas dimensiones y restaurar la revisión anterior recupera el estado previo de los elementos.

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 edición colaborativa, medios de stock, IA generativa, presentaciones, video ni un mercado público de plantillas.

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.

Cuentas de recorte que sobreviven a la exportaciónCover, contain y una ventana de recorte arrastrable: determinista desde el editor hasta los píxeles finales.
Construí el ajuste y recorte de imágenes para los espacios de plantillas de tamaño fijo.

Un espacio tiene dimensiones fijas en coordenadas de la plantilla; una foto subida rara vez coincide con su proporción. Implementá los modos de ajuste cover y contain, más un recorte arrastrable y con zoom: la persona mueve y escala la imagen dentro del espacio, y vos guardás la transformación como coordenadas normalizadas de un rectángulo de origen (qué región de la imagen original se ve), independientes del zoom de pantalla.

La propiedad crítica es el determinismo: el renderizador de exportación, dibujando a la resolución completa de la plantilla, tiene que aplicar la misma transformación guardada y producir exactamente lo que mostró la vista previa del editor. Nada de volver a deducirlo desde el layout CSS. Limitá la transformación para que el área visible nunca se salga de la imagen de origen, sin franjas blancas en los bordes. Manejá la orientación EXIF antes de hacer cualquier cuenta, o las fotos verticales del celular se van a recortar de costado.

Terminado cuando: los píxeles exportados coinciden con la vista previa del editor para cualquier movimiento y zoom, un alejamiento extremo no puede mostrar espacio vacío en el espacio, y una foto de celular rotada recorta la región que la persona realmente eligió.
El bloqueo de plantillas que el pasante no puede romperLogo bloqueado, título editable: las restricciones se aplican en el modelo de datos, no en la barra de herramientas.
Construí el sistema de bloqueo para las plantillas de marca. Quien crea la plantilla marca cada elemento como bloqueado o editable, y los espacios editables llevan restricciones: un espacio de texto con largo máximo y tipografía fija, un espacio de imagen que acepta reemplazo pero no reposicionamiento.

Los diseños derivados guardan solo los cambios de los espacios editables, nunca copias de toda la plantilla, así la plantilla sigue siendo la única fuente de verdad y las correcciones posteriores de la plantilla llegan a los diseños existentes. Hacé cumplir las restricciones del lado del servidor en cada guardado: un cambio que apunta a un elemento bloqueado se rechaza de plano, y un cambio que viola las reglas del espacio (texto demasiado largo, tipo de elemento equivocado) se rechaza con un error específico. El cliente debería atenuar los elementos bloqueados, pero la pared real es el servidor.

Manejá la evolución de la plantilla: desbloquear un elemento más adelante está bien; bloquear uno que los diseños existentes ya modificaron necesita una política definida: congelar el cambio o revertirlo, elegí una y dejala registrada.

Terminado cuando: ninguna petición a la API puede mover o reemplazar un logo bloqueado en un diseño derivado, las violaciones de restricciones de los espacios fallan con motivos con nombre, y corregir un error de tipeo en la plantilla actualiza todos los diseños derivados que no modificaron ese espacio.
La carrera de obstáculos de las subidasDetectar el tipo real del archivo, borrar las coordenadas GPS, limitar los píxeles y firmar las URLs.
Construí el pipeline de subida de imágenes para una herramienta de diseño.

No confíes en nada de lo que sube el usuario: ignorá el tipo MIME y la extensión que declara el cliente, inspeccioná el contenido decodificado para verificar que realmente sea un PNG, JPEG o WebP. Rechazá el SVG por completo, es ejecutable. Decodificá la imagen del lado del servidor y aplicá un tope de dimensiones en píxeles antes de la decodificación completa cuando se pueda: un PNG de 40000x40000 es una bomba de descompresión que entra en un archivo chico. Recodificá la imagen aceptada, lo que como efecto secundario elimina los metadatos EXIF: coordenadas GPS, números de serie del dispositivo, miniaturas incrustadas de recortes anteriores.

Guardá los resultados en un bucket privado con clave por hash del contenido, deduplicando las subidas idénticas, y servilos solo mediante URLs firmadas de corta duración atadas a una verificación de autorización. Guardá el nombre de archivo original por separado, sanitizado, para mostrarlo.

Terminado cuando: un archivo .html renombrado se rechaza a pesar de su extensión .png, los bytes guardados de una foto aceptada no contienen bloques EXIF, y un PNG bomba de descompresión falla rápido sin agotar la memoria del servidor.
Exportá dos veces, obtené los mismos píxelesRenderizar desde la revisión guardada, no desde el borrador en vivo: los reintentos tienen que ser reproducibles.
Construí el renderizador de exportación de una herramienta de diseño basada en plantillas. La exportación produce un PNG o JPEG con las dimensiones exactas de la plantilla, digamos 1080 por 1080, sin importar el zoom del editor ni la densidad de pantalla.

Renderizá a partir de una revisión guardada del diseño, no del estado en vivo del editor: cuando la persona hace clic en exportar, guardá el estado actual como una revisión numerada y renderizá esa. Si el renderizado falla y la persona reintenta, o si sigue editando mientras corre el renderizado, el reintento renderiza la misma revisión y produce píxeles idénticos. Cargá las tipografías exactas que usa el diseño antes de dibujar: que la tipografía de reemplazo cambie las métricas en silencio es el clásico error de exportación corrupta, y hacé que falle de forma ruidosa si una tipografía no se puede cargar en vez de sustituirla.

Soportá fondos transparentes solo para PNG, y rechazá la combinación JPEG más transparencia con un mensaje claro. Verificá las dimensiones de salida después del renderizado.

Terminado cuando: dos exportaciones de la misma revisión son idénticas byte a byte, editar durante un renderizado no cambia lo que ese renderizado produce, y una tipografía faltante hace fallar la exportación con un error en vez de entregar métricas de texto equivocadas.

Preguntas frecuentes

¿Cuánto cuesta Canva si sigo suscripto?

Canva sale entre US$15 y US$30 por persona al mes en los planes pagos públicos, o sea entre US$180 y US$360 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 Canva?

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, Alpine, Canvas API. Elegí el stack que ya conocés: el alcance importa más que el framework.

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

Una v1 útil necesita: plantillas de tamaño fijo con espacios editables de texto e imagen; colores, tipografías y logo de la marca, y guías de zona segura; arrastrar, redimensionar, alinear, ordenar capas y deshacer en los elementos compatibles; subida de imágenes, recorte y controles de ajuste; exportación a PNG y JPEG en las dimensiones de la plantilla. 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 armes edición colaborativa, medios de stock, IA generativa, presentaciones, video ni un mercado público de plantillas.

¿Este desarrollo también reemplaza a Adobe Express y Kittl?

Sí. Canva, Adobe Express y Kittl resuelven el mismo trabajo central: convertir un puñado de plantillas de marca bloqueadas en imágenes descargables del tamaño correcto. 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.

¿Avnac es gratis de verdad?

Sí. Avnac es de código abierto: el código es público e instalarlo no cuesta nada. Como mucho pagás el hosting si lo ponés en un servidor, a menudo unos pocos euros al mes. Canva Pro, en cambio, cuesta €12 por mes.

¿Necesito saber programar para instalar Avnac?

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.

¿En qué se diferencia de Canva Pro?

Avnac hace gran parte de lo que hace Canva Pro, 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