- Something That Sticks
- Posts
- The Beginning
The Beginning
The first issue of Something That Sticks.
The Beginning
Merry Christmas to whoever celebrate it and welcome to the first issue of Something That Sticks, a newsletter documenting the building of emailtojson.com. The aim of this newsletter is to be a terse and to-the-point documentation of the marketing and sales process of a dev-oriented service/product. I'll also include SOME technical details (this issue will be heavier than most in that regard, since I'm still building out the product), but the focus will primarily be on the business side of things.
A Quick Overview of the Service
As the name implies, the service allows developers to quickly setup a system for translating incoming emails to JSON format, and receive notifications via a webhook. A more detailed description of the service and the problems it aims to solve can be found on this kern.al post I made a week ago. The aforementioned platform is fairly good for validating ideas and I could see companies using it to validate new features for their products or services.
The basic use flow of the service is as follows,
User creates email with one of their favorite clients (gmail, outlook, hotmail, yahoo, protonmail, whatever)
User creates mailbox on emailtojson.com and adds a webhook endpoint on which they can be notified
User creates a forwarding rule to their emailtojson.com mailbox using their client for all or some mail hitting their email
User starts receiving inbound emails in JSON format
There are a number of use cases, but I don't want to go into details on that because this isn't a sales pitch (you can see a number of use cases in this comment). Let's just say if you're using email for marketing or sales, there is value in having access to your emails in an easy to process format, and of course the real-time notifications help with any automation you would want to implement.
Everything Up to Now
I started working on this idea about two weeks ago. I needed a similar solution for my own purposes and couldn't find a good alternative online. After setting up a simple MVP I could use myself, I realized that it could be valuable for other people and was a worthwhile project to try to make into a paid service. It's small enough to be manageable for one person, while being a pain point for enough people to potentially be a profitable business.
I immediately decided to use carrd to make a simple landing page for validating the idea. It took about 30 minutes to setup and I like it because it gives me an easy way to share the idea with other people. Plus it makes the idea seem more real and professional. It took me a couple of days to realize that I could add analytics on the landing page through carrd, but I added google analytics as soon as I realized. Even at this early stage, it's essential to get as much information as possible, so doing anything you can to get more data is a must.
After setting up the landing page, I used the link to post on different social media sites and my programming newsletter, the performance details of which can be found in the "Marketing So Far" section below. I told myself that if I could talk to 10 potential users and see that the idea solved a pain point of theirs, it would be worth building out a more functional public MVP. I reached that goal within a couple of days and began working on the MVP application.
Marketing So Far
Here's an outline of the marketing done so far and any stats I can get.
LinkedIn (personal account, 951 followers, primarily software engineers)
Post saying I made the landing page for emailtojson.com and asking for feedback - 746 impressions (vast majority software developers), 6 likes, and 6 comments
Poll asking about how necessary encryption is for this service - 241 impressions (again mostly software engineers, it's safe to assume this for all LinkedIn posts going forward), 1 vote
Twitter (personal account, 70 followers, primarily software engineers)
Post saying I made a landing page - 26 impressions, 1 like, and 1 retweet (from myself, heh)
Kernal posted that I posted on their website - can't see analytics, but probably didn't do great
Poll asking about now necessary encryption is for this service - 122 impressions, 9 engagements
Build in public post on adding user auth - 37 impressions, 1 engagement
Build in public post with gif showing off user auth - 19 impressions, 1 engagement
Build in public post with gif showing off mailbox creation UI - 79 impressions, 12 engagements
Build in public post about not getting as far as I wanted - 61 impressions, 5 engagements
Kernal (personal account, 0 followers)
Post for the idea - can't see engagement, but I got 2 comments from other users
Reddit (6 followers)
Post in r/email trying to validate idea - 385 views, 1 upvote
Post in r/entrepreneur to validate idea - can't see stats, 1 downvote
Post in r/emailmarketing to validate idea - 944 views, 6 comments, 2 shares
Comment on email rendering post using svelte in r/svelte - can't see stats, 2 upvotes
Made a community r/email_developers - can't see stats
Newsletter (~3,000 subscribers, 99% software engineers)
Asking for beta testers - 14 clicks
Mentioning that I made a landing page for the project - 41 clicks
Analytics (started on 14th of December, 2022)
66 users
45 direct
11 organic social
8 from linkedIn
3 from twitter
11 referral
7 from kernal
5 organic search
3 form baidu
2 from google
2 unassigned
Other
When searching for email to JSON alternatives on duckduckgo, I came across email2json.net as one of the results. I asked the owner if I could buy his domain. He was really nice and we came to the arrangement that he would just redirect his URL to emailtojson.com (since the value of the URL was too low for him to bother transferring ownership). I figured it would be a nice organic search boost at the start of the project and based on the analytics for the landing page, it somewhat worked with 5 organic searches.
Thoughts
It seems that linkedin and kernal have been by far the most effective methods for getting eyes on the landing page (outside of direct visits). In terms of impressions, linkedin and reddit were the most successful. At the moment there isn't enough data to make a definitive decision, so I'll keep posting on all of the different platforms.
In regards to making a reddit community; I'm usually not a fan of making communities yourself, since it's a lot easier to support/contribute to an existing one, but it was a low effort endeavor and I can always explore building it out in the future.
Once the MVP is done, I'm planning to go the content marketing route by writing some articles relevant to the service. I don't have a concrete plan in place, but it'll probably be a matter of doing some basic SEO keyword research, hiring a couple of content writers for simpler articles, filtering out the best ones, then paying them to write more specific/complicated articles. I could do it myself, and I very well might end up writing a couple of articles, but it's a good task to delegate and there are more pressing issues for me to personally address.
Sell It Like a Salt Shaker
I've been actively trying to get people to commit to paying for the service, by following up with anyone who commented/engaged with any of the marketing posts. There are 5 people who are interested, but no one has said that they'd commit to paying yet. I'll continue to follow up with people.
The people who are interested primarily came from kernal, reddit, and a slack channel I'm in for bootstrapped startups.
State of the Website
My goal by the end of this week was to get a local working MVP for the mailbox creation/testing/notifying process. Unfortunately I didn't get as far as I wanted, but below is an image of the current mailbox page. Users can create mailboxes and send test emails from the browser. I still need to finish the infrastructure that handles notifying the user, which includes saving the notifications to the database and sending the post request with the email to the webhook URLs tied to the mailbox.
The gif below shows the process of adding a mailbox (from an earlier version of the page).
Clearly the design is terrible at the moment, but I'm just doing the basic functionality first. Once everything is working properly, I'll either fix up design myself, or more likely, hire a front-end dev with some design chops to handle it for me. Again, this is a great task to delegate, since it requires minimal guidance from my side.
After the typical flow is done, I'll need to add stripe for processing payments and the account settings page. I also want to add some infrastructure that'll allow me to publish blog posts for the future content marketing plans, but that's definitely the last priority on the list.
Here's a list of all of the different technologies being used for this project (so far). I'm not going to link to them because they're all relatively easy to find with search engine,
docker for the database container (I'll probably remove this for the production version)
postgresql as the database
sveltekit for the web framework
tailwindcss for the website front-end design
daisyui for the website front-end components
typescript for the back-end and front-end (with svelte)
directus as the admin dashboard for the database
clojure for the API that handles parsing emails and webhook notifications
aws for file storage, sending emails, receiving emails, and notifications
If you're interested in any of these and can't find them, just ask me by replying to this email (replying also helps with my deliverability, so two birds, one stone).
Tech architecture wise, everything is pretty standard. The only thing that might stand out is the fact that there is a separate API for processing emails and sending webhook notifications. The reason for this is that I wanted to separate that logic from the website. The website will likely require lots of edits/fixes, which will make it temporarily unavailable (potentially several seconds at a time). I didn't want this unavailability to interfere with inbound email notifications being sent, hence the separation. Plus, I really wanted to work with clojure, because me likey it.
So by separating the website from the primary service functionality, I can reduce the risk of any service disruption for existing users resulting from issues with the website. Technically there shouldn't be any critical issues (ie., lost of email data) if either the website or the API don't work, since the email data is going to be stored regardless; I just need to add a system for checking if any emails are in storage that haven't been sent as notifications, then add them to the notification queue when the service is back online.
I also need to setup deployment for the production version of the service. For the website it's going to be a standard gitlab deploy to a server with pm2 for managing the node process. For the clojure API, I'll have to figure out what the best practices are, since I haven't done that before. I'm guessing it'll also be through gitlab to a server, but I need to find out what the best solution is for managing/monitoring the service.
Next Steps
Development
Finish a public MVP by Wednesday
Setup the deployment pipeline for production
Get 3 beta testers
Marketing
Continue posting progress on twitter with #buildinpublic
Post on all socials once the MVP is up
Sales
Get 1 user to pay for the service
Closing Thoughts
The format of these updates will likely change once I get further away from the technical side of things and start focusing on the business itself. At that point, hopefully I can flesh out the marketing/sales sections more and add more tracking information on where users are coming from. My goal is to be as data driven as possible and I can foresee that tracking results in data sheets will likely be a good way to facilitate that. I'll make those resources available as I create them.
If you have any comments, questions, or feedback, feel free to reach out to me. Otherwise, have a lovely holiday and see you in the new year!