SaaS: A ferramenta certa na hora certa
Bem a melhor ferramenta é aquela que resolve seu problema.
Isso é invariável em todo o mundo da programação.
No mundo do SaaS, sendo um desenvolvedor solo, você não deve confiar apenas em si mesmo.
Adicione Testes, testes, mais testes, enfie testes em tudo que puder e use softwares maduros.
Mas, ao mesmo tempo não deixe seu software parado no tempo.
As duas grandes divisões
Dentro do mundo de software existem duas grandes divisões frontend e backend
E uma parte menor que é DevOps.
Este post, em especifico é sobre frontend e backend.
Assuma que que DevOps você pode contratar outros SaaS em vez de implementar você mesmo.
FrontEnd
Para o Frontend precisamos atingir o máximo de plataformas sozinho com uma interface moderna possa atingir:
- Desktop
- Web
- Mobile
Além disso, é preferencial que seguirmos técnicas de design como:
Com isso, temos uma base boa para ter um software que não fica irritante com o tempo.
No geral, use Flutter para evitar ter que lidar com diversas plataformas manualmente.
BackEnd
Para começar, precisamos entender do que é importante no backend de um SaaS.
Nada mais importante do que usar um framework maduro.
E no caso, pessoalmente falando, o melhor que temos é o Ruby On Rails e veja que podemos migrar de Ruby para JRuby garantindo que a aplicação pode escalar se e somente se for necessário.
Adote testes como dogma literalmente, teste tudo, se tiver erro gere um teste, se tiver um bug teste, se tiver uma vulnerabilidade teste também.
Coloque:
Veja que a ideia principal é que as libs do rails são maduras e testadas facilmente acopladas e no geral é muito melhor do que depender de si mesmo que só na cabeça vai querer inventar procedimentos de segurança que vai fazer pagar fortunas em indenizações.
Vide Noticia sobre o Saphoos.
DevOps
Dentro de seu Software as Service.
Você quer evitar ao máximo problemas de responsabilidade fiscal.
Então a coisa mais inteligente a se fazer é se mover de capex (investimento na própria infra) para opex (contrato de serviços externos).
Use serviços como paper-trail, use a amazon-web-service …
O software continua sendo sua responsabilidade mas, problemas internos de servidores gerenciados por provedores não recaem diretamente sobre você, reduzindo riscos e permitindo focar no desenvolvimento.
Contrate Hackers Ético e faça testes de segurança, corrija brechas periodicamente.
Conclusão
No geral, a combinação ideal seria usar um backend em rails e um frontend em flutter.
Para ter diversas plataformas e um backend sólido, caso precise de algo customizado, use um microsserviço da forma que achar melhor contanto que haja contratos fortes e testes.
Jamais esqueça os testes.