NJVERSE // BOOT
>NJVERSE OS v3.14 — BOOT SEQUENCE INITIATED
>loading kernel modules...
>mounting /sys/identity... OK
>applying user preferences...
>spawning interface threads...
>connecting BKK :: 13.7563°N, 100.5018°E
>SYSTEM READY
~/ / posts / 0x00
POST 0x00//meta2026.05.14 // 6 min read

rewriting my dotfiles. for the 4th time. cope.

every two years i convince myself the previous me was an idiot. this year's me will say the same in 2028. a love letter to yak-shaving.

NJ
Nattapong Jaisabai
Software Engineer · published 2026.05.14

every two years i wake up and decide the previous me — sweet summer child that he was — clearly had no idea what he was doing. and so begins the great migration. nix → ansible → ansible again but with feelings → chezmoi → just bash → back to chezmoi. it never ends. it cannot end. it is, perhaps, the point.

this is my fourth rewrite. the goals were modest: less yaml, fewer secrets in plaintext, and one (1) command to bring up a new machine. of course the actual exit criteria turned into something closer to a philosophical exam.

what i actually wanted

  • one repo. one tree. no submodules. no shame.
  • secrets encrypted at rest with age, decrypted at apply time.
  • machine-specific overrides without forking the whole damn thing.
  • a manifest that survives rm -rf ~/.config at 3am.

the smart play is chezmoi + age + a thin makefile. the dumb play is to write a custom go binary that calls chezmoi for you with extra steps. guess which one i did.

curl -fsSL https://nj.sh/boot | bash
# trust me bro

i will, of course, do this all again in 2028. you cannot fight nature.

what i actually learned

the dotfiles were never the point. the dotfiles are a love letter to the version of you that will inherit them at 4am, in an airport, on a borrowed thinkpad, with your wifi password and the will to live.

make them nice. or don't. just commit.

EOF · 0x00 · last edit 2026.05.14// thanks for reading.
← PREVIOUS
i RCE'd my own webapp and it was, frankly, embarrassing
2026.04.22 · //sec · 11 min
NEXT →
เขียน Go ยังไงไม่ให้เพื่อนร่วมทีมเกลียด
2026.05.26 · //go · 7 min
← back to all posts