FaxDroid (An Online Fax Service)
FaxDroid (https://faxdroid.com) is an online fax service that allows users to send and receive fax directly from their browser. Users can send fax by uploading their documents to FaxDroid and selecting a destination fax number. Faxes can be sent to and received from real fax machines without requiring a modem or a phone line.
Technologies
- Rest based server architecture with PHP + Symfony
- MySQL + Doctrine
- Angular IO (Angular Server Side Rendering with Lambda@Edge and CloudFront)
- UI Testing with Selenium (Provisioning, CI Environment, Deployments and Automated Testing)
- Setup CI environment using Jenkins (Provisioning, CI Environment, Deployments and Automated Testing)
- Integrated with PayPal as a payment processors(Implementing Subscription Based Billing Solution Using PayPal)
- Created sandbox environments for dealing with customer files in isolation using docker containers (Custom File Handling Solution with UX and Security Constraints)
- Built a fax server using Asterisk (an source code PBX) and SIP trunks (Creating a Fax Server Using Asterisk (an Open Source PBX)
- Fraud detection and prevention (Fraud Prevention Techniques)
- AdWords, Google Analytics, Google Tag Manager and campaign optimization (Google Tag Manager, Analytics and AdWords)
- Twilio SIP Trunks, Verify
- Infrastructure built using AWS with CloudFormation. Various different AWS services were incorporated (Infrastructure as Code (IaC) Using CloudFormation):
- CloudFormation
- Route53
- CloudFront, Lambda@Edge
- Athena, Glue
- WAF
- CloudWatch (Metrics, Logs, Alarms, Filters)
- SNS
- Certificate Manager
- Elastic Load Balancer
- Relational Database Service (RDS)
- Networking (Subnets, Route Tables, Nat, VPCs)
- Auto Scaling Groups (ASG)
- ElastiCache Redis
- SQS
- CodeDeploy
- Lambda
- S3
Why?
Why did I start this project? A few years back (2016) I had to send a few pages of fax. I didn’t have access to a fax machine and I was very surprised that people still use fax. At the time I assumed there is probably going to be an online solutions for faxing so I quickly turned to google. I came to realize that there is a lot of room for improving existing solutions:
- Majority of existing services focused on monthly subscription. Most fax users however only need to fax occasionally and are looking for transactional solutions.
- Some of the more popular services had very outdated and difficult to navigate user interfaces.
- Over priced services with very large margins of profit.
- Lots of hidden fees
This made me decide to start my own online fax service.
Business Model
As mentioned above most fax services focused on the subscription pricing model. There were also a few services that focused on transactional fax however lacked many of the features subscription based services offered. The goal with FaxDroid was to build a hybrid solution as outlined below:
The hybrid solution consisted of 2 main products:
- Guest Fax
- Subscription Plans
Guest fax is a transactional method for sending fax that allowed users to send faxes without registering for an account. It also offered free faxes to many destinations (for low page counts). The idea behind guest fax was to create a net zero revenue product that would incentivize users to use FaxDroid and to share FaxDroid with friends
The subscription plans were basically monthly recurring payments customers would sign up for. These subscription plans were the main source of revenue for FaxDroid.
In summary:
- Most users would only use the free guest fax
- A percentage would be willing to pay for the premium faxes.
- A very small portion of users would continue on to the subscription plans which would be the majority of the revenue.
How Does It Work?
Guest Fax
Guest fax provides a solution for users to send fax without registering for an account. The main idea with guest fax was to create a very easy to use user experience. To send faxes users would need to:
- Visit https://faxdroid.com/send
- Fill out the form
- Upload their documents
- Enter the destination fax number
- Enter their name and email address
- Click Next
- On the next page they will see a summary of their fax. While some faxes are free, others require a payment. For non free faxes they will also see a PayPal checkout button on this page.
- After completing the checkout process the fax will start to transmit and the user will be provided with live status updates on the fax delivery
The video below shows this process:
Subscription Plans
As mentioned in the Business Model the majority of FaxDroid’s revenue was based on the subscription plans. By applying for a subscription plan users would benefit from:
- Their own dedicated fax number (available to select from multiple countries)
- Ability to receive fax
- Free monthly page credits
- User dashboard with archive of all sent and received faxes
Account Registration
Account Upgrade
Sending Faxes
Receiving Faxes
Description
Built FaxDroid (an online fax service). Developed the front end, back end and infrastructure. Some of the key technologies:
- Symfony + PHP
- MySQL + Doctrine
- Angular IO
- Selenium Tests
- Jenkins
- Asterisk (a programmable open source PBX)
- Twilio (Verify, Sip Trunks)
- Integration with PayPal
- Various AWS Service (CloudFormation, CloudFront, Lambda@edge, WAF, ElastiCache, ...)