A Broke B**ch’s Guide to Tech Start-up: Choosing UI Platform

Soumit Salman Rahman
9 min readMay 14, 2024

--

TL;DR: No need to launch through a new website. Use existing apps like Slack and WhatsApp. Also F*** Javascript!

This is me every time I have to deal with UI (courtesy of DALL-E)

Let’s say you are ready to build the UI for your GenAI app. You want to give the user some button clicks, some nice dropdowns, maybe a reindeer floatie and then you want to top it off with a chat interface (A GenAI app without a chat interface just seems weird). That’s all nice and good. But now you are wondering “Oh $hit, now I have to create a website”. Yeah, guess what else comes with it —

  • Site hosting, so that your app is always on.
  • Buying a domain name. If you are launching from your momma’s basement, every dime counts. Or may be you are not sure of the product name just yet.

.io costs $50

.ai costs $80–90

.com costs $10–16

Is it really worth paying for a domain name when you are still in early development?

There is still —

  • DNS configuration in your hosting service.
  • Create end-to-end user auth pipeline.
  • Drive traffic to your website.

Perhaps you want a mobile app. And then what? You want to go through —

  • Google Play store or Apple App store pre-release review?
  • Deal with Apple’s monetization bull$hit?
  • Frantically try to scrub off angry customer reviews from App store?

Think about it! When you are launching your product as an standalone website/webpage, there is a WHOLE LOT OF CRAP that comes with it.

And I still didn’t get to my “favorite of all” — Using Javascript 😢! Whether you a data scientist, ML engineer or a Cybersecurity guy like me, Javascript is just NOT a thing for a lot of us. If you are having to learn whole new language or bunch of new frameworks for development, that’s lot of time spent before launching a product that is “this close” for its first release.

$hit-talk Tangent: I hate JS with a passion. I have used it … occasionally, but I hate it. I would rather drop a solid G 💵 for a domain name than write JS code. It makes my soul bleed. In fact, I was so unmotivated to write the UI part of the code that I kept adding random features in the backend that did not even need to be there. As I was finally gearing up to UI write code, an afternoon coffee with a to-be customer really opened up my eyes. She told me —

You know what would be nice — if I could just have someone manage all my WhatsApp orders

I was like … OH! What if the UI is a WhatsApp bot?? Meaning —

  • Customer gets an interface or app she is already using, so zero adoption curve.
  • No need to pay for a domain name.
  • No need to create a separate website.
  • No need to launch a new mobile app.
  • No Javascript 💃! I can do that with Python. My co-founder thinks that the “No JS” was really the ONLY motivation on my part. I neither admit nor deny such “allegation”.

So this is a long winded way of saying -

If you are building the UI for your GenAI app and want to offer some simple interactive functionality, you don’t have to create a website. You can still release the app through other platforms and with Python code. In this article I will walk through some of the options and my take on when to use them.

Slack App

This is my personal favorite platform to host a chat bot (or natural language input driven GenAI application). It is already designed to be a chat platform which means you get chat experience natively. Slack API also provides the ability to include rich-text (through markdown), buttons, dropdowns, modal/dialog box, reactions and file access.

Use case:

With more than 65 million monthly active users and 750K companies in its bag, Slack is the perfect choice if you are building enterprise productivity tools such as IT helpdesk, corporate document search, threat intel bot, virtual stand-up bot, group discussion summarization bot, corporate communications bot etc. Slack’s user base varies from 2 people startups to mid-large scale new-age companies (Old people use Microsoft Teams 😒)

Resources:

This is a great resource to create your first bot using Python SDK for Slack Bolt framework.

If you already have something working you can use these articles to deploy and publish your app: Deploying Slack Bot in Azure and Slack Bot OAuth and Install.

Discord Bot

Similar to Slack you can create a discord bot. Discord also provides rich text messaging, event notification, buttons, dropdowns, modal/dialog box, reactions and file access.

Use case:

With more than 150 million monthly active users Discord is popular among gamers, techies and below 30 population. Its primary usage tends to be more towards non-corporate privately managed community engagement. So if your product is trying to appeal to individuals/personal users or gaming communities, Discord bot is where you should be starting with. It is worth noting that I am seeing more and more AI start-ups (e.g. Chorma, Griptape etc.) are using Discord as their developer support platform. If you are building external customer support bot, there is definitely some tailwind here.

Resources:

This is a great starting point to create your first Discord bot.

This is a more comprehensive SDK documentation.

WhatsApp Bot

WhatsApp offers ability to send and receive to and from a bot (or a web service really). It does provide some minimal rich text formatting such as emoji, gif, list and inline buttons, however it is not as rich as Slack or Discord.

Use case:

With a whooping 3+ BILLION monthly active users 😲 in its pocket, if you are going for a mobile primary scenario WhatsApp bot is best choice. Although WhatsApp has a desktop SKU and both Slack and Discord has their own mobile apps, when it comes to WhatsApp it is safe bet to say that all those 3 billion users use it on their phone. WhatsApp also seems to be the platform of choice for micro business owners specially in the Caribbeans, South America and Middle East markets. Most of the micro business owners practically live in this app for all their direct customer engagement. So if you are building a bot to manage customer appointments, order requests, notifications go with WhatsApp before you even think of creating a separate mobile app.

Resources:

I used this video to create my first prototype

This is more comprehensive API/SDK documentation

Telegram Bot

Full disclaimer — I personally never used Telegram neither have I created a bot on it, so I can’t speak for it from experience but this seems to be another viable option as mobile app alternative. If your user base is primarily Telegram users, Telegram also offers APIs for bot interaction. It appears to be similar to WhatsApp in terms of features (simple rich text and allows buttons).

Resources:

This seems to be a quite informative article by Moraneus on how to create a telegram bot.

Website/Webpage

Ok fine! You really want to do things as a website/webpage or may be the site already exists and you want to integrate a pop-up customer support bot like some of the sites have these days. Don’t freakout, you can do that using Python.

Use Case:

If your chat bot is part of a larger GenAI application that shows a whole pack of charts and graphs, auto-refresh contents, fancy slider bars, multiple display panels, none of the previous options will cut it. You will need a webpage. Also if you are trying to integrate something like a customer support chat bot to an existing website, guess what, you will need webpage rendering. Luckily there are Python frameworks for web rendering without having to touch JS and CSS.

Seriously, why is CSS still a thing?!

Python Frameworks:

Streamlit is primarily designed to turn Python scripts into shareable web applications easily. It is great for data scientists to create highly interactive dashboards or widgets (like buttons, sliders, chat interface) without needing to know front-end technologies.

StreamSync is a Python framework that focuses on enabling real-time collaboration in a web app. In addition to visualization it synchronizes state across multiple users in real-time (like Google Docs).

To me the primary difference between Streamlit and StreamSync is that StreamSync has capability to support real-time, multi-user interactions. Where as Streamlit is designed for data visualization and creating standalone analytical tools.

If you want something that is more general purpose React like framework but in pure Python Solara is a great choice.

Keep in Mind

No matter what platform you are using the following are still true —

  • All of the platforms have mobile apps and with the right rendering you can make your website have a mobile native experience as well. You are better off not creating a mobile app.
  • Chat bot or not, to each platform, you are a web service with REST endpoints. I use Flask to create the web service and routes.
  • You need to host your bot’s web-service (e.g. Azure, AWS, GCP, Heroku). UI platforms are not going to host it for you.
  • Unless you are a website/webpage you will still have to go through platform specific product/release review if you want to make your app available in the platform specific app directory (like Slack). But it is not as intensive as releasing a new Mobile app.
  • You are responsible for managing your own monetization mechanics. Slack is not going to pay you out of their pocket.
  • Each platform has limit on the volume of content you can dump in a message.

What to Choose

If you are trying to figure out which UI platform you are going to go with, use the following to guide your decision

  • Start with minimal, quick and dirty. Use that to understand your users and scenarios. Add fancy features later.
  • Figure out if the interactive experience you want to provide is a chat like experience or button clicks.
  • How much scrolling is needed? IM platforms optimize for short burst of texts, NOT 50-page docs with diagrams.
  • When backend data changes, is auto-refresh a MUST have feature or you can do-away with occasional message notification? IM platforms do NOT to auto-refresh. If the backend data changes frequently and the visualization is expected keep up with it, IM platforms are NOT your friend.
  • Go where most of your users are. For an enterprise helpdesk bot, start with Slack. If it is a 1:1 customer engagement bot go with WhatsApp. If you need to show fancy charts go with a stand-alone website/webpage.

I started personally with Slack as my first platform and then moved onto WhatsApp. I still do not have a fully functioning website/webpage. With that, I’ll leave you to your grind! I’ll see you again in my next post.

PS

--

--

Soumit Salman Rahman

Cyber Security Leader, Chaos Junkie | Recovering Big Tech | Big Daddy @ Project Cafecito