Build in Public: December 2025 Recap
December was intense. I shipped a major release, made significant progress on two other projects, and learned a few things along the way. Here's the honest recap.
Laravel Translations v2: Shipped
The biggest milestone this month was releasing Laravel Translations v2. After months of work, the complete rewrite is live. The feedback has been great so far — the new React + Inertia frontend is faster, the role-based access control was immediately useful for teams, and the dual auth mode solved a pain point that v1 users had been asking about for a long time.

Numbers
- 33 test files covering the core functionality
- 9 controllers refactored from scratch
- 4 contributor roles with granular permissions
- 2 auth modes (Contributors + Users)
- 0 npm required in the host application
The upgrade path from v1 worked smoothly for most users. A few edge cases came up with custom modifications to v1, but nothing that couldn't be resolved with a quick migration.
kit: Architecture Solidified
The feature extraction system is working reliably now. I can select any combination of modules and generate a clean project without dead code. That was the hardest engineering problem in kit, and it's solved.
This month I focused on:
- Billing module — 321 tests passing, supports Stripe with Paddle and LemonSqueezy coming
- Teams module — 255 tests, workspace management with per-seat billing integration
- Notifications — All 9 channels working: email, Slack, Discord, Teams, Telegram, SMS, webhooks, in-app, and WebSocket
The admin panel UI is the next big push. The backend logic is there, but the React components need polish before I'm comfortable shipping it.
Translations Pro: AI Integration
On the Pro side, I integrated AI-powered translations using laravel/ai. The provider abstraction is clean — users can switch between OpenAI and Anthropic without changing anything in their workflow. Cost estimation before batch translation was something I added after almost running up a $50 bill during testing.
Lessons from This Month
1. Rewrite Scope Always Grows
When I started the Translations v2 rewrite, I had a clear list of what to change. By the end, I'd also redesigned the database schema, rebuilt the import/export system, and added features that weren't in the original plan. Set your scope, then add 40%.
2. Tests Are Your Safety Net During Rewrites
The v2 test suite caught at least a dozen regressions that would have shipped to users. When you're rewriting something that people depend on, tests aren't optional — they're the only thing standing between you and angry GitHub issues.
3. Ship, Then Polish
I almost delayed the v2 launch to add more features. Glad I didn't. The feedback from real users has been more valuable than another month of polishing in isolation.
January Goals
- Launch kit admin panel
- Release Translations Pro AI translation to early access users
- Start working on the kit documentation module search (Algolia/Meilisearch integration)
See you in the January recap.