10
17 Comments

Creating an insanely cheap Custom Coding Service - How cheap is too cheap?

I’m a relatively technical (undergrad in Computer Science - grad school at MIT) and moderately successful (bootstrapped to > $500k/year revenue) entrepreneur, who’s looking to change gears a bit.

I’d like to help indie-hackers/teams/companies build (or replace) automations (between apps and services) similar to those that can be built with something like Zapier. Except we'll use code instead of no-code.

It turns out that while Zapier and similar no-code tools are great to prototype many automations, there are a number of reasons one would want to move to a solution based on custom code:

Recurring Cost

While Zapier does offer a free tier, if your automation (called a “Zap” in Zapier) runs more than about twice a day you will exceed the 50 free tasks per month and have to upgrade to a paid plan costing a minimum of ~$240/year (if paid yearly or ~$360/year if paid monthly).

On the other hand, cloud providers like Google Firebase will run your tasks (called “serverless functions”) using pretty hefty free plans. For instance Firebase allows for 2 million “task” invocations per month (and costs only $.40 per million after that) so in many cases you will only get charged about $.0026 (less than 3 cents) per GB of data used to store your serverless functions.

Here’s a screenshot of the monthly project cost to host an automation I built, that runs every time a commit is pushed to a Github repo:

Imgur

Imgur

As you can see, I pushed 111 commits last month, so assuming I could have built this integration in Zapier, it would have cost $29.99 just to test it. If I then released the integration to 7 more users with similar GitHub usage of ~110 commits per month, that would exceed Zapier’s “Starter” plan and the cost would go up to $73.50/mo for the “Pro” plan. Scaling to 500 users and I’d already be at the $898.50/month or $10,782/year price point ($7,188/year if paid up front). Whoa!

Imgur

Takeaway 1: It seems pretty silly that you’d even want to automate something that happens less than twice a day, so Zapier's free tier is all but useless. But with Google Firebase Cloud Functions' 2M free tasks per month you can automate a whole lot.

Flexibility

The second reason to move away from No-code automations is flexibility. Remember I said “assuming I could have built this integration in Zapier?” Zapier does offer a Github Integration so if all I wanted to do was something simple like getting an email every time a commit was pushed, price would be the only issue. But this particular integration could not have been built with Zapier’s simple “when some event happens - do some action” logic. While Zapier recently added if/then branching logic (called Paths) to the Pro plan and higher ($73.50+/month), you are often limited in what data is even made available to use in your conditional logic.

When authoring automations in code, we always have access to the full API made available by the company in question (Microsoft in the case of GitHub). Zapier integrations only expose a small subset of this API to its users.

Takeaway 2: sometimes tools like Zapier are better for thinking about what you would build with them if they were a bit more flexible, rather than actually trying to build with them and hitting the limitations of what you can’t actually do.

Moving Beyond No-Code with Code

While there are many more reasons like response time (Zapier automations will not be run more than once a minute and even that will cost you $3,588/year for the luxury) I’d be interested to hear from some of you about what limits you’ve seen when working with no-code automation tools like Zapier.

Beyond that, any feedback on what you would consider insanely cheap to build such automations that customers would then run for next to nothing on a cloud service like Google’s Firebase?

I’m thinking both in terms of a low-cost fixed per-automation price and a low-cost monthly service* where you could request unlimited new automations and modifications/maintenance to automations built previously through the service.

*Inspiration for the unlimited monthly model comes from Brett Williams who is absolutely killing it with DesignJoy by the way.

  1. 2

    This is a very well written, thought provoking post. Thank you for tagging me in your other comment, otherwise I would have likely missed it.

    Some (random) thoughts:

    Suppose you wrote a script that backs up Airtable bases to S3. Once it is written, the same script can be used for all your clients. So the first client that asks for this, pays for your development time, plus a fee for maintenance (say you run the script on your server for your clients). Lets say a new client asks for the same, except he wants to backup the data to Azure (or to a MySQL or whatever). This is a custom request, that can fall into Brett style business model.

    Over a period of time, you'd have a bunch of scripts that do a bunch of automation. A client pays fixed amount per month and can use any of the scripts and they can request custom modifications to the scripts, but if they want a brand new script/automation to be written, they pay for that separately. This model might work? If you didn't charge separately for new scripts, it is possible that a single new script request might take a week to develop, and tie up your time.

    This might work well for me, the client. Lets say I am paying 500$ a month and I have access to dozens of already written scripts. All I have to do is give you the list and the schedule to run them, plus any small modifications. This might work cheaper for me than paying for multiple services (plus as you mentioned, these services might not even work for my use cases) and paying for a developer for custom changes. Plus, I don't have to worry about hosting the scripts, as you'd do that for me!

    I am not sure if I am explaining this very well :( Which brings us to the main problem - assuming this is a workable model, how do we explain this to a paying client?

    One way might be to start with a single tool (Airtable, Shopify etc - something simple like backing up the raw data). Then go from there.

    1. 1

      This is a very well written, thought provoking post. Thank you for tagging me in your other comment, otherwise I would have likely missed it.

      Thanks! Glad you found some value in what I wrote here. @csallen suggests to keep posts short and sweet but wanted to lay things all out in my first post here.

      Oh and please upvote the post so others can find it and join the discussion!

      Over a period of time, you'd have a bunch of scripts that do a bunch of automation.

      Yes, this is how "integration" style consulting tends to work in general. Haven't done consulting in years but you tend to build up a codebase that you can reuse for subsequent work.

      assuming this is a workable model, how do we explain this to a paying client?

      Surely the monthly model needs a bit of thought and then explaining but to get things going you can just start with the offer to do one-off work.

      I'm willing to do automations and integrations for insanely cheap flat rates (given the typical costs of custom code by someone with my skillset) to get things going which is why my question is: "how cheap is too cheap?"

      1. 1

        What would your offer look like? Is it going to be similar to Brett, one flat monthly fee and any number of automations (new and changes to existing)?

        1. 1

          Sure... But while the integrations/automations (new ones, modifications, and maintenance) are important, I put equal value on the design and strategy side (what to build - why - when). That's why I'm calling this service MVP CTO. Being a CTO is as much about strategy and specifications as it is about writing code in a company's early days and eventually becomes all strategy and management later on. Unlimited access to someone with this important experience would be very valuable.

  2. 1

    Hey @mvpcto
    Just wondering, how did this turn out? I sure hope really well!

  3. 1

    Interesting idea, I've worked in this space a lot as a freelancer.

    1. How will you deal with the long tail of various api's you'll need to integrate with and understand. There are an infinite amount of SaaS api's out there that customers could potentially use and need to integrate with.

    2. Are you aware of the code action within zapier that essentially runs a lambda function in aws for you, in either python or javascript ?

    1. 1

      @Jiger104 thanks for the feedback. Sure I’m aware of the code action as well as the generic webhooks integration (both incoming and outgoing). From a potential customer standpoint this doesn’t get around the high cost to run tasks as they are still flowing through Zapier. But perhaps offering these “extended Zapier” integrations could help us get some initial traction in the space while customers can stick mostly with what they know.

      I’m not so worried about the long tail just yet because initially any work would be on-demand. But there are definitely economies of scale in the most popular APIs which I’d bet will roughly follow the Pareto principle (top ~20% of APIs will account for ~80% of what people are after). This is all an exploration and the model will definitely need to be tweaked moving forward.

      Right now I’m focused on how to find customers (for one-off integrations initially) and how to price it in the short term. Any insights on this? Anything you don’t take on because of price or lack of time? If so I’d be open to pay a referral fee for some initial customers to start testing the waters. Let me know.

  4. 1

    Before I get started, my background is that I've been running a solo custom software business for about 15 years now. The work I do is niche, like this, but different in terms of scale. There are some similarities though.

    Here's my big question for @mvpcto

    Why does this have to be "insanely cheap?"

    The kind of companies (and it will almost exclusively be companies) that are going to need a service like this are going to have money. No one who actually pays for custom software at this level is going to be afraid of high costs. In fact, something low-cost is possibly going to scare them away. If my theory on your target audience is right, and it's going to be businesses, their experience with low-cost providers is that they are often unreliable or not around for very long.

    On the flip side, if you do custom code like this cheaply the type of customer you are going to attract is going to be an absolute nightmare in terms of support and general hassle/unhappiness. Corporations and medium-sized businesses tend to be easier to work with.

    I think this idea is good. Like I said above, I've built a whole business for myself writing custom code/applications in a few small business-related niches. I'm just not sure you need to race to the bottom in terms of your pricing.

    1. 1

      Hey Brian, thanks for your detailed feedback. Ultimately I’m looking to flip the economics to higher volume / lower cost than the traditional consulting model as there actually is a new class of potential customers for custom code that just didn’t exist a few years ago. What I’m trying to do is seek out these new customers and learn how to serve them while eliminating some of the issues you mention through systems and process.

      I think the difference here is the difference between a small business owner and an entrepreneur. Many people use these terms interchangeably but entrepreneurship is inherently tied to significant risk. I’m a well educated skilled individual so there is virtually no risk that I couldn’t build a traditional consulting business if that’s what I was after. But I’m actually after something different. The “consult” section of Paul Graham’s famous do things that don’t scale essay is more in line with my ethos and why what I’ve described seems like consulting but is really about building a productized service.

      As with any pricing innovation this will require questioning some of the assumptions of the existing model. Henry Ford’s “you can have your model T in any color as long as it’s black” quote comes to mind as getting to what I’m talking about will be about standardized process, limitations and setting customer expectations.

      With all that said, as I may need to masquerade as a consulting business for some time, all your points are valid with respect to getting customers who would traditionally be a good fit for such services. So I do appreciate your comments (and your other posts which I’ve spent some time looking through). I just wanted to clarify my longer term intent is to stand a lot of these assumptions on their head and build something that may seem counterintuitive. That’s always a good sign from the entrepreneurial standpoint.

  5. 1

    Nice post! I agree completely - I actually just built a Google Docs integration for Ghost, which is something that already exists with Zapier... but I built my own Google Docs add-on since I found the same limitations you mentioned plus also in my case the Zapier integration wasn't very deep. (for example, with Zapier, you can't update existing Ghost posts from Google Docs)

    I think your approach sounds like an interesting angle to exploit this gap - I've taken a slightly different approach which is to focus on one niche (small publishers) and try to build and package together integrations they need.

    1. 1

      Nice Greg! I like your approach to multiple related tools for a specific niche. I also read your medium post on getting to your first sale. Nicely written and very helpful!

      I'll need to plan an approach to getting to some early customers for one-off automations before really focusing on the unlimited service. Besides the marketplace approach that you mention in your medium post (kind of doesn't apply for me as there is no off-the-shelf product), what has been the most effective way to find customers? Has engagement on Medium, Twitter, or IH been particularly helpful?

      1. 1

        Cool thanks! Yeah interesting question - for me, I've taken a bit of a longer route focusing on blog posts for organic traffic, since I'm kind of coming in as an outsider into a niche I wasn't really a part of before... trying to build up credibility before engaging more widely. But I've made it a bit harder on myself than the average person needs to do, since I've got some social goals as well.

        I've seen some good traffic from engaging on Twitter and IH and I think for you it will be even more relevant than for me. My traffic from there has been more curiosity, checking out what I'm doing, while I think for you it's actually your target market and will get you conversions. Medium I still cross-post on to get a bit of extra distribution for some of my posts but I wouldn't invest too much time engaging on the platform itself - followers don't amount to views there anymore...

        1. 1

          Thanks! I'd love it if IH could be a good feeder for this as I really fell in love with the community as a reader and it's been really positive after this first post two days ago.

          You do have me thinking of another angle to get things going: not just focusing on end-users or companies who need integrations for internal use but on entrepreneurs/indie-hackers like you who want to offer niche integrations to your users. You seem pretty technical but I wonder if there would have been a price point cheap enough where you would have just paid to get the integration done so you could focus on marketing it. Maybe there's another integration you would want to build if you had the time or the complexity was more manageable? Do you think this is a viable path to some early integration customers?

          1. 1

            Yea I think that's a good possibility to get started - not for me so much as I'm doing as much dev work as I am marketing, but there's a ton of no-code makers out there who I think that would appeal to. Maybe as a whitelabel product like you're talking about or to help them fill gaps in their no-code workflows.

  6. 1

    This is a really good idea. Maybe break it down a bit further for a no coder? If I am using Airtable for my back-end and want to update the base with data pulled from an API, where would the custom code live? Right now there is a combination of Airtable scripts and Zapier integrations. Do I deploy the code or do you?

    1. 1

      Hey @Baaarrraaandon.. looks like you signed up just to comment. Really appreciate it!

      I'm sketching out plans for some follow up posts so I can go over "Cloud Functions" vs. Zapier Automations from a no-coder's (and potential customer of this service) perspective including some images/diagrams, if it's useful. But I'll try my best to answer here:

      Take the example of Airtable scripts and Zapier integrations (where the Zaps interact with 3rd party APIs to update your base). The Zaps would be replaced and expanded with Firebase Functions.

      Quick answers:

      Where would the code for the Firebase Functions live? in two places: GitHub and Google Firebase.

      Who deploys the code? while you are enrolled in the service, we do. Otherwise you the customer or whoever you engage to manage this.

      Long answers:

      GitHub
      The source itself is stored in a private GitHub repo owned by you, the customer, with admin access provided to our service. This is so you could always hire someone else to take over maintenance (or learn to update the code yourself) if you want to leave the service. Being stored in GitHub also means all updates to the automations are "versioned" meaning what is deployed can be rolled back to a different version. If you leave, you can remove our admin access from GitHub.

      Firebase
      A snapshot (one specific version from the Git repo) of the source is deployed to Firebase where it is run. While our service is responsible for your automation, we will do the deployment, again with admin access to the Firebase account that you own. If you leave, it is up to you or whoever you engage to manage it for you. But if no modifications to the deployed version of code need to be made, the source can stay deployed in Firebase indefinitely. Google is great about keeping your code running. I have some stuff running on google cloud continuously for close to 10 years.

      Let me know if this makes sense. Also, what if any issues do you have with the existing setup you mentioned w/ Airtable + Zapier. Would love to see how we could help improve your setup.

  7. 1

    This comment was deleted 2 years ago.

    1. 1

      Thanks Benji. Glad the concept resonates with you. I'll shoot you an email in the morning as I'm happy to chat more about what you have in mind.

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 49 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 18 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments