Sign in

M 🏳️‍⚧️🦀🏴‍☠️

@msnook.xyz
897 followers 848 following 2.2K posts

I run a tiny web agency here in Bangalore, India: emju.in. DMs open. they/them 🍞🌹🏳️‍⚧️🏴‍☠️🇵🇸⌨️🚀 sober, dancing whenever I remember to dance.

PostsRepliesMedia
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 15/09/2026
It turns out, the reason your NextJS site tells you it's pre-rendering everything, but your Vercel bill is still high and your pages feel sluggish... is because they're fucking lying to you. (Run this prompt in your NextJS project -- prompt text in image alt) #BuildInPublic
We've recently become aware that the rendering strategies Next.js reports at build time —
prerendered, on-demand (ISR), or dynamic — don't always match the build's own output, or what
the server actually does at runtime. Please audit this for our production build.

1. Run the production build and capture the full log.

2. Record what the build CLAIMS: the strategy it prints for each route.

3. Compare that against what it actually PRODUCED: the HTML/JSON/RSC payloads written to disk,
   and the entries in `.next/prerender-manifest.json`. These can disagree — the route table marks
   a route static on the basis of what the route asked for, not what the build wrote for it.

4. Probe the routes at runtime against the production server, with curl or a headless browser.
   Derive the URL list from the build output rather than guessing, and request each one at least
   twice; for anything claiming on-demand rendering, expect a miss then a hit, and say which you
   saw. Judge by `x-nextjs-cache`, `age` and ETag behaviour, NOT by `Cache-Control` alone — under
   `next start` every HTML route returns the same no-store header whether or not it was cached,
   so that header on its own proves nothing. Include a route you know to be cached as a positive
   control, so an absent header means something.

Report a table: route | strategy claimed | artefacts on disk | runtime behaviour | agree?

Where they disagree, find what pushes the route off the prerender path — a dynamic API in a
layout or page, `export const dynamic`, uncached fetches, middleware. Keep the Full Route Cache
and the Data Cache separate in your conclusions; losing the first doesn't mean losing the second.
Report what you measured, including anything that contradicts the premise above.A table showing all these routes in a NextJS project, the output of the prompt in the previous image, showing the main pages in the app are claiming to be SSG but they're actually all dynamic.
150
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 14/09/2026
All work and no play makes Fable burn through your entire weekly budget overnight re-reading the same inactive PR... #BuildInPublic
My claude code chat window, with an entire screen full of the same 2 lines:

Used 5 tools
No change on 306. Next check-in armed for an hour out.
121
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/09/2026
After 15 years of using various different Pomodoro apps, my favourite in the whole wide world is the one I made yesterday 🥰😇 emju.in/pomodance
emju.in
Pomodance: a Pomodoro timer slash break-time dance-off
A pomodoro timer where the soundtrack changes when you go on break. Work and chill, then get up and dance.
131
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 28/08/2026
recently I'm loving the way the LLM can give me these kinds of overviews, so I don't just move up the abstractions but down too: I can spend more time in reading-the-code mode. a scheduled task makes me this report every week, without a framework or server or a backlog to maintain. #BuildInPublic
a "Sunlo Issue Triage" dashboard for August 27. It shows open items, issues, PRs, critical, high, medium, duplicates. and then a filters bar and then a list/table with the issue or PR number/link, title, type, priority, age, last active, notes. and then below the table, a new section which lists CRITICAL with longer descriptions.
120
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/08/2026
I find this URL structure to be downright insidious
screenshot showing two github URLs, for an issue and a pull request. they end with "pull/206" and "issues/625" the user has highlighted the word "issues"
010
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 05/08/2026
since we are all sharing our claude writing guides this week...
screenshot of my claude.md, just the title and one line: "- No slam poetry"
120
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 04/08/2026
Migrating a site from NextJS -> Vinext and LOOK AT THIS DIFF 60% of package-lock.json is just gone; compiled Javascript is 40% less. And we made zero (0) code changes to application code and Vinext; the entire diff is tests and tooling. #buildInPublic
GitHub screenshot showing the diff on package-lock.json: plus 8,952 lines, minus 23,078 lines.
030
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 03/08/2026
luv 2 ask Claude how to use Claude and it searches other people's websites 👍️👍️👍️
040
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 30/07/2026
The Boba Fett Story is a show about the worst and least exciting gun fights you've ever seen
010
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 30/07/2026
me, before the meeting: okay I'm not gonna get all political about it... them, at the meeting: Vinext was full of security problems! me:
Screenshot from the opening of the recent video of NYC Mayor Zohran Mamdani, seated at his desk in a charcoal suit, in front of the flags of USA and NYC, with a serious look on his face and his hands clasped and resting on the des in front of him. the caption for the video says "Benjamin Netanyahu is a war criminal"
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 29/07/2026
Did you know CSS has types? I h*ckin love this frankenstein language man, it's so unhinged
120
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 27/07/2026
The Madalorian is a show about a single dad struggling to access childcare so he can go to his day job.
0101
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 25/07/2026
I got my start in coding before serverless was really a thing; and working for orgs with really spikey traffic. So performance issues seemed like horror-movie villains, coming out of nowhere to turn your best day into your worst. I'm still unlearning those traumas 😅 the web is so much more fun now
030
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 15/07/2026
why did they spend years making all the screens wider only to now just make them taller. like, they could have just zoomed out...
a still from The Odyssey -- showing the full picture in IMAX vs the heavily cropped picture on a regular screen
030
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 15/07/2026
if I could just pull out this one... last... thread.... #buildInPublic #oopsImReinventingWheels #onPurpose
160
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 09/07/2026
Apropos of nothing: "rapidly aging population" is such a weird phrase? Like... is time moving faster there or what?
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 04/07/2026
The only way to stop a bad guy in the women's restroom is with a good guy in the women's restroom send tweet
060
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 28/06/2026
Ahsoka is basically a space swordfighting show. I therefore find it unforgiveable that they make her turn her sword around backwards, presumably to look more badass. (This is one of my least favourite tropes and they do it to women characters A LOT.)
110
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 19/06/2026
we call her "the good fairy" but she basically murdered little bunny foo foo
120
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 19/06/2026
alternatively, if you need your boss to f'in listen to you about a safety/risk issue, the following sentence can be quite effective: "we should be careful, if someone looks at this wrong, it might seem like negligence."
220
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 19/06/2026
you're onto something really important here. the predicate nominative IS the subject. the noun verbs the noun. the gap is the feature. you're right, I treated the entire point as a nice-to-have. that's the load-bearing thing. if you want me to fix the past, just say the word.
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 16/06/2026
something i genuinely love about working in tech now that i have a little more experience -- spend a week reinventing the wheel, and then go back to the existing wheels feeling like you really understand every inch of it. there's nothing like the feeling! #buildinpublic
030
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 11/06/2026
I feel like the web has reached a point of such capital saturation that you have to get laser-focused on a very specific niche, because if you start to get big without a super solid foundation, someone with more money and a big token budget will just scoop you. there's no moat left but obscurity :-/
030
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 20/05/2026
I think I've come a long way, but I still struggle with addiction. I've kicked one habit after another, replaced them with meditation, breath work, grounding, listening, humility. But I still have bees in my head and a constant impulse to disassociate and run from my life.
1100
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 17/05/2026
It should be illegal to put ads in the middle of Random Access Memories
010
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/05/2026
Okay #BuildInPublic -- I have been writing my own back-office dev tooling and it is SO FUN. What started as "write me a better e2e runner" has now become a mini framework for seeds management, an interactive UI for running e2e specs with different multi-agent "teams", and such deeply nerdy fun 🤓
040
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 29/04/2026
Today's affirmation: my flaws do not negate my needs, my needs remind me of my responsibilities
040
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 27/04/2026
the kayfabe presidency is upon us
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 23/04/2026
I am looking if there is a word for this middle thing, between "any old experience" and "childhood trauma", that maybe I don't have good language for (without doing either-or). e.g. the first time I was sort of confusingly and shamingly told I was doing wrong-gender... not so much traumatic as,
111
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 21/04/2026
I've been bad with time my whole life, but how come bad-with-time ppl never show up half an hour -early- by accident? I'm going to become equally bad with time in the other direction.
140
Reposted by M 🏳️‍⚧️🦀🏴‍☠️
Frosted Poptart @toastertrollop.bsky.social · 11/04/2026
4869461404
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/04/2026
what if we
image showing 2 charts, "year 2024" and "hypothetical". they're both bar charts with a bunch of big countries on the left hand side, starting with the US, then China, Russia, Germany, India, United Kingdom, Sauria Arabia + 8 more.

the "year 2024" chart shows the USA's bar going allll the way to the right side of the chart, far outstripping any other country, dwarfing every other except China, with Russia in a distant 3rd and all the others kind of trailing. The value for the USA's bar is almost 1,000; china's is around 320, Russia around 150, and all the rest being between 50 and 100. (hint, it represents military budget in billions of USD.)

In the second chart, labeled "Hypothetical", everything is the same except the US value is the same as china's. All the other bars look much bigger in this one.
110
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/04/2026
this is so stuppid. who do they think is using the AI?
ad on twitter for "@MechanizeWork" that says "We're hiring Junior software Engineers" and the ad says "AI isn't replacing engineers. it's replacing engineers who can't beat it. // junior SWE. $300k/year. SF, CA. Mechanize." Link text: We're hiring.
011
Reposted by M 🏳️‍⚧️🦀🏴‍☠️
mahsa alimardani @mahsaalimardani.bsky.social · 08/04/2026
We didn't deserve this day.
3992794054
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/04/2026
hey do any Kannada speakers on the TL want to take a shot at responding to some very basic requests for natural spoken kannada phrases? sunlo.app/learn/kan/fe... it's really foundational stuff like, how to say "I'm here let's go" -- my friends and I are trying to learn!!
sunlo.app
Sunlo: Social Language Learning
011
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/04/2026
test suite sprawl is one of the hardest things about code sprawl
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 08/04/2026
This is a really genuine question for AI ppl -- on the question of AI sycophancy, have we considered having a second model run in the background that thinks I suck and all my ideas are bad?
010
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/04/2026
if you're in cabinet rn and you don't 25th amendment this MF you are going to the hague with him
051
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/04/2026
don't you think it's a little creepy how they send out grooming officers to high schools all over to be like, "I know you're not legal now, but you'll be 18 soon right?"
110
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/04/2026
kids are not born wanting to kill other kids and die in foreign lands; they must be groomed into joining the military
130
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/04/2026
I hope this means they are phasing out the TUI 🙏 just because I'm a hater and imo TUIs are bad software
a little info box in the claude chat that says:

Claude works directly with your codebase

Let Claude edit files, run commands, and ship changes right inside your terminal or IDE.
000
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 07/04/2026
this is why space exploration (and scientific achievement in general) is a much cooler way to do "national glory" than any other. because everyone wins.
060
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 03/04/2026
posting for no reason in particular
youtube.com
Chumbawamba - The day the nazi died
YouTube video by Huppelplopp1848
031
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 03/04/2026
Seriously though Claude 4.6 is getting stupider by the day. I continue to believe that these models are far better at writing complete feature-sets once, rather than doing surgery on existing code. it's a different "build -> simplify" lifecycle that I'm still figuring out how to articulate
me asking claude: "why no highlight when the dialog is covering it? this is logic we're doing just to special-case the styling on a covered-up image? and styling that will change the border width and cause a reflow? why?"



claude replying: "You're right, that's pointless complexity. Just use isFocused for highlighting too."
210
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 03/04/2026
what about a religion where we obey and serve children and the vulnerable? why do we have to worship a powerful god to learn to look around.
121
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 02/04/2026
I love stuff like this 🤷‍♀️ #software #javascript #claude #react
some output from a claude code session showing:

> Show squashed commit history

17 commits → 5 clean phases. Now force push since we rewrote history.


> Force push squashed history

Done. 17 commits squashed into 5:

1. Edit comment form parity — markdown hints, flashcard support, delete RLS policy
2. Consolidate components — 6+ components → CommentDialog + ReplyDialog, URL-driven
3. Simplify URL state — 7 params → focus + mode, fix query compiler crash
4. Unify focus styling — consistent borders, scaled-down replies
5. Reply thread UX — keep focus on close, reply prompt placement, toggle fix

> 1 step
020
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 26/03/2026
in my "can you make this like 2 or 3 commits?" era
010
Reposted by M 🏳️‍⚧️🦀🏴‍☠️
Jim Musil Painter @jimmusilpainter.bsky.social · 24/03/2026
My painting HIGH PLAINS STORM
673684368
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 11/03/2026
this chart is called "bullying your way to stability"
a chart showing gas prices hopping around a little between 3.00 and 3.20 per calling, dropping in Jan to 2.80 and then SKYROCKETING off the top of the chart in March.
110
M 🏳️‍⚧️🦀🏴‍☠️ @msnook.xyz · 02/03/2026
yes, war is bad even if you paraphrase some standpoint theory to justify it
011