// Como uma IA Open Source desenha, precifica e provisiona arquiteturas AWS
Draw.io, Lucidchart, Excalidraw — ótimas ferramentas de desenho. Mas o diagrama não sabe quanto custa, nem vira código.
Estimar EC2 + RDS + Lambda + S3 antes do deploy é trabalho manual de horas — quando alguém faz.
Aprovou a arquitetura? Agora reescreva tudo em Terraform/CDK na
unha. Drift garantido entre Confluence e main.tf.
Resultado: a documentação envelhece em horas, o custo é surpresa, e o IaC vira o "trabalho real" depois da reunião.
Um único artefato — editável, versionável, exportável — que carrega desenho, custo e infraestrutura como código na mesma fonte.
Um PWA open source que transforma descrições em linguagem natural em diagramas AWS interativos — com custo estimado e Terraform exportável.
Todos os diagramas vivem em
localStorage/IndexedDB. Sem cadastro,
sem telemetria, sem backend de armazenamento. Você é dono dos
seus desenhos.
Cloud AI com Gemini 2.5 Flash para velocidade. Local AI com WebLLM (Phi-3-mini via WebGPU) para uso offline e dados sensíveis — sem API key.
Integração direta com a AWS Price List API.
Bill of Materials consolidada, exportável em CSV, antes de
qualquer terraform apply.
Interface IaCGenerator abstrata. Hoje gera
Terraform; amanhã CDK, Pulumi ou CloudFormation — sem modificar
a UI.
// 12 minutos · 7 funcionalidades · 1 arquitetura real
API serverless de processamento
de pedidos com:
- API Gateway na borda
- Lambda de validação
- DynamoDB de pedidos
- SQS para fanout
- Lambda worker
- S3 para anexos
- Tudo numa VPC com 2 AZs
dagre⚡ Modo incremental: pedir "adicione um CloudFront na frente" não recomeça do zero — a IA modifica o diagrama existente.
VPC, Subnet pública/privada, AZ, Region, On-Premises, Security Zone — pré-estilizados, paridade com draw.io.
Ctrl+Z/Y, Ctrl+C/V/D,
Ctrl+L auto-layout, Ctrl+A select all,
Ctrl+? help.
Snap-to-grid 16px, smart guides durante drag, alignment toolbar para 2+ nós selecionados.
Cor, borda, opacidade, roteamento de edges (smooth/straight/step/bezier), linhas tracejadas.
Three-Tier, Serverless API, Event-Driven, Microservices, Data Lake, ML Pipeline, DR Multi-Region.
Mostrar/ocultar/lock por camada — separe rede, compute e dados em vistas independentes.
apply, depois do desenho.RESOURCE QTY USAGE USD/MO
─────────────────────────────────────────────────
API Gateway HTTP 1 1M req/mo $1.00
Lambda (validate) 1 1M @ 256MB $0.83
Lambda (worker) 1 1M @ 512MB $1.67
DynamoDB On-Demand 1 50GB + 1M wr $14.20
SQS Standard 1 1M msg $0.40
S3 Standard 1 100GB $2.30
─────────────────────────────────────────────────
TOTAL ESTIMADO $20.40 /mo
Valores ilustrativos · cálculo real é live na API.
Edges pulsam em verde (active), vermelho (error) ou laranja (throttled). 1×, 2×, 5× multiplier.
Requests, error %, p95 de latência, cache hit %, custo cumulativo. Tabela exportável.
Waterfall por requisição, hop a hop, com latência e status — estilo X-Ray, mas no browser.
Botão Kill / Restore em qualquer nó. Ajuste latência e failure rate ao vivo, durante a simulação.
Templates como Serverless Circuit Breaker e ECS + App Mesh já vêm com falhas configuradas para você ver o circuito abrindo na hora.
.tf em um clique.terraform {
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.0" }
}
}
provider "aws" {
region = var.aws_region
}
resource "aws_lambda_function" "validate_order" {
function_name = "validate-order"
role = aws_iam_role.lambda_exec.arn
handler = "index.handler"
runtime = "nodejs20.x"
memory_size = 256
}
resource "aws_dynamodb_table" "orders" {
name = "orders"
billing_mode = "PAY_PER_REQUEST"
hash_key = "order_id"
attribute { name = "order_id"; type = "S" }
}
resource "aws_sqs_queue" "fanout" {
name = "order-fanout"
}
# depends_on inferido a partir das edges do diagrama
resource "aws_apigatewayv2_route" "post_orders" {
api_id = aws_apigatewayv2_api.http.id
route_key = "POST /orders"
target = "integrations/${aws_apigatewayv2_integration.lambda.id}"
depends_on = [aws_lambda_function.validate_order]
}
EC2, Lambda, RDS, DynamoDB, S3, VPC, ALB, API Gateway, CloudFront, Route 53, SQS, SNS, EKS, ECS, ElastiCache, ECR…
main.tf (resources + provider) ·
variables.tf · outputs.tf — direto pro
terraform init.
Endpoint /api/generate-terraform combina Gemini 2.5
Flash com o HashiCorp Terraform MCP server —
IAM roles e security groups vêm de schemas reais.
Syntax highlighting, bracket matching, snippets. Temas
terraform-dark e terraform-light,
fullscreen, copy & download.
Per-node IaC config: sobrescreva o tipo de recurso e o nome direto
no Properties Panel — o que aparece como
aws_lambda_function.validate_order no HCL.
#fragment da URL
Você desenha com ses pares em tempo real, compartilhando um link, e nem o servidor de signaling consegue ler o conteúdo do diagrama.
Para uma ferramenta de arquitetura corporativa, isso muda a conversa de compliance.
localhost.docker run -p 4566:4566 \
ministackorg/ministack
Clique no ícone Rocket na toolbar, configure o endpoint e pressione Deploy All. Status por nó atualiza em tempo real.
localhost:4566 —
funciona até no Vercel
Bucket · listar, upload, delete
Invocar, editar config, logs ao vivo
Tabela · scan, put item
Enviar, receber, publicar
REST API + rotas + stage · testar endpoints
EventBridge, Kinesis, IAM, KMS, Secrets Manager, SSM, CloudWatch Logs
Sem conta AWS · Sem custo de nuvem · 100% local
// stack, fluxo de dados e a abstração que torna tudo plugável
IaCGenerator.// src/lib/iac/types.ts
export interface IaCGenerator {
readonly name: string; // "terraform" | "cdk" | "pulumi"
readonly fileExtension: string; // ".tf" | ".ts" | ".py"
generate(
nodes: AppNode[],
edges: AppEdge[],
options?: IaCGenerationOptions
): Promise<IaCFileSet>;
supportsResource(awsServiceType: string): boolean;
}
// src/lib/iac/terraform/generator.ts
export class TerraformGenerator implements IaCGenerator {
name = "terraform";
fileExtension = ".tf";
async generate(nodes, edges) {
const resources = nodes.map(n => mapToResource(n));
const dependencies = inferDependsOn(edges);
return {
"main.tf": renderMain(resources, dependencies),
"variables.tf": renderVariables(resources),
"outputs.tf": renderOutputs(resources)
};
}
}
Adicionar Pulumi amanhã = uma nova classe. A UI não muda.
"API serverless com Lambda + DynamoDB"
③
Gemini 2.5 Flash recebe prompt + contexto MCP de AWS Docs →
JSON estruturado
④
Parser monta AppNode[] + AppEdge[] →
Zustand store
⑤
React Flow renderiza · dagre auto-organiza · Yjs sincroniza com
peers
⑥
Pricing provider consulta AWS Price List API para cada nó
AWS
⑦
Usuário clica Export Terraform → POST
/api/generate-terraform
⑧
Endpoint chama Gemini + Terraform MCP server → HCL com schema
real
⑨
Monaco renderiza HCL com 3 abas · botão download · zero
backend
A regra: OpenArchFlow é o cartão de visita da arquitetura. Não substitui pipelines de IaC maduros — acelera o caminho até eles.
A interface IaCGenerator já está pronta. Falta
implementar e mapear os recursos.
Azure já tem nós e templates. Próximo: pricing + IaC paridade com AWS.
Unit + integration tests é uma das maiores oportunidades de PR para a comunidade.
UI hoje em inglês. Português, espanhol e japonês são próximos candidatos.
PWA já instala. Falta UX touch-first e gesture handling para tablets.
Anthropic Claude, modelos locais via Ollama, e fine-tuning para AWS Solutions Architect specs.
github.com/dmux/
OpenArchFlow
Reportar bugs ou sugerir melhorias que faltam no seu fluxo.
Conventional commits · ESLint · changelog em
[Unreleased].
Mostre pra um arquiteto cloud que ainda mantém diagramas no PowerPoint.
// Built by Rafael Sales · MIT License · construído por arquitetos para arquitetos
↑ ↓ ← → para navegar · S para speaker notes ·
F para fullscreen · ? para todos os
atalhos