What's this? A side-side project? Yeah, it happens.
What?
Recently I trained an AI on a bunch of tweets to generate new tweets in this style, some of which I hope to tweet using from a twitter account. It's your classic Twitter Bot.
The current manual workflow is this:
- Generate a lot of tweets using the AI which was previously trained
- Read these, and pick out the good ones to tweet
- Paste the tweet into TweetDeck, and give it a schedule
All in all, this is a lot of clicks and screen estate to do. I'd love for a more streamlined process. The way I envisage a more streamlined all is this:
- Generate the tweets, as before. But perhaps push them to a website via API (or upload exported JSON file)
- From a mobile friendly app, get shown each candidate tweet and let me easily swipe left or right to dismiss the candidate tweet, or to schedule it
- the bot automatically queues the tweet to be sent from the twitter account for me using some simple rules for times that I set up (e.g. at pre-destined or randomised times every day)
Why?
Mostly so I can more sustainably maintain multiple twitter bots.
But also to keep my JavaScript skills sharp, including my Vue skills which I haven't touched in a while.
And lastly because the scheduling aspect is shared with LGTM, so this is also a neat little standalone project where I get to try that out before using it with LGTM.
When
As per usual, this is a side project (actually a side-side-project) so I have to fit it alongside regular work, and I don't have a lot of time. However, due to the small scope of this project I hope to get it done within a three weeks, but we shall see.
How?
I have a stack in mind: my old friend Firebase. It'll look something like this:
- Firebase Auth, for user accounts, as well as twitter oauth login
- Firebase Firestore, as the serverless database to store the tweets)
- Google Cloud Tasks for scheduling
- Vue.js 2 (not 3 due to the below reason)
- Vuetify for component framework as I don't want to deal with too much front-end. Unfortunately only supports Vue 2 for now
I'll describe this choice in the next post. I'll also be open-sourcing the project, the repo can be found here
Top comments (0)