Quando estamos iniciando em desenvolvimento web e sempre bom ter formas gratuitas de colocar seu projeto no ar e mostrar para quem quiser sem a necessidade de estar rodando no seu computador. Neste post vou listar algumas plataformas onde isso e possível.
Páginas Estáticas
Netlify
A netlify apresenta uma otima solução desenvolvimento de sites web, tornando o processo de deploy rapido e intuitivo, tambem conta com varias features como Netlify Functions que são cloud functions permitindo que possua um backend em sua aplicação, tais functions que usei para criar alguns bots para o telegram e Netlify CMS que é o gerenciador de conteúdo que estou usando atualmente.
Tal ferramenta também possui funcionalidades de previews de build, integração com o github então toda vez que ocorrer um push no repositório ele irá iniciar a build da aplicação, sendo a branch master
ou main
a build que irá para o subdominio desejado e suas outras branchs apenas para review (isso pode ser controlado nas configurações de deploy.
Github Pages
Githuh pages funciona muito bem para seus projetos do github, se integra super bem com o github actions para automatizar a build caso necessário como exemplificado aqui, seu dominio sera atrelado aos subdominios do github, cujo será nome_de_usuário.github.io/repositório
ou, se seu repositório tiver o nome nome_de_usuario.github.io
este será seu dominio.
Você pode ler mais sobre isso aqui.
Back-end
Heroku
Heroku é uma uma plataforma que lida com aplicações como contêiners que eles chamam de dynos, que podem ser escalados de forma facilitada, seu serviço gratuíto permite que crie até 5 dynos, suportando várias linguagens de programação e frameworks, integração de desenvolvimento contínuo, e pipelines que facilitam a implementação de instâncias para homologação por exemplo.
Render
Render é uma solução em núvem para aplicações web, seja backend ou frontend, banco de dados postgres, cronjobs, workers… Porém, suas contas grátis funcionam por 90 dias apenas para banco de dados e webservices. Você pode ler mais sobre isso aqui e suas instâncias dormem depois de um tempo de inatividade, muito parecido com o heroku nesses quesitos.
CronJobs
Os cron-jobs são úteis em aplicações onde é necessário executar algo de tempos em tempos, assim você pode programar para executar algo em sua api em tais dias e tais horas de forma automática. Seja um script ou seu site.
Banco de Dados
ElephantSQL
Banco de dados Postgres com 20 megas grátis. Rápido e de fácil conexão.
AtlasDB
Banco de dados do tipo MongoDB, orientado a documentos (NoSQL), de ate 512 megas gratuítos, já escrevi sobre esse banco em outro post.
Firebase
Firebase é a solução do google para banco de dados em tempo real, de fácil integração com outros produtos da google, possui um banco de dados orientado a documentos Firestore
com escalonamento automático, também possui soluções de cloud functions, storage e outros.
FreeMySQLHosting
Banco de Dados relacional usando MySQL, com até 5 megas gratuítos, não usei muito, mas é bom ter uma opção MySQL para alguns casos.
Tunelização
Túneis são casos especiais, pois requerem que você transmita os dados através de um servidor dedicado por sua parte para o servidor deles e então outras pessoas podem acessar através destes tuneis. É bem útil caso queira mostrar para um cliente como está o desenvolvimento sem precisar configurar muita coisa, já que vai rodar direto da sua máquina.