About ShiftFlow
When Eddy Yang set out to build ShiftFlow, a modern time and attendance platform for field and trade businesses, he knew exactly what he should not do: build chat from scratch.
Yang isn't just another SaaS founder with a big idea. In 2018, he led the in-app messaging team at Uber, building the real-time chat system that connects riders and drivers.
"I am very familiar with everything that goes into building chat," Yang says. "When I started ShiftFlow, I knew right away — for a small team, building chat in-house is almost never a good call."
ShiftFlow serves a broad market — plumbers, HVAC technicians, dental clinics, funeral homes, pet groomers, and agricultural teams. The common thread? These workers are always on their feet. "They're not behind a desk," Yang explains. "They're mobile-first, task-focused, and need to communicate quickly to get work done."
Why Chat is Critical for Deskless Workers
From day one, integrated chat was a requirement. "We are a team collaboration platform," Yang says. "Real-time messaging is not a nice-to-have. It's how their work gets done."
Prior to ShiftFlow, many users juggled a patchwork of WhatsApp threads, iMessage conversations, and phone calls, making it hard for managers and teams to stay aligned. With ShiftFlow, all communication is centralized in one place and tied directly to shift management, requests, and operations.Â
"Without integrated messaging, our customers would be managing in the dark."
Evaluating Stream Against Competing Solutions
When it came time to select a chat provider, Yang considered multiple solutions. He had used Twilio in the past and was familiar with Sendbird. But in the end, he chose Stream for its developer-first approach.Â
"On the Stream website, I had everything I needed to get started," he said. "With Sendbird, you have to go through the sales channel. I wanted to move fast and try it out — I could only do that with Stream."
Speed was only part of the equation. The decision also came down to the developer experience, long-term flexibility, and pricing.
"Stream's transparent pricing model eased our early burn and gave us room to grow."
More importantly, Yang trusted the engineering philosophy behind the product.
"I read your blog posts. I really appreciate the ethos and mentality of your leadership — Thierry and Tommaso. I read their blog posts. As an engineer and startup founder, I can relate to them." He also did something many founders wouldn't — he read through the source code. "Your code has very good taste, clean and extensible."
A Seamless Integration Process
ShiftFlow uses Flutter to deliver native iOS, Android, web, and Windows apps from a single codebase. "It lets us move incredibly fast while maintaining consistency between platforms."
Tech Stack
The app's tech stack is optimized for agility:
- Frontend: Flutter for iOS, Android, web, and Windows from a single codebase.
- Backend: Kotlin, PostgreSQL, and AWS
- Messaging: Stream Flutter SDK and Java SDK for backend user sync.
Yang recalls, "We started with Stream's open-source demo app, which is basically a fully working product. From there, we just adjusted the UI to match our own. Backend integration was easy too — we use the Java SDK for user sync."
Multi-Tenancy
Stream's multi-tenancy capabilities were a standout feature, critical for ShiftFlow's B2B SaaS model, where each business is a separate customer. The platform-level safeguards ensured user data and messaging stayed siloed. Yang adds, "It's enforced at the platform level and gives us peace of mind."
Role-Based Permissions
ShiftFlow also takes advantage of Stream's permission model, giving each manager control over their team's chat channels. One-on-one messaging can be toggled off per customer request.
"It's all there when we need it. And it's far more comprehensive than we currently require, which gives me confidence that we can grow into it."
Push Notifications and Offline Support
When it comes to push notifications, Stream delivers them out of the box.
"We use FCM for Firebase messaging. Stream takes care of the rest, it just works."
Stream's offline support has been especially valuable for teams in rural or low-connectivity environments such as farms or agricultural job sites. "They can view their previous message history, even if they don't have a signal."
No Support Required
Perhaps most impressively, the entire integration was self-service. "Surprisingly, we never needed to contact support," Yang says. "Your developers were responsive on GitHub, the documentation is solid, and since the SDKs are open source, we could figure out anything we needed."
The Impact of Stream Chat
Today, chat is so seamlessly embedded in ShiftFlow that customers assume it's just part of how modern field teams should operate. Stream allowed ShiftFlow to build a reliable, scalable messaging experience quickly without slowing down the rest of the product roadmap.
"We put in chat. It just works. And we've been able to focus on developing other parts of the app — that's the beauty of it."Â
Outcomes
- Seamless real-time messaging across thousands of businesses
- No customer complaints about chat or notifications
- Reliable cross-platform performance thanks to Flutter and Stream
- Feature parity — or an edge — over competitors in the field-service SaaS space
"I've read bad reviews about missing chat or notifications in some of our competitors."
What's Next for ShiftFlow and Stream
When asked what advice he'd give other founders, Yang didn't hesitate: "Don't build chat unless it's your core value proposition."
He adds that blog posts and GPT demos can make chat seem deceptively easy, but those demos gloss over the hard parts.Â
"I've built chat in-house at scale — it's never just about sending messages. You lose connection? What happens when your device is offline? Your app is killed in the background? Messages undelivered? Throttled? Role management? It's a mess. The complexity will eat your time, runway, and burn rate."
For ShiftFlow, Stream offered the rare combination of power, simplicity, and speed, giving the team everything it needed to launch chat confidently, without compromising time or quality.
"We chose to integrate a Chat API rather than build it in-house. Customers ask for small changes, but we've been able to focus on developing other parts of the app. That's the beauty of it.Â
Yang is interested in Stream's support for custom message types, such as enabling team members to send shift requests or checklists directly within chat. He's also exploring deeper permission controls and improved offline modes as the platform expands into more enterprise and low-connectivity environments.Â
"We're a small team, but we've built something our customers love, and Stream Chat is a big part of that."