The problem
Waydev (YC W21) pulls metrics out of Git providers, CI systems and project trackers to give engineering leaders a clearer picture of what their teams are shipping. Two concrete problems:
- The main Laravel + Vue application was hitting request-throughput ceilings. Scaling horizontally was possible but expensive.
- Notifications were inconsistent. Some surfaced in-app, some emailed, some had ad-hoc integrations, and they all diverged in behavior.
Both needed to improve without breaking the live product.
Approach
- Laravel Octane for throughput. Migrating to Octane kept application state warm between requests and lifted throughput on the same hardware. The migration was done incrementally behind feature flags so we could compare cold-boot vs Octane under real load before cutting over.
- One notification microservice, many channels. Rather than patching each feature's notification path separately, we pulled the logic into a single service that owned routing across in-app, email, Slack, Microsoft Teams and Google Chat. Each product area called one abstraction; fan-out lived in one place.
- Small diffs, ship weekly. YC-backed startups live and die on momentum. Every week shipped something customers could see, even when the underlying work was infrastructure.
Outcome
- The main app moved onto Laravel Octane in production. Throughput lifted on the same hardware; operational cost stayed flat.
- The new notification microservice carried in-app, email, Slack, Teams and Google Chat behind one abstraction. Each product area stopped reinventing its own notification code.
- The migration and the microservice both rolled out without breaking the product surface customers were already using.
Stack notes
Laravel for the backend, VueJS for the frontend, MySQL for persistence, Laravel Octane on top. Boring stack, correct stack. The interesting engineering was in the rollout, not the framework choice.