¿Qué hemos aprendido de un año de ChiselStrike?

Feb 02 2023
El CEO de ChiselStrike comparte las lecciones aprendidas de nuestro primer año.
Durante el año pasado, hemos estado construyendo ChiselStrike al aire libre. Durante este tiempo, hemos construido una gran comunidad de Discord con más de 200 miembros y obtuvimos una cantidad decente de actividad de código abierto.

Durante el año pasado, hemos estado construyendo ChiselStrike al aire libre. Durante este tiempo, hemos construido una gran comunidad de Discord con más de 200 miembros y obtuvimos una cantidad decente de actividad de código abierto.

Somos veteranos del código abierto, por lo que para nosotros construir esto, o lo que sea que construyamos, como un proyecto de código abierto siempre fue una obviedad. Pero como empresa, nuestro objetivo era usar esto para potenciar nuestra oferta de backend como servicio, donde las personas pudieran implementar el código ChiselStrike.

Desde el principio , teníamos en mente que construiríamos una solución SQLite-on-the-edge para potenciar la plataforma ChiselStrike. Sin embargo, a medida que nos acercábamos a cumplir ese objetivo, y combinado con otros comentarios que recibimos de la comunidad, nos dimos cuenta de que esto, al que llamamos Turso , debería convertirse en nuestro producto principal.

Hoy, estamos descontinuando la oferta alojada de BaaS (pero no el proyecto de código abierto ChiselStrike, más sobre eso a continuación), para centrarnos en Turso.

Descontinuar un proyecto nunca es una decisión fácil. Pero oye, es mejor que despedir al 20 % de tu personal, citar a alguna personalidad famosa y arrojar un correo electrónico de BS vacío que dice "Asumo toda la responsabilidad".

En este artículo, me gustaría decir algunas palabras sobre qué aprendizajes nos llevaron a hacerlo y cuál es el futuro del proyecto de código abierto ChiselStrike.

Lo que a la gente le encantó de ChiselStrike

Hemos recibido muchos buenos comentarios sobre las cosas que construimos. Por brevedad, destacaré las principales:

Todo es mecanografiado

A diferencia de los ORM estándar, ChiselStrike se basa primero en TypeScript, no en la base de datos. Los modelos se definen en TypeScript y no se generan automáticamente a partir de una representación intermedia. Con la adición de la API del cliente , los tipos se propagan por todas partes, por lo que todo tiene seguridad de tipos. No hay migraciones.

La experiencia del desarrollador es genial.

Basado en SQLite, es fácil comenzar localmente y no es necesario conectarlo a bases de datos externas, configuraciones complejas y similares.

Además, una vez que tenga un modo de clase TypeScript, .crud()es todo lo que necesita para generar una API CRUD REST completa. Estás listo para ir en segundos.

Lo que a la gente no le gustó de ChiselStrike

Sin embargo, hemos recibido comentarios inequívocos sobre algunas cosas que no estaban del todo bien.

No hay escotilla de escape

Por mucho que recibimos elogios por nuestras abstracciones, los desarrolladores nos dijeron abrumadoramente que les gustaría tener la capacidad de bajar la capa SQL cuando fuera necesario. Esta es una de las principales fuerzas impulsoras detrás de nuestra inversión en libSQL como un proyecto de código abierto y Turso como un producto construido sobre esa base.

Es confuso entender dónde se ejecuta mi código.

Serverless se está convirtiendo en una segunda naturaleza para los desarrolladores web. Nuestra intención original era que los desarrolladores implementaran su aplicación en su plataforma sin servidor favorita y el "código de back-end", que vive junto con los datos, en la plataforma ChiselStrike.

Pero eso inmediatamente planteó preguntas sobre qué código va a dónde. ¿Puedo implementar ChiselStrike como parte de mi proyecto Next.js? Los dos errores más comunes que cometieron las personas en la plataforma fueron implementar toda su aplicación web o intentar agregar el código ChiselStrike para implementarlo usando funciones sin servidor en Vercel, Netlify o Cloudflare.

El futuro de nuestro proyecto backend de código abierto ChiselStrike

Todavía mantenemos el proyecto de código abierto, pero solo para las personas que desean alojarlo ellos mismos. Fly.io y Digital Ocean son excelentes plataformas para eso, o cualquier infraestructura en la que tenga acceso a un servidor.

Debido a la forma en que vinculamos inicialmente el código y los datos en nuestra arquitectura, ChiselStrike incorpora un tiempo de ejecución de TypeScript (Deno).

La decisión de no alojar más el código y centrarse exclusivamente en la capa de la base de datos también ofrece algunas posibilidades muy atractivas.

En primer lugar, podemos simplificar el producto de la base de datos eliminando Deno de la compilación y confiando en un tiempo de ejecución externo. Colocar el tiempo de ejecución en el mismo proceso que la base de datos, si bien es excelente para el rendimiento, los une demasiado para la flexibilidad que necesitamos para avanzar. En cambio, los desarrolladores pueden confiar en otros productos alojados en el borde como Cloudflare para ejecutar su código de back-end.

En segundo lugar, podemos introducir una nueva capa de seguridad en la base de datos que permita que el código frontend consulte la base de datos directamente para obtener el mejor rendimiento posible, sin comprometer la integridad de los datos de la aplicación.

Palabras finales para todos nuestros leales desarrolladores

Todavía esperamos que continúe beneficiándose del backend de código abierto de ChiselStrike para que la creación de sus backends sea muy sencilla. Y si aún no te has unido a nuestro Discord , ¡todavía estamos allí!

Y si te encantó lo que hemos hecho hasta ahora, estamos seguros de que también te encantará Turso. Turso se encuentra ahora en versión beta privada y le invitamos a unirse a nuestra lista de espera .