Email marketing platform for SMEs
My journey with Flowmail started when its author - Jon, already iterated on the second version. After trying out the waters team decided to revamp the editor and general user flow, and that's when I came into the picture.
Almost at the end of the MVP development, we understood that there was not enough budget to implement the founder's vision. To put it into perspective, Medium.com's team spent a year solving a similar problem, and that was absolutely out of our reach. (Btw, that's why most of the email editors you see on the web are block-based).
The project was put on hold, but Jon's enthusiasm deeply infected me, and eventually, I returned as a co-founder. Together with a team of amazing people, we delivered one of the best email editors out there.
And we even earned $500 before turning the lights off.
Flowmail aimed to enable small and medium teams to craft beautiful emails without reaching for external expertise. As a small business owner or a marketer, you may not always be able to get a hand-crafted design for your most important communication channel fast.
Not to mention meticulousness of back and forth communication with designer and frontend developer to cut it into HTML.
Then your next problem would be to make sure that it looks nice across a variety of browsers, applications, and screen sizes.
With Flowmail, all of that was worries of the past. It chopped down email marketing to its most essential flow and provided beautiful default options and best in class editing surfaces. Flowmail users didn't have to reuse the same templates all over again - they could go creative without clunk block-based editor standing in their way.
State of the art design & typography
Design-wise, the main idea of the app was to bring the content to the front by eliminating distractions and showing only what’s necessary. From the very first screen, the app’s user interface reveals only the things that are relevant at that particular moment.
Best in class Newsletter Editor
The Flowmail newsletter editor is the quintessence of the product and its core element. Its power is in its simplicity:
Zero distractions — focus on your content instead of the interface.
No room for mistakes — intentional scarcity of design options results in your emails looking clean and elegant.
Fast and easy to use — save your time for more important things in life.
Sample designs produced with editor
Under the hood, Flowmail was as much impressive as it was on the usability side. The simplicity of use was backed up by some very serious tech.
Of course, the biggest challenge was the editor. That piece once emptied the company's pockets, and we couldn't allow that to happen again.
It was evident to us that it wouldn't be feasible to build it in house from the ground up. We had to circumvent content editing facilities provided by the browsers and read user input.
Then we had to build a model to interpret that input and map keystrokes and selections into editing operations. Like "make this selection bold", "insert quote here", "add new line after that button", etc. Having such an interim model would allow us to produce HTML 1.0 and CSS 1.0 compatible emails that look beautiful across all platforms, apps and screen sizes. The built-in browser API was simply not enough to achieve our goal. Afterward, we would have to ensure that our model's visual representation looks the same in all browsers.
Fortunately, we were lucky - world-class experts in building editors had enough capacity between their big projects to accommodate our small endeavor. It felt non-real to witness such humongous democratization of technology - something that cost hundreds of thousands of dollars and a year of work shrunk to just a few dozens and merely a month and a half.
Backend design & architecture
Software design and architecture has few primary purposes: enable business agility, ensure long-term maintability and keep development costs at bay.
In my opinion, the most critical key to achieving that is to allow the software to be an extension of existing social structures. That's when Domain Driven Design methodology comes into the game.
Flowmail was both - learning and prooving ground for us to immerse into DDD principles and see how it pays off with a more cost-effective process.
Email delivery pipeline
Our backend was implemented with Phoenix Framework and Elixir language.
We leveraged fault-tolerance and concurrency primitives to our advantage to create exactly once delivery pipeline. We were able to send 40k emails under few minutes without dropping a single one on the floor. Provided design not only showed itself as extraordinarily reliable and performant but also allowed us to meet Amazon SES API and dispatching rate limits with maximum effectiveness.
The email delivery was a 3 step process
On the first step, the poller scanned all scheduled newsletters and picked up those ready to send. It interpolated all the variables, like first and last name, and create email delivery jobs. Afterward it moved to interpolate all the variables, like first and last name, and create email delivery jobs. If the campaign had 10k subscribers, then 10k delivery jobs would be created.
On the second step, email jobs were pulled from the database and distributed across delivery processes. Simultaneously, all picked up jobs were locked in the database for the next 5 minutes to avoid double send. The number of email delivery processes were dynamically tunable to respect upstream email provider limitations.
On the third step, two things happened: email was handed over to Amazon SES for further delivery. In case of success, the job was marked as complete and deleted. Should the process crash, its job would be retried after the timeout expiration.
We used the unique properties of Elixir's virtual machine BEAM to achieve near zero-downtime operations. So-called "hot-upgrades" allowed us to deliver new versions to production without ever interrupting the email delivery pipeline.
That wasn't a relaxed experience at all times. Overall I poured about 50 extra hours during the year and a half to support those operations.
While working on Flowmail I overtook de-facto Elixir deployment library Edeliver as a lead maintainer and created SES adapter for ExAws library - ex_aws_ses.
Front-End, Back-End & Integration
Hosting & Dev Ops
- An effortless experience for business users.
Creating a beautiful newsletter has never been easier. An email campaign could be launched from a mobile phone, tablet, or laptop. Flowmail provided an unparalleled experience that simplified the busy lives of business owners and marketers.
- Mobile-first user interface start to finish.
Flowmail was meticulously designed as a cross-platform application to ensure seamless usage across all major device categories. More importantly, it’s not just the application but also the newsletters optimized for mobile-first interaction, resulting in open and click-through ratios that are 25% higher than other emails.
- Bulletproof delivery guaranteed
A low-footprint codebase that was a pleasure to maintain. With high automated test coverage that could withstand integration errors, self-heal, and keep sending emails no matter what.
- Fully agile operations
Our CI/CD pipeline could deliver new product features in less than 30 mins without interrupting operations.
My best guess why Flowmail failed is that we missed the right somewhere in our journey. Technically it was a great product with quite a few unique features on the market.
Even today, I can see clunky block-based email editors at the center of the user experience in email marketing platforms. Maybe we missed something important and didn't have the skills to recognize it back then.