There are an endless stream of tools that exist to help bootstrap startups or enterprise software businesses. Selecting the right tools and knowing what to build or buy is critical to providing forward momentum towards a maintainable codebase. There are a few tools that just about every business will need to get started listed below. Some businesses will have additional upfront requirements like a payment processor and gateway.

  1. Continuous Integration/Continuous Delivery
  2. Ticketing Tracking Tool (ex: Jira, Clubhouse)
  3. Development Repository Hosting (ex: GitHub, GitLab)
  4. Cloud Provider (Database, Caching, CDN, Domain Management, etc...)

There are so many choices in the CI/CD space that can lead to decision paralysis. These companies often have different pricing schemes that can be difficult to predict ahead of time. However, almost all of these companies serve exactly the same purpose. They generally have configuration files that will execute a script to perform tests and deployment responsibilities. CI/CD solutions provide a clean layer between code and cloud infrastructure. Reputable companies in this sector are almost always reasonable choices and will not make or break a business.

Tools like Heroku, Terraform, and Netlify are all excellent software platforms. Picking between them depends on how configurable and complex the set of services that encompass a business will need to be. Heroku can get a Rails or Django Application deployed very rapidly, but confines an organization into the ecosystem and pricing model which can hurt down the road. Writing custom Terraform infrastructure as code configuration files can interact directly with cloud providers and can simplify a complex architecture. However, this also means that extra development cycles must be allocated to configure and test these configurations. Choosing the right balance of bootstrapping and manual layout for your business is integral to maximizing value from third party providers.

We recommend regular audits of all tools in terms of pricing and overall use. If a tool is prohibitively expensive or not in use it should be evaluated for removal since it creates more cruft in an organization's workflow than it's worth.