By far the biggest opportunity I have seen in technology in the last 10 years is building and monetizing a chatgpt app. So many people are doing it and so many people are making money from it. Building a chatgpt app in practice means putting a UI on top of your chatgpt-related code.

This section has two goals: to teach how to build a Chatgpt-powered app and to provide two different app templates that can be used as a starting point for your own project. The apps described in this section are fully functioning and, if put into production, would work. One app example is more geared towards B2B applications (this is similar to the one I built and sold) and one towards B2C.

When building your own business project, I expect that most of the follow-up customization work will be related to adapting the app to specific business verticals, such as passing different text data. However, you won't have to change the main Chatgpt-related code.

Obviously, since it is such a hot topic, there are also tons of other UIs that you can use. Browsing through github and searching for chatgpt UI projects would return plenty of results. In my experience though, most of those projects are 90% there, but the last 10% required to actually make them work often turns out to be very time consuming. If you pick a template from github, make sure you have a very clear idea of what's needed to get to your final product starting from there. Most projects on github are to showcase skills, not really to actually put them into production. On the other hand, they can be very useful for specific parts of your app (e.g. let me see how this person implemented this specific functionality).

If you are coming from product data science, most likely your framework choice reduces to two options: Shiny or Streamlit. If you are familiar with just one of the two, go for that one. None of them is so much better than the other one that it is worth the time of learning it, given that you know the other one. If you are not familiar with any of them or you are already familiar with both, the choice mostly depends on the app you are building.

Streamlit Pros:

Shiny Pros:

Personally, I feel that Shiny is the best choice if you are building something heavy on data science or analysis AND that's going to be used as an internal tool by a given company. That is, ChatGPT is a key part of your app, but you will also have many other analytics stuff in your app (plots, descriptive statistics, segmentation, etc.). People have been doing these sorts of stuff in Shiny for a decade and it is really hard to beat it there. Also, if the app is used as an internal tool, engineers or data scientists inside the company might end up doing maintenance of the tool. The ability to quickly switch between R Shiny and Python Shiny means that pretty much any engineering/data science team in the world will be able to do maintenance for it. And the not very modern looking UI is not an issue when building an internal tool.

Streamlit is much simpler to learn than Shiny. Getting a prototype up and running is really fast and simple, even with zero web development experience. If you have an app idea and you want to quickly test it by putting it online, Streamlit is probably the best choice. Its adoption is also growing exponentially, so it might be a good bet for the future. The downside is that it's a much more recent tool. Practically speaking, this means that most online support is pretty basic from people trying to learn it. If you were trying to do something more complicated, you are kind of left on your own. This will change over time as more complicated use cases get developed, but for now, if you are building something technically complicated, expect having to figure out things on your own.

Summing it up, for B2B or if you are planning to sell the app/code to a company, Shiny might be better. Streamlit is probably better for B2C and/or prototyping.

In any case, in this course, there will be two tutorials on how to build a production-ready app in both Shiny and Streamlit.

Chatgpt course - Full Curriculum