My first npm package, built with AI — and it's already in production
I'm a frontend developer with about three years of experience. Until a couple of months ago, "publish an npm package" lived in my someday list — one of those tasks that feels like it needs a much closer relationship with the build toolchain than it actually does. And then I shipped one. It's called daterly, it's a React date picker, and it's already running inside the internal projects of the company I work at.
To be transparent: I wrote most of it with AI — Claude Code specifically. This is the honest version of how it went. Not "AI built me a startup overnight," but a real report: where AI led, where it stalled, and what I'd keep.
Why another date picker
The internet does not need another React date picker. I know. But we needed this one. At work we lean on react-hook-form everywhere, and the picker we were using constantly fought it. Two things drove me up the wall:
- Styling was a battle. Overriding its look to fit our design system always turned into a fight with specificity.
- RHF integration was clumsy. Wiring it up cleanly every time took more glue than it should have.
The snippet that justifies the project
Zero-overhead react-hook-form integration through a separate daterly/rhf entry point — if you don't need RHF, you don't pay for it:
import { RHFDatePicker } from 'daterly/rhf';
<RHFDatePicker<BookingFormValues>
name="checkIn"
label="Check-in date"
rules={{ validate: (v) => v !== undefined || 'Pick a date' }}
/>;
What I'd take with me
Build for your stack, not for stars. The best reason to make a library is that it removes friction you hit every single day. AI compresses the tedious, not the judgment — treat it like a fast junior in a pair, not an autopilot. And packaging is the real work: the component took days; the build, versioning, CI, tests, and docs took longer.