Inspiration
Wanted a cool way to use Twilio, and this seemed interesting and fun. Low-code platforms are a hot topic right now, and whilst studying functional programming it seemed interesting to try and abstract programming concepts.
What it does
A user uses the web interface to create a workflow from a number of functions. Right now it supports simple messages, fetching webpages, summarising webpages, and regular expression matching.
How we built it
The backend is built with ASP.NET Core (C#) which Seth was more familiar, and the frontend was mostly built by Bruce using SolidJS/TailwindCSS. The Twilio API and GPT-3 were used to send SMS messages and summarise text.
Workflows are represented as a list of functions internally which process data by pushing and popping from a stack structure. It actually support if statements! However, there is no frontend interface for this (it's a bit more complicated, requiring a nested function as a predicate, which we didn't have time to create).
Challenges we ran into
It took a while to get the workflow runner working. Bruce tried to do some clever stuff with interfaces to enforce a result from each function to put into a stack, however this never worked and we ended up with simply using switch cases.
The documentation for OpenAI's library was notably poor on Seth's side.
A long time was spent attempting to deploy on fly.io, after which we moved to Render and it worked flawlessly with zero configuration. Seriously, I love render now.
"Hey make sure you don't commit the API keys to the repo"
"Ok"
...
"Hey, Twilio just sent me an email about rotating my tokens"
Accomplishments that we're proud of
It looks reasonably clean and looks reasonably good, which is more than enough for to be proud of at a hackathon :P. We found the summary function really cool to get working, and getting that first workflow working was a sigh of relief.
What we learned
- How to use the Twilio API, GPT-3, deploying with Render
- Using ASP.NET Core as a backend API for an SPA rather than using the MVC pattern
- Fixing CORS errors
- How to go about representing if statements in a JSON format
What's next for LetMeKnow
Not sure. We think it's cool, and maybe with some polish and more flexibility it could be actually quite useful. We'll see.
Log in or sign up for Devpost to join the conversation.