Paul Tsnobiladzé 🇫🇷🇬🇪🇺🇦
@tsnobip.bsky.social
@rescript-lang.org core contributor. Fond of geopolitics, space exploration, functional programming, typefaces and music. I know it's a bit eclectic :)
I'm very excited to share a project I've vibe coded the last few days, a movie rating web app based on @atproto.com built in @rescript-lang.org with @z-th.bsky.social's amazing res-x framework, the whole thing runs on a single lambda. Sources linked in the footer. Enjoy! curio.social
Curio
curio.social
I've been using postgraphile for years at work, including latest V5 RCs and it's just a pure gem, very fast and extremely flexible, plus it works perfectly with rescript-relay! Kudos @benjie.dev for the great work!
PostGraphile V5 is here! New execution engine. New export system. New extension capabilities. Same focus on productivity and performance! This is the biggest release we’ve ever shipped. See what changed: postgraphile.org/news/2026-0...
This is definitely a great improvement to try recently merged PRs on real projects!
@rescript-lang.org has officially adopted @pkg.pr.new, which means we now have npm packages for every commit 🚀 No more npm link or waiting for an alpha release! Thank you @aslemammad.bsky.social, @amirsakhravi.bsky.social and the @stackblitz.com team for supporting the ecosystem.
What a pleasure when you can combine your passions! In my case, programming and typography. I'm happy to share a @typst.app template for résumés I've just created, use it and tell me what you think about it!
This will simplify my aws bindings so much!
We just landed a new (experimental) feature for v12 - nested record definitions! Records is a corner stone in ReScript. However, they can't be nested without explicit definitions. Until now! Will be especially useful for deeply nested records (like options objects) not intended to be reused.
it was so cool to finally meet these great people in person!
We are happy to announce that there will be another "ReScript Retreat" in 2025, once again in Vienna, Austria. Check out this new blogpost to get an idea what we did last year. rescript-lang.org/blog/retreats
Congrats @z-th.bsky.social, you've really done a great job at this!
I had the great opportunity to be on Developer Voices to talk a bit about ReScript!
Very happy to announce you can now run code (including when there are runtime dependencies from the standard libraries) in @rescript-lang.org playground! Just remember to enable “Auto-run”. Have fun! rescript-lang.org/try?version=...
ReScript Playground
Try ReScript in the browser
rescript-lang.org
Happy new year! We're almost ready to release an exciting editor feature - dot completion everywhere! "." will now trigger completions for more than just record fields. Example: you'll get completions for pipeable functions from the module of that type. Examples and videos ⬇️
La pollution lumineuse du ciel s'aggrave rapidement. Cela a un impact sur l'astronomie, sur la biodiversité, la santé et la consommation d'énergie. Je suis convaincu qu'on a besoin d'une prise de conscience collective. Pourquoi? Thread👇
While I love partial applications, automatic partial applications can be quite a fancy footgun when you think you applied the function but actually just created a partially applied function. Explicit partial application really hits the sweet spot!
Since v11, ReScript has support for explicit partial application of functions using the "..." syntax at the end of the function call. Partial application of functions is useful in many scenarios, and this explicit syntax makes code easier to read and reason about.
I was so glad to land this! Very convenient to use existing js tooling for sql/graphql.
ReScript has first class support for tagged template literals since v11.1. A useful JS technique that's important for interop, and lends itself well to some pretty interesting use cases!
JSX is a 1st class language feature in ReScript. Since v11.1 you've been able to use any createElement-style JSX transform you'd like with ReScript. Image shows Preact, but there are examples in the community even for non-client side fws, like emitting plain HTML server side.
ReScript ships with native async/await support that also compiles to async/await in JavaScript. You can pattern match directly on the await, and handle errors in the pattern match as well. No need to wrap things manually in try/catch, the compiler still emits the right thing.
This is the kind of small features that really improve the dev quality of life, it feels so natural the moment you try it!
We shipped a %todo extension point in v11.1. It makes it easy to postpone implementing something but not have the compiler block you continuing working. It'll produce a warning by default, and it's easy to configure the compiler so that it emits a hard error in for example CI.
most compilers would be celebrated for compiling 375k LoC in 33 seconds, but ReScript Team didn't settle for that and now it's now 3 times faster!!
In v12 we're hoping to ship Rewatch, ReScript's new build system, made by Jaap and Roland. Below is compiling a 375k LoC repo using the current build system vs Rewatch. 1. Current build system: 33.8s 2. Rewatch: 12.27s Speedup by a factor of 2.75 (!) in this example.
We'll ship our new standard library Core by default in v12. Core replaces the current standard lib and most of Belt, with one unified experienced that's built to look and feel more like the JavaScript APIs you're used to, while not sacrificing ergonomics.
We're further closing the syntax gap between ReScript and JavaScript in in v12: - First class regex syntax (previously needed wrapping in %re("<pattern>")) - Remainder operator - Use +, -, / and * for any number type, dedicated operators per type not needed And more coming!
Awesome work @nojaf.com !! Even the doc is great, can't wait to try it in my own project!
A first version of the new #ReScript WebAPI bindings has been published to npm: www.npmjs.com/package/@res.... You can find early documentation rescript-lang.github.io/experimental... Please try it out and provide feedback via GitHub issues!
This closes the feature gap between polymorphic and regular variants, I'm so glad this landed!
Another new feature in v12 - variant type spreads in pattern matching! This allows you to refine variant types and easily match on a whole subset type without having to enumerate it. This was always possible with polyvariants, and now also with regular variants.
Bluesky Accounts have RSS built in. Just add “RSS” to the end of any profile page. Here’s @hankgreen.bsky.social’s RSS link bsky.app/profile/hank...
In v12, several new features come together to enable powerful new use cases. Dict pattern matching and with untagged variants make it easy to hand write JSON decoders/encoders with great DX, and also get efficient and readable JS output. More power, less complexity.
Though I have 50% less followers than on X, it seems like I have 10 times more reach and interactions, smaller networks with less algorithms rock!
swift = hipster ocaml rust = systems ocaml elm = baby ocaml sml = boomer ocaml f# = enterprise ocaml rescript = web ocaml kotlin = jvm ocaml coq = nerd ocaml gleam = shiny ocaml scala = drama ocaml haskell = lazy ocaml just learn ocaml already