Josh Vlk
@vlkpack.com
870 followers 600 following 940 posts
Dad of 2, software developer, functional programming enthusiast, PC gamer, and very into Pathfinder. Contributor to @rescript-lang.org.
Posts Media Videos Starter Packs
If I don't write things down they will stay in my brain and keep me up all night. I dreamed last night that I was building out a queue with Effect to handle tracking calls.
I keep obsidian open while I'm at conferences. It helps me unload all the ideas in a way where I can revisit them later.
Mark has been putting a crazy amount of work into this. I'm very excited that this is close to being released!
_Very_ excited to announce that I've posted the 3 Immer perf PRs (tweaks, finalization cbs, array overrides)! Combined they give 30-90% speedup vs v10, avg of 57%!

Still some more potential improvements to investigate, and have to discuss release strategy:

github.com/immerjs/imme...
Immer perf appears to have gotten worse over time, based on updated benchmarks · Issue #1152 · immerjs/immer
Summary I've put together some updated benchmarks for various versions of Immer and other immutable update libs vs a hand-written reducer, especially since the current docs at https://immerjs.githu...
github.com
Safe array access, null safety, no implicit conversions, nominal typing, and exhaustiveness checking. These are just a few of the things that ReScript does right.

https://youtu.be/26jUYi6TiMw?si=jWUcGULDlpOtGSMq
Reposted by Josh Vlk
Have you tried rewriting it in Rescript?
If ya ain't got ADTs my anaconda don't want none.
Frontend devs should be required to test and build on real devices with throttled networks.

I've seen too many cases of code that doesn't handle slow networks or limited CPUs.
type data = | Loading | Error | Empty | Content(array<string>)

It's so much better.
I've hit the point where if I don't have variant/sum types I can't take the code seriously.

If I have to see another line of code checking data.loading, data.error, data.content.length > 1 I will scream internally.
I've found the HM type system to be perfect for what I want out of types. Plus once you understand it there are many languages that use it, or something similar, like Ocaml, Rust, ReScript, Gleam, etc...
Using types to represent business logic speeds up development, allows for large teams to understand the code better, and enforces that all possible states are handled correctly. Not just for existing logic, but also for new logic.

Clear types like this can also help AI agents gain context.
Using variant types in ReScript to represent business logic
Types can be great at creating documentation to know what parameters are used in function, what a...
dev.to
"ReScript gave me something I didn’t expect: calm. The “if it compiles, it runs” kind of calm you feel in Rust or Haskell — but inside the JavaScript ecosystem."

https://dev.to/cristiansifuentes/tired-of-typescript-why-rescript-finally-clicked-for-me-narrative-2d27
Remix 3 exists because not everyone wants to use React.
Sure is! A stoned hackathon with only vibe coding would be hilarious.
"TypeScript improved JS by adding types; ReScript improves types and then targets JS. That shift unlocks soundness, ADTs, and a simpler mental model for data flow — the things that tame large frontends."
ReScript in 2025 — Fast, Sound, and Ready for React (Hybrid Guide)
ReScript in 2025 — Fast, Sound, and Ready for React (Hybrid Guide) Highlights ...
dev.to
Rescript is truly a game changer for web development. Types are great, but types shine when you can rely on a sound type system, typed errors, and easy to use variant types.
ReScript 2025 — The Top JavaScript Alternative (Tech Deep Dive)
ReScript 2025 — The Top JavaScript Alternative (Tech Deep Dive) TL;DR — ReScript gives...
dev.to
I think the context type doesn't exist if you don't set it. You can't have QueryClient | undefined unless you somehow assign that value to the context.
Twice in a row I've been the first to die playing call of Cthulhu one shots. I like to put myself in danger and going insane is part of the fun!
I still have questions about how well it will scale, or how it would work with large teams that have devs with varying levels of experience, but it has my attention.
The @remix.run team accomplished their goal of climbing up the mountain, starting from a base of web standards like events and Dom nodes, and built on those until they had a framework.
I liked it! It deviates from the current component based framework patterns and truly feels like they rebuilt things from the ground up for the modern web.
I have Remix 3!
A picture of a CD with rainbow colors and a vintage logo for Remix 3.
Hello from Remix Jam! I'm excited to learn what Remix V3 will be!
A picture of me wearing my rescript shirt in front of a remix jam sign. Micheal Jackson on stage kicking off the event.