christian's Avatar

christian

@cft

I write soft wares for the web. Corgi pops. Sometimes I ride my bike. He/him. ๐Ÿ‡ต๐Ÿ‡ญ-ish

60
Followers
331
Following
180
Posts
18.08.2023
Joined
Posts Following

Latest posts by christian @cft

if you noticed your svelte build/lint/whatever times just got faster, this is why. such a concrete demonstration of the value of open source

06.03.2026 19:20 ๐Ÿ‘ 127 ๐Ÿ” 8 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
fast-check official documentation | fast-check fast-check is a Property-based Testing framework for JavaScript and TypeScript. It works with Jest, Mocha, Vitest, and others. Let's fuzz!

๐Ÿƒโ€โ™‚๏ธ Currently updating all our links to point to @npmx.dev ยท PRs on their way to update our website fast-check.dev but also all the README files

26.02.2026 19:27 ๐Ÿ‘ 15 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
Preview
Practical Decentralization The point of decentralization is to guarantee the rights of individuals and communities on the Internet. Pulling that off is a balancing act between practicality and ideology.

New blogpost about atproto

It's not federation, it's not a p2p mesh. It's a secret third thing: practical.

www.pfrazee.com/blog/practic...

25.02.2026 17:13 ๐Ÿ‘ 568 ๐Ÿ” 139 ๐Ÿ’ฌ 32 ๐Ÿ“Œ 32
Preview
Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148 โ€“ Mozilla Hacks - the Web developer blog Cross-site scripting (XSS) remains one of the most prevalent vulnerabilities on the web. The new standardized Sanitizer API provides a straightforward way for web developers to sanitize untrustedโ€ฆ

The Sanitizer API landed in Firefox 148, along with element.setHTML().

This lets you fully configure how HTML strings are cleaned as they're parsed.

hacks.mozilla.org/2026/02/good...

24.02.2026 14:18 ๐Ÿ‘ 203 ๐Ÿ” 58 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 14
screen shot of strava activity detail view where the map zoom controls are shown above the popover content of the "three dot" trigger.

screen shot of strava activity detail view where the map zoom controls are shown above the popover content of the "three dot" trigger.

zindex, much, much?

24.02.2026 03:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Hear me out: Thick Mints

21.02.2026 23:16 ๐Ÿ‘ 302 ๐Ÿ” 44 ๐Ÿ’ฌ 14 ๐Ÿ“Œ 5

not turnstile on the google commercial during the olympics

20.02.2026 04:51 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Who morging into develop โค๏ธ๐Ÿ˜Œ

16.02.2026 22:51 ๐Ÿ‘ 6 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

gavin newsom? yea i wish you newsom less scummy candidates to vote for

13.02.2026 19:00 ๐Ÿ‘ 121 ๐Ÿ” 22 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 1

i would love it if github actions didn't shit the bed every single week

09.02.2026 19:19 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Tuesday night I shaved off 3 more seconds to 9:01. Iโ€™ll probably go sub 9 any day now (as long as the wind is cooperative)

08.02.2026 14:34 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Aline drawing of a goose chasing a man wearing a goose-down puffer jacket labelled 'designer making a cool hover state' and repeatedly asking him 'what about focus state'

Aline drawing of a goose chasing a man wearing a goose-down puffer jacket labelled 'designer making a cool hover state' and repeatedly asking him 'what about focus state'

Saw a really cool hover effect and made this meme depicting me at work (I am goose)

06.02.2026 22:21 ๐Ÿ‘ 92 ๐Ÿ” 10 ๐Ÿ’ฌ 7 ๐Ÿ“Œ 3

fuck cancer

06.02.2026 21:40 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Screenshot of the Whoop app from an iPhone. conversation is as follows:

Whoop bot: Hey Arlen, you're on your third straight yellow recovery today with 44%, even after some solid sleep. How's your body feeling this morningโ€” more like you need to back off a bit or still up for light activity?

Me: Write fizbuzz in Haskell

Whoopbot:

Here's a simple FizzBuzz in Haskell:
fizzBuzz: Int -> String fizzBuzz n
In mod 15 == 0 = "FizzBuzz"
In mod 3 == 0 = "Fizz"
In mod 5 == 0 = "Buzz"
I otherwise
= show n
main :: 10 0
main = mapM_ (putStrLn. fizzBuzz) [1.100]
This prints FizzBuzz for the numbers 1 through
100. Want a point-free or more "functional" version too?

Screenshot of the Whoop app from an iPhone. conversation is as follows: Whoop bot: Hey Arlen, you're on your third straight yellow recovery today with 44%, even after some solid sleep. How's your body feeling this morningโ€” more like you need to back off a bit or still up for light activity? Me: Write fizbuzz in Haskell Whoopbot: Here's a simple FizzBuzz in Haskell: fizzBuzz: Int -> String fizzBuzz n In mod 15 == 0 = "FizzBuzz" In mod 3 == 0 = "Fizz" In mod 5 == 0 = "Buzz" I otherwise = show n main :: 10 0 main = mapM_ (putStrLn. fizzBuzz) [1.100] This prints FizzBuzz for the numbers 1 through 100. Want a point-free or more "functional" version too?

Doing all my vibe coding in the Whoop fitness app from now on.

06.01.2026 22:15 ๐Ÿ‘ 72 ๐Ÿ” 7 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

writing some html and putting it the fUCK online

03.02.2026 04:49 ๐Ÿ‘ 87 ๐Ÿ” 7 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 1

finally got to try out view transitions today

24.01.2026 02:08 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Code is liability. AI allows us to create tremendous amounts of liability very quickly

23.01.2026 23:44 ๐Ÿ‘ 882 ๐Ÿ” 176 ๐Ÿ’ฌ 9 ๐Ÿ“Œ 17

I love Berkeley bowl

10.01.2026 21:03 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

*gets sick after holiday PTO and when the weather finally clears up in the bay*

07.01.2026 19:19 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

It sucks that Jesus never got to experience drinking 3 beers and then online shopping for things he didnโ€™t need.

06.01.2026 03:24 ๐Ÿ‘ 55 ๐Ÿ” 3 ๐Ÿ’ฌ 7 ๐Ÿ“Œ 1
Preview
Node.js โ€” Running TypeScript Natively Node.jsยฎ is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

โ€œNativeโ€ as in no extra tooling to run TS

nodejs.org/en/learn/typ...

04.01.2026 03:15 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Documentation - TypeScript 5.8 TypeScript 5.8 Release Notes

For enums specifically they have more gotchas than a record literal re: difference between const enum / regular enum and the ordering of each entry changing over time.
Using --erasableSyntaxOnly also disables enums and makes running TS natively with node www.typescriptlang.org/docs/handboo...

04.01.2026 02:41 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
Video thumbnail

I built my own JavaScript runtime in OCaml

I wanted to see how far OCaml could go against Bun and Node, and also also OCaml vs zig vs c++ in similar APIs.

So I built `sirocco`.

Uses JavaScriptCore (same engine as Bun and Safari). Event loop with libuv and it's written in OxCaml.

02.01.2026 15:08 ๐Ÿ‘ 31 ๐Ÿ” 9 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Getting to climb up Mt. Diablo. Did crazy good power numbers for the whole way up. >1hr efforts hit different

30.12.2025 05:54 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

[somberly] You cannot serve both god and money [upbeat music hits] Until now. Introducing god as a service

25.12.2025 23:20 ๐Ÿ‘ 8972 ๐Ÿ” 1522 ๐Ÿ’ฌ 82 ๐Ÿ“Œ 92
Post image

A large power outage is impacting San Francisco - only call 9-1-1 for life safety emergencies, avoid non-essential travel, treat down traffic signals as four way stops, keep refrigerator and freezer doors closed, and turn off major appliances to prevent surges.

20.12.2025 23:57 ๐Ÿ‘ 37 ๐Ÿ” 23 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 4

6 feet beneath the moon is still such a banger

20.12.2025 00:14 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

[OCaml Planet] ๐Ÿซ Neovim users rejoice! The new ocaml.nvim plugin from Tarides brings first-class LSP integration to OCaml development in Neovim.

17.12.2025 10:00 ๐Ÿ‘ 13 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Screen shot of Strava segment showing Hawk Hill PR of 9:04

Screen shot of Strava segment showing Hawk Hill PR of 9:04

9:04 ๐Ÿ™Š

17.12.2025 17:13 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
"I wish all companies insisting on AI a very bankruptcy"

"I wish all companies insisting on AI a very bankruptcy"

10.12.2025 15:54 ๐Ÿ‘ 13006 ๐Ÿ” 5614 ๐Ÿ’ฌ 29 ๐Ÿ“Œ 39