Este é o repositório do blog da comunidade Craft & Code Club, uma comunidade dedicada ao artesanato de software, onde compartilhamos conhecimento sobre Algoritmos, Estruturas de Dados, System Design, Engenharia de Software Moderna, Domain-Driven Design, Clean Architecture e outros tópicos avançados de desenvolvimento de software.
O Craft & Code Club é uma comunidade de desenvolvedores apaixonados por qualidade de código e boas práticas de desenvolvimento. Nosso objetivo é compartilhar conhecimento e experiências através de:
- 📝 Artigos técnicos no blog
- 🎥 Conteúdo no YouTube
- 💬 Discussões no Discord
- 🤝 Eventos e encontros
- 📖 Clube do Livro
Linkd para participar no Discord:
https://discord.gg/V7hQJZSDYu
Este blog foi desenvolvido como um template open source, e você está convidado a usá-lo! Se você tem uma comunidade de tecnologia ou quer criar seu blog pessoal, sinta-se à vontade para fazer um fork e adaptar às suas necessidades.
- Faça um fork deste repositório
- Personalize como quiser
- Os posts eventos são escritos em Markdown e ficam na pasta
_content/
- Next.js 15 - Framework React com suporte a SSG
- TypeScript - Tipagem estática
- Tailwind CSS - Estilização e design system
- next-themes - Suporte a tema claro/escuro
- remark - Renderização de Markdown
- gray-matter - Parsing de frontmatter dos posts
# Instalar dependências
npm install
# Executar em modo de desenvolvimento
npm run devO site estará disponível em http://localhost:3000
Este blog usa exportação estática do Next.js, permitindo hospedagem em qualquer servidor estático:
# Gerar build estático
npm run build
# Os arquivos estáticos estarão na pasta 'out'- Crie seus posts em Markdown na pasta
_content/posts/ - Crie seus eventos em Markdown na pasta
_content/events/ - Configure os metadados do site em
src/app/layout.tsx - Ajuste as cores e tema em
tailwind.config.js - Personalize os componentes e páginas em
src/components/esrc/app/
Para a ajudar na indexação e SEO, os posts e eventos devem seguir um formato específico dos slugs. O slug é a parte da URL que identifica o post ou evento. O slug deve ser escrito em letras minúsculas, com palavras separadas por hífens. Para manter a consistência, vamos também seguir um padrão de nomenclatura para os arquivos Markdown. A seguir, mostraremos cada um dos padrões de slug tanto para posts quanto para eventos.
Os posts devem ser criados na pasta _content/posts/ seguindo o formato:
---
title: 'Título do Post'
date: '2024-03-20'
description: 'Descrição do post que aparecerá na listagem'
topics: ['tag1', 'tag2', 'tag3']
authors:
- name: 'Nome do Autor'
link: 'https://github.com/nomedautor'
---
Conteúdo do post em Markdown...<context>-<titulo-do-post>
## Exemplo:
`dsa-dijkstra.md`
- Algoritmos e Estruturas de Dados
ds-<titulo>.md
- System Design
sd-<titulo>.mdsd-<titulo>-<parte>.md
- Outros
<titulo>.md
Os eventos devem ser criados na pasta _content/events/ seguindo o formato:
---
title: 'Título do Evento'
description: 'Descrição do evento que aparecerá na listagem'
date: '2024-03-20'
time: '21:00-22:00'
location: 'Local do Evento'
type: 'online' # ou 'hybrid'
registrationLink: 'https://link-de-inscricao.com'
recordingLink: 'https://link-da-gravacao.com'
postLink: 'https://link-do-post.com'
speakers:
- 'Nome do Palestrante 1'
- 'Nome do Palestrante 2'<context>-<titulo-do-evento>
## Exemplo:
`dsa-<titulo>.md`
- Algoritmos e Estruturas de Dados
dsa-<titulo>.md
- Clube do Livro de System Design
book-sd-<titulo>.md
- Lives
live-<titulo>.md
- Outros
<titulo>.md
Os roadmaps são recursos de aprendizado estruturados que ajudam a comunidade a navegar por tópicos complexos de forma organizada. Atualmente, temos o Roadmap de Algoritmos e Estruturas de Dados disponível em /roadmap/dsa.
- URL: https://craftcodeclub.io/roadmap/dsa
- Navegação: Clique em "Roadmap DSA" no menu principal
Os roadmaps são configurados via arquivos YAML na pasta _content/roadmap/. Para editar o roadmap DSA:
- Arquivo de Conteúdo:
_content/roadmap/dsa.yml - Documentação Completa:
_content/roadmap/README.md - Validação Local: Execute
npx tsx scripts/validate-roadmap.ts
Exemplo de estrutura YAML:
categories:
- title: "Estruturas de Dados Básicas"
items:
- title: "Arrays e Listas"
description: "Estruturas fundamentais para armazenamento sequencial de dados"
links:
- icon: "book"
title: "Artigo - Arrays"
url: "https://exemplo.com/arrays"
target: "_blank"
- icon: "video"
title: "Vídeo - Listas Ligadas"
url: "https://exemplo.com/listas"
target: "_blank"Tipos de ícones disponíveis:
book- Artigos e documentaçãovideo- Vídeos e tutoriaisfile-text- Posts do blogcode- Exercícios e códigoexternal-link- Links externosgraduation-cap- Cursosplay-circle- Demonstrações interativas
Validação:
Antes de fazer commit das suas alterações, valide o YAML:
npx tsx scripts/validate-roadmap.tsO script verifica:
- ✅ Sintaxe YAML correta
- ✅ Campos obrigatórios presentes
- ✅ URLs válidas
- ✅ Tipos de ícone corretos
- ✅ Valores de
targetválidos (_blankou_self)
Contribuições são bem-vindas! Se você encontrou um bug ou tem uma sugestão de melhoria:
- Abra uma issue descrevendo o problema/sugestão
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido com 💙 pela comunidade Craft & Code Club