The last stage of building the thing (say there are four stages), which always seems to take me at least 50% of the total build time. That involves force-grinding my way through many of the things I enjoy the least, some of which I intentionally leave for the end. It involves a lot of small adjustments, going back over things I intentionally left half-baked as a stand-in, bug fixes (I include fixing UI & UX problems or flaws with that), trimming down unnecessary bloat in the CSS & JS, doing a double or triple check on security, double checking legal, double checking database performance (making sure there are no obvious bottlenecks), finalizing user guides (FAQs, etc etc), and doing a lot of full run-throughs on the product from initial sign-up onward. Also just generally trying to find aspects I can break in the system, simulating as a normal user. I dislike the time sink of all of that, even though it's necessary. My productivity drops considerably with my dislike of the process of pushing through the things I hate doing.
I built an auth system seven or eight years ago that I regularly evolve and reuse. That goes into place on the first day, with usually minor adjustments per project and it just works. Before that auth was always an annoying chore.