We believe automatic discovery + i18n processing is the most natural next step for i18n on the web, since LLMs now exist.
And we feel that not only will industry standard i18n libraries like i18next or react-intl adopt it soon, but frameworks like next.js or remix.js themselves will make it one of their core features.
We originally built Lingo.dev Compiler scratching our own itch, but we're really excited to see how the industry will evolve from here!
I tried Kysely while evaluating libraries before writing my own. Its heavy reliance on strings for everything was a turn-off because it stops you from using any of the refactoring options Typescript offers. You cannot rename a column for example and have it applied automatically.
This library tries to get as close to sql as possible. Basically write sql through function calls. Your IDE will autocomplete which method to call. What you gain is type safety. Change the name or type of a column and it propagates through your codebase.
Rado can be described as sql behind function calls that achieves type safety in Typescript. It does not include any of the ORM abstractions that Drizzle has.
Just taken a look. It's very nice to use. It appears a little early at the moment, and I'm not sure, but it would be nice if it had integrated puppeteer integration for e2e testing (I didn't look for very long, so I may have missed it!).
We're launching an alpha version of Alinea to the public today. What's Alinea? Our take on content management: build a schema, boot up the dashboard, create content and query data with your favorite JavaScript framework. We focus on:
- Fully typed content - type-safe experience for TypeScript users
- Storing content in Git - but making it fully queryable
- Rich set of fields - easily added to with custom fields
- Hierarchical content - make it easy for editors to find content
- Zero latency - embedded SQLite to query data without network overhead
- Collaborative - fields are built on Y.js allowing conflict-free multiplayer editing
- Easy hosting - works fine in a serverless function
It's still quite early in development but we feel our alpha version has enough structure that we can get to a stable version in the short term, without breaking the foundations that we find work well.
A feature that Haxe offers could help here. Abstracts are compile time only types of which the implementation is fully inlined. Meaning we could define an abstract over ArrayBuffer which has an iterator of abstracts over Float64Array which define the x and y property getters. Once compiled the code will look very similar to the example given. It's one of the things I miss the most in TypeScript, coming from haxe.
https://github.com/benmerckx/find-jsx-strings