O que aprendemos com um ano de ChiselStrike?
No ano passado, construímos o ChiselStrike ao ar livre. Durante esse tempo, construímos uma grande comunidade do Discord com mais de 200 membros e obtivemos uma quantidade razoável de atividades de código aberto.
Somos veteranos de código aberto, então, para nós, construir isso - ou o que quer que construamos - como um projeto de código aberto sempre foi um acéfalo. Mas, como empresa, nosso objetivo era usar isso para fortalecer nossa oferta de back-end como serviço, para onde as pessoas pudessem implantar o código ChiselStrike.
Desde o início , tínhamos em mente que construiríamos uma solução SQLite on-the-edge para alimentar a plataforma ChiselStrike. No entanto, à medida que nos aproximamos de cumprir esse objetivo, e combinado com outros feedbacks que recebemos da comunidade, percebemos que este, que batizamos de Turso , deveria se tornar nosso principal produto.
Hoje, estamos descontinuando a oferta BaaS hospedada (mas não o projeto ChiselStrike Open Source, mais sobre isso abaixo), para focar no Turso.
Descontinuar um projeto nunca é uma decisão fácil. Mas, ei, é melhor do que demitir 20% de sua equipe, citar alguma personalidade famosa e vomitar algum e-mail vazio de “Eu assumo total responsabilidade”.
Neste artigo, gostaria de dizer algumas palavras sobre os aprendizados que nos levaram a fazer isso e qual é o futuro do projeto ChiselStrike Open Source.
O que as pessoas adoram no ChiselStrike
Recebemos muito feedback positivo sobre as coisas que construímos. Para resumir, vou destacar os principais:
É tudo TypeScript
Ao contrário dos ORMs padrão, ChiselStrike é TypeScript primeiro, não banco de dados primeiro. Os modelos são definidos no TypeScript e não são gerados automaticamente a partir de uma representação intermediária. Com a adição da API do cliente , os tipos são propagados por toda parte, então tudo é typesafe. Não há migrações.
A experiência do desenvolvedor é ótima
Construído em SQLite, é fácil começar localmente e não há necessidade de conectá-lo a bancos de dados externos, configurações complexas e similares.
Além disso, uma vez que você tenha um modo de classe TypeScript, .crud()é tudo que você precisa para gerar uma API CRUD REST completa. Você está pronto para ir em segundos.
O que as pessoas não gostaram no ChiselStrike
No entanto, recebemos feedback inequívoco sobre algumas coisas que não estavam certas.
Não há escotilha de escape
Por mais que tenhamos recebido elogios por nossas abstrações, os desenvolvedores nos disseram que gostariam de ter a capacidade de descer a camada SQL quando necessário. Essa é uma das principais forças motrizes por trás de nosso investimento em libSQL como um projeto de código aberto e no Turso como um produto construído sobre essa base.
É confuso entender onde meu código está sendo executado
Serverless está se tornando uma segunda natureza para desenvolvedores web. Nossa intenção original era que os desenvolvedores implantassem seus aplicativos em sua plataforma sem servidor favorita e o “código de back-end”, que vive junto com os dados, na plataforma ChiselStrike.
Mas isso imediatamente levantou questões sobre qual código vai para onde? Posso implantar o próprio ChiselStrike como parte do meu projeto Next.js? Os dois erros mais comuns que as pessoas cometeram na plataforma foram implantar todo o aplicativo da web ou tentar adicionar o código ChiselStrike para ser implantado usando funções sem servidor no Vercel, Netlify ou Cloudflare.
O futuro do nosso projeto de back-end ChiselStrike Open Source
Ainda mantemos o projeto Open Source, mas apenas para pessoas que desejam auto-hospedá-lo. Fly.io e Digital Ocean são ótimas plataformas para isso, ou qualquer infraestrutura onde você tenha acesso a um servidor.
Devido à maneira como vinculamos inicialmente o código e os dados em nossa arquitetura, o ChiselStrike incorpora um tempo de execução do TypeScript (Deno).
A decisão de não hospedar mais código e focar exclusivamente na camada de banco de dados também oferece algumas possibilidades muito atraentes.
Em primeiro lugar, podemos simplificar o produto de banco de dados removendo Deno da compilação e contando com um tempo de execução externo. Colocar o tempo de execução no mesmo processo que o banco de dados, embora ótimo para desempenho, os vincula muito próximos à flexibilidade de que precisamos para seguir em frente. Em vez disso, os desenvolvedores podem contar com outros produtos hospedados na borda, como o Cloudflare, para executar seu código de back-end.
Em segundo lugar, podemos introduzir uma nova camada de segurança no banco de dados que permite que o código front-end consulte o banco de dados diretamente para obter o melhor desempenho de borda possível, sem comprometer a integridade dos dados do aplicativo.
Palavras finais para todos os nossos desenvolvedores leais
Ainda esperamos que você continue a se beneficiar do back-end ChiselStrike Open Source para facilitar a criação de seus back-ends. E se você ainda não entrou no nosso Discord , ainda estamos lá!
E se você gostou do que fizemos até agora, temos certeza de que também vai adorar o Turso. O Turso agora está em versão beta privada e você pode se juntar à nossa lista de espera .





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)