Internal Parts Catalogue
CINDY CHAO's designers track every stone and component through an internal catalogue. I rebuilt it from scratch — the original was too slow and too buggy to patch.
- Client
- CINDY CHAO The Art Jewel
- Year
- 2024–25
- Engagement
- Freelance
- Live site
- Internal tool, not public
- Scope
- Frontend
- Backend
- Stack
- React
- Next.js
- Node.js
- Ant Design
- TypeScript
- MySQL
About the project
CINDY CHAO makes one-of-a-kind art jewellery: a single brooch can carry several thousand individually sourced stones, and finished pieces have been acquired by the Smithsonian and the V&A. The in-house designers track all of those parts through an internal catalogue. The version they had was a Python application written by a student, and the company had long outgrown it — slow pages, and a bug list that kept growing.
I went through it and concluded that patching would cost more than replacing it, then rebuilt it alone over three months. Next.js replaced the Python application outright: one codebase serving both the admin interface and the API layer, against their MySQL database. React and Ant Design for the interface, Zustand for client state, TypeScript across the codebase.
The database needed work of its own. I reshaped tables, rewrote the queries the old system leaned on, and added a favourites list so designers can keep the parts they reach for most within one click.
Moving off Python was enough to make it faster on its own, and the old bug list disappeared along with the code that produced it.