My preliminary take on how I’d run such an account:
If a method is developed, it can then be shared to the community so others can reproduce it.
My preliminary take on how I’d run such an account:
If a method is developed, it can then be shared to the community so others can reproduce it.
I will play around with your steps in a bit, and see what the output looks like.
From my experience, even properly chunking and storing the twitter algorithm in a vectorstore db for augmented retrieval, the output will not take into account the whole codebase of the algorithm. The context is just not big enough, or cheap enough.
I think we are better off finding a good summary online of best practices and crafting a prompt to follow the twitter-together syntax and twitter’s best practices for maximum reach. Then running the PRs through that.
Curious to find out how it performs
Here’s an example of what I mean:
Look at some of the answers for yourself. Yes, it takes into account the chunks of code that are most semantically similar to the query to craft an answer, but it’s very far from a holistic view of the entire twitter algorithm. This type of query is better suited for asking about specific functions within a codebase, etc. Doing something similar with the NoM codebase could be helpful for developers and users writing documentation.
I will look for resources that sum up the key points from twitter’s algorithm as it applies to someone looking to maximize reach. Then, feed that plus the twitter together syntax with a prompt to review the PR and suggest edits.
I’ll share it when I’m done.
Here is the ChatGPT-4 output I found most useful/relevant. Following the twitter, together syntax was a total failure only feeding the model twitter-together’s repo, as you suggested. We’ll need to do some prompt engineering and craft a few-shot prompt that includes our own examples of correctly formatted .tweet files that include all use-cases.
Content of the Tweet Thread:
The PR aims to create a tweet thread commemorating the 27th of July, 2023, when Mr. Kaine airdropped the keys for Twitter/X and Github to the Zenon Community. The thread is composed entirely of quotes from community members. Here’s a breakdown:
Introduction: The tweet introduces the significance of the date and sets the tone for the thread by emphasizing the community’s involvement.
Zenon’s Transformation: The tweet highlights Zenon’s shift to a community-led project and introduces a thread that serves as a tribute to the community’s dedication.
Leaderless Philosophy: The tweet delves into the concept of being “leaderless” and how Zenon embodies this philosophy, emphasizing trust in the shared vision.
Quotes from Community Members: The thread features various quotes from community members, each offering a unique perspective on Zenon, its ethos, and its journey. These quotes range from poetic expressions and personal experiences to humorous anecdotes and profound insights.
Detailed Scrutiny:
Relevance to the Twitter Algorithm: The thread is designed to be engaging, with a mix of profound insights, personal experiences, and community anecdotes. Given the algorithm’s preference for relevance, engagement, and rich media, this thread is likely to perform well. However, the inclusion of images or GIFs could further enhance its visibility.
Content Quality: The content is well-curated, with a mix of profound insights and light-hearted moments. It captures the essence of the Zenon community and its journey.
Engagement Potential: The thread has high engagement potential. The use of community quotes invites interactions from mentioned members and the broader community. The narrative style, combined with the significance of the event, is likely to resonate with followers, prompting retweets, likes, and replies.
Optimization Suggestions:
Let’s address each of your questions:
Should you put images? Yes. The Twitter algorithm prioritizes tweets with rich media, such as images, videos, and GIFs. Visual content tends to capture attention and can significantly boost engagement.
How many and where? Ideally, you should include a featured image with the initial tweet to set the tone and context. If you have relevant images for some of the quoted testimonials or key points, you can include them. However, ensure the images add value and are not just for the sake of having visuals. A good rule of thumb is to have an image every 3-4 tweets in a thread to maintain visual interest without overwhelming the reader.
Should they be posted by the authors to their own accounts? Yes. Authenticity plays a crucial role in engagement. When testimonials are posted by the original authors, they carry more weight and credibility. It also allows for organic reach and engagement as the authors’ followers might engage with the original tweet.
Should they then be quoted rather than rewritten? Absolutely. Quoting the original tweet ensures authenticity and gives credit to the original author. It also leverages the algorithm’s preference for engagement, as retweets and quote tweets are forms of engagement.
Should you use hashtags? Yes. Hashtags increase the discoverability of tweets, especially for users who might be following or searching for those specific hashtags.
How many and where? Twitter’s best practices suggest using no more than two hashtags per tweet to avoid looking spammy. Place them at the end of your tweet or integrate them naturally within the tweet’s text. For a thread, you can use a consistent hashtag throughout, like #ZenonNetwork, and then vary one other hashtag based on the specific tweet’s content.
Incorporating these strategies will not only make your tweet thread more engaging but also optimize it for the Twitter algorithm, increasing its reach and impact.
https://tweethunter.io/blog/twitter-algorithm-full-analysis
This was the best resource I could find regarding the twitter algo.
May you ask GPT if we should repost old tweets as new content, or simply retweet it (you can only retweet once, the next time you have to unretweet and then retweet again). The idea is to repurpose content in the most beneficial way.
@0x3639 do you have permissions to create a project in the zenon twitter repository called “Tweet Calendar”? Namely a “Board” type (as seen below) so that we can collaborate on a calendar of tweets? Would be awesome if we can get a way to queue tweets for auto-posting (schedule them) using twitter-together. Will propose a configuration shortly, talking to GPT about it.
I’m currently debating between Kaban (columns) or Gannt style (Roadmap):
Both Gantt-style (Roadmap) and Kanban-style project boards have their merits, and the best choice for managing
twitter-together
depends on your specific needs and preferences. Here’s a comparison of both styles in the context oftwitter-together
:Gantt-style (Roadmap):
Pros:
- Visual Timeline: Provides a clear visual representation of when tweets are scheduled to be published. This is especially useful if you have a content calendar with specific dates for certain tweets.
- Dependencies: You can visually link items to show dependencies, which can be useful if one tweet or action is contingent upon another.
- Long-Term Planning: Great for visualizing a longer-term strategy or campaign, allowing you to see the bigger picture.
Cons:
- Complexity: Might be overkill for simple workflows or if you’re only managing a few tweets at a time.
- Less Agile: Adjusting dates and reorganizing can be a bit more cumbersome compared to the drag-and-drop nature of Kanban boards.
Kanban-style:
Pros:
- Simplicity: Easy to set up and understand. New team members or community contributors can quickly grasp the workflow.
- Agility: Easy to move items between columns, making it flexible for changes or quick decisions.
- Clear Workflow: The columnar structure provides a clear path from idea to publication, making it easy to see what stage each tweet is in.
- Automation: With GitHub Actions, you can automate certain tasks, like moving a tweet to a different column when its associated issue is closed.
Cons:
- Lacks Timeline: Doesn’t provide a clear visual representation of when tweets are scheduled unless you integrate with other tools or manually manage due dates.
- Short-Term Focus: While you can certainly plan ahead with a Kanban board, it’s primarily designed for more immediate, short-term tasks.
Recommendation for
twitter-together
:For a tool like
twitter-together
, where the primary goal is to draft, review, and publish tweets, the Kanban-style might be more intuitive and efficient. The straightforward workflow of moving a tweet from idea to draft to review to publication aligns well with the columnar nature of Kanban.However, if you have a detailed content calendar, specific campaign dates, or need to visualize your tweeting strategy over several months, the Gantt-style Roadmap could be beneficial.
In conclusion, if you’re looking for simplicity, agility, and a clear short-term workflow, go with Kanban. If you need a visual timeline for long-term planning and want to see dependencies between tweets, choose the Gantt-style Roadmap.
A Kaban configuration can be as such:
Using GitHub’s “Roadmap” type project to create a calendar for scheduling tweets via
twitter-together
is a great idea. Here’s a step-by-step guide on how to configure it:1. Create a New Project:
- Navigate to your GitHub repository.
- Click on the “Projects” tab.
- Click “New Project.”
- Name your project (e.g., “Twitter Calendar”).
- Choose the “Board” template.
- Click “Create project.”
2. Configure Columns:
The Roadmap template comes with a few default columns. You can customize these columns to better fit your needs. Here’s a suggested configuration:
- Backlog: Tweets or replies that are proposed but not yet scheduled.
- Scheduled: Tweets that have a specific date to be published.
- In Progress: Tweets that are currently being drafted or reviewed.
- Published: Tweets that have been successfully published.
- Archived: Old tweets or ideas that are no longer relevant.
3. Add Cards:
For each tweet or reply:
- Create a new card.
- Write a brief description or title for the tweet.
- Add details in the card’s description, such as the tweet’s content, relevant links, or any other notes.
- Assign a due date if the tweet is scheduled.
- Assign members if specific people are responsible for drafting, reviewing, or publishing the tweet.
4. Use Labels:
Labels can help categorize and prioritize tweets. Some suggested labels include:
- Reply: For tweets that are replies to other tweets.
- Announcement: For important announcements.
- Event: For tweets related to specific events or dates.
- Urgent: For tweets that need immediate attention.
5. Automate Workflow (Optional):
You can use GitHub Actions in conjunction with your project board to automate certain tasks. For instance:
- Automatically move a card to “Published” when a PR (representing a tweet) is merged in the
twitter-together
repository.- Send notifications to assigned members as the scheduled date approaches.
6. Regularly Review:
Hold regular meetings (e.g., once a week) with your community or team to review the board:
- Move tweets from “Backlog” to “Scheduled.”
- Review “In Progress” tweets and provide feedback.
- Archive old or irrelevant tweets.
7. Integrate with
twitter-together
:Ensure that your workflow with
twitter-together
is integrated. For example:
- When a tweet is ready to be published, create a PR in the
twitter-together
repository.- Once the PR is reviewed and merged, the tweet will be published, and you can move the corresponding card to the “Published” column.
8. Monitor and Adjust:
As you use the Roadmap project, you’ll get a better sense of what works for your community. Adjust columns, labels, and processes as needed.
Remember, the key is to keep things organized and transparent. This way, everyone in the community knows what’s happening, what’s coming up, and how they can contribute.
Ideally I’d probably use a Kaban tab view for “working”, and then setup an additional view (tab) with the Roadmap view so we can visualize the calendar.
Let me know if you have permissions to create a project, if yes please add me as a collaborator and I’ll configure the right workflow.
Great idea. I have the ability to create Private projects, but I need Interstellar to make them Public. I have a request in for the Roadmap.
I just created the Tweet Calendar and will ask to make it public.
Once the Project is public I can make you a collaborator.
Thank you, will configure the views (board + roadmap tabs) when granted rights. In the meantime I checked settings and we can set custom fields, like Date, however it doesn’t include an hour / minute / timezone. So we can use Github Actions to auto-post scheduled tweets at random times between a certain window (busiest window tbd i.e. 10am-2pm). It can all be setup so that only tweets which have the necessary approvals by reviewers are queued.
Preliminary flow, we can add further Github actions for moving cards as well:
@0x3639 @sol let me know if something like this would be possible.
GPT says:
Let’s create a comprehensive guide for setting up a workflow for twitter-together
using GitHub’s Kanban board and GitHub Actions, ensuring tweets are posted between 10am to 2pm EST after receiving two approvals.
twitter-together
WorkflowWhy this setup? This flow ensures a clear progression from idea to posting, allowing for review and approval stages.
2
.Why this setup? Requiring two approvals ensures that tweets are vetted by multiple team members before posting, maintaining quality and consistency.
twitter-together
repository, navigate to the .github
directory (create it if it doesn’t exist). Inside, create another directory called workflows
.workflows
directory, create a new file named autopost.yml
.autopost.yml
:name: Auto-Post Tweets
on:
pull_request:
types:
- closed
jobs:
post_tweet:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Check current time
id: check_time
run: |
CURRENT_HOUR=$(date +'%H' -d '5 hours ago') # Convert UTC to EST
echo "CURRENT_HOUR=$CURRENT_HOUR" >> $GITHUB_ENV
if [[ $CURRENT_HOUR -ge 10 && $CURRENT_HOUR -le 14 ]]; then
echo "::set-output name=within_window::true"
else
echo "::set-output name=within_window::false"
fi
shell: bash
- name: Post the tweet
if: steps.check_time.outputs.within_window == 'true'
run: |
# Random sleep duration between 0 to 3600 seconds (0 to 1 hour)
sleep $(( RANDOM % 3600 ))
# Your script to post the approved tweet
Why this setup?
github.event.pull_request.merged == true
ensures the action runs only if the PR was merged, indicating it received the necessary approvals.twitter-together
repository. Await reviews.By following this guide, you’ll have a structured workflow for proposing, reviewing, approving, and posting tweets using twitter-together
. The combination of the Kanban board and GitHub Actions ensures a clear progression, timely postings, and quality control through required approvals.
Will we be able to manually bypass the 10-2pm window and push tweets (if approved) immediately as well?
GPT says:
Yes, you can manually bypass the 10-2pm window and push tweets immediately, even with the GitHub Action in place. Here’s how you can set it up and use it:
In the autopost.yml
file, you can introduce an input that allows for manual triggering of the action. This is done using the workflow_dispatch
event.
Modify the on
section of your autopost.yml
:
on:
pull_request:
types:
- closed
workflow_dispatch:
inputs:
bypass_time_window:
description: 'Bypass 10-2pm window? (yes/no)'
required: true
default: 'no'
Then, in the Check current time
step, you can adjust the script to check for this input:
BYPASS=${{ github.event.inputs.bypass_time_window }}
if [[ "$BYPASS" == "yes" || ($CURRENT_HOUR -ge 10 && $CURRENT_HOUR -le 14) ]]; then
echo "::set-output name=within_window::true"
else
echo "::set-output name=within_window::false"
fi
Auto-Post Tweets
workflow from the left sidebar.bypass_time_window
. Enter yes
to bypass the time window.The action will then run, and if the tweet PR is approved, it will post the tweet immediately, bypassing the 10-2pm window.
workflow_dispatch
event allows for manual triggering of GitHub Actions. By introducing an input, you can decide whether to bypass certain conditions set in the action.Remember, even with the manual trigger, the tweet will only be posted if the associated PR has been merged, ensuring that the two-approval requirement is still met.
I’ll see what I can find regarding this. However, based on my own feed experience, quote retweets that add extra commentary must be performing well because I see them very often. There might be a distinction between quote retweeting someone else vs your own account, as the latter is definitively occurring less often. It makes sense as the first one can be seen as a “conversation starter”.