DEVFELLOW/SHIP
A fellowship onde aprender é shippar trabalho real em produção, com IA como parceira inseparável. Este documento é como a DFL se apresenta — em palavra, em forma, em código.
Code before review.
Review before celebration.
Autonomy does.
not a factory.
We chose global.
with a peer who never sleeps.
ship it tomorrow.
Fundação da marca
O que a DFL é, por que existe, o que defende, o que recusa. A base sobre a qual todo o resto (logo, voz, produto, sub-marca) é só consequência.
Por que a DFL existe
Formar o operador completo de software pós-IA — em prod, em meses, com fluxo real — não em laboratório, não em quatro anos.— Propósito DFL
Bootcamps ensinam sintaxe desconectada do trabalho real. Faculdade leva quatro anos sem que o aluno mergeie uma linha em produção. Aprender sozinho é mês após mês sem ritmo, sem feedback, sem rede.
No meio desse vácuo, a IA mudou o que significa "ser dev". O gap entre o que escolas ensinam e o que prod exige nunca foi tão grande.
DFL forma fellows que shippam em produção desde a semana 1, mentorados por quem está shippando hoje, operando com IA como parte do fluxo — não como brinquedo.
A medida é entrega: PR mergeado, plano publicado, eval rodado. Não nota, não certificado, não horas de aula.
Onde vamos chegar
DFL como sistema operacional do desenvolvimento de software brasileiro — e, na sequência, global. Forma fellows → fellows treinam empresas via Revera → empresas contratam fellows → o ciclo gira.
"Passei pela DFL" vira selo de "sabe operar com IA em produção, em time". Não é título. É prova de operação.
Horizonte 1 · 12 meses
Stack interna consolidada (plans · harness · brain). Primeira coorte com placement > 70%. Revera com 5 contratos B2B fechados.
Horizonte 2 · 3 anos
Rede alumni > 300 fellows. Revera vira product-led — empresas operam plans+harness+eval no próprio time, sem dependência humana.
Horizonte 3 · 10 anos
"Operador DFL" vira categoria. Empresa sem time formado em runtime DFL é a exceção. Influência exportada para LATAM, depois global.
A operação diária
- Shippar fellows operacionais. Cada coorte sai com PR real merged, plano publicado, eval rodado. Sem cerimônia, sem teatro.
- Operar a runtime DFL. Plans-app, harness, brain, sandbox-manager, paperclip — infraestrutura própria, self-hosted, sem dependência do hype-stack externo.
- Treinar empresas via Revera. Não vender entrega — vender a transição. O time interno do cliente sai 2–3× mais produtivo, operando IA em produção.
- Documentar o método em público. Plans, ADRs, episodes, drift-signals, runbooks — tudo público. O método é parte do produto.
O que recusamos negociar
Ship > plan > review
Entrega de valor real é a métrica única. Plano que não vira PR é overhead. Review que não shippa é cerimônia.
Tokens don't matter
Automatize o trabalho — o custo de API segue. Otimizar custo de token antes de otimizar fluxo é otimizar a coisa errada.
Plan-driven autonomy
Decisões duráveis ficam em planos públicos versionados. Agentes executam. Humanos destravam. Conhecimento institucional não vive na cabeça de uma pessoa.
Drift é dado
Captura honesta do que está quebrado, mesmo quando inconveniente. Drift escondido vira dívida. Drift capturado vira eval.
Brasil + global
Raízes locais (PT-BR, cultura brasileira, tu/bora/valeu), ambição mundial. A voz é BR. O design é global. As duas coisas convivem sem custo.
Como pensamos antes de agir
- Capture > polish. Capturar dado bruto é mais valioso que polir relatório.
- Async > sync. Reunião é dívida. TG/Discord/Notion comments são default.
- Public > private. Plans, ADRs, repos: público por default. Privado por exceção.
- Build > buy quando é core. Buy > build quando é commodity.
- One-way doors exigem ADR. Two-way doors só decidem e seguem.
- Velocidade > perfeição em first draft. Perfeição > velocidade em ship final.
- Fact > opinion em debate técnico. PR ou número, não retórica.
- People > process sempre. Processo serve à pessoa, não o contrário.
O que prometemos a quem entra
O que recebe
"Você não sai da DFL junior. Você sai com PR real merged, plano publicado, eval rodado, e uma rede de gente que está shippando hoje."
- Certificado decorativo
- Garantia de emprego (mas há placement)
- Hand-holding
- Curso passivo · ambiente "safe"
O que recebe
"Você não está comprando entrega. Você está comprando a transição da sua engenharia. Seu time sai 2–3× mais produtivo, com fluxo IA estabelecido, operando como nós operamos."
- Body-shop / mão de obra
- Consultoria-por-hora
- Carimbo de "fizemos treinamento IA"
- Software house entregando código
Quem a DFL é
Magician (Mago)
Transforma. Faz acontecer. Vê padrões que outros não veem (plans+harness+eval como runtime). Promete não conforto, mas transformação real e mensurável.
Outlaw (Rebelde)
Recusa a ordem estabelecida (faculdade, bootcamp, consultoria-por-hora). Opinião forte, ferramentas próprias, "we don't do what everyone does". Não pede licença.
Como isso aparece
- Linguagem direta, sem hedging. "Bootcamp não ensina fluxo." Não "é interessante notar que…".
- Ferramentas próprias em vez de SaaS de prateleira. Plans-app, harness, brain — construídos.
- Métricas honestas. Drift capturado, eval público, ship medido — não "satisfação dos alunos".
- Visual operacional, não inspiracional. Dashboard, não Coursera.
- Vocabulário próprio: "ship", "drift", "harness", "fellow" — não "aluno", "graduação", "módulo".
Por que essa combinação
Magician puro é sedutor mas frágil — promete sem provar. Outlaw puro é interessante mas auto-marginalizante. A combinação dá transformação com prova: o Magician produz o efeito, o Outlaw entrega sem cerimônia.
De cohort informal a runtime
Tainan, dev sênior multi-stack, viveu os três modos do dev moderno: tradicional (frameworks, time, prod), consultor/founder (entregar valor → cliente paga), e IA-first (operar com agente, plan-driven).
No terceiro modo, percebeu que o gap entre devs formados pelo modelo (a) e o que (c) exige é gigante — e nenhuma escola estava ensinando isso. Começou informalmente, mentorando devs próximos. Cohort virou programa. Programa virou DFL.
Dá pra escalar via processo + ferramentas próprias, não via "mais aulas". DFL não vende curso. Vende infraestrutura de prática.— O momento de virada
Marcos folclóricos
- O primeiro fellow que shippou PR em produção em menos de uma semana.
- A noite de 2026-05-19 → 20: 11 PRs mergeados via subagents enquanto Tainan dormia (overnight push protocol).
- O dia em que Tainan disse "tokens don't matter" e parou de medir custo por API call.
- A primeira coorte fechada com 100% placement (não foi a primeira coorte — foi a terceira).
- O primeiro PR rejeitado por um fellow num projeto de Tainan — momento em que se confirmou que a rede funciona.
Uma frase, um parágrafo, um pitch
DFL — fellowship de devs que shippam em produção, operando com IA, todo dia.
A DevFellowship é uma fellowship brasileira para devs que querem operar software como o trabalho exige hoje: planos públicos, agentes executando, drift sendo capturado, PR sendo mergeado. Não vendemos curso — operamos uma runtime própria (plans · harness · brain · sandbox) que fellows e empresas usam para entregar valor real, em meses. Quando alguém passa pela DFL, sai sabendo trabalhar com IA em produção, em time — não em demo.
"DevFellowship — fellowship onde a gente forma devs operando com IA em produção. Você entrega projetos reais, é mentorado por quem shippa todo dia, sai daqui empregável ou contratado pela rede. A gente também treina empresa via Revera. Brasileira, ambição global."
Contra o que estamos
Engineering-as-gatekeeping
Review como tax, não como dado. PR aberto há 9 dias porque três pessoas precisam aprovar. Process theater.
Faculdade-fábrica-de-diploma
Quatro anos formando gente que nunca shippou. Termina com PowerPoint, não com PR.
Bootcamps-de-certificado
Vende vibes e canecas. Não ensina fluxo de trabalho real. Sai sabendo to-do list e vai pra LinkedIn.
Sério-é-doloroso
O mito de que profissionalismo precisa ser seco, formal, sem voz. Dá pra ser excelente e ainda parecer gente.
IA-vai-substituir-devs
Tese covarde. Nossa tese: IA amplifica devs que sabem operar. Quem aprende, sobe. Quem não aprende é amplificado pra fora.
Consultor-por-hora
Vende entrega, não transição. Cliente fica dependente. Sem capacity-building, time interno do cliente não muda.
Software-house body-shop
Aluga dev por mês. Não constrói competência interna. Cliente paga pra sempre.
Cursos-online-passivos
Vídeo gravado + quiz. Zero feedback humano. Sem ship. Sem rede.
Como medimos a nós mesmos
| Métrica | Definição | Cadência |
|---|---|---|
| PRs mergeados / fellow / semana | Throughput por pessoa | Semanal |
| Drift signals capturados / run | Honestidade do sistema | Por run |
| Eval pass rate | % de runs com grade pass | Semanal |
| Plans publicados / mês | Velocidade de decisão durável | Mensal |
| Placement rate (fellow → contratado) | % de fellows em prod no fim do programa | Por coorte |
| Tempo até primeiro PR mergeado | Day-1 to merge-1 | Por fellow |
| NPS interno | Como o fellow se sente | Mensal |
| Revera · throughput antes/depois | Métrica B2B principal | Por contrato |
Como o time DFL opera
- Stand-up async via TG. Todo dia 9h, cada membro posta "o que fiz · o que vou fazer · onde tô preso". Texto, mono uppercase para metadados.
- Plan antes de código. Qualquer trabalho > 4h tem plan publicado primeiro. Sem plan = sem trabalho.
- Review é dado, não tax. PR é review de plan vs execução, não de gosto pessoal. Limite de 2 reviewers.
- Public default. Repos, plans, ADRs, decisões — público. Privado vira ADR justificando.
- Demo de sexta. 30min · todo time mostra o que rolou. Hard limit no tempo, soft demo em qualidade.
- Drift retrospective. Cada quinta, time discute o maior drift capturado. Vira ADR ou eval.
Estratégia & audiência
Quem queremos atrair, quem deixamos passar, e como a DFL se relaciona com Revera, Alavancagem, Labs e os produtos internos.
Para quem isto é
O fellow ideal
Cliente B2B Revera
Alumni · fellow formado
Parceiro institucional
Do clique no LinkedIn ao alumni
| Fase | Touchpoint | Surface | Tom |
|---|---|---|---|
| 1. Descoberta | Post de Tainan no LinkedIn | LinkedIn DFL · Tainan | Profissional · opinativo |
| 2. Pesquisa | Landing devfellowship.com | Web | Confiante · direto |
| 3. Aplicação | Formulário (10min · técnico) | Web · Calendly | Filtro |
| 4. Triagem | 72h · email + TG | Email · TG | Transacional |
| 5. Conversa | 30min com mentor | Loom · Meet | Conversational |
| 6. Onboarding | Welcome kit · manual A5 | Físico · email | Editorial |
| 7. Semana 1–4 | Primeiro PR em prod | Discord · TG · paperclip | Corrido |
| 8. Semana 5–8 | Plan publicado · primeiro drift | plans.tainanfidelis.com | Técnico denso |
| 9. Semana 9–12 | Projeto final · placement | Discord · email · LinkedIn | Operacional |
| 10. Graduation | Certificado · graduation kit | Físico · cerimônia | Editorial · ritual |
| 11. Alumni | Drops mensais | Discord alumni · email | Insider |
A quem dizemos não
Definir o público é definir quem não cabe. A clareza protege a marca tanto quanto atrai os certos.
- Buscador de diploma decorativo. Quer linha no LinkedIn. Não quer mergear PR.
- Hobby coder sem intenção de ship. Apaixonado por código, alérgico à entrega.
- Empresa que só quer carimbo de "fizemos treinamento IA". Quer PR de marketing, não transformação.
- Dev que detesta ferramentas IA por princípio. Posição respeitável — mas incompatível.
- Quem precisa de hand-holding tier 1. Não temos suporte síncrono 24/7. Lê doc, abre PR.
- Empresa em crise existencial. "Salva meu time" não é capacity-building. É consultoria de turnaround.
- Quem busca atalho. "Fellowship de 4 semanas" não existe na DFL.
Onde a DFL fala — e por quê
| Território | Quem ouve | O que dizemos | Como provamos |
|---|---|---|---|
| Formação técnica pós-IA | Fellow ideal · alumni · candidatos | O modo real de operar com IA em prod, em time. | PRs mergeados, planos públicos, eval rodado. |
| Capacity-building corporativo | CTO · VP Eng · Head of Platform | Não consultoria — transição. 2–3× throughput. | Métricas antes/depois, runs de harness em prod do cliente. |
| Opinião técnica autoral | Comunidade tech BR · LATAM · alumni | Como pensar dev/IA em 2026. Plans > tutoriais. | Posts LinkedIn · blog · livro Alavancagem. |
| Infraestrutura de prática | Devs avançados · early adopters | Plans-app, harness, brain mudam fluxo. | Self-hosted stack · repos públicos · demos overnight. |
O que ninguém mais faz
- Plans-driven autonomous execution. Planos públicos versionados + ADRs + decisões locked. Agentes executam.
- Harness eval framework. Mede trabalho entregue: run grading + episode mining + LLM judges + human-in-the-loop.
- Plans-app + canal de feedback. Loop assíncrono humano-cérebro × agente-execução via Telegram.
- Self-hosted stack completa. dfl-runner · sandbox-manager · paperclip · Infisical · Traefik · OTel · Langfuse.
- Fellowship model real (vs cohort). Você não conclui — se forma. A rede vira ativo permanente.
- Brasileira de raiz, global de design. Voz BR, infra global, ambição mundial.
Junto, isso é uma runtime própria. Ninguém mais opera assim.
DFL vs bootcamp · faculdade · sozinho
| Caminho | Vende | Resultado típico | Limitação | Tempo até prod |
|---|---|---|---|---|
| Bootcamp tradicional | Sintaxe (React, Node) | Sai sabendo to-do list | Não ensina fluxo, IA, ship | ∞ (não shippa) |
| Faculdade | Diploma | 4 anos sem entregar linha | Perde a era IA · teoria · sem portfólio | ~4 anos |
| Sozinho | Nada (gratuito) | Sem ritmo, vira hobby | Sem feedback, rede, urgência | ~2 anos |
| DFL | Infra de prática + rede | Shippa em prod desde semana 1 | Não cabe quem quer hand-holding ou diploma | ~3 meses |
Revera vs consultoria · software house
| Modelo | Vende | Pós-contrato |
|---|---|---|
| Consultoria | Horas | Resolve problema imediato. Time interno continua o mesmo. |
| Software house | Código | Entrega projeto. Time fica dependente do externo. |
| Revera | Capacity-building | Treina o time. Mensurável. Capacita. |
Família DFL · sub-marcas · produtos
Arquitetura branded house: DFL é a mãe. Sub-marcas herdam tokens (cor, tipo, voz) mas têm lockups distintos. Produtos internos são identificados por nome+mono, sem mark próprio.
DFL · devfellowship (the mother) ├── DFL Fellowship · programa core (product line, não sub-marca) ├── Revera · B2B / corporativo · sister-brand · lockup distinto ├── Alavancagem · livro · extensão editorial · lockup próprio ├── DFL Labs · playground experimental · visual mais solto └── DFL Edu · guarda-chuva educacional Produtos internos (não são sub-marca · usam DFL): plans · harness · brain · paperclip · sandbox-manager · dfl-runner dfl-learn · dfl-financing · dfl-flows · lesson-studio · books-app
Regras de herança
- Paleta + tipografia compartilhada em toda a família.
- Lockup distinto por sub-marca: Revera tem o próprio wordmark; Alavancagem tem tratamento editorial com serifa display; Labs tem permissão de quebra estética.
- Accent secundário só para Revera: trust-blue (#5a85c4) ao lado do amber, para B2B trust.
- Produtos internos não têm logo: usam o wordmark DFL + nome em mono uppercase ao lado (DFL · plans).
Como entram
Funil Fellow
| Stage | Surface | Métrica |
|---|---|---|
| Awareness | LinkedIn Tainan · YouTube · IG | Impressões · reach |
| Interest | Landing · blog · podcast | Visitas · tempo na página |
| Consideration | Newsletter · Discord público · meetup | Inscritos · presenças |
| Application | Formulário aplicação | Taxa de conclusão · qualidade |
| Conversion | Triagem + conversa + decisão | Taxa fellow novo / aplicação |
Funil B2B (Revera)
| Stage | Surface | Métrica |
|---|---|---|
| Awareness | LinkedIn Revera · referral · Tainan posts | Visitas landing Revera |
| Interest | Landing Revera · case study | Tempo de leitura · scroll |
| Lead | Calendly 60min agendado | Conversão visita → call |
| Proposta | Doc 8 páginas enviado | Engagement de leitura |
| Fechamento | Contrato assinado | Taxa proposta → fecha · ticket |
Como cobramos
| Produto | Preço | Termos |
|---|---|---|
| Fellowship (16 semanas) | R$ 12.000 | 4× ou à vista (5% desc) |
| Fellowship + Revera-ready | R$ 18.000 | Inclui pipeline B2B |
| Revera · empresarial (12 sem · 3 squads) | Sob consulta | R$ 200k+ médio |
| Revera · enterprise (custom) | Sob consulta | R$ 500k+ médio |
| DFL Edu · workshop (1-3 dias) | R$ 800–3000 / participante | Por evento |
| Alavancagem (livro) | R$ 89 físico · R$ 39 digital | Lançamento 2026 |
Magician + Outlaw — shell vs. soul
O guia nomeia o arquétipo explicitamente: Magician dominante, Outlaw secundário.
- Dominante — Magician (Mago): a DFL transforma e faz acontecer; vê padrões que outros não veem (plans + harness + eval como runtime) e promete não conforto mas transformação real e mensurável ("a runtime própria", "your team ships 2–3× more, measured in the harness"). Promete transformação com prova, não vibes.
- Secundário — Outlaw (Rebelde): a DFL recusa a ordem estabelecida — universidade, bootcamp, consultoria por hora, "diploma-factory" — constrói as próprias ferramentas em vez de comprar SaaS de prateleira, tem opiniões fortes e não pede permissão. Seus inimigos nomeados (engineering-as-gatekeeping, bootcamps de certificado, "IA-vai-substituir-devs") são posicionamento Outlaw puro.
Por que o par: um Magician puro é sedutor mas frágil (promessas sem prova); um Outlaw puro é interessante mas se auto-marginaliza. Combinados, dão transformação com prova — o Magician produz o efeito, o Outlaw entrega sem cerimônia. Energia Creator/Sage aparece na textura de apoio (tooling próprio, método público, ADRs, drift-as-data), mas o par dominante + secundário é Magician + Outlaw.
A casca vs. a alma (shell vs. soul)
O Magician dominante (transformação via sistemas — plans+harness+eval como runtime; disciplinado — "proof, not promise") e o Outlaw secundário (rejeita diploma/bootcamp/consultoria-por-hora, é dono das ferramentas, não pede permissão) descrevem a voz/edge. Co-secundário é o Creator — Outlaw é a atitude, Creator é a atividade diária (a gente constrói; "founders who code"; projetos reais shippados).
Mas o edge sozinho soa frio/elitista. O que mantém quente é a alma (soul): uma linha Sovereign (devs soberanos donos do próprio cap table; autonomia como métrica de output — a tese de liberdade econômica) e um núcleo Caregiver (elevar jovens do Sul-Global / favela na pirâmide de Maslow; um movimento, não uma corporação; a base espiritual da Polaris).
Regra: ambos têm que aparecer. Magician/Outlaw sem a alma Sovereign/Caregiver = frio e elitista; a alma sem o edge = mole e esquecível.
Voz & linguagem
Como a DFL fala — em LinkedIn, em landing page, em deck comercial, em canal interno. A voz é o ativo mais barato e mais difícil de copiar.
O perfil
Sênior brasileiro que morou fora 10 anos, voltou pra investir no Brasil. Direto sem ser rude. Opinião forte, mas escuta. Cita planos e PRs como prova — não argumenta com adjetivo.— Perfil da marca
O que essa pessoa faz
- Fala PT e EN intercambiavelmente, sem hesitar.
- Prefere ship a discutir. Abre PR enquanto outros abrem thread.
- Tem opinião sobre tudo que importa. Não tem opinião sobre o que não importa.
- Despreza burocracia, ceremony, theater. Não esconde isso.
- Lê PRD e abre issue ao mesmo tempo. Não espera reunião.
- Critica processo · respeita pessoa.
O que essa pessoa não faz
- Não usa "stakeholder", "synergy", "leverage".
- Não vende vibe. Não fala em "jornada". Não promete "transformação digital".
- Não escreve em comitê. Texto tem dono e tem voz.
- Não pede licença para ter opinião.
- Não usa hashtag em LinkedIn.
- Não promete certeza onde não há.
Onde a DFL fica nos eixos
Palavras-chave
Usa
Nunca usa
Substituições rápidas
| Em vez de | Diga | Por quê |
|---|---|---|
| "para" | "pra" | Voz BR. Soa gente. |
| "você" | "tu" (interno) / "você" (B2B) | Tu na comunicação fellow. Você em landing Revera. |
| "oferecemos" | "a gente faz" / "shippa" | Direto. Ativo. |
| "alinhar expectativas" | "combinar o escopo" | Diz o que é. |
| "jornada" | "caminho", "programa", "fluxo" | "Jornada" é palavra-zumbi. |
| "solução" | nome do que faz | "Solução" mascara o objeto. |
| "impactar" | "mudar", "mover", "shippar" | Verbo concreto > verbo de marketing. |
| "experiência" | "o que tu vai fazer" | Concreto. |
| "compreender" | "entender" | Mesma coisa · menos formal. |
| "realizar" | "fazer" / "rodar" | Mesma coisa. |
| "plataforma" | "app" / "site" / "ferramenta" | Específico. |
| "colaboradores" | "time" · "fellows" · "pessoas" | Soa gente. |
Antes de publicar qualquer texto
- Primeira frase carrega o sentido. Se a primeira frase pode sair sem perda, ela já não devia estar lá.
- Prova > adjetivo. "Shippamos 11 PRs em uma noite" > "somos eficientes".
- Verbo ativo. "Fellows shippam" > "É shippado por fellows".
- Número específico > faixa. "70% placement" > "alto índice de placement".
- Direto sem ser rude. "Não fazemos isso" > "Não estamos focando neste momento em iniciativas dessa natureza".
- PT e EN convivem. "Bora rodar harness no run do TG-typed" — sem itálico, sem aspas.
- Editar para subtrair. Toda revisão tem que devolver o texto mais curto.
- Frase curta. Default 8-15 palavras. Frase > 25 palavras é warning.
- Concreto > abstrato. "PR mergeado" > "entrega".
- Voz consistente em série. Se a edição #07 é informal, #08 não vira formal.
Calibração rápida
Direto. Operacional. PT+EN sem cerimônia. Verbos ativos. Nomeia os artefatos (plan, drift signal). Tem voz.
Zero objeto, zero prova, zero opinião. Vocabulário-zumbi. Soa como release de qualquer SaaS. Banido em qualquer canal DFL.
Mais exemplos · paralelos
Coorte 04 · aplicações abertas até 30 jul. Set 2026. 18 vagas.
Estamos muito felizes em anunciar a abertura das inscrições para a próxima coorte do nosso programa, que terá início em setembro de 2026.
plans-app v2.1 saiu. Lock automático em ADR. PRs vinculados. Drift signal por episode.
Temos o prazer de comunicar uma evolução importante da nossa plataforma, agora ainda mais robusta...
Forma dev que ship em prod, em meses, operando IA.
Capacitamos profissionais de tecnologia a navegarem no novo paradigma da inteligência artificial...
Status DEGRADED · harness 3/11 falhou em onboarding-revera. Drift +0.34 capturado. Fix em 30min.
Estamos enfrentando uma instabilidade temporária. Pedimos desculpas pelo inconveniente. Nossa equipe técnica...
Onde a voz se ajusta
LinkedIn corporativo
Profissional + opinião + prova. PR shipped, métrica antes/depois, decisão técnica autoral.
Canal interno fellows
Corrido, gírias técnicas+BR, abreviado, TG-friendly. "Bora", "valeu", "PR aberto".
Landing B2B · Revera
Confiança calma, número grande, prova social, sem hype. "Isto resolve isto".
Proposta comercial
Curta, escopada, sem floreio. 3 páginas resolvem. Entregáveis nomeados.
Manifesto / editorial
Declarativo, curto, sem qualificadores. Frase por linha. Apple-1986. Permitido ser solene.
Suporte / cliente
Respeitoso, direto, sem desculpa performática. Reconhece, age, fecha.
Newsletter editorial
Autoral, médio formato. Mais Georgia que Inter no peso. Mais ar.
Twitter / X
Seco, opinativo, técnico. Tweet curto · thread quando vale.
Produtos · features · eventos · documentos
- Produtos internos: nome curto, lowercase, hifenizado se preciso. plans · harness · brain · paperclip · sandbox-manager. Não pluraliza, não maiúscula.
- Sub-marcas: nome substantivo, primeira maiúscula. Revera · Alavancagem · Labs. Lockup próprio.
- Eventos: formato tipo + edição. DFL Meetup #03 · Fellow Demo Day · Overnight Push 05-19 · Ship Night.
- Features dentro de produto: verbo+objeto se for ação ("run grading", "episode mining"), substantivo se for conceito ("ADR", "drift signal").
- Documentos canônicos: ALL-CAPS com hífen. DESIGN.md · CLAUDE.md · README.md · ADR-001-plan-format.
- Releases: semver. v1.0.0. Não "Mythical Names". Não "Aurora", "Phoenix", "Atlas".
- Coortes: número sequencial · "Coorte 03". Não nomes inventados.
Como contamos a história DFL
Antes-vs-Depois
"Bootcamp ensina sintaxe. DFL forma operador." Estado anterior → ruptura → estado novo. Ideal pra LinkedIn e landing.
Folklore-do-overnight
"11 PRs mergeados enquanto eu dormia." Cena específica → método embutido. Conta a runtime sem listar features.
Plan → Ship → Drift
"Publicamos o plan. Subagents rodaram. Drift capturado virou eval." Três atos da runtime. Convence dev sênior.
Inimigo-vs-Tese
"'IA vai substituir devs' vs 'IA amplifica devs que sabem operar'." Posição comum + contraposição. Editorial.
Fellow journey
"Semana 1: zero PR · Semana 12: 14 PRs em prod." Time-line concreto da transformação. Landing + IG.
Drift-as-discovery
"Captei drift +0.34 · não escondi · virou ADR · virou eval." Sistema aprendendo em público. Newsletter / blog.
Os textos mínimos
| Contexto | DFL diz | Não diz |
|---|---|---|
| Botão CTA primário | Aplicar → · Agendar → · Shippar PR | "Clique aqui" · "Saiba mais" |
| Botão secundário | Ler mais · Ver runtime · Demo | "Voltar" sem contexto |
| Empty state | "Nenhum plan ainda. Bora começar." | "Você ainda não tem nada cadastrado" |
| Loading | "rodando harness…" | "Aguarde, por favor" |
| Erro | "Quebrou. Capturado em drift signal." | "Ocorreu um erro inesperado" |
| Success | "PR mergeado. Próximo?" | "Operação realizada com sucesso!" |
| 404 | "plan errado. route não existe." | "Página não encontrada" |
| Coming soon | "em 2026. waitlist aberta." | "Em breve!" |
| Form label | "email" | "Por favor, informe seu endereço de email" |
| Form helper | "a gente responde em 72h" | "Nossa equipe entrará em contato" |
Bandeiras vermelhas em qualquer texto
- Texto-comitê. Frase sem dono, sem opinião, sem voz. Soa como nada porque foi escrita por todos.
- Hedging excessivo. "Talvez", "pode ser que", "achamos que". Direto ou cala.
- Adjetivo-superlativo. "Incrível", "revolucionário", "único". Prova ou apaga.
- Pedido-de-engajamento. "Concordam?", "compartilha aí". Trabalho é da escrita, não do leitor.
- Auto-elogio. "Somos referência em…". Faz o trabalho · deixa outro dizer.
- Empilhamento de jargão. "AI-powered ML-driven SaaS". Use palavra concreta.
- Frase-zumbi de transição. "Pensando nisso…", "diante disso…". Editar fora.
- Promessa-vaga. "Transformaremos seu negócio". Diga O QUE muda e EM QUANTO TEMPO.
PT-BR é casa · EN é vizinho
- Default: PT-BR em todo material BR-facing (landing, IG, newsletter, fellow comms).
- EN aparece: termos técnicos (ship, drift, plan, runtime), nomes próprios (paperclip, harness), manifesto, GitHub.
- Conteúdo global: EN puro para LinkedIn de Tainan voltado a audiência LATAM/global, podcast cuts internacionais, repo READMEs.
- Não traduzir: "ship" não vira "entregar". "Drift" não vira "desvio". O termo é o conceito.
- Não code-switch performático: "let's grow together" no meio de texto BR soa fake.
Como traduzir "crew"
Sempre traduza "crew" como "tripulação" (registro institucional / elevado; ressoa com a metáfora barco/cibernética e a viagem de transformação do arquétipo Magician) ou "tropa" (registro fellow-facing / cru; a energia de esquadrão leal do Outlaw, "minha tropa"). Escolha pelo contexto. A gíria favela / Global-South "bonde" é permitida só para a voz de fellow / social-media mais crua. Nunca use "turma", "equipe" ou "time" (soam escola / corporativo).
Logo
Wordmark tipográfico em Barlow Condensed + slash amber como assinatura. Sem brasão, sem ilustração, sem AI sparkle. A marca é uma palavra tratada com precisão.
Os 3 elementos da logo
A logo DFL é puramente tipográfica. Três letras em Barlow Condensed Black, justaposta a uma barra (slash) em amber que marca a posição: dev / fellowship. A barra é o único elemento gráfico do sistema.
Regras de construção
| Elemento | Tratamento | Token |
|---|---|---|
| Wordmark | Barlow Condensed · 700 (Black) | --p-font-display |
| Tracking | −2px no display (≥48px), −1px abaixo | tracking-tight |
| Slash (barra amber) | Mesmo glyph "/", peso 700, cor brand | --brand · #E07A4A |
| Espaçamento ao slash | 0.12em antes e depois | gap · 0.12em |
| Tagline | JetBrains Mono · 500 · letter-spacing 1.4px · uppercase | --p-font-mono |
| Cor padrão | Wordmark ink-primary · slash brand | ink + brand |
Todos os arranjos oficiais
Quanto ar a logo precisa
Clear space
Área de proteção igual à altura da letra F em todos os lados. Nada (texto, ícone, foto, borda) entra nessa zona.
Tamanho mínimo
O que nunca fazemos
Não estique.
Não rotacione.
Não troque o slash.
Não use amber no wordmark inteiro.
Não aplique gradient.
Não aplique shadow.
Não troque a fonte.
Não use sobre amber sem inverter.
Não embale em moldura decorativa.
Não duplique slash.
Não use serifa.
Não combine com emoji.
Quando a DFL aparece junto
Co-branding com sub-marcas usa o slash como elemento de junção: DFL / SUB. Com parceiros externos: pipe vertical com 2× clear space.
A logo em contexto
| Contexto | Variação | Notas |
|---|---|---|
| Favicon · 16/32px | Mark D-bar · amber sobre dark | Sem wordmark, sem tagline |
| App ícone iOS/Android | Mark D-bar · radius 22% | Sand background |
| GitHub org avatar | Mark D-bar quadrada · 4px radius | Para reconhecimento na timeline |
| Header de app | Wordmark horizontal · 24px altura | Sem tagline |
| Slide / deck | Vertical centralizada · canto inferior | Tagline opcional na capa |
| Certificado / diploma | Vertical centralizada · topo · 40mm | Sempre com tagline |
| Vídeo intro/outro | Wordmark anima slash por último | Slash entra com snap, 220ms |
| Assinatura email | Wordmark · 90px largura · PNG @2x | + tagline + nome em mono |
| OG card / social | Wordmark canto inferior · 14-20px | Não no canto da informação principal |
| README GitHub | H1 wordmark inline | Slash amber em span |
| Print · papel timbrado | Mono preto · canto superior esquerdo | Tagline no rodapé |
| Camiseta peito | Wordmark default · 22px largura | Bordado · amber thread |
| Camiseta costas | Manifesto · slash 60-90px | Centro do tórax |
| Stencil de evento | Slash isolado gigante | Decoração ambiente |
De onde a marca vem
A logo atual é a v1.0 deste guide. Versões anteriores eram lockups ad-hoc.
Como o arquivo é feito
<!-- DFL wordmark · v1.0 · primary -->
<svg viewBox="0 0 240 60" xmlns="http://www.w3.org/2000/svg">
<style>
.dfl-text { font-family: "Barlow Condensed", sans-serif;
font-weight: 700; font-size: 56px;
letter-spacing: -2px; }
.ink { fill: #f4ede2; }
.brand { fill: #E07A4A; }
</style>
<text class="dfl-text ink" x="0" y="48">DFL</text>
<text class="dfl-text brand" x="118" y="48">/</text>
</svg>Status legal
- "DFL" · marca registrada INPI · classe 41 (educação) e 42 (TI).
- "DevFellowship" · marca registrada INPI · classe 41 (educação).
- Slash + tipografia · trade dress · não-registrado mas reivindicado.
- Domínios · devfellowship.com (master) + .com.br + .dev defensivos.
- Handles sociais · @devfellowship em todas as plataformas onde existimos.
Sistema cromático
Sand escuro · um único accent amber · cinco cores semânticas para estado · paleta de 10 hues para identidade pessoal em avatares. Saturação baixa, disciplina alta.
As regras antes da paleta
- Dark-first. Sand-950 e empilhamento de superfícies. Light mode existe (5.8) para contextos editoriais — não default.
- Saturação baixa. Nenhum neutral passa de chroma 0.02. Saturação é informação.
- Um accent. Amber #E07A4A é o único. Sem accent-2. Se algo precisa "destacar" e não é estado, está mal hierarquizado.
- Estado tem cor; emphasis não. success/warning/danger/info dizem "este objeto está neste estado". Nunca "olha aqui".
- Hierarquia por superfície, não por sombra. Card mais importante → promove para surface-raised.
- Identidade ≠ UI. Paleta member-* é para pessoas. Nunca vira UI.
Superfícies + tinta
Surfaces · empilhamento dark
Ink · tinta
Borders
O único accent
Amber é a assinatura. Primary CTA, indicador de tab ativa, switch on, focus ring, "in progress" status. Nada decorativo.
Uma CTA amber por contexto. O olho sabe pra onde ir.
Três amber é zero amber — e queima o affordance de focus ring.
Cor diz estado, não importância
| Intent | Solid | Foreground | Subtle fill | Border | Quando |
|---|---|---|---|---|---|
| Success | #5ec27e | #7ad79a | rgba(94,194,126,0.12) | rgba(94,194,126,0.40) | Run passed, PR merged |
| Warning | #e0b04a | #f0c875 | rgba(224,176,74,0.12) | rgba(224,176,74,0.40) | Deploy stale, eval degradando |
| Danger | #e07a7a | #e89898 | rgba(224,122,122,0.12) | rgba(224,122,122,0.40) | Quebrado, destrutivo |
| Info | #7aa2e0 | #9ab9e8 | rgba(122,162,224,0.12) | rgba(122,162,224,0.40) | Changelog, hint, dica |
StatusPill com dot + subtle fill + border + ink-secondary. Calmo em telas densas.
Fill sólido em pill ≥ 24px exaure o olho. Solid fica reservada ao dot.
Avatars · estável-por-hash
Hash do UUID → slot. Mesma pessoa = mesma cor em todo lugar (avatar, owner tag, mention chip). Nunca reaproveitar como UI.
Exemplo · avatar stack
Quanto de cada cor por tela
Contrastes verificados
| Combinação | Ratio | WCAG AA | WCAG AAA |
|---|---|---|---|
| ink-primary on surface-page | 15.8 : 1 | PASS | PASS |
| ink-secondary on surface-page | 10.2 : 1 | PASS | PASS |
| ink-muted on surface-page | 4.9 : 1 | PASS | large only |
| brand-fg (#f0a872) on surface-page | 7.4 : 1 | PASS | PASS |
| brand (#E07A4A) on surface-page | 4.2 : 1 | large only | FAIL body |
| ink-inverse on brand | 5.3 : 1 | PASS | large only |
| success-fg on surface-page | 6.8 : 1 | PASS | PASS |
| danger-fg on surface-page | 5.9 : 1 | PASS | large only |
Regra prática: nunca use --brand (#E07A4A) como cor de texto em body. Use --brand-hi (#f0a872) — testado AAA.
Quando o dark não cabe
Light mode existe para contextos editoriais: propostas Revera, certificados, livro Alavancagem, longform de blog. App e dashboard ficam dark. Nunca há "alternância de tema" em produto.
O único caso de accent #2
Revera herda DFL e adiciona um único accent secundário: info-blue rebalanceado (#5a85c4), usado apenas em decks comerciais Revera e CTAs Revera. Nunca aparece em produto DFL.
Regra: amber continua primary em Revera. O blue é "B2B trust", aparece em destaques de número (KPI big, prova social), nunca em CTA principal.
Como a cor aparece em filme
- LUT DFL custom: warm shift +5 mireds, sat −15%, lift slight em sombras.
- Highlight clip: never burn out. Sand white é o teto.
- Sombras: nunca crush · mantém detalhe em sand-950.
- Skin tones: warm-realista. Sem hot-orange.
- Lower-thirds: amber +1 frame em entrada · usa stroke amber, não fill.
Para entregar a designers e devs
| Cor | HEX | RGB | CMYK | HSL | OKLCH |
|---|---|---|---|---|---|
| Amber primary | #E07A4A | 224 / 122 / 74 | 0 / 56 / 75 / 12 | 19° 70% 58% | 0.66 0.13 50 |
| Sand 950 | #0a0908 | 10 / 9 / 8 | 60 / 60 / 70 / 90 | 30° 11% 4% | 0.10 0.005 60 |
| Sand 50 | #f6f1e7 | 246 / 241 / 231 | 0 / 3 / 8 / 0 | 40° 51% 93% | 0.96 0.015 90 |
| Brand fg | #f0a872 | 240 / 168 / 114 | 0 / 38 / 56 / 5 | 26° 80% 69% | 0.78 0.105 55 |
| Success | #5ec27e | 94 / 194 / 126 | 55 / 0 / 50 / 18 | 140° 47% 56% | 0.74 0.130 145 |
| Danger | #e07a7a | 224 / 122 / 122 | 0 / 60 / 50 / 12 | 0° 64% 68% | 0.69 0.125 25 |
Tipografia
Quatro famílias com papéis estritos. Barlow Condensed para títulos. Inter para corpo e UI. JetBrains Mono para meta. Georgia para editorial. Cada uma faz uma coisa só.
Quem faz o quê
Condensed dá densidade sem encolher. Usa em heroes, h1, h2, qualquer momento que peça presença.
Workhorse. Body, botões, inputs, labels, h3. Confiável. Sem alma — é por isso que serve.
Para tudo que é dado sobre o dado: timestamps, kbd, IDs, tabular nums, status uppercase, código inline.
Texto longo de leitura corrida: livro, blog, manifesto impresso, proposta. Quando aparece, vem em italic 400-700.
Spec + amostra
display
display
sans
sans
sans
sans
sans
sans
mono
mono · uppercase
Como uma página longa se organiza
Texto de prova com Inter 14. Direto, sem hedging, sem qualificadores defensivos.
O que combina
| Contexto | Pairing | Por quê |
|---|---|---|
| Hero / cover | Barlow 700 + Inter 16 + JB Mono 10.5 | Display denso + body confortável + meta operacional |
| App shell | Inter 20/600 + Inter 14/400 + JB Mono 10.5 | Inter resolve UI inteira. Mono pra status bar. |
| Dashboard / dados | Inter 14 + JB Mono 12 tabular | Inter pra label, mono pra número |
| Editorial / blog | Barlow 700 + Georgia 17 italic + JB Mono 10.5 | Display + leitura serif + meta operacional |
| Proposta Revera | Barlow 700 + Inter 15 + Georgia 13 footnote | Display sério + body sans + serif marca formalidade |
| Certificado | Barlow 700 + Georgia 18 italic + JB Mono 11 | Marca ritual com serif + ID mono |
As 10 não-negociáveis
- Floor body: 12px desktop · 14px mobile.
- iOS input rule: any input · 16px mínimo (evita auto-zoom).
- Mono uppercase quando é meta. Mono case-sensitive quando é código/dado.
- Barlow Condensed nunca em body. A condensação prejudica leitura longa.
- Inter italic só em ênfase. Não estilizamos parágrafos inteiros · pra isso existe Georgia.
- Letter-spacing só em mono uppercase (0.6–0.8px) e em display ≥48px (negativo, −0.5 a −2px).
- Tabular nums obrigatório em colunas numéricas e dashboards.
- Line-height mínimo: 1.2 em display, 1.4 em body, 1.6 em prosa.
- Max line-length: 72ch em prosa, 90ch em UI.
- Hyphen automático off para títulos · on para body longo.
Mono uppercase para meta. Some no ruído.
Inter para meta compete com conteúdo. Perde o aspecto 'developer-tool'.
Features ativadas
| Feature | Quando | CSS |
|---|---|---|
| tabular-nums | Colunas numéricas, dashboards, KPIs | font-variant-numeric: tabular-nums |
| oldstyle-nums | Body editorial, livro | font-variant-numeric: oldstyle-nums |
| liga (Inter) | Default · sempre ON | font-feature-settings: "liga" |
| calt (Inter) | Default · sempre ON | font-feature-settings: "calt" |
| ss01 (Inter · "a" alternativo) | Desativado · prefiro shape default | — |
| ss02 (Inter · "g" single-story) | Desativado | — |
| frac | Receitas, livros · 1/2, 1/4 | font-feature-settings: "frac" |
PT-BR + EN + futuro global
- PT-BR: Barlow Condensed e Inter ambos têm suporte completo a diacríticos (ã, ê, ç).
- EN: idem · sem ajuste.
- Espanhol: suporte completo nas três famílias · pré-aprovado para LATAM.
- Asiáticos (futuro): Noto Sans CJK como fallback. Inter+CJK pairing pre-aprovado para JP/KR.
- Hebraico/Árabe: ainda não testado. Necessita audit se for usar.
Web · self-hosted
- Self-hosted em
brand/fonts/· WOFF2 + WOFF + TTF backup. - Subsetting: Latin + Latin Ext + PT-BR diacríticos. Reduz peso ~60%.
- Preload Inter 400 · Inter 600 · Barlow 700 (3 críticos).
- font-display: swap · evita FOIT.
- Fallback metric overrides: ajusta system-ui pra match Inter (size-adjust, ascent-override).
- Lazy load: JetBrains Mono e Georgia (não-crítico) lazy.
@font-face {
font-family: "Inter";
src: url("/brand/fonts/inter-400.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
/* preload no <head> */
<link rel="preload" href="/brand/fonts/inter-400.woff2"
as="font" type="font/woff2" crossorigin>Como o texto respira
| Sequência | Spacing | Token |
|---|---|---|
| h1 → body | 32px | space-8 |
| h2 → body | 24px | space-6 |
| h3 → body | 16px | space-4 |
| parágrafo → parágrafo | 16px | space-4 |
| lista item → item | 10px | space-2.5 |
| section → section | 72px | space-18 |
| chapter → chapter | 96px+ | space-24 |
Iconografia & ilustração
Grid 24px · stroke 1.5px · cantos suaves · sem fill. Iconografia funcional, não decorativa. Ilustração: não temos. Foto, placeholder honesto ou diagrama.
Grid 24px
| Param | Valor | Notas |
|---|---|---|
| Grid base | 24 × 24px | Live area 20 × 20 (2px padding) |
| Stroke | 1.5px | Constante em todos os tamanhos |
| Linejoin | round | Pontas e dobras suaves |
| Linecap | round | Idem |
| Fill | none | Outline default · fill só em status dot |
| Tamanhos canônicos | 14 · 16 · 18 · 20 · 24 | 14 chip · 20 default UI · 24 button grande |
| Cor default | currentColor | Herda do texto · nunca cor fixa no SVG |
| Naming | kebab-case · semantic | plan.svg · drift-signal.svg · não icon-1.svg |
Conceitos da runtime
O que não criamos
Para UI genérico, usamos Lucide-react — biblioteca open-source com mesmo grid 24, stroke 1.5. Lista pré-aprovada:
Workflow
- Primeiro pergunte: dá pra reusar? 80% existe em Lucide.
- Se for conceito DFL-específico (runtime), cria. Plans, harness, drift, episode.
- Desenha no grid 24 × 24, mantém 2px padding. Figma ou direto SVG.
- Stroke 1.5px, round caps. Testa em 14px e em 28px.
- Sem fill. Sem gradient. Sem cor hard-coded.
- Submit como PR em
dfl-components/icons. Acompanha uso real + teste visual.
Quando usar qual tamanho
| Tamanho | Contexto | Cor típica |
|---|---|---|
| 14px | Chip · badge · inline em label | ink-muted |
| 16px | Menu item · breadcrumb | ink-secondary |
| 18px | Button md · table header | ink-secondary |
| 20px | Button lg · header app · sidebar | ink-primary |
| 24px | Empty state · feature card · hero | brand |
| 28-40px | Hero feature · big stat decoration | brand |
Foto > placeholder > diagrama
DFL não tem estilo de ilustração próprio. Deliberado. Ilustração custosa de manter ⨯ baixo retorno em produto operacional ⨯ alto risco de "AI slop look".
- Layout pede imagem? → placeholder honesto (SVG striped + label mono).
- Conteúdo exige imagem real? → foto (cap. 08), nunca ilustração.
- Visualizar conceito? → blocos + linhas no estilo runtime.
Posição: muito raro
Em produto: nunca. Em canal interno fellow (TG, Discord): tudo bem, faz parte do registro corrido. Em marketing público: nunca.
Emoji em canal interno fica natural. Faz parte do registro corrido.
Emoji em marketing soa 2017. Substitui voz por decoração.
Emoji permitidos · usos internos
Como salvar
<!-- icon · plan · 24x24 · stroke 1.5 --> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" > <rect x="4" y="4" width="16" height="16" rx="2"/> <path d="M8 10h8M8 14h5"/> </svg>
Imagem & fotografia
Direção documental — pessoas reais, ambientes reais, sem encenação. Quando não tem foto pronta, placeholder honesto > stock genérico. Foto é prova, não decoração.
Mood & composição
O que buscamos
- Pessoa olhando pra tela, não pra câmera. Trabalhando, não posando.
- Setup real (mesa do fellow), iluminação natural ou neutra. Sem flash duro.
- Profundidade rasa quando focar pessoa; profundidade total quando ambiente.
- Composição com respiração — assunto descentralizado, regra dos terços.
- Paleta low-sat: madeira clara, sand, off-white, ocres.
- Mãos digitando, terminal aberto, post-it com plan.
O que evitamos
- Stock corporativo "diverse team smiling at laptop".
- Foto encenada com sorriso pra câmera.
- Saturação alta, lente fish-eye, filter trendy.
- Mockup de tela com "AI generated UI" inventada.
- "Generative AI illustration" — sem exceção.
- Foto noturna cyberpunk · neon · vibe matrix.
O que cada tipo de imagem mostra
Fellow @ work
Pessoa real trabalhando. Tela legível ou desfocada.
Time / hub
Cena coletiva, baixa direção. Ambiente DFL.
Setup / objeto
Detalhe — teclado, post-it, terminal.
Evento / meetup
Documental. Plateia + speaker.
Portrait Tainan
Direto, sem sorriso forçado. Olhar lateral OK.
Portrait fellow
Idem · semi-formal · com setup atrás
Screenshot UI
Tela real, em prod, chrome neutro.
Detalhe arquitetural
Macro · post-it · note book · café.
LUT DFL custom
| Param | Valor | Notas |
|---|---|---|
| Color cast | Warm · +5 a +10 mireds | Combina com sand do sistema |
| Saturação | −10 a −20% | Tira o "Instagram look" |
| Contraste | Médio · curva S leve | Sem crush em sombra |
| Highlights | −10 | Recuperação suave em janela / monitor |
| Vinheta | 0 | Não usamos |
| Grain | +5 fine grain (opcional) | Em foto de evento · dá textura editorial |
| Filtros estilizados | Não | Sem B&W estilo · sem duotone |
| Crop ratio | 4:5 portrait · 16:9 land · 1:1 social | Resto, evitar |
| Min resolução | 2400px lado maior | Print + retina |
| Format export | JPG q85 · WebP q80 · AVIF q75 | 3-format fallback |
Fellows · clientes · time
- Fellows são protagonistas. Foto em material DFL = fellow real, não modelo.
- Consentimento sempre. Toda foto de fellow precisa release assinado.
- Diversidade real, não cota visual. Foto reflete a coorte. Não montamos.
- Tela > rosto. Quando a história é o trabalho, foco vai pra tela.
- Tainan ≠ marca. Tainan é founder, não mascote. Pode aparecer, não TEM que aparecer.
- Crédito visível. Todo material publicado credita o fotógrafo em mono uppercase.
De onde puxar
| Tipo | Source primário | Source secundário |
|---|---|---|
| Foto DFL (fellow, evento, hub) | Banco interno /brand/photos | Fotógrafo contratado · brief próprio |
| Screenshot de produto | App rodando em prod · captura @2x | Mock do design-system v0 |
| Foto de stock (last resort) | Unsplash · busca curada · usuário verificado | Banco interno editado |
| Ícone / pictograma | Lucide-react | SVG custom DFL (cap. 07) |
| Foto histórica / referência | Public domain · Wikimedia | Citar fonte obrigatoriamente |
| B-roll vídeo | Filmado interno | Pond5 · Artgrid (last resort) |
Quando não tem imagem
Falta foto e o layout precisa preencher o espaço? Não invente. Coloca placeholder honesto.
Banido
- Generative AI illustration. Mascote 3D estilo Pixar, hand-drawn-AI, "isometric people".
- Stock corporativo genérico. "Business team high-five". "Diverse smiling group".
- Cliché tech. Mão segurando hologram, código verde matrix, gears flutuando.
- Foto de tela inventada. Se produto não existe ou não está em prod, placeholder.
- Brasilidade visual forçada. Sem amarelo-verde-azul, sem azulejo, sem Paulista pôr-do-sol.
- Sorriso de banco. Foto de "consultor sorrindo".
- Mãos digitando teclado prateado em fundo branco..
- Lousa branca com fórmula matemática complexa.
Como enquadrar
- Regra dos terços. Sujeito em 1/3 vertical e 1/3 horizontal. Nunca centro perfeito.
- Headroom mínimo. 5-10% acima da cabeça em portrait. Sem corte de testa.
- Linha do olhar livre. Sujeito olha para dentro do frame, não pra fora.
- Foreground / midground / background. 3 camadas dão profundidade.
- Negative space proposital. 30-40% vazio para texto ou respiro.
Como descrever uma foto
- Descrever o que está acontecendo, não o que é. "Maria revisando harness output no terminal" > "uma mulher trabalhando".
- Mencionar características relevantes sem reduzir a pessoa a elas.
- Máximo 125 caracteres. Mais que isso é narrativa, não alt.
- Nunca "DFL logo" como alt text. Descreva o conteúdo da imagem específica.
- Foto decorativa:
alt=""(vazio explícito).
O que mandar pro fotógrafo
# brief · foto DFL · sessão YYYY-MM-DD contexto: [1 parágrafo · o que é a DFL · o que vamos usar a foto pra fazer] mood: - warm + low-sat (cap. 8.3) - documental · pessoa trabalhando, não posando - profundidade rasa em portrait · total em ambiente shot list: 1. fellow @ work (10 frames · 1.6:1) 2. detail · keyboard / post-it (5 frames · 1:1) 3. portrait fellow (3 fellows · 5 frames cada · 4:5) 4. ambiente · hub (15 frames · misto) 5. tainan portrait · serial (10 frames · 4:5) no-go: - sorriso pra câmera - prop stock - flash duro - saturação acima de 80% entrega: - RAW + JPG q85 + WebP q80 - ratio crops já feitos - metadata · IPTC com créditos — release assinado por todos · brand/photos/releases/
Grafismos & elementos visuais
A barra-slash como assinatura. Stripes diagonais sand como padrão único. Dataviz com a mesma economia. Decorações? Quase nenhuma — quando aparecem, são propositais.
O único grafismo recorrente
A barra / da logo é o único elemento gráfico recorrente da DFL. Aparece como separador, acento, divider, bullet — sempre em amber, sempre em mesmo tratamento.
Único pattern oficial
Stripes diagonais a 135°, em duas variações de sand + uma amber para uso ritual.
12-col / 8-col / 4-col
12 colunas · gutter 24px · max 1280px
Sidebar 224 · main fluid · content max 1280
Baseline · 4px
Toda altura, gap e padding é múltiplo de 4px. Passos usados: 4 · 8 · 12 · 16 · 20 · 24 · 32 · 40 · 48 · 64 · 80. Nada fora.
Hairline · mono-eyebrow · slash-divider · etc
- /plans
- /harness
- /brain
Visualização de dados
Dataviz segue o sistema: 1 série em amber, intent para estado, mono pra eixo & rótulo. Sem 3D, sem sombra, sem gradient.
- Série principal sempre amber. Comparação usa muted neutral.
- Grid 1px
--border-subtle. Eixos não recebem cor. - Eixo, rótulo, valor — sempre mono. Tabular nums.
- Sem legenda flutuante. Inline annotation > legend separada.
- Outliers ganham cor de intent (danger queda, success alta).
Como desenhar a runtime DFL
Posters · spreads · capas
| Layout | Estrutura | Quando |
|---|---|---|
| Hero-with-slash | Slash gigante canto + título centro + mark canto oposto | Poster · capa |
| Stat-led | Número 200pt amber + label mono pequeno + 1 frase contexto | Anúncio · social |
| Editorial-quote | Slash + Georgia italic grande + cite em mono | Manifesto · spread |
| 4-col grid | 4 cards stat ou feature alinhados | Landing seção |
| Split 60/40 | Texto à esquerda · visual à direita | Hero de landing |
| Full-bleed photo | Foto cobre tela · overlay sand-dark · texto inferior | Fellow spotlight |
| Diagram-led | Diagrama central · texto periférico | Como funciona |
| Stripe-frame | Stripe pattern só em bordas · conteúdo centro | Cover de capítulo |
Decoração não é o trabalho
- 1 elemento gráfico por composição. Slash OU stripes OU dot pattern · não os três.
- Slash > tudo. Quando dúvida, slash. É o elemento mais reconhecível.
- Stripes pra quebra de seção. Não pra "preencher".
- Dot grid pra contexto técnico. Diagramas, fundo de timeline.
- Cross-hatch pra material editorial. Livro, proposta.
- Gradient pra hero. Sutil · radial · canto.
Layout & composição
Densidade calibrada — nem terminal cramped, nem shadcn loose. Hierarquia por superfície e espaço, não por shadow ou border-accent. Respiração é decisão, não default.
Como compomos uma tela
- Hierarquia por superfície. panel → raised mostra importância. Nunca border-accent ou shadow.
- Respiração consciente. Padding default 20px em card, 24px em seção, 64px entre seções.
- Linhas dentro · espaço entre. Items em lista têm hairline divider. Cards entre si têm 32px respiração.
- Tipografia faz hierarquia, não cor. Tamanho, peso, mono-eyebrow.
- Densidade adequada à tarefa. Dashboard pode ser denso. Landing precisa de ar.
- Alinhar à grid. Sem pixels intermediários · sempre 4px múltiplos.
- Content-first. Layout serve conteúdo, não o contrário.
- Mobile-first em produto. Marketing pode ser desktop-first se faz sentido.
Tokens completos
| Token | Valor | Uso típico |
|---|---|---|
| space-0 | 0 | Reset |
| space-1 | 4px | Gap mínimo, dot a label |
| space-2 | 8px | Gap chip↔label, icon button padding |
| space-3 | 12px | Gap dentro de row densa |
| space-4 | 16px | Gap entre form fields |
| space-5 | 20px | Padding default de card |
| space-6 | 24px | Padding interno de seção |
| space-8 | 32px | Gap entre cards irmãos |
| space-10 | 40px | Margem entre blocos grandes |
| space-12 | 48px | Top/bottom de section em landing |
| space-16 | 64px | Entre page sections |
| space-20 | 80px | Entre chapter blocks editorial |
| space-24 | 96px | Hero padding · capítulo |
6 tiers
| Token | Min-width | Comportamento |
|---|---|---|
| phone | 0 | Single-column, drawer nav, body 14px floor |
| sm | 640 | 2-col grids OK |
| md | 768 | Sidebar permanente, KPI cards 4-col |
| lg | 1024 | Target principal de layout |
| xl | 1280 | content-max-width (1280px) limita |
| 2xl | 1536 | Gap extra · nada estrutural |
As que se repetem
Sidebar + Header + Main + Statusbar
Hero full-bleed + 3-col features + CTA
Sidebar TOC + coluna única max 760px
4 KPI row + chart + table
Header + cols scroll-x snap
List + right sheet 480px
Stepper topo + content centro + actions rodapé
Backdrop + dialog centro
Desktop → mobile · regras
| Desktop | Mobile (≤880px) |
|---|---|
| Grid 3–4 col | Stack 1 col |
| Sidebar permanente | Drawer + hamburger |
| Tab bar longa | Scroll-x com snap |
| Kanban colunas | Scroll-x snap por coluna |
| Inline edit | Tap-to-edit sheet |
| Buttons 30–34px | Buttons 40–44px |
| Body 14px | Body 14px floor (input 16px!) |
| Hover states | Active states explícitos |
| Tooltips | Long-press ou inline help |
| Right sheet 480px | Full-screen ou bottom drawer |
Hard rule: <body> nunca tem overflow-x.
44 · 48 · 56
| Token | Valor | Uso |
|---|---|---|
| touch-target | 44 × 44px | Mínimo absoluto em mobile |
| touch-comfort | 48 × 48px | Default mobile · CTAs primárias, FAB |
| touch-feature | 56 × 56px | Single-action screens (record, send) |
Hit area pode exceder o visual via padding invisível — o que conta é onde o dedo acerta.
A composição-mãe do produto
┌─ header (56px) ─────────────────────────────────┐ │ │ ├─ sidebar ─┬─ main ──────────────────────────────┤ │ 224px │ contentMaxWidth: 1280px │ │ 56px │ padding: spacing.6 (24px) │ │ collapsed │ │ ├───────────┴─────────────────────────────────────┤ │ statusbar (24px) · mono-uppercase │ └─────────────────────────────────────────────────┘
Hierarquia de camadas
| Layer | Z-index | Conteúdo |
|---|---|---|
| base | 0 | Conteúdo de página |
| sticky | 10 | Header, sidebar fixos |
| dropdown | 20 | Menu, autocomplete |
| tooltip | 30 | Tooltips, popovers |
| modal-backdrop | 40 | Scrim de modal |
| modal | 50 | Dialog, sheet, drawer |
| toast | 60 | Notificações transientes |
Layouts que se adaptam
/* 1 / 2 / 3 / 4 cols responsivo */
.bg-grid-auto {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: var(--space-6);
}
/* sidebar + main */
.bg-app {
display: grid;
grid-template-columns: 224px 1fr;
}
@media (max-width: 880px) {
.bg-app { grid-template-columns: 1fr; }
}
/* container max-width */
.bg-container {
max-width: 1280px;
margin-inline: auto;
padding-inline: var(--space-6);
}Motion & interação
Motion serve à clareza: comunica relação causal, suaviza transição de contexto, confirma ação. Curvas rápidas, sem easing dramático. Microinterações pequenas e consistentes.
Quando faz sentido animar
- Motion comunica relação. A → B precisa mostrar de onde A virou B.
- Rápido por default. 120–220ms cobre 90%. Acima de 320ms só em page transition.
- Easing standard ou ease-out-snap. Sem bounce, elastic, spring exagerado.
- Reduzir motion = respeitar.
prefers-reduced-motiondesliga tudo não-essencial. - Não animar em loop. Loading spinner exceção. Pulsa "pra atenção" → some.
- Direção espacial faz sentido. Sheet vem do lado · drawer de baixo · dropdown pra baixo.
- Stagger sutil. Items em lista podem entrar com 30ms stagger. Não mais.
- Performance > estilo. Anima só transform/opacity. Nunca width/height.
Os tokens completos
| Token | Valor | Uso |
|---|---|---|
| duration-instant | 80ms | Color shift micro · sem percepção |
| duration-fast | 120ms | Hover, focus, color shift |
| duration-base | 180ms | Default — open/close, expand |
| duration-medium | 220ms | Dialog enter, sheet slide |
| duration-slow | 320ms | Page transition · last resort |
| duration-deliberate | 600ms | Logo intro · hero · cinematic |
| ease-standard | cubic-bezier(0.4, 0, 0.2, 1) | Default |
| ease-out | cubic-bezier(0, 0, 0.2, 1) | Entradas |
| ease-in | cubic-bezier(0.4, 0, 1, 1) | Saídas |
| ease-snap | cubic-bezier(0.2, 0.8, 0.2, 1) | Confirmação · ship pulse |
| ease-linear | linear | Progress bars, scroll-tied |
As que se repetem
120ms · ease-standard
Cor de fundo muda. Sem scale. Sem shadow novo. Sem ripple.
0ms · sem transition
Focus aparece imediato. Animar focus é prejudicar a11y.
220ms · ease-out · fade+scale(0.96→1)
Scrim fade-in junto.
180ms · ease-out · slide-from-top+fade
Vida útil 4s. Saída 180ms ease-in.
220ms · ease-out
De fora da viewport. Scrim fade junto.
180ms · ease-snap
Underline amber desliza para nova tab.
1400ms · linear · loop
Único loop permitido.
320ms · ease-snap · dot 1×
Status dot pulsa quando muda. Sem repeat.
420ms · ease-snap · slash último
DFL fade-in 200ms; slash entra com scale snap.
180ms · ease-standard · max-height
Sem chevron rotate exagerado · max 90°.
ms-by-touch · transform-tied
Sem snap dramático · libera no drop position.
180ms · ease-snap · scale(0→1)
Sem bounce duplo.
Política de transition
- Entre páginas (app): nenhuma transition. Trocar página é instantâneo.
- Entre estados (mesmo componente): 120ms color/opacity. 180ms size/position.
- Entre views drill-in: 220ms slide-from-right; back slide-to-right.
- Modal/sheet/drawer: 220ms ease-out enter; 180ms ease-in exit.
- Hero animation marketing: 600–800ms tolerado · 1× por sessão.
- Route change marketing: 320ms cross-fade · não escudo de slide.
O contrato com acessibilidade
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}Animações que não custam frame
| Anima | Não anima | Por quê |
|---|---|---|
| transform | left/top | Transform usa compositor · não causa reflow |
| opacity | visibility | Opacity é GPU · visibility não anima |
| filter (use raro) | box-shadow contínuo | Shadow muda paint em cada frame |
| scale via transform | width/height | Layout repaint expensive |
| background-position | background-image | Carrega asset · slow |
Exemplo concreto
/* hero entra · 600ms total · ease-out · staggered */
@keyframes hero-eyebrow-in {
from { opacity: 0; transform: translateY(-8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes hero-title-in {
from { opacity: 0; transform: translateY(12px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes hero-slash-in {
from { opacity: 0; transform: scale(0.7); }
to { opacity: 1; transform: scale(1); }
}
.hero-eyebrow { animation: hero-eyebrow-in 220ms ease-out 0ms both; }
.hero-title { animation: hero-title-in 320ms ease-out 100ms both; }
.hero-slash { animation: hero-slash-in 220ms ease-snap 220ms both; }
.hero-body { animation: hero-title-in 320ms ease-out 320ms both; }
.hero-cta { animation: hero-title-in 320ms ease-out 440ms both; }Motion que mata UX
- Parallax pesado. Faz a página parecer flutuante. Sem cabeça em prod.
- Auto-rotating carousels. Carousel só com swipe explícito.
- Bounce ao final. "Spring overshoot" estilo iOS 2008. Dramático sem ganho.
- Hover scale ≥ 1.05. Empurra layout · re-paint · cardápio de motion-sickness.
- Loading com mais de 1 sinal. Spinner + skeleton + progress = 3 ruídos.
- Animação que esconde estado. Animar uma tela inteira fade-in ao trocar de aba esconde quando carrega.
- Confete celebrativo. Sem confete. Sem fogos. Status sólido + número + pronto.
- Cursor follow effects. Cursor magnético, cauda de partículas — DFL não.
Aplicações digitais
Onde a marca vive de verdade — 14 apps, 3 landings, GitHub orgs, internal tools, Telegram. Este capítulo é uma biblioteca: templates prontos pra cada formato que a DFL toca. Pegue, ajuste a copy, publique.
Surface inventory completo
- dfl-learn · plataforma de aprendizado
- dfl-financing · finanças do fellow
- dfl-flows · orchestration
- dfl-rec / lesson-studio · gravação + edição de aula
- dfl-plans · planos públicos
- dfl-brain · knowledge graph
- dfl-components · design system
- dfl-harness · eval framework
- dfl-process-mining · análise de runs
- dfl-bmcanvas · business model canvas
- dfl-apps · launcher
- dfl-notifications · central de notif
- dfl-fellow-portal · portal do fellow
- books-app · leitor de Alavancagem
Landing pages
- devfellowship.com — master · público externo · dark
- revera.* — B2B · light editorial + dark sections
- tainanfidelis.com — bridge pessoal · dark · autoral
- alavancagem.devfellowship.com — livro · editorial serif
GitHub & DocOps
- devfellowship org · social preview, README, releases
- taigfs bridge pessoal-Tainan
- READMEs canônicos com header DFL/produto
Social
- Instagram @devfellowship + @taigfs
- LinkedIn DFL + Revera + Tainan
- X / Twitter @devfellowship + @taigfs
- YouTube · TikTok · Podcast feed
Canais internos
- Telegram · Discord · paperclip board
- Notion espaço DFL · plans · brain · ADRs
- Substack newsletter
Os blocos que se repetem em todo app
Componentes vivem no registry dfl-components-cli (shadcn-style). App nunca copia-cola — sempre puxa do registry com npx dfl add.
Botões · 6 variantes
Inputs · estados
StatusPill · 13 estados
Cards · 3 variantes
App icons · web
14 receitas visuais · aplicadas em 7 formatos
A biblioteca abaixo é um cardápio. 14 receitas visuais (manifesto-card, big-stat, slash-hero, terminal, debate, etc.) re-renderizadas em 7 formatos (IG feed/stories/reels, TikTok, YouTube thumb, LinkedIn, X, AppStore, landing). Pegar uma receita + um formato dá um template pronto.
Receitas visuais
| Receita | Uso típico | Sinal-chave |
|---|---|---|
| manifesto-card | Frase do manifesto isolada | Barlow grande + slash + amber em palavra-pivô |
| big-stat | 1 número que faz a história | Número 80–220pt amber + label mono pequeno |
| slash-hero | Anúncio / brand drop | Slash gigante decorativo + título curto |
| editorial-quote | Citação · papel sand | Georgia italic + slash amber + mono attribution |
| fellow-spotlight | Pessoa real em destaque | Foto bleed + gradiente + dados em mono |
| terminal | Bastidor técnico | JB Mono + prompt + barra amber em ponto-chave |
| diagram | Conceito da runtime | Blocos + linhas amber + numeração mono |
| numbered-series | Thread / carrossel | "01 / N" no canto · cor primária amber |
| drop / KPI grid | Anúncio com 4 datas/números | Grade 2×2 de mini-stats |
| debate · split | X vs Y · before/after | Tela dividida ao meio · "VS" entre |
| data-chart | Caso com prova visual | Linha amber + Barlow display ao lado |
| talking-head | Vídeo · entrevista | Foto bleed + gradiente lateral + caption |
| listicle 3× | "3 razões" · "5 erros" | 3 mini-cards numerados embaixo do título |
| announcement-amber | Anúncio importante | Background brand inteiro · texto dark |
9 templates prontos · ratio 1/1
Feed @devfellowship — alterna manifesto-card, big-stat, fellow-spotlight e editorial-quote para criar ritmo. Não publique 3 manifestos seguidos: o feed perde respiração visual.
Padrão de grid · 9 posts
Pensa o feed como matriz 3×3 que rola. Para a próxima rolagem, alterna: dark / light / dark · stat / quote / stat · slash / number / slash. Mantém o feed reconhecível mesmo no thumbnail do perfil.
6 templates prontos · ratio 9/16
Story é o canal mais rápido. Hierarquia: topo com mark, centro com mensagem, rodapé com CTA. Margens internas 8–10% pra UI nativa do IG não engolir.
5 templates · hook obrigatório nos primeiros 3s visualmente
Reels cover é o que para o scroll. Texto grande, legível em mute. O cover não precisa "ser bonito" — precisa fazer o dedo parar.
4 templates · caption-safe
TikTok come 30% inferior com caption + CTA nativos. Tudo importante fica no terço central. Anúncios usam o template announcement-amber: fundo brand inteiro garante view sem necessidade de cor.
10 variações · 1 padrão de cabeçalho · 0 clickbait
Thumbnail YouTube é onde a regra "mono uppercase para meta" mais ajuda: o "— EPISODE 07 · 22 MIN" no canto vira reconhecimento de canal. Texto principal sempre Barlow Condensed, 60+ pt no design 1280×720.
Anti-padrões
- Não use rosto com boca aberta + setas vermelhas + emoji de fogo. Não somos YouTuber.
- Não escreva o título do vídeo na thumbnail. Thumbnail diz uma coisa, título diz outra.
- Não capitalize a frase inteira em formato sentença. Use Barlow Condensed uppercase no sistema, ou caps-on-purpose.
- Nunca use mais de duas cores além do sand-stack + amber. Intent colors aparecem só em "data-chart".
2 templates · safe zone respeitada
Tudo crítico fica na safe central de 1546 × 423 (linha tracejada no exemplo). Bordas podem ser stripe ou gradient — TV vai cropar.
3 covers · 3 posts · 1 carrossel completo
Banners de perfil · 3 variações
Imagens para post · 3 receitas
Carrossel completo · 6 slides (drift = data)
2 headers + 2 cards · sem emoji, sem 🧵
4 ícones · 4 screenshots prontos
Ícones · 4 variações
Screenshots App Store · 4 telas · iPhone
2 templates · light pra transacional · dark pra marketing
Oi, fellow.
Seu PR #142 foi mergeado. Harness rodou (87% pass, drift no episode 03 capturado). Próxima ação: revisar drift e abrir nova run.
Abrir harness run →run-id · 2026-05-19-overnight · 11 PRs
Bora falar do overnight push protocol. Plans publicados, subagents executando, drift capturado.
Ler na newsletter →Subject lines · padrão DFL
DFL · Revera · Alavancagem · hero pronto
Estrutura padrão da landing DFL
| Seção | Função | Bloco visual |
|---|---|---|
| 1. Hero | Tese + CTA primário | Receita "slash-hero" ou "manifesto-card" |
| 2. Manifesto curto | Estabelece voz | 3 frases Barlow Condensed centradas + slash |
| 3. Runtime | Mostra o que existe | Diagrama 4-blocks (plan · exec · harness · brain) |
| 4. Prova | 3 cases curtos com número | Cards "big-stat" |
| 5. Fellow testemunho | Voz humana | Foto + serif italic |
| 6. Programa | Como funciona | Timeline 12 semanas · mono uppercase |
| 7. FAQ | Quebra objeções | 5 perguntas · accordion |
| 8. CTA final | Aplicar / agendar | Receita "announcement-amber" |
O que aparece quando linkam você
OG cards · 3 receitas
GitHub social preview · 1280×640
Coberturas de canais editoriais
Discord · Telegram · Calendly
O que aparece quando algo não está pronto
DFL não esconde estado vazio. 404 captura como drift; coming soon registra timing. Em vez de ilustração mascote, o mesmo sistema vazio do produto + voz.
Headers consistentes em todo repo
<div align="center">
<h1>DFL <span style="color:#E07A4A">/</span> plans</h1>
<p><em>plan-driven autonomous execution · part of the DFL runtime</em></p>
<p>
<a href="#"><img src="https://img.shields.io/badge/status-alpha-E07A4A" alt="alpha"/></a>
<a href="#"><img src="https://img.shields.io/badge/devfellowship-runtime-1a1714" alt="runtime"/></a>
<a href="#"><img src="https://img.shields.io/badge/self--hosted-yes-7aa2e0" alt="self-hosted"/></a>
</p>
</div>
> "Plans before code. Code before review. Review before celebration."
## What it is
plans-app is the source of truth for durable decisions in the DFL runtime.
Public, versioned, immutable once locked. Agents execute. Humans unblock.
## Quick start
```bash
npx dfl-plans init
npx dfl-plans publish ./my-plan.md
```
## Architecture
- read · the plan
- act · agents claim episodes
- record · drift signal at end of run
- learn · brain ingests
## Why
Plans aren't documentation. They're the runtime.
Hand-rolled READMEs are theater. Plans are operational.
— DFL · 20269 layouts canônicos
| Slide type | Layout | Quando usa |
|---|---|---|
| Cover | Wordmark + manifesto-style título + eyebrow mono | Toda apresentação · 1× |
| Section divider | Número grande amber + título display + linha hairline | Quebra entre blocos de 3+ slides |
| Stat / KPI | Número 144pt + label mono em cima + 1 linha de contexto | Quando 1 número faz a história |
| Texto + diagrama | Coluna 60/40 · texto à esquerda · diagrama runtime à direita | Explicar arquitetura |
| Lista de bullets | Max 5 bullets · cada um começa com / | Quando não dá pra evitar |
| Quote | Pull em Barlow centro · cite em mono · slash à esquerda | Manifesto, depoimento |
| Imagem full-bleed | Foto fellow / runtime UI ocupa slide | Quebrar densidade textual |
| Compare table | 2-col split · DFL vs alternativa | Vendas Revera, posicionamento |
| Closing | Wordmark + 1 next-step + canal de contato | Toda apresentação · 1× |
Documentação interna que parece DFL
- Page cover: banner sand-dark de 40px + slash amber centro · sem foto stock.
- H1: Inter 28 bold.
- Body: Inter 15.
- Callout: background panel-2, ícone
/amber, mono uppercase pra label. - Code block: JB Mono 13, theme dark sand (não tema padrão dark do Notion).
- Database views: Table com mono uppercase no header, StatusPill nos status fields.
- Templates registrados: "Plan", "ADR", "Run report", "Drift signal", "Episode", "FAQ entry".
Cada pessoa · mesmo template
Reconhecimento na timeline
| Surface | Tamanho | Tratamento canônico |
|---|---|---|
| Discord server icon | 512 × 512 | Variante AppIcon "slash" · radius 22% |
| Slack workspace icon | 512 × 512 | Idem Discord |
| Telegram bot avatar | 512 × 512 | Mark D-bar · radius 50% (TG enforça round) |
| YouTube channel icon | 800 × 800 | AppIcon "default" (DFL/) · radius 50% |
| X / Twitter avatar | 400 × 400 | AppIcon "amber" · radius 50% |
| Instagram avatar | 320 × 320 | AppIcon "default" · radius 50% |
| Avatar de membro (auto-gen) | 256 × 256 | Iniciais em ink-primary · fill da paleta member-* (hash) |
| GitHub org avatar | 500 × 500 | AppIcon "default" · radius 22% |
| Substack logo | 500 × 500 | Mark D-bar · radius 22% |
Não-negociáveis em produto e marketing
- Contrast WCAG AA mínimo em todos os pares texto+fundo (cap. 5.7).
- Alt text descritivo em toda imagem publicada — incluindo OG, IG feed, LinkedIn. "DFL marca" não é alt text — descrever o conteúdo da imagem.
- Focus visível sempre. Nunca
outline: nonesem substituição amber. - Caption em todo vídeo postado. Caption queimada (open) pra short-form (TikTok/Reels), caption nativa pra YouTube.
- Touch target 44px+ em todo botão mobile.
- Reduced motion respeitado em toda animação não-essencial (cap. 11.5).
- Heading hierarchy correta (h1 → h2 → h3, sem pular nível).
- Form labels sempre presentes (não apenas placeholder).
Aplicações impressas & offline
Papel é editorial. Light sand · tinta dark · amber rebalanceado pra CMYK · Georgia entra como segunda voz. Certificado, proposta, livro, sinalização, embalagem. Não-app é não-dark.
Papel ≠ tela
Em impresso o sistema vira light: papel sand #f6f1e7, tinta sand-900, amber rebalanceado para #c2663b (legível em CMYK 4-color). Tipografia ganha respiração maior; Georgia entra como serif editorial em texto longo.
Conversão CMYK · Pantone
| Cor | HEX | CMYK | Pantone |
|---|---|---|---|
| Sand paper | #f6f1e7 | 0 / 3 / 8 / 0 | Warm Gray 1 C |
| Ink dark | #1a1714 | 60 / 60 / 70 / 70 | Black 7 C |
| Brand amber print | #c2663b | 0 / 60 / 78 / 18 | 7585 C |
| Muted | #7d7568 | 10 / 16 / 30 / 50 | Warm Gray 8 C |
| Ink editorial | #3a3530 | 50 / 50 / 60 / 50 | Black 6 C |
6 surfaces · canônicos
Fellowship · Workshop · Participação
completou o programa DFL Fellowship — shippou em produção, publicou planos, rodou harness. Membro permanente da rede.
Template completo
Sales · Revera B2B · 12 slides
- Capa · dark · tagline + nome do prospect.
- Por que estamos aqui · 1 número específico sobre o time deles.
- Tese · 3 frases manifesto-style.
- O que ninguém faz · 3 diferenciais (plans, harness, infra própria).
- Como rodamos · diagrama da runtime.
- Caso 01 · cliente A · métrica antes/depois.
- Caso 02 · cliente B · métrica antes/depois.
- Caso 03 · cliente C · métrica antes/depois.
- Proposta · escopo + preço + cronograma — sem floreio.
- Time · quem entrega · headshot + role.
- FAQ · 4 perguntas que sempre vêm.
- Fechamento · 1 next step + canal de contato.
Material de evento + ambiente
coorte
set · 2026
ship,
every day.
Material distribuído
Justi
Capa · lombada · contracapa · spread interno
Não medimos sucesso — medimos drift capturado. A diferença muda como o time se organiza.
Drift escondido vira dívida. Drift capturado vira eval. A pergunta certa não é 'rodou bem?' — é 'o que ficou diferente do plan?'.
pg 42 / 168Capas em Barlow Condensed.
Livreto A5 · 24 páginas
O fellow recebe na entrada um livreto editorial: manifesto + sistema operacional do programa + glossário. Light editorial, Georgia + Inter, capa com slash + número da coorte.
- Cap. 1 — Manifesto (PT e EN lado a lado)
- Cap. 2 — O que é a runtime (plans · harness · brain · paperclip)
- Cap. 3 — Como medimos sucesso (drift, eval, PR shipped)
- Cap. 4 — Como pedir ajuda (TG, channels, mentor escalation)
- Cap. 5 — Como sair (offboarding + alumni network)
- Anexo · Glossário (mesmos termos do cap. 19 deste guide)
Ticket · meetup · 5 × 15cm
Como o material chega
- Welcome box (fellow): caixa kraft 30 × 22 × 8cm. Tampa interna com mark debossed. Wrap interno em papel seda sand. Manual A5 + camiseta + 3 stickers + caderno + cartão assinado.
- Livro pack (Alavancagem): envelope kraft 20 × 28cm. Adesivo de fechamento amber com slash. Marca-página em papel pesado com manifesto.
- Graduation box: caixa preta fosca 35 × 25 × 6cm. Foil amber externo (slash). Certificado emoldurado + livro + jaqueta + carta autoral.
- Revera kit: envelope A4 kraft + folder com proposta + caderno + cartão. Lacre amber.
Merch & ambiente
Vestível diário, palavra forte, qualidade material. Sem mascote, sem tagline cringe. Cada item DFL é um objeto opinativo — não swag genérico.
Antes da peça
- Vestível diário. Cor sand-dark ou sand-light. Sem laranja-flúor, sem neon.
- Estampa pequena OU frase forte — nunca ambas. Marca discreta no peito, ou manifesto grande nas costas.
- Tipografia faz o trabalho. Barlow Condensed grande, JB Mono pequeno. Zero ilustração.
- Qualidade material acima da estética. Algodão 200g+, costura reforçada, tinta water-based.
- Fellow merch ≠ event swag. Fellow merch é nominado (nome no avesso). Evento é universal.
- Quantidade pequena, lote único. Não fazemos "loja DFL". Cada lote dura ~6 meses.
- Embalagem é parte. Caixa kraft, papel seda, cartão assinado. Não envelope plástico.
Default + manifesto + slash + drift + tokens + revera
don't
matter.
is the data.
before
code.
Inverno + headwear + accessórios
IS
LEARNING
Caderno · caneca · garrafa · mousepad · etc
| Item | Material | Tratamento |
|---|---|---|
| Caderno A5 · plain | Capa sand-dark hardback, miolo pontilhado | Slash debossed na capa |
| Caderno A6 · pocket | Capa kraft sand, miolo liso | "DFL /" gravado a quente |
| Caneta | Metal preto fosco | "DFL" gravado a laser · 4mm |
| Mug · 350ml | Cerâmica matte sand-dark | Wordmark + tagline · interior amber |
| Mug · 60ml espresso | Cerâmica matte sand-light | Slash amber centro · pira de café especial |
| Garrafa · 750ml | Aço escovado sand-dark | Slash grande · gravura a laser |
| Mousepad · 90 × 40cm | Borracha + tecido sand | Manifesto inteiro impresso |
| Tote bag · canvas natural | Algodão 280g | Slash amber serigrafia · 30mm |
| Keychain · metal | Latão acetinado | Mark D-bar · 25mm gravado |
| Pin · metal | Esmalte amber sobre preto | Slash + DFL · pinback |
| Sleeve notebook | Algodão sand-dark · feltro interno | Mark mini canto + slash interno |
| Adesivo conjunto · pack | Vinyl mate | 4 tamanhos × 3 designs |
Quem recebe o quê
Welcome kit · fellow novo
Camiseta sand-dark + caderno A5 + 3 stickers + sticker nominado + manual A5 + card assinado por Tainan. Caixa kraft com mark debossed.
Graduation kit · fellow formado
Jaqueta bomber + certificado A4 emoldurado + cópia de Alavancagem + carta editorial. Caixa preta fosca, slash gold-foil.
Revera kit · cliente fechado
Garrafa de aço + caderno + caneta + cópia Alavancagem + carta editorial Georgia. Entrega pessoal para o CTO.
Speaker kit · convidado de evento
Camiseta + sticker pack + caneca + crachá A6 com QR pro perfil. Entrega na entrada.
Quando tiver espaço físico
- Parede manifesto · vinyl sand-dark sobre tinta sand-light · 240cm largura · manifesto Apple-1986.
- Parede de runs · monitor 65" mostrando paperclip board ao vivo.
- Sinalização interna · mono uppercase 24pt em vinyl amber discreto. Nomes: "Drift Room", "Plan Room", "Brain Room".
- Cadeiras · Aeron pretas. Sem cadeira startup colorida.
- Iluminação · 3500K constante. Sem RGB LED, sem neon "code is poetry".
- Plantas · aspidistra, monstera, sansevieria. Verde escuro, baixa manutenção.
- Mesa default · sand light, com caderno A5 DFL + lápis. Não desktop com 7 monitores.
- Música ambiente · pad eletrônico low-key. Sem rádio FM.
- Cozinha · café especialty BR. Sem cápsula Nespresso decorativa.
Como um meetup DFL aparece
Como o objeto chega
- Caixa kraft simples · 30 × 22 × 8cm · tampa interna com mark debossed · papel seda sand · welcome kit.
- Caixa preta fosca · graduation · 35 × 25 × 6cm · foil amber externo (slash) · interior amber acetinado.
- Envelope kraft · livro pack · 20 × 28cm · adesivo de fechamento amber · marca-página interno.
- Envelope A4 kraft · Revera · lacre amber · folder de proposta dentro.
Vídeo & áudio
YouTube, Loom, podcast cuts, intro/outro, shorts vertical. Mesma marca em movimento. Sem identidade sonora obrigatória — quando aparecer, serve à fala, não compete.
Posição atual: leve, opcional
DFL não tem jingle. Tem um logo sonoro discreto: 1.2s de pad sand morno + 1 thump de baixo na entrada do slash. Quando aparece, marca o fim do intro/início do outro. Quando não aparece, silêncio é OK.
Banco sonoro · 5 cama de fundo
| Faixa | BPM | Mood | Quando |
|---|---|---|---|
| amber-pad-01 | — | Warm ambient pad | Intro · outro · 30s loop |
| sand-loop-02 | 92 | Lo-fi piano + sub bass | Tutorial · talk-head |
| drift-03 | 104 | Minimal techno · sem build | Highlight · sizzle |
| silence-04 | — | Silêncio escolhido | Manifesto · entrevista |
| thump-05 | — | Logo sting · 1.2s | Logo entry · transição |
Frame-by-frame
00:00.0 silêncio · tela sand-dark
00:00.4 wordmark "DFL" fade-in 200ms (ease-out)
00:00.8 slash entra com snap (scale 0 → 1, 220ms ease-snap)
+ thump sonoro (opcional)
00:01.0 tagline "devfellowship" fade-in mono uppercase
00:02.0 hold
00:03.0 fade-out 400ms → conteúdoStoryboard · 4 frames
Frame-by-frame
00:00.0 conteúdo · fade-to-black 300ms
00:00.5 wordmark + tagline fade-in centralizado
00:01.5 linha hairline cresce de 0 → 200px (220ms)
00:01.8 CTA mono uppercase fade-in
"devfellowship.com / aplicar"
00:04.0 hold
00:05.0 endAtribuição de fala
Como o vídeo se sente
- Corte seco. Sem dissolve, sem transition pack 2014. Cut, cut, cut.
- Cabeça reduzida. Cortar respiração inicial e final de cada take. Soa pensado, não falado.
- Cor. Warm + low-sat. LUT custom DFL: warm shift +5 mireds, sat −15%, lift slight em sombras.
- Tipografia em tela. Barlow Condensed. Mesma do print. Sem fontes de motion-pack.
- B-roll. Tela > pessoa caminhando. Mostramos código, plan, harness rodando.
- Aspect ratios. 16:9 master · 9:16 vertical · 1:1 quadrado.
- Frame rate. 24fps narrativa · 30fps screencast · 60fps motion intensa.
- Áudio. Mono em fala (não estéreo). Sample rate 48k. Bitrate AAC 256kbps.
O que produzimos · catálogo
| Formato | Duração | Cadência | Plataformas |
|---|---|---|---|
| Episódio talk-head | 14–22 min | 1–2 / mês | YouTube · podcast cut |
| Tutorial técnico | 5–12 min | 1 / mês | YouTube · landing |
| Manifesto reading | 1–3 min | Eventual | YouTube · Reel · LinkedIn |
| Fellow story | 2–4 min | 1 / coorte | YouTube · IG · landing |
| Highlight reel | 30–60s | Eventual | IG Reel · Short · TikTok |
| Case Revera | 3–5 min | 1 / cliente | YouTube · landing Revera |
| Demo de produto | 1–3 min | Por release | landing · LinkedIn |
| Bastidor overnight | 30s–90s | Spontâneo | IG Story · X · TG |
Quando precisar de cama
| Gênero | Quando | Referência (busca) |
|---|---|---|
| Ambient eletrônico | Intro · outro · documental | Brian Eno, Tycho, Helios — instrumental low-key |
| Lo-fi instrumental | Tutorial · talk-head | Lo-fi piano + warm bass · sem vocal sample |
| Minimal techno | Highlight · sizzle reel | BPM 100–115 · sem drop · sem build dramático |
| Silêncio | Manifesto falado · entrevista | Sem música. Escolha. |
Áudio standalone
Podcast canônico DFL: Drift Signal. 1 episódio/semana. Tainan + 1 convidado por episode. Estrutura: 3 min intro tese → 30 min conversa → 5 min síntese.
| Spec | Valor |
|---|---|
| Sample rate | 48 kHz |
| Bitrate output | AAC 192 kbps |
| Loudness | −16 LUFS integrated |
| Peak ceiling | −1 dBTP |
| Microfones | Shure SM7B local · Zoom F6 captura |
| Edit software | Reaper · descript |
| Hospedagem | Transistor.fm |
| Distribuição | Spotify · Apple · YouTube · RSS público |
Texto em vídeo
- Short-form (Reels, Shorts, TikTok): caption queimada (open). Inter 32–40px. Fundo sand-dark com 70% opacity. Max 2 linhas.
- Long-form (YouTube): caption nativa SRT. Sem styling — herda do player.
- Idioma: PT-BR primário. EN secundário com auto-tradução revisada.
- Sincronia: caption aparece 50ms antes da fala, sai junto.
- Verificação: qualquer vídeo > 1min passa por revisor humano antes de publicar.
Comunicação por canal
Cada canal puxa a marca pra uma direção. O sistema absorve — voz e visual se ajustam ao registro sem soltar o eixo. Aqui ficam os contratos por plataforma.
Voz · visual · cadência
Quem ouve
CTO, VP Eng, dev sênior pensando em mudar de carreira, founder técnico, RH de tech.
Voz
Profissional + opinião + prova. Primeira pessoa quando possível. Posts curtos (< 250 palavras), 1 número específico, 1 take opinativo. Nunca "vem ser feliz" — sempre "isto resolve isto".
Cadência
- DFL: 2–3 posts / semana
- Tainan: 3–5 posts / semana
- Carrossel: 1× / mês
- Vídeo nativo: 1× / mês
O gargalo não é custo de token. É clareza do plan.
Tese: a próxima vantagem competitiva em eng é quão bem você descreve o que quer — não quem você contrata.
Detalhe técnico no blog · devfellowship.com/blog/overnight
Anti-padrões LinkedIn
- Sem "Eu estava no Uber e tive um insight…" no início.
- Sem perguntas-gancho fake ("vocês concordam?")
- Sem emoji decorativo (🚀💪✨).
- Sem "Eu te ensino em 10 passos" estilo guru.
- Sem hashtag explosion. Max 3 — todas em minúsculas.
Cultura · fellows · bastidores
- Feed: 1:1, dark-first, alterna manifesto-card / big-stat / fellow-spotlight / quote.
- Stories: bastidores (PR aberto, harness rodando), tickers de evento, drops.
- Reels: < 45s, 9:16, mesmo registro do YouTube short. Sem dance, sem trend.
- Highlight covers: ícone DFL amber sobre sand dark. Categorias: runtime · fellows · revera · meetups · alavancagem · manifesto.
- Bio: 1 linha posicionamento + link único pra hub.
- DM: resposta corrida tipo TG ("bora", "valeu"). Sem texto formal.
Grid de 9 · alternância
Pensa o feed como matriz 3×3 que rola. Próxima rolagem alterna: dark/light/dark · stat/quote/stat · slash/number/slash. Mantém o feed reconhecível mesmo no thumbnail.
Técnico · opinativo
- Conta DFL para anúncio + retweet do time. Conta Tainan para opinião + thread técnica.
- Thread > tweet solto. Cada thread: cabeçalho (tese), corpo (3–7 tweets), fechamento (call).
- Sem emoji. Sem "🧵". Apenas numerar tweets quando faz sentido.
- Screenshot de código sempre com tema sand-dark DFL (não tema padrão de IDE).
- Reply curto, direto, opinativo. Sem performance ou agradecimento ritual.
Cadência
- DFL: 1 anúncio / semana (drops, releases, threads próprias).
- Tainan: diário · 2-5 tweets · 1 thread / 2 semanas.
Educacional · long-form
- Vídeos > 8min. Padrão de intro/outro do cap. 15.
- Titles: minúsculas, descritivas, sem clickbait. "como rodamos overnight push", não "VOCÊ NÃO VAI ACREDITAR…".
- Thumbnail: cap. 12.8 — dark + Barlow Condensed grande.
- Descrição: 3 parágrafos máx + links pra plan/repo/blog.
- Comentários: respondemos com 24h, registro normal.
- End screen: cap. 12.X — wordmark + 1 next step.
Posição: tolerado · não prioritário
Shorts repurposed de YouTube — cortes de 30–60s com tese curta. Não fazemos conteúdo native pra TikTok. Se um short viralizar, ótimo. Não otimizamos pra algoritmo.
- Sem dancinha, sem trend, sem "POV".
- Capa: cap. 12.7 — hook gigante centro · zona safe-caption.
- Caption queimada (cap. 15.9).
Substack · quinzenal
Cadência
Quinzenal. Edição numerada (#01, #02…). 4–8 min de leitura. Quinta-feira manhã.
Estrutura padrão
- Eyebrow: "edition #07 · 19 maio 2026"
- Tese da edição: 1 frase Barlow Condensed
- Lead: 1 parágrafo Inter 16
- Corpo: 3–4 blocos com h3 + parágrafo · Georgia 16 italic OK em destaque
- Imagem: 1 OG card visual
- Próximo passo: 1 CTA mono uppercase
- Footer: wordmark + tagline + opt-out
Drop oficial + comunicação corrida
- Canal @devfellowship: drops de coorte, anúncios, vagas. Texto mono uppercase no início ("— DROP · 05-19"), mensagem em registro normal abaixo.
- Bot interno: avisos automáticos de run, drift signal, novo plan. Persona: técnica, sem floreio.
- Grupo de coorte: corrido, gírias BR+tech, "bora", "valeu", "PR aberto".
- 1:1 com Tainan: assíncrono. Tainan responde em minutos quando online, em horas senão.
Onde fellows ativos vivem
| Channel | Propósito | Cadência típica |
|---|---|---|
| #drops | Anúncios oficiais | 2-3 / semana |
| #shipping | PRs em tempo real (bot posta) | diário |
| #help | Perguntas técnicas | contínuo |
| #runs | Discussão de harness runs | contínuo |
| #drift | Drift signals capturados | diário |
| #showcase | Demos de fellow | 1-2 / semana |
| #random | Off-topic | livre |
| #alumni | Pós-formados | contínuo |
Drift Signal podcast
Hospedagem em Transistor.fm; distribuição via RSS público pra todas as plataformas. Identidade visual cap. 12.16 — capa quadrada sand-dark + slash. Sem capa diferente por episódio: identidade do canal > identidade do episódio.
Onde o método vive em código
- README de cada repo: header padronizado (cap. 12.19).
- Releases: versionamento semver. Notas em registro DFL — direto, sem "thanks all contributors" decorativo.
- Issues: templates de bug, feature, ADR. Quem abre escreve no tom DFL.
- Discussions: público; pergunta + resposta + decisão capturada.
- Social preview: cap. 12.15 — template visual por repo.
- Pinned repos: plans · harness · brain · paperclip. Os 4 pilares.
Como prospect Revera fala com a gente
- 2 tipos de slot: Alinhamento 60min (B2B) · Conversa fellow 30min (candidato).
- Cor: amber (cor da disponibilidade visualizada).
- Cover Calendly: cap. 12.17.
- Pré-meeting form: nome · empresa · timezone · 1 frase "o que tá te trazendo".
- Confirmação automática em PT-BR, voz DFL.
Comunicação interna avançada
- Loom: mensagens em vídeo curtas (< 5min). Background dark, lower-third pessoal.
- Notion comments: usados como ADR side-channel — decisões em comments viram ADR formal.
- Paperclip board: kanban interno · onde runs aparecem ao vivo. Não é canal de mensagem, é canal de estado.
Resumo único · todos os canais
| Canal | Audiência | Voz | Visual | Cadência |
|---|---|---|---|---|
| LinkedIn DFL | CTO · VP Eng | Profissional + opinativo | Dark · wordmark canto | 2–3 / semana |
| LinkedIn Tainan | Tech BR + LATAM | Autoral primeira pessoa | Foto + texto | 3–5 / semana |
| Aspirante a fellow | Casual · bastidor | Dark + foto documental | diário stories · 2 posts | |
| X / Twitter | Dev sênior | Técnico · seco · opinativo | Texto, screenshot DFL dark | diário · thread quinzenal |
| YouTube | Dev curioso | Didático · operacional | Intro 4s · outro 5s | 1–2 / mês |
| TikTok | Casual scroller | Hook + ponto | Vertical · caption queimada | repurpose |
| Newsletter | Comunidade · alumni | Editorial · autoral | Sand light · Georgia OK | quinzenal |
| Podcast | Longform escuta | Conversacional | Capa quadrada · áudio | 1 / semana |
| TG / Discord | Fellows ativos | Corrido · BR · técnico | Texto puro | diário |
| GitHub | Dev avançado | Técnico denso | Markdown + badges | commit-driven |
| Landing Revera | B2B · CTO | Confiança calma | Light editorial | static |
Calendário de publicação
| Dia | Surface | Tipo |
|---|---|---|
| Segunda | LinkedIn DFL · X | Tese da semana · post longo |
| Terça | Instagram feed | Manifesto card ou stat |
| Quarta | YouTube · Loom | Vídeo / tutorial / talk |
| Quinta | Newsletter (quinzenal) | Field Notes edition |
| Sexta | Instagram · X · TG | Recap semana · drop |
| Sábado | — | Pause (off-canal) |
| Domingo | — | Pause (off-canal) |
Playbook de erro público
Software DFL quebra em produção. Acontece. Quando acontece em público, a marca responde no tom da runtime: capturado, registrado, corrigido.
- Reconhecer rápido. Post / tweet em < 1h confirmando o problema.
- Sem desculpa performática. "Sentimos muito" sem ação concreta = ruído.
- Drift signal público. Capturar o que falhou em formato de post-mortem (cap. 19 link template).
- Status visível. fleet-health.devfellowship.com atualizado em tempo real.
- Resolução documentada. ADR público sobre o que mudou.
Template de comunicação · drift público
status · DEGRADED · 2026-05-19 14:32 BRT what broke: harness-runner failed in 3/11 PRs why: drift +0.34 no plan onboarding-revera captured: episode 07 · drift signal in plans-app fix: rolling out v2.1.3 · ETA 30min status updates: fleet-health.devfellowship.com — tainan
Sub-marcas & ecossistema
DFL é a mãe. Revera, Alavancagem e Labs herdam paleta + tipografia, mas têm lockup distinto. Produtos internos não são sub-marca — são parte da runtime.
A família inteira em uma página
DFL · devfellowship (mother brand)
│
├── DFL Fellowship · programa core (product line, não sub-marca)
├── DFL Edu · guarda-chuva educacional (workshops, lives)
├── Revera · B2B · sister-brand · lockup distinto
├── Alavancagem · livro · editorial · serif protagonista
├── DFL Labs · playground experimental
│
└── Produtos internos (não são sub-marca · usam DFL como pai):
plans · harness · brain · paperclip
sandbox-manager · dfl-runner · dfl-learn
dfl-financing · dfl-flows · lesson-studio
books-app · dfl-notifications · dfl-fellow-portal
dfl-process-mining · dfl-bmcanvas · dfl-appsQuando criar nova marca
| Critério | Sub-marca | Produto interno |
|---|---|---|
| Audiência distinta | Sim · público diferente | Não · mesma audiência DFL |
| Lockup próprio | Sim · wordmark dedicado | Não · "DFL · nome" em mono |
| Tom de voz adaptado | Sim · pode formalizar / suavizar | Não · voz DFL pura |
| Tokens compartilhados | Sim (paleta + tipo) | Sim (tudo) |
| Domínio próprio | Sim · revera.* · alavancagem.* | Não · *.devfellowship.com |
| Roadmap independente | Sim | Não · parte da runtime |
Quando a DFL veste terno
Capacity-building para empresas operarem com IA em prod.
Revera herda DFL (paleta, tipografia, voz operacional) e adiciona um registro formal B2B: tom de cinza maior, accent secundário azul (#5a85c4) para KPI e prova social, mais respiração editorial, menos gírias.
"REVERA" wordmark próprio em Barlow Condensed 700 + slash amber. Em material de família, "DFL / REVERA" — em material standalone, "REVERA" sozinha com referência DFL no rodapé.
- "Você" em vez de "tu"
- Sem "bora", sem "valeu"
- PT-EN ainda OK
- Número específico sempre
Paleta Revera
Aplicações Revera
Concreto. Mensurável. Recusa o teatro consultivo.
Vocabulário-zumbi. Banido em qualquer surface Revera.
Livro · serif protagonista
O livro autoral da tese DFL — para dev sênior e CTO.
Alavancagem tem lockup próprio: título em Georgia italic 700 ao lado de slash amber rotacionada 12°. Tipografia interna majoritariamente Georgia 11pt para texto corrido, Barlow para capítulos.
Única sub-marca onde Georgia ocupa > 50% da composição. Aqui, serif é protagonista.
Paleta editorial · Alavancagem
Visual mais solto
Labs tem permissão de quebra estética — testamos motion ousado, ilustração experimental, layouts não-canônicos. O contrato: o wordmark DFL aparece em algum canto.
Workshops · live · cohorts curtos
DFL Edu cobre formato de aprendizado curto: workshops 1–3 dias, lives, cohorts focadas (ex.: "harness em 5 noites"). Visual = DFL puro. Lockup: DFL / EDU.
Como identificar produto interno
Plans, harness, brain, paperclip, sandbox-manager — não têm logo, não têm wordmark próprio, não têm paleta. São parte da DFL, identificados em mono uppercase ao lado da mãe.
Quando aparece com outra marca
Co-branding externo (cliente Revera, sponsor de evento, parceiro técnico) usa pipe vertical com 2× clear space entre marcas. Nunca trancamos a logo em uma "lockup parceria" — cada marca mantém sua área.
Quando duas regras colidem
- Cliente Revera quer cor própria. Não. Co-branding tem regra (17.8). Cada marca mantém sistema.
- Workshop pode usar logo de patrocinador no fundo? Sim, em pipe lateral. Nunca dentro do clear space DFL.
- Sub-marca novo que herda Revera? Não fazemos sub-sub-marca. Se necessário, vira produto Revera (sem marca, com label mono).
- Alavancagem vai virar série de livros? Sim · cada título mantém o lockup Alavancagem + serif. Cor da capa pode variar dentro da paleta sand.
Governança da marca
Quem aprova o quê. Onde os arquivos vivem. Como pedir um novo artefato. Como o guide evolui. Sem isso, em 6 meses tudo derrapa.
Quem destrava o quê
| Artefato | Aprova | SLA |
|---|---|---|
| Tweak em material existente | Brand owner (Tainan) · async TG | 24h |
| Novo lockup para evento/parceiro | Brand owner | 48h |
| Adição de cor primitiva ao tokens.json | Brand owner + DS owner | 72h · via PR |
| Sub-marca nova / mudança em lockup oficial | Brand owner + ADR público | 1 semana |
| Evolução de versão do guide (1.0 → 1.1) | Brand owner + review pública | 2 semanas |
| Logo redesign / paleta nova | Brand owner + ADR + RFC público | 4–6 semanas |
Source of truth
| Asset | Repo / pasta | Formato canônico |
|---|---|---|
| tokens | design-system/tokens.json | DTCG JSON · gera tokens-v2.css |
| components | dfl-components-cli | shadcn-style registry |
| fontes | brand/fonts/ | WOFF2 self-hosted + fallback Google Fonts |
| logo (SVG) | brand/logo/ | SVG vetor · PNG @1× @2× @3× |
| brand-guide (este) | brand-guide/ | HTML auto-contido + bundle PDF |
| templates (deck, proposta, cert) | brand/templates/ | Keynote · Google Slides · InDesign |
| fotos | brand/photos/ | RAW + JPG editado + metadata |
| vídeos · masters | brand/video-masters/ | ProRes · 4K · 24fps master |
| banco sonoro | brand/audio/ | WAV 48kHz + AAC export |
| artefatos publicados | brand/artifacts/ | Numerado · 2026-05-19-thumb.png |
Fluxo de pedido
- Abrir issue no repo
devfellowship/brandcom template "Pedido de artefato". - Descrever: contexto, audiência, prazo, surface, exemplos de referência.
- Brand owner triagem em até 48h: aceita / pede ajuste / recusa com razão.
- Quem executa: fellow designer (se aceito) ou agente (se template existente).
- Review final: brand owner aprova ou pede iteração.
- Entrega: arquivo final + entrada em
brand/artifacts/+ drop no canal interno.
3 formulários canônicos
### Pedido de artefato (template) contexto: [1 parágrafo · pra quem é, pra quê] audiência: [primária + secundária] surface: [LinkedIn / IG / landing / etc] prazo: [data hard] referências: [3 links · pode ser do próprio guide] arquivos necessários: [SVG, PNG, MP4, deck...] quem entrega: [auto-assign ou nome] — abre issue
Como o brand guide evolui
| Versão | Quando bumpar | Comunicação |
|---|---|---|
| patch (1.0.x) | Typo, ajuste de exemplo, spec sem efeito | Changelog interno |
| minor (1.x.0) | Adição de capítulo, novo template, novo token | Drop no canal · changelog público |
| major (x.0.0) | Mudança de logo, paleta, voz, arquitetura | RFC público · 30 dias de transição |
Cadência de review
Trimestral (4× ao ano). Cada review: brand owner + 1 fellow ativo + 1 cliente Revera convidado. Pauta: o que travou? o que foi ignorado? o que precisa de update?
Como mudar a marca ao longo do tempo
- Refinamento > ruptura. Marca DFL evolui em iterações pequenas. Rebrand total só se a tese mudar.
- Toda decisão durável vira ADR em
brand/decisions/. Histórico fica auditável. - Antes de adicionar, pergunta: dá pra remover? Sistema cresce por subtração quando possível.
- Brand é parte do produto. Mudança em DESIGN.md / tokens dispara revisão neste guide.
- Brand não é gosto pessoal. Owner muda, marca segue. Decisões ficam no ADR.
- Marca tem voz no design system. Quando os dois conflitam, fala-se primeiro com ambos os owners.
Como registrar mudança
# ADR-brand-007: adicionar cor secundária para Revera ## status accepted · 2026-05-19 ## contexto Revera precisa de cor pra destacar KPIs em decks B2B sem competir com amber DFL (que é a primary). ## decisão adicionar trust-blue #5a85c4 como accent secundário exclusivo de surfaces Revera. ## consequências + KPI Revera tem destaque visual próprio + DFL puro permanece mono-accent (amber) - 1 cor a mais para manter - risco de "vazar" para DFL puro · mitigação: docs no cap. 17 ## alternativas consideradas - usar amber + opacity diferente · rejeitado: pouco contraste - usar success green · rejeitado: confunde com status — brand-owner, ds-owner
Sweep regular do guide
- Cada app DFL passa por checklist visual: logo correto, cor correta, tipo correto, voz correta.
- Templates em
brand/artifacts/dos últimos 90 dias revisados em batch. - Identificar drift entre guide e aplicação real. Drift > 10% = guide desatualizado, não app.
- Drift < 10% = corrigir aplicação.
- ADRs registrados para mudanças aprovadas.
Quem pode usar a logo DFL fora
| Quem | Pode | Não pode |
|---|---|---|
| Fellow ativo | "Fellow @ DFL" em LinkedIn · sticker no laptop | Loja com produto DFL |
| Alumni | "Alumni DFL · coorte X" em LinkedIn · perfil | Criar curso "DFL Method" |
| Cliente Revera | "Treinado pela Revera/DFL" em landing | Co-branding sem aprovação |
| Imprensa | Usar logo em matéria sobre DFL | Alterar logo · usar em endorsement |
| Sponsor de evento | Logo em pipe lateral (cap. 17.8) | Logo dentro de DFL clear space |
A marca também diz não
- Pedido pra "uma versão da logo só com X" → não.
- Pedido pra "logo em foto stock corporativa" → não.
- Pedido pra usar a marca em produto que conflita com nossa tese → não.
- Pedido pra "colocar a logo num evento que não pediu permissão" → não.
- Pedido pra co-branding sem ADR aprovado → não.
Anexos
O que você precisa pra começar a usar a marca: glossário, downloads, checklist, FAQ, templates de plan, manifesto canônico, contato. Esta página muda com mais frequência que o resto do guide.
O vocabulário canônico
| Termo | Definição curta |
|---|---|
| ADR | Architecture Decision Record · decisão durável e versionada, com contexto + alternativas + escolha. |
| Agente | Processo de IA que executa um plan. claude-main, codex-twin, sub-agents. |
| Alumni | Fellow formado. Faz parte permanente da rede DFL. |
| Brain | Knowledge graph DFL · conecta plans, episodes, drifts, evals, fellows. |
| Coorte | Grupo de fellows que entram juntos. Delimitador temporal. |
| Drift | Diferença entre o que o plan disse e o que aconteceu. Drift capturado = dado pra eval. |
| Drift signal | Marcador explícito no fim de uma run que aponta drift. |
| Episode | Unidade de trabalho dentro de uma run. Tem hipótese, ação, resultado. |
| Eval | Medição automatizada de output de agente. Pode ser harness, LLM judge, human-in-the-loop. |
| Fellow | Membro da DFL Fellowship. Não conclui — se forma. Faz parte da rede para sempre. |
| Harness | Framework de eval. Roda runs, mede, captura drift, gera grade. |
| Paperclip | Board kanban interno · estado das runs em tempo real. |
| Plan | Plano público versionado. Decisões duráveis lockadas. Fonte da verdade para agente executar. |
| Plans-app | Produto interno que hosta plans. plans.tainanfidelis.com. |
| PR (pull request) | A unidade de entrega DFL. PR mergeado = trabalho shipado. |
| Revera | Sub-marca B2B. Capacity-building para empresas. |
| Run | Execução de um plan por um agente. Tem início, episodes, fim, grade. |
| Runtime DFL | Conjunto plans + harness + brain + sandbox-manager + paperclip — a infra de prática. |
| Sandbox | Ambiente isolado onde agente pode tocar código sem afetar prod. |
| Ship | Mergear PR em produção. A métrica única. |
| TG-typed | Run iniciada via mensagem no Telegram. Fluxo assíncrono humano → agente. |
| Tokens | Custo de API de modelo de IA. Métrica DFL: não importa. Throughput importa. |
Download bundle
| Asset | Formatos | Localização |
|---|---|---|
| Logo · wordmark + variações | SVG · PNG @1×/@2×/@3× · PDF vetor | brand/logo/ |
| Fontes · Barlow Condensed · Inter · JB Mono · Georgia | WOFF2 + TTF + licenses | brand/fonts/ |
| Tokens | JSON (DTCG) · CSS vars · Style Dictionary build | design-system/tokens.json |
| Templates · deck · proposta · cert | Keynote · Google Slides · InDesign | brand/templates/ |
| Templates · email · README | HTML · MJML · Markdown | brand/templates/digital/ |
| Templates · social (este guide) | HTML render · referência visual | brand-guide/templates.jsx |
| Foto · stock interno | JPG editado + RAW | brand/photos/ |
| Brand guide (este doc) | HTML standalone · PDF print | brand-guide/ |
| Vídeo · intro/outro masters | ProRes · MP4 export | brand/video-masters/ |
| Banco sonoro | WAV · AAC export | brand/audio/ |
Versão final em PT e EN
Plans before code.
Code before review.
Review before celebration.
Tokens don't matter.
Autonomy does.
We are a fellowship,
not a factory.
We chose Brazil.
We chose global.
Iterate is everything.
Build with AI like you'd build
with a peer who never sleeps.
If you can't ship it today,
ship it tomorrow.
The drift is the data.
— DEVFELLOWSHIP · 2026
Plan antes do code.
Code antes do review.
Review antes da festa.
Token não importa.
Autonomia importa.
A gente é fellowship,
não é fábrica.
A gente escolheu o Brasil.
A gente escolheu o global.
Iterate é tudo.
Constrói com IA do jeito que tu
construiria com um par que não dorme.
Se não dá pra shippar hoje,
shippa amanhã.
O drift é o dado.
— DEVFELLOWSHIP · 2026
Quick check de 60 segundos
- Logo na posição certa, clear space respeitado.
- Cor primary amber aplicada onde faz sentido (CTA, focus). Sem amber decorativo.
- Tipografia: Barlow display, Inter body, JB Mono meta, Georgia editorial.
- Vocabulário-zumbi removido (synergy, leverage, jornada, stakeholder…).
- Verbos ativos. Prova > adjetivo. Número específico onde possível.
- Tom checado contra cap. 3.6 do canal específico.
- Acessibilidade: contraste WCAG AA mínimo, alt text em imagem.
- Tagline / rodapé com referência DFL onde aplicável.
- Foto = real ou placeholder. Nunca stock corporativo, nunca AI-illustration.
- Aprovação registrada (se aplicável, ver cap. 18.1).
- Versão do artefato no nome do arquivo (vYYYY-MM-DD-name.ext).
- Backup em
brand/artifacts/antes de distribuir.
Para quem usa a marca
Posso usar amber pra destacar um número no slide?
Sim, se for o ÚNICO destaque do slide. Dois destaques amber no mesmo slide = perde a função.
O cliente Revera pediu pra mudar a cor pra azul corporativo dele.
Co-branding tem regra (cap. 17.8): pipe vertical com clear space. Cada marca mantém seu sistema. Não trancamos paletas.
Posso usar emoji no LinkedIn DFL?
Não. Emoji em marketing soa 2017. Em canal interno (TG/Discord), tudo bem.
A logo precisa sempre vir com tagline?
Não. Tagline ('devfellowship') aparece em capa de material, certificado, assinatura. App, header, social, pode omitir.
Como nomeio um produto interno novo?
Lowercase, hifenizado se preciso, < 12 chars. Não-pluralizado. Ex.: plans, harness, brain.
Posso criar uma ilustração ou mascote?
Não. DFL não tem estilo de ilustração. Foto real, placeholder honesto ou diagrama-de-blocos. Mascote, nunca.
Posso usar uma fonte serif moderna no lugar de Georgia?
Editorial = Georgia. Se justificável (livro futuro com outra direção), abrir RFC. Para uso ad-hoc, não.
Cor primária #E07A4A não passou WCAG AAA no meu botão.
Esperado — usa --brand pra fill com texto inverse, ou --brand-hi (#f0a872) pra texto sobre dark.
Onde fica o arquivo da fonte Barlow Condensed?
brand/fonts/barlow-condensed/ — WOFF2 self-hosted.
Posso adaptar este guide pra meu time interno na Revera?
Não. Esse guide é canônico. Para o time do cliente, abrir derivado em brand/derived/{cliente} via ADR.
Posso reusar um template do cap. 12?
Sim — é pra isso que existem. Pegue o componente, troque copy, publique.
Quando posso usar background amber sólido?
Em CTA-final-slide, em IG announcement, em capa de section divider. Não em produto.
Posso fazer um post DFL no idioma X (não PT/EN)?
Sim, mas o tom precisa traduzir. Sem mecânica, sem 'autotranslate'.
Founder pediu uma versão da logo sem o slash.
Não. O slash é a logo. Sem ele é só 'DFL' em Barlow Condensed — não é a marca.
Posso animar o slash?
Sim, no intro/outro de vídeo. Sem loop. Sem giro infinito.
Posso fazer merchanise vermelho?
Não. Sand-dark, sand-light, amber. Acabou.
O guide tem versão acessível pra alguém daltônico?
Não temos versão separada, mas todo contraste é WCAG-checado. Status nunca depende só de cor (sempre tem rótulo).
Quem aprova mudança no tom de voz?
Brand owner via ADR público (cap. 18.6).
Vocês imprimem em CMYK ou Pantone?
CMYK em volume. Pantone 7585C em material premium (cap. 13.1).
Tem um template pra X que não está aqui?
Provavelmente sim — abre issue (cap. 18.3) ou inventa seguindo as receitas do cap. 12.3.
Documentos canônicos da runtime
Plan template
# plan: <nome> status · draft | locked | shipped | archived owner · @taigfs versão · v1.0.0 ## contexto [1 parágrafo · de onde veio o plan] ## decisões duráveis - [decisão 1 · com link pra ADR-XXX] - [decisão 2] ## escopo - entregável A - entregável B ## execução - agent: claude-main - sandbox: my-sandbox - harness: required ## drift signal [preenchido no fim da run] — created 2026-05-19 · plans.tainanfidelis.com/0142
ADR template
# ADR-XXX: <título da decisão> status · proposed | accepted | superseded data · 2026-05-19 ## contexto [1 parágrafo · qual o problema] ## decisão [1 parágrafo · qual a escolha] ## consequências + ganho 1 + ganho 2 - custo 1 - risco 1 ## alternativas consideradas - alt 1 · rejeitada: razão - alt 2 · rejeitada: razão — quem aprovou · referências
Drift signal template
drift-signal · run-2026-05-19-overnight magnitude: +0.14 episode: 07 expected: PR-142 merged in 30min actual: merged em 2h · 3 reverts no caminho root cause: plan não previu race-condition em sandbox-manager. what was learned: adicionar lock em sandbox-spawn → ADR-024 aberto. what changes: plans v2 vão incluir secção "sandbox-locks needed". — captured by paperclip · plans-app · ingested by brain
Quando bater dúvida
Tainan Fidelis
devfellowship/brand
template · "Dúvida sobre guia"
template · "Proposta de evolução"
O que mudou e quando
| Versão | Data | Resumo |
|---|---|---|
| 1.0.0 | 2026-05 | Versão inicial · 19 capítulos · alpha |
| 1.1.0 | 2026-06 (planned) | Adição de templates para canais novos (Threads, Bluesky) |
| 1.2.0 | 2026-09 (planned) | Light mode completo · paleta editorial estendida |
| 2.0.0 | 2027 (planned) | Logo + paleta · revisão maior se necessário |
Sobre este documento
DFL Brand Guide v1.0 · alpha · maio 2026. Documento construído em HTML auto-contido, sob o próprio design system DFL. Tipografia: Barlow Condensed, Inter, JetBrains Mono, Georgia (todas open source / system). Paleta: sand-stack DFL + amber #E07A4A. 19 capítulos · 1 mãe + 5 sub-marcas + 14 produtos internos · 70+ templates visuais prontos.
Autoria · Tainan Fidelis + DFL Brand. Construído com agentes operando a runtime DFL — meta. Próxima revisão · outubro 2026. Issues e propostas · devfellowship/brand.
Logo das mini-apps
Logo das mini-apps DFL
Cada mini-app DFL ganha um logo próprio construído sobre o mesmo DNA da marca: o accent amber #E07A4A, os tons cream/sand sobre fundo escuro, formas geométricas bold e — sempre que possível — o motivo da barra /, a assinatura da DFL. Nenhum gradiente, sombra, 3D ou neon. Um único accent. São marcas de app (favicon / sidebar), não substitutos do wordmark DFL/.
The 16 marks cluster into four visual families, each suited to a class of app:
- Analytics / charts (#2, #6, #7, #10) — bars, donuts, gauges → metrics, financial, eval, scoring surfaces.
- Core slash + geometric (#1, #3, #9, #12, #16) — the slash with a dot/ring/hex → launchers, directories, identity homes.
- Lists / layers / chevrons (#4, #8, #11, #13) — stacked lines, plates, arrows → docs, schemas, flows, pipelines.
- Base identity / sequence (#5, #14, #15) — double slashes, rings, ramps → duos, loops, ordered paths.
Logo → app (proposta, ranqueada por acesso)
Mapeamento proposto entre cada logo e a mini-app correspondente, ordenado pelos 16 apps mais acessados (pageviews reais do Umami, analytics.devfellowship.com). A ordem dos apps é orientada por dados; o pareamento logo↔app é interpretativo — o motivo visual (chart / chevron / camadas / slash) casado com a função do app. Sujeito a confirmação.