Josh Vlk
banner
vlkpack.com
Josh Vlk
@vlkpack.com
Dad of 2, software developer, functional programming enthusiast, PC gamer, and very into Pathfinder.

Contributor to @rescript-lang.org.
Pinned
I was on the latest episode of @deadcode.website to talk about @rescript-lang.org! If you've heard the name and wondered what's going on with it in 2025, give the episode a listen!

shows.acast.com/dead-code/ep...
Ground Zero-Cost Bindings (with Josh Vlk) | Dead Code
shows.acast.com
Reposted by Josh Vlk
And just like that, SFWA capitulates. Keep fighting. It works.
December 19, 2025 at 9:45 PM
I think I'm done with LLMs (AI). I've been dabbling with them for about 6 months, and I've wasted too much time tweaking prompts and rules and coaxing an idiot computer into success. This is time that would be better served by learning for myself, or teaching a junior dev to do the task.
December 21, 2025 at 11:17 PM
Today is my wife's birthday, and we spent it at Disney World with our 2 kids and my brother. My 6 year old daughter begged us to ride Tron, and we caved and let her. She didn't freak out on the ride, and honestly I was more scared the first time I did it 2 years ago. I'm so proud of her!
December 17, 2025 at 2:03 AM
I've been doubling down on this idea. Optional keys are an anti pattern when using a typed language.

This is something that is difficult to get TypeScript devs to adopt. They just want to write typed JavaScript. They aren't writing code in a type first mentality.

We can do better.
Here's my hot take of the day:

Object types with optional keys are a code smell and means that the data has no plan. A user with a cart id and one without a cart id are not the same type.

Does product think they're the same thing?

Can fulfilment ship to a user without a cart?
December 13, 2025 at 3:17 PM
Reposted by Josh Vlk
Deno 2.6 is here:
🛠️ `dx` is the new `npx`
⚡ faster typechecking with tsgo
🔒 improved security with `deno audit --socket`
🦺 safer deps with `deno approve-scripts`
🚘 source phase import support
and more!

deno.com/blog/v2.6
December 11, 2025 at 5:14 PM
Here's my hot take of the day:

Object types with optional keys are a code smell and means that the data has no plan. A user with a cart id and one without a cart id are not the same type.

Does product think they're the same thing?

Can fulfilment ship to a user without a cart?
December 11, 2025 at 12:48 AM
@ssalbdivad.dev I broke Arkregex with this one.
December 9, 2025 at 1:49 PM
Reposted by Josh Vlk
the more I use OCaml the less import statements make sense
December 7, 2025 at 9:37 AM
Reposted by Josh Vlk
You might’ve tried it years ago.

You might’ve bounced off ReasonML.

But everything you thought was hard about ReScript? It’s gone.

Josh Vlk explains why 2025 is the year to revisit one of the most underrated languages on the web.
December 4, 2025 at 2:15 AM
Reposted by Josh Vlk
sir, this is not TypeScript. It's OCaml, it takes 100ms to type-check 1M modules with styles.
November 28, 2025 at 9:54 AM
This is why I always prefer Result types, or at least a tagged union in TypeScript. Types should represent data and force you into thinking about how to handle all the possible states.
I prefer an [error, data] over { error, data } for async operation results. Why? Because a tuple guarantees the order. Put the error first, which reminds the consumer to handle it. Object keys are order-insensitive and it's easy to forget to check for the "error" key.
November 27, 2025 at 4:14 PM
Reposted by Josh Vlk
Forget the old names.

No more OCaml baggage, no ReasonML confusion, no Belt.Array2 nightmares.

ReScript has finally stepped into its own—and it’s smoother, faster, and way more familiar than you think.
November 26, 2025 at 4:15 PM
@rescript-lang.org's v12 release made it into the list!
This Week In React 260 🤝 @tboba.pl @kacperkapusciak.bsky.social

⚛️
- TanStack
- Actions
- Immer / RTK
- Streamdown
- ReScript
- XState Store
📱
- Vercel v0 app
- Worklets
- Skia
- Tailwind
- Native Stack
- Gifted Chat
- Enriched

🍿 Read/subscribe: thisweekinreact.com/newsletter/260

Enjoy 👋
November 26, 2025 at 10:31 PM
Here's an early Christmas gift from the ReScript team!
ReScript 12 is here!

A major step toward a leaner, faster, simpler toolchain.

This release refines the language and embraces ReScript’s own identity.

Blog: rescript-lang.org/blog/release...

Notes: github.com/rescript-lan...

Huge thanks to everyone who helped move ReScript forward.
Announcing ReScript 12 | ReScript Blog
ReScript 12 arrives with a redesigned build toolchain, a modular runtime, and a wave of ergonomic language features.
rescript-lang.org
November 25, 2025 at 9:12 PM
The First Blade, a mirror to his master Gorum the god of war. His body is empty armor, or is he the armor?

#pathfinder #minipainting
November 22, 2025 at 4:59 AM
Reposted by Josh Vlk
In an era filled with tech dipshits who never developed emotionally past the age of 13 & use their wealth to become odious monsters ...

... listen to Steve Wozniak.
November 21, 2025 at 7:41 PM
Reposted by Josh Vlk
JavaScript’s grown-up sibling just entered the chat.

Strongly typed, zero config, and built for people who want their code to just work.

Josh Vlk joined Jared to explain why ReScript isn’t just another TypeScript flavor—it’s a full rethink of how we build for the web.
November 20, 2025 at 5:18 PM
ReScript is the future!
In JavaScript, there are a hundred ways to solve the same problem.

In ReScript, there’s one—and it actually makes your life easier.

Josh Vlk explains why enforced consistency might just be the future of clean code.
November 21, 2025 at 10:44 PM
It's so close! No more JS.Array2 or Core.Array, it's just Array! ReScript is growing in capabilities while also becoming more simple and easier to learn.
November 21, 2025 at 2:24 PM
I was on the latest episode of @deadcode.website to talk about @rescript-lang.org! If you've heard the name and wondered what's going on with it in 2025, give the episode a listen!

shows.acast.com/dead-code/ep...
Ground Zero-Cost Bindings (with Josh Vlk) | Dead Code
shows.acast.com
November 18, 2025 at 10:03 PM
Reposted by Josh Vlk
For anyone interested, I've been working on a new UI library for @rescript-lang.org based on the TC39 Signals proposal: github.com/brnrdog/xote

#rescript #signals #ui
GitHub - brnrdog/xote: Xote is a lightweight, zero-dependency UI library for ReScript based on TC39 Signals proposal.
Xote is a lightweight, zero-dependency UI library for ReScript based on TC39 Signals proposal. - brnrdog/xote
github.com
November 12, 2025 at 12:57 PM
Reposted by Josh Vlk
A lot of you need to read react.dev/learn/you-mi... and it shows
You Might Not Need an Effect – React
The library for web and native user interfaces
react.dev
November 12, 2025 at 6:18 PM
It's really cool to see libraries being created for @rescript-lang.org!

brnrdog.github.io/xote/
November 13, 2025 at 2:04 AM
Reposted by Josh Vlk
In the next version of our vscode plugin 🚀:
github.com/rescript-lan...
November 11, 2025 at 8:04 PM