/ Arquitetura

Código que escala.
Infraestrutura que aguenta.

O Kairós foi construído com arquitetura em primeiro lugar. Cada decisão técnica foi tomada pensando em escalabilidade, manutenibilidade e extensibilidade.

01 / A Jornada

Do scaffolding inicial até o produto final, cada etapa foi documentada e versionada. O projeto evoluiu através de mentorias e iterações constantes.

Mentoria 1

Definição & Dúvidas

Alinhamento com a PRIME Society, entendimento do desafio e definição da arquitetura base. Decisões sobre stack e estrutura de dados.

Desenvolvimento

Construção do Core

Models de Apps, Offers, Demands. Engine de Matching bidirecional. Sistema de Contracts e Reviews. APIs RESTful com testes.

Mentoria 2

MVP Funcional

Apresentação do MVP sem design. Fluxo completo funcionando: criação de mercados, ofertas, demandas, matching e contratos.

Frontend

Interface & UX

Setup de Next.js, Tailwind CSS, shadcn/ui. Dashboard, páginas de mercado, fluxo de autenticação. Sistema de email para ativação.

Banca Final

Design System

Redesign completo com identidade visual Kairós. Tipografia editorial, tema dark, animações e microinterações.

02 / Arquitetura

Metadata-Driven Design

O comportamento da plataforma é 100% configurável através de JSON Schema. O mesmo core suporta e-commerce, gigs, doações, licitações, recrutamento, investimentos e voluntariado.

Uma infraestrutura, infinitas possibilidades

O Kairós é um sistema operacional para mercados. A mesma base de código suporta e-commerce, gigs, doações, licitações, recrutamento, investimentos e voluntariado. Cada mercado (App) é uma configuração diferente do mesmo motor — não um fork, não um módulo separado. Zero código novo para criar um mercado novo.

Apps

Configuração de mercados via metadados JSON Schema

Offers

Lado da oferta, schema dinâmico por app

Demands

Lado da demanda, regras de matching configuráveis

Matching

Engine bidirecional com scoring ponderado

Contracts

Gestão do ciclo de vida de transações

Reviews

Sistema de reputação bidirecional

Users

Auth, perfis, ativação por email

Permissions

Controle granular de acesso por recurso

/api/v1/*API Versionada

Endpoints RESTful com versionamento. Evolução sem quebrar clientes existentes. Pronto para v2, v3...

canRequest()Authorization Layer

Middleware de permissões por recurso e ação. Controle granular: create:app, update:offer, delete:demand...

Pontos de Escalabilidade

Novos tipos de mercado

Adicione um JSON Schema, configure as regras de matching. Zero código novo.

Regras de matching customizadas

Operadores configuráveis: equals, contains, gte, lte, range, etc.

Workflows extensíveis

Stages configuráveis por mercado: discovery, negotiation, execution, feedback.

Multi-tenancy ready

Arquitetura preparada para múltiplas organizações isoladas.

{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}{"app_type":"marketplace","matching":{"rules":[{"field":"category","op":"eq"},{"field":"price","op":"lte"}]},"workflow":{"stages":["discovery","negotiation","execution"]}}
03 / JSON Schema

Uma API, infinitos mercados

Um único POST cria um mercado completo. Schemas definem a estrutura de ofertas e demandas. Regras de matching configuram o algoritmo. Tudo em JSON.

POST /api/v1/apps201 Created
{
  "slug": "recrutamento-tech",
  "name": "Vagas de Tecnologia",

  // Schema dinâmico para ofertas (vagas)
  "offer_schema": {
    "properties": {
      "title": { "type": "string" },
      "salary": { "type": "number" },
      "skills": { "type": "array" },
      "remote": { "type": "boolean" }
    }
  },

  // Schema para demandas (candidatos)
  "demand_schema": {
    "properties": {
      "expected_salary": { "type": "number" },
      "skills": { "type": "array" },
      "wants_remote": { "type": "boolean" }
    }
  },

  // Regras de matching com peso
  "matching_rules": [
    {
      "offer_field": "skills",
      "demand_field": "skills",
      "operation": "array_intersects",
      "weight": 3
    },
    {
      "offer_field": "salary",
      "demand_field": "expected_salary",
      "operation": "greater_than_or_equal",
      "weight": 2
    },
    {
      "offer_field": "remote",
      "demand_field": "wants_remote",
      "operation": "equals",
      "weight": 1
    }
  ]
}

Operações de Matching

equals
Valores idênticosstatus === "active"
greater_than
Maior quesalary > expected
less_than_or_equal
Menor ou igualprice <= budget
array_intersects
Arrays com itens em comumskills ∩ required
array_contains
Array contém valortags.includes(tag)
contains
String contém substringname.includes(query)

Cálculo de Score

O engine soma os pesos das regras que dão match. Quanto maior o score, melhor a compatibilidade.

skills match (weight: 3)+3
salary match (weight: 2)+2
remote match (weight: 1)+1
Total Score6
04 / Infraestrutura

Cloud-native, production-ready

Deploy contínuo, ambientes isolados, banco de dados gerenciado. Infraestrutura moderna para um projeto moderno.

Vercel

  • Deploy automático por branch
  • Preview deployments em PRs
  • Edge functions
  • Analytics integrado

Neon (PostgreSQL)

  • Database serverless
  • Branch de homologação
  • Branch de produção
  • Backups automáticos

Docker

  • Ambiente local containerizado
  • PostgreSQL + pgAdmin
  • Consistência dev/prod
  • docker-compose up

Domínio

Domínio próprio configurado com DNS gerenciado.

kairos.town

Email Transacional

Sistema de email para ativação de conta e notificações.

Resend
05 / DevOps

GitHub-first workflow

Repositório aberto, branches protegidas, CI/CD automatizado. Qualidade de código garantida por automação.

Repositório Público

Código aberto no GitHub, licença permissiva, contribuições bem-vindas

Open Source

Branch Protection

Main protegida, requer PR aprovado, sem push direto

Security

GitHub Actions

Lint, testes e build em cada push. Merge bloqueado se falhar

CI/CD

Preview Deploys

Cada PR gera um ambiente de preview na Vercel automaticamente

DX

Conventional Commits

Commits padronizados: feat, fix, docs, chore. Changelog automático

Standards

Developer Experience

Setup em 3 comandos. Docker sobe o banco, npm sobe a aplicação. Pronto para codar em menos de 2 minutos.

$git clone https://github.com/adspacheco/kairos.git
$npm install
$npm run dev# Sobe Next.js + Docker (PostgreSQL + pgAdmin)
Ready on http://localhost:3000
3Comandos
0Configuração manual
Possibilidades

Explore o código

Repositório completo com histórico de commits, PRs e issues.

Ver no GitHub

Veja funcionando

A melhor forma de entender a arquitetura é vendo ela em ação.