Como tenho trabalhado mais ou menos em tempo integral no [Neotoma](https://neotoma.io) (anteriormente Asheville) desde o verão passado, tive a oportunidade de realmente começar a trabalhar em software de código aberto pela primeira vez.

Fico feliz em dizer que, além de trabalhar em repositórios disponíveis publicamente específicos para Neotoma, criei alguns repositórios que serão úteis como módulos para outros aplicativos Node.js em geral:

- [Park Ranger](https://github.com/markmhx/park-ranger): Um gerenciador para dependências específicas do ambiente, como variáveis de ambiente, arquivos de configuração e arquivos de certificado SSL.

  É chamado de “guarda florestal” porque um programa de computador sempre é executado em um determinado ambiente, muitas vezes determinado por seu dispositivo ou por um ambiente específico escolhido dentro desse dispositivo, juntamente com outros ambientes possíveis. E quem você procura quando está curtindo o ambiente natural e tem dúvidas sobre isso…? Isso mesmo, um guarda florestal.

  Basicamente, continuei reescrevendo o mesmo código utilitário em meus repositórios para lidar com diferenças baseadas no ambiente, principalmente entre minha máquina de desenvolvimento local e o host de implantação. Então, refatorei tudo neste módulo para acelerar as melhorias e a manutenção do código no futuro. Meu ponto de partida foi [dotenv](https://github.com/motdotla/dotenv), mas rapidamente percebi que era simples demais para minhas necessidades.

- [Hoist](https://github.com/markmhx/grunt-hoist): um conjunto de tarefas Grunt para implantar aplicativos Node.js em hosts e executar procedimentos remotos relacionados.

  Semelhante à minha experiência com Park Ranger, me vi reescrevendo pequenas variações das mesmas rotinas de implantação em repositórios (como sincronizar arquivos novamente, executar "npm install" e reiniciar o servidor remoto). Então criei esse conjunto de tarefas (que ficam automaticamente disponíveis para projetos pais como scripts npm) para padronizar a maneira como abordo isso. Eles também simplificam muito minha abordagem de desenvolvimento contínuo, mesmo quando eu crio novos microsserviços ou faço alterações rápidas nas dependências locais ao longo do caminho.

- [Proxy](https://github.com/neotoma/proxy): Um servidor proxy para solicitações HTTP e HTTPS.

  Quando comecei a hospedar as primeiras versões do Neotoma para testes fechados, precisei de uma maneira simples de oferecer suporte a diferentes servidores rodando no mesmo host em protocolos (HTTP vs. HTTPS), portas e subdomínios. Por exemplo, o mesmo host que usa HTTP para servir a página de destino do Neotoma também envia solicitações HTTPS para sua API subjacente e solicitações HTTP e HTTPS para o aplicativo da web Neotoma real em execução em um subdomínio para teste.

  Embora este repositório esteja sob a organização Neotoma, ele pode ser usado por qualquer pessoa que queira fazer o mesmo com seus hosts que executam vários servidores.

Há vários outros repositórios públicos em desenvolvimento mais diretamente relacionados ao Neotoma que não listarei aqui, mas podem ser encontrados na [organização Neotoma GitHub](https://github.com/neotoma). Embora eu ainda não tenha buscado contribuições ativamente, todos os repositórios listados acima e naquela organização estão abertos para receber solicitações caso você queira fazer alguma alteração!