AI2 Logo
incubator logo

Menu

edges
Guide

Founder technical toolkit

June 8   Vu Ha Vu Ha
Founder Technical Toolkit
Note: this guide original appeared in AI2 Incubator Insights 8.
At the AI2 incubator we work with founders building companies from Day One. At this stage, our companies typically have no more than three entrepreneurs, and at times just one. When it comes to building a proof-of-concept (POC) for an AI product, such a small team represents a unique challenge. We are sharing some advice, technologies, and tools that we found to be useful in tackling this challenge.
  • ML libraries: Pytorch, Hugging Face, spaCy. If you need to run ML on a mobile phone or inside a browser, consider TensorFlow Lite/JS. Definitely check out our guide on machine learning for startups. In particular, there is rarely a need for MLOps or large-scale data labeling efforts at this stage.
  • If you do not have engineering backgrounds, you can still build a POC using no-code tools such as Bubble.io and AI APIs such as OpenAI’s API and Hugging Face’s API. Paul Jacoubian started copy.ai by tinkering with OpenAI’s GPT-3, for example.
  • If you do have engineering backgrounds but have been working at big technology companies (e.g. MAANG), expect a bit of adjustment, as the tech stacks at such companies are not portable to the startup environment. View this as a challenge that you can crush — and at the AI2 incubator we can help! It’s also more enjoyable than practicing binary tree inversion on LeetCode just to pass another MAANG interview.
  • If the POC focuses on AI (for example, a novel ML model), consider using Python-based tools such as Streamlit and Gradio—no JavaScript is required. They are backed by well-resource companies and thus continue to deliver more features. If you lack front-end/UX experience, consider Bubble.io if Streamlit/Gradio do not meet the UX requirements.
  • If you lack front-end/UX experience but want to pick up some knowledge, that’s great but give yourself a time budget—there are more pressing priorities than mastering the nuances of JavaScript or CSS. The front-end/UX space is always dynamic with new libraries and frameworks popping up regularly. Just pick something on the tried-and-true side and avoid bleeding edge stuff (check out the latest State of JavaScript report for a sense of this).
  • Our recommended front-end/UX toolkit for web applications consists of ReactJS and Chakra UI. Alternatives such as NextJs and Remix.run can be compelling but unlikely to be worth the added learning curve for a POC. We also heard good things about Svelte, Vue if that's your things.
  • REST vs GraphQL. We recommend staying with REST. The benefit/cost considerations in a pre-seed project heavily favor simplicity. GraphQL is powerful, but not simple.
  • Python + JavaScript. There are scenarios where other languages such as Swift and Rust are needed, but it’s remarkable how far you can go with just Python and JavaScript. Python is almost required given that you are building an AI-first product, whereas JavaScript is also almost required to build user experiences. Bonus if you choose TypeScript, but consider turning off Strict Mode for TypeScript—you don’t want to make the TypeScript compiler happy. Focus on finding happy customers instead. It’s worth noting that the venerable computer science textbook Structure and Interpretation of Computer Programs has recently been adapted to JavaScript. Timely decision!
  • For the service layer, use either Node/Express or Flask. Use Go if you are an expert in it, but don’t try to use Go for the purpose of adding another PL to your arsenal/resume.
  • For a data backend, Postgres, Mongo, Dynamo, etc. are all fine options. Pick the one that you are most comfortable with.
  • For deployment, use AWS, specifically the Elastic Container Service (ECS). Consequently, some familiarity with Docker is required.
  • At the AI2 incubator we deploy to ECS using Pulumi, writing our infra-as-code in TypeScript. This allows us to pick up minimal cloud architecture and devops knowledge in a pay-as-you-go fashion. Pulumi’s TypeScript documentation is superb and available at your fingertips inside your favorite IDE. Pulumi is used at AI2 incubator companies such as Ozette and WhyLabs.
  • Consider a continuous deployment (CD) strategy with GitHub Actions. Continuous integration (CI) is definitely optional. Write tests only if you absolutely have to.
  • At a high level, aim to optimize for speed and simplicity. Dial up the KISS principle to a pretty high setting, especially compared to the level at a larger organization.
To summarize:
  • ML: Pytorch, Hugging Face, spaCy, Tensorflow Lite/JS.
  • Rapid prototyping: Bubble.io, Streamlit, Gradio.
  • Frontend: React, TypeScript, Chakra UI.
  • Services: Express/Flask.
  • Cloud/infrastructure: AWS, ECS, Pulumi, Docker, GitHub Actions.
  • AI API services: OpenAI, Hugging Face.
  • Look for discounts and promotions from major cloud providers. Companies incubated at the AI2 incubator get awesome packages of cloud credits from AWS, GCP, and Azure.
The world of technology is constantly evolving. Even with lots of simplification, the above list could still be rather overwhelming. You may decide to pick a subset of these technologies and work with contractors to fill the remaining gap. For your first engineering hire, recruit someone who may not necessarily know a given set of technologies but has an insatiable drive to learn whatever tool that is needed to get the job done.
We wrap up this discussion by sharing two GitHub repos that contain starter project templates that use our recommended toolkit.
  • AI2 Incubator’s webapp template is a full-stack web application with a React/TypeScript frontend and a Flask backend. The app is deployed to AWS’s ECS using Pulumi and GitHub Actions. The deployed HTTPS endpoint URL can be configured by simply specifying a domain name and a subdomain name (e.g. https://demo.example.com). Pulumi takes care of setting up the necessary Route53 and certificates behind the scenes.
  • AI2 Incubator’s streamlit template uses the same tools as the webapp template for the purpose of deploying a Streamlit demo to the domain URL of your choice. You may also take a look at Hugging Face’s Spaces as an alternative to host your Streamlit/Gradio apps.

Stay up to date with the latest
A.I. and deep tech reports.

edges
Guide

Founder technical toolkit

June 8   Vu Ha Vu Ha
Founder Technical Toolkit
Note: this guide original appeared in AI2 Incubator Insights 8.
At the AI2 incubator we work with founders building companies from Day One. At this stage, our companies typically have no more than three entrepreneurs, and at times just one. When it comes to building a proof-of-concept (POC) for an AI product, such a small team represents a unique challenge. We are sharing some advice, technologies, and tools that we found to be useful in tackling this challenge.
  • ML libraries: Pytorch, Hugging Face, spaCy. If you need to run ML on a mobile phone or inside a browser, consider TensorFlow Lite/JS. Definitely check out our guide on machine learning for startups. In particular, there is rarely a need for MLOps or large-scale data labeling efforts at this stage.
  • If you do not have engineering backgrounds, you can still build a POC using no-code tools such as Bubble.io and AI APIs such as OpenAI’s API and Hugging Face’s API. Paul Jacoubian started copy.ai by tinkering with OpenAI’s GPT-3, for example.
  • If you do have engineering backgrounds but have been working at big technology companies (e.g. MAANG), expect a bit of adjustment, as the tech stacks at such companies are not portable to the startup environment. View this as a challenge that you can crush — and at the AI2 incubator we can help! It’s also more enjoyable than practicing binary tree inversion on LeetCode just to pass another MAANG interview.
  • If the POC focuses on AI (for example, a novel ML model), consider using Python-based tools such as Streamlit and Gradio—no JavaScript is required. They are backed by well-resource companies and thus continue to deliver more features. If you lack front-end/UX experience, consider Bubble.io if Streamlit/Gradio do not meet the UX requirements.
  • If you lack front-end/UX experience but want to pick up some knowledge, that’s great but give yourself a time budget—there are more pressing priorities than mastering the nuances of JavaScript or CSS. The front-end/UX space is always dynamic with new libraries and frameworks popping up regularly. Just pick something on the tried-and-true side and avoid bleeding edge stuff (check out the latest State of JavaScript report for a sense of this).
  • Our recommended front-end/UX toolkit for web applications consists of ReactJS and Chakra UI. Alternatives such as NextJs and Remix.run can be compelling but unlikely to be worth the added learning curve for a POC. We also heard good things about Svelte, Vue if that's your things.
  • REST vs GraphQL. We recommend staying with REST. The benefit/cost considerations in a pre-seed project heavily favor simplicity. GraphQL is powerful, but not simple.
  • Python + JavaScript. There are scenarios where other languages such as Swift and Rust are needed, but it’s remarkable how far you can go with just Python and JavaScript. Python is almost required given that you are building an AI-first product, whereas JavaScript is also almost required to build user experiences. Bonus if you choose TypeScript, but consider turning off Strict Mode for TypeScript—you don’t want to make the TypeScript compiler happy. Focus on finding happy customers instead. It’s worth noting that the venerable computer science textbook Structure and Interpretation of Computer Programs has recently been adapted to JavaScript. Timely decision!
  • For the service layer, use either Node/Express or Flask. Use Go if you are an expert in it, but don’t try to use Go for the purpose of adding another PL to your arsenal/resume.
  • For a data backend, Postgres, Mongo, Dynamo, etc. are all fine options. Pick the one that you are most comfortable with.
  • For deployment, use AWS, specifically the Elastic Container Service (ECS). Consequently, some familiarity with Docker is required.
  • At the AI2 incubator we deploy to ECS using Pulumi, writing our infra-as-code in TypeScript. This allows us to pick up minimal cloud architecture and devops knowledge in a pay-as-you-go fashion. Pulumi’s TypeScript documentation is superb and available at your fingertips inside your favorite IDE. Pulumi is used at AI2 incubator companies such as Ozette and WhyLabs.
  • Consider a continuous deployment (CD) strategy with GitHub Actions. Continuous integration (CI) is definitely optional. Write tests only if you absolutely have to.
  • At a high level, aim to optimize for speed and simplicity. Dial up the KISS principle to a pretty high setting, especially compared to the level at a larger organization.
To summarize:
  • ML: Pytorch, Hugging Face, spaCy, Tensorflow Lite/JS.
  • Rapid prototyping: Bubble.io, Streamlit, Gradio.
  • Frontend: React, TypeScript, Chakra UI.
  • Services: Express/Flask.
  • Cloud/infrastructure: AWS, ECS, Pulumi, Docker, GitHub Actions.
  • AI API services: OpenAI, Hugging Face.
  • Look for discounts and promotions from major cloud providers. Companies incubated at the AI2 incubator get awesome packages of cloud credits from AWS, GCP, and Azure.
The world of technology is constantly evolving. Even with lots of simplification, the above list could still be rather overwhelming. You may decide to pick a subset of these technologies and work with contractors to fill the remaining gap. For your first engineering hire, recruit someone who may not necessarily know a given set of technologies but has an insatiable drive to learn whatever tool that is needed to get the job done.
We wrap up this discussion by sharing two GitHub repos that contain starter project templates that use our recommended toolkit.
  • AI2 Incubator’s webapp template is a full-stack web application with a React/TypeScript frontend and a Flask backend. The app is deployed to AWS’s ECS using Pulumi and GitHub Actions. The deployed HTTPS endpoint URL can be configured by simply specifying a domain name and a subdomain name (e.g. https://demo.example.com). Pulumi takes care of setting up the necessary Route53 and certificates behind the scenes.
  • AI2 Incubator’s streamlit template uses the same tools as the webapp template for the purpose of deploying a Streamlit demo to the domain URL of your choice. You may also take a look at Hugging Face’s Spaces as an alternative to host your Streamlit/Gradio apps.

Stay up to date with the latest
A.I. and deep tech reports.

horizontal seperator

Join our newsletter

AI2 Logo
incubator logo

Join our newsletter

Join our newsletter

AI2 Logo
incubator logo

© AI2 Incubator · All Rights Reserved

Seattle, WA

Twitter

LinkedIn

Privacy

Terms of Service