Sign in

Willow (GHOST)

@willow.sh
1.7K followers 1.1K following 1.1K posts

🧙🏼‍♀️ Working on Open Source and Communities! (she/her) 🎃 Core Team @npmx.dev @e18e.dev Maintainer @bomb.sh Community @svelte.dev @svelte.london Events willow.sh/events

PostsRepliesMedia
Willow (GHOST) @willow.sh · 27/09/2026
I created a little shell script that can download the Porffor binary you want which you can use with the `--porf` argument. It's hard coded to Linux (I use Arch btw), but it's a couple character change if you use something ~~worse~~ else github.com/ghostdevv/do...
Terminal showing an alias being set to the custom build of the gleam cli, then running `get-porffor-version 6` which downloads the binary to `./porf-alpha-6`. After that running `gleam export porffor --target wasm --porf ./porf-alpha-6` and `wasmer run build/dev/porffor/gleam_porffor.wasm` which outputs `Hello from Porffor/alpha 6 (038f415 2026-09-15)`
000
Willow (GHOST) @willow.sh · 27/09/2026
Wasm support unfortunately broke again after Alpha 6, but you'll now be warned if you're using a Porffor version that is broken or hasn't been tested (although I don't currently distinguish between the two)
Terminal showing an alias being set to the custom build of the gleam cli, then running `gleam export porffor --target wasm` which shows a warning message saying that wasm is untested on this version with the latest known working version being Alpha 6
100
Willow (GHOST) @willow.sh · 27/09/2026
Porffor Alpha 9 and above now supports ESM natively, so no more pre-bundling 🎉 My @gleam.run cli patch (see above thread) still supports older Porffor versions by parsing the version to detect whether pre-bundling is still required. You can also now provide a path to a non-global porf install.
Terminal showing an alias being set to the custom build of the gleam cli, then cleaning the previous gleam build and porffor cached, followed by running the `gleam export porffor` command and finally running the resulting binary which outputs `Hello from Porffor/alpha 10 (08ac7ee 2026-09-27)`
151
Willow (GHOST) @willow.sh · 22/09/2026
This Amsterdam canal tour website thing is made with Vue, even with the Vue logo as their favicon
Picture from a boat showing my laptop with a line in dev tools showing data-v-app, as well as my fan, and the inside of a tunnel through the glass boat roof
4190
Willow (GHOST) @willow.sh · 19/09/2026
well, on one hand I got the 100 and on the other I thought I had already starred 🫪
Screenshot from GitHub showing Matteo Gabriele's AgentScan hitting 100 stars
1131
Willow (GHOST) @willow.sh · 18/09/2026
an outline that's different to the paper colour, so I had to add a thin border to the npmx word sticker (zoom on the picture) and then tell the machine to cut inwards from that by 1mm to remove it - it took quite a few monochrome regular paper prints to figure that out
Sheet of white vinyl with most of the stickers cutout. There are some where I messed up putting the laminate on so I couldn't use them, but all of the npmx text stickers have a thin red outlone a bit away from the stickers
150
Willow (GHOST) @willow.sh · 18/09/2026
Don't worry, I'm also still making badges! Got the cutting machine on that too, I think you can probably tell which ones I cut by hand...
4 piles of circular paper discs one with the Svelte logo, one with npmx, one with e18e, and one with goostopher on
140
Willow (GHOST) @willow.sh · 18/09/2026
It took some time, but the first (test) batch of stickers have been created! The borders still need work, the cutting machine made them very inconsistent buttttt I'm happy with the print quality!
Some npmx logo stickers as well as this new design with the word npmx that has two harts on each top corner and a star towards the bottom left corner

The rounded square stickers have a dark grey border and you can see that the width of it is inconsistent, and the text one has a white outline which is also inconsistent - needs some work!
5364
Willow (GHOST) @willow.sh · 14/09/2026
WASM is now working (on a really simple test case)! Thanks to Mendy Berger for making the PR to porffor to support WASM again github.com/CanadaHonk/p...
Terminal in a directory called "gleam-porffor-example" showing an alias to a local build of the gleam cli with some modiciations. It then running "gleam export porffor --target=wasm" which Porffor-ed and Wasmified the build. Finally running wasmer on the generated wasm file which outputs "Hello from Porffor/alpha 5 (1f4ae4a 2026-09-10)"
121
Willow (GHOST) @willow.sh · 12/09/2026
Taking off as I write this so no time to say what an amazing trip this is, great to see you all - until next time!! 💙
Zurich Flughafen
2293
Willow (GHOST) @willow.sh · 09/09/2026
After being delayed at LHR for 31 hours, finally on my way to @zurichjs.com 🎉 Picture is from yesterday whilst deplaning due to all the disruptions with UK Air Traffic Control, we were stuck on the plane for four hours 🫠 Regardless, all will've been worth it on Friday :D
Picture from the top of plane stairs showing part of the engine and wing, two other planes, and part of the bus to the terminal
4220
Willow (GHOST) @willow.sh · 06/08/2026
shit
A picture of the latest issue of the printed Onion on a train
1220
Willow (GHOST) @willow.sh · 04/08/2026
PRs are _low_, anyone wanna help get the issue count down 👀
screenshot from GitHub showing the npmx repo with 205 issues and 45 pull requests
1294
Willow (GHOST) @willow.sh · 31/07/2026
The next step was clearly to shove this into the `gleam export` command, so I typed my best artisanal slop to do the same thing as the script but ✨ better ✨. I ran the same program through this andddddd... it works! :D
Screenshot from terminal showing a modified gleam cli running `gleam export porffor-native`. Gleam compiles, bundles, and Porffor-es, then you can run the resulting binary
150
Willow (GHOST) @willow.sh · 31/07/2026
Then created a script that would compile that Gleam program to JS, edit the file to call `main()`, bundles it together with esbuild, and then pass it to Porffor
Screenshot from terminal running `just run`. It shows the compiler output of Gleam, esbuild, and Porffor and then at the end shows:

Hello from Porffor/pre-alpha 12 (8ef8aaa 2026-07-24)
140
Willow (GHOST) @willow.sh · 31/07/2026
I created a simple Gleam program that gets the Porffor version from an external JS function
src/gleam_porffor.gleam

```gleam
import gleam/io
import gleam/option.{type Option, Some, None}

@external(javascript, "./env.mjs", "porfforVersion")
fn porffor_version() -> Option(String)

pub fn main() -> Nil {
	case porffor_version() {
		Some(version) -> io.println("Hello from " <> version)
		None -> io.println("Where's Porffor???????")
	}
}
```

src/env.mjs

```js
import { Option$Some, Option$None } from '../gleam_stdlib/gleam/option.mjs';

export function porfforVersion() {
	const version = navigator?.userAgent;
	return typeof version === 'string' && version.includes('Porffor')
		? Option$Some(version)
		: Option$None;
}
```
181
Willow (GHOST) @willow.sh · 30/07/2026
Oki it's finally time
A terminal showing `yay -S gleam` and it then installing
1190
Willow (GHOST) @willow.sh · 23/07/2026
Now I have to come! See you there 🫡💙
Screenshot from an email reading:

Dear Willow,
Your ticket purchase has been confirmed. We're excited to welcome you to ZurichJS Conference 2026.
6251
Willow (GHOST) @willow.sh · 22/07/2026
so close...
A three section meme, first "Panik" with a picture of a form asking for my LinkedIn URL. The second has "Kalm" with a picture of that input containing my sifa.id page. The last has "Panik" again (but the guy is more panicked), with the form with the sifa.id link with an error text asking to enter a valid LinkedIn URL
1697
Willow (GHOST) @willow.sh · 16/07/2026
Goodbye Berlin, we didn't see eye to eye with regards to travel but I forgive you since you let me see so many amazing people 💙
Picture from plane window on the ground showing the wing as well as blue sky with some clouds
2491
Willow (GHOST) @willow.sh · 12/07/2026
Something beautiful happens when @patak.cat tries to login to the atmosphere
Picture of Patak's phone showing youandme.at login page with the four patak accounts in the type-ahead

patak.cat
patak.dog
patak.horse
patak.chat
7998
Willow (GHOST) @willow.sh · 06/07/2026
👀
graph showing the activity on the sh.tangled.repo collection over the past seven days. there is a significant increase in activity after the release of synchub. The days before the release there was an average of 1-3 repo creations per hour per day, then on the 5th it was 27 and the 6th 18
1533
Willow (GHOST) @willow.sh · 27/06/2026
this means something
result of https://britmonkey.com/2020s-political-compass/ showing i am most closely aligned with zohran mamdani
150
Willow (GHOST) @willow.sh · 18/06/2026
this picture is old, I promise I fixed the cable management since...
040
Willow (GHOST) @willow.sh · 13/06/2026
I've not seen this kind of scam before...
Email from a company claiming my domain expires on the 15th of June 2026 (it doesn't), and trying to get me to renew it with them.
2280
Willow (GHOST) @willow.sh · 01/06/2026
happy pride month 🎉
npmx homepage with a pride themed npmx logo (noodle)
016525
Willow (GHOST) @willow.sh · 28/05/2026
🎉🥳
Screenshot from GitHub showing that I've been invited to join the bombshell organisation
1321
Willow (GHOST) @willow.sh · 25/05/2026
Oops... Unrelated, but does anyone happen to be selling a Framework 13 Display? Asking for a friend
The worlds best laptop, Framework 13, with the left third of the display black with coloured bars, broken.
2170
Willow (GHOST) @willow.sh · 23/05/2026
Is there really not a more limited permission available?
Screenshot of a github workflow showing `permissions.pull-requests` set to `write` with a comment that says "Required to be able to comment on PRs"
2392
Willow (GHOST) @willow.sh · 22/05/2026
Oh shitttt yesterday (still today for some timezones) was my Atmosphere birthday 🥳 bsky.app/profile/labe...
Screenshot from pdsls showing my account creation on the 21st May 2023
3221
Willow (GHOST) @willow.sh · 21/05/2026
the provenance is being generated before publishing, the sigstore entry is there and valid. It's just not being returned with the packument... so presumably there is some bug internally where the provenance data is getting missed - hopefully they haven't lost it and it can be retroactively patched
Logs showing npm is generating the provenance statement and publishing it to sigstore
Packument showing the missing attestations field
220
Willow (GHOST) @willow.sh · 21/05/2026
the timeline page is definitely my new favourite thing
Timeline showing a graph of versions to install size, with the install size starting low, then increasing massively, then stepping back down to normal over two majors
2162
Willow (GHOST) @willow.sh · 21/05/2026
light work no reaction
npmx.dev notice on a package page:

> Package size and dependency count decreased since v5.0.0!
> Install size reduced by 92% (1.1 MB smaller) 25 fewer dependencies
1352
Willow (GHOST) @willow.sh · 20/05/2026
Oh, we know
Picture from vite conf pre meetup with people on a panel, including Daniel who has a thought bubble saying "God I wish I could work on Svelte too"
2341
Willow (GHOST) @willow.sh · 20/05/2026
Everytime I try to open GitHub notifications... please npmx sometimes I need to review other things 💔
Screenshot from zen browser showing the autocomplete after I type `github.com/n` taking me to the npmx notifications page
1240
Willow (GHOST) @willow.sh · 07/05/2026
web of ~trust~ friends 🤝
- patak.dog followed patak.horse
- patak.dog followed patak.cat
- patak.dog followed patak.chat
- patak.horse followed patak.cat
- patak.horse followed patak.dog
- patak.horse followed patak.chat
- patak.chat followed patak.dog
- patak.chat followed patak.cat
3470
Willow (GHOST) @willow.sh · 07/05/2026
the two choices
Tangled suggested vouches screen showing patak.dog and Barack Obama
2701
Willow (GHOST) @willow.sh · 05/05/2026
in lieu of figuring out who is behind @patak.horse, I suppose we'll continue our open source enterprise @patak.cat, me, @erus.dev, @alexdln.com, and @43081j.com
A selfie in front of some old looking buildings in the distance, Matias (patak) is holding the camera on the left, then towards the right is Willow, Vladamir, Alex, and James
2462
Willow (GHOST) @willow.sh · 16/04/2026
should we be concerned?
GitHub PR comments

ghostdevv: @danielroe are you a human or ai?
danielroe: I am human\n\n—aren't we all? Not just human, but rational. It's a new paradigm.
4502
Willow (GHOST) @willow.sh · 15/04/2026
Goodbye Canada 💙🇨🇦 On the bright side, it's overnight flight sooooo JSMonthly meetup after I land!
Out of plane window with wing and lights in background, on land still as I'm low on mobile data lol
1300
Willow (GHOST) @willow.sh · 02/04/2026
xkcd.com/3227/
and god said, "let there be light". and there was light. god saw that the light was-- 'can you add support for dark mode?'
1374
Willow (GHOST) @willow.sh · 31/03/2026
As much as I'm tempted to tag all 86 people here, I'll refrain and instead immortalise this image of the wonderful superconnectors.wisp.place view for youandme.at
A connection map of all the people I connected to, with 284 total people on the map 86 of which I connected to
1233
Willow (GHOST) @willow.sh · 31/03/2026
Goodbye Vancouver, and thank you all for such an amazing Atmosphere Conf 💙🎉 I managed to connect with 86 people, the vast majority of whom I've never met before, that's just crazy 😆💙
Screenshot from flight radar, showing Vancouver/Surrey/Langley area with many planes with mine highlighted in red
3380
Willow (GHOST) @willow.sh · 29/03/2026
First person to ask me at Atmosphere Conf gets this 3d printed npmx logo
3d printed npmx logo
1442
Willow (GHOST) @willow.sh · 26/03/2026
This is my contribution to @atmosphereconf.org @npmx.dev @svelte.dev @sveltesociety.dev @mullvad.bsky.social @e18e.dev
Mullvad, e18e, svelte, svelte sirens, and a wide variety of npmx stickers and badges
5567
Willow (GHOST) @willow.sh · 22/03/2026
I take it back
npmx repo with 180 issues and 117 prs
2240
Willow (GHOST) @willow.sh · 22/03/2026
Number one on hacker news: The three Pillars of JavaScript Bloat
050
Willow (GHOST) @willow.sh · 22/03/2026
npmx is back to double digit prs, so feel free to fix that 😇
npmx repo with 177 issues and 99 prs
1282
Willow (GHOST) @willow.sh · 21/03/2026
I forgot to post this earlier - thanks for the great waffle recommendation @bmann.ca www.openstreetmap.org/node/8400655...
On the left is a Mason jar with a frappe topped with cream and a couple m&ms. Om the right is a atr with a waffle topped with apple slices and drizzled with a chocolate sauce and sugar, with a dollop of cream with two halves of a biscoff biscuit in
280
Willow (GHOST) @willow.sh · 20/03/2026
They're here!! Huge huge thanks to diginate.com for sponsoring these stickers, and to @z-space.ca for letting me ship them there!!
Variety of sticker piles with the npmx logo, as well as a sparkly pile of e18e stickers
4345