Repository navigation
v2.0.1
π§Ή A housekeeping release
Nothing changes for you as a writer or a reader. No new buttons, no moved menus. π
We spent this round looking under the floorboards β at what actually runs when you open a pad. Turns out we were carrying a lot of things we never use.
Every number here comes from the real production server, not somebody's laptop.
πͺΆ Our images went on a diet
| before | after | ||
|---|---|---|---|
| π webapp | 727 MB | 332 MB | β54% |
| βοΈ backend | 5.67 GB | 961 MB | β83% |
Two things were hiding in there.
The webapp was shipping a C++ compiler, python3 and a second JavaScript runtime. It never used any of them. π
The backend was even better: it carried two entire copies of Next.js and four native build binaries. For a service that does not render a single page.
β‘ Everything got faster
| before | after | |
|---|---|---|
| π³ Production build | 997s | 683s |
| π§ͺ Backend tests | 7.9s | 3.1s |
| π§© Extension tests | 209s | 88s |
| β Full local check | 290s | 163s |
That last one matters most day to day. Waiting five minutes before every push is very different from waiting under three. β±οΈ
π Four bugs we found by accident
We were not hunting for these. They turned up while measuring other things.
π΄ A crashed backend was reporting success. It exited with a "everything is fine" code, so nothing downstream ever noticed. It now exits properly and gets restarted.
π― Our test splitter was never reading its own timings file. It was dividing work by counting files instead of by how long they take. One worker sat idle while another ran three times as long.
β³ A test was waiting exactly two seconds, then checking if a process had stopped. If shutdown took longer, a perfectly healthy process failed the test. It now just waits for the actual event.
π Our secret-file filter only looked in one folder. A key file in a subfolder could still slip into a build. Fixed.
π Under the hood
We are now on Bun 1.4.0 everywhere. Our servers were already running it β the code just had not caught up and said so.
π€― The one that surprised us
One single line of configuration β a permissions command β was costing 125 seconds of every production build and quietly storing an extra 1.91 GB in the image.
On a Mac laptop, that same line takes 1.8 seconds.
So it looked like 0.7% of the build. Completely ignorable. On the real server it was the single biggest thing in this entire release. π€¦
The lesson we are keeping: when your laptop and your production logs disagree, believe production.
π Full detail in the CHANGELOG.
Thanks for reading, and thanks to everyone poking at docs.plus and telling us what breaks. π