moxley01 / birdle

A fun word game (my entry into the Chirp Developer Challenge 2022)

Home Page:https://www.birdle.art

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Logo

BIRDLE

A fun Twitter-based game, and my entry to 2022 Chirp Developer Challenge
Go to game »

Table of Contents
  1. About The Project
  2. Built With
  3. About the repo

About BIRDLE

Logo

I got the idea for BIRDLE because I was getting a little bit dismayed at how negative my timeline was - particularly when it comes to news headlines.

Given the popularity of Wordle at the time, I thought it might be cool to make a similar type of daily guessing game, but where the thing to be guessed is a four-word phrase, with each word being taken from a popular tweet. The player is shown four tweets, and needs to guess the missing word from each, thus revealing the mystery phrase.

I wanted each daily phrase to be something nice and wholesome, something that would inspire you for the day. Positivity can be found anywhere if you look hard enough!

I am submitting this project to the "content discovery" category. All users get the same BIRDLE puzzle each day - the tweets they see are not necessarily from people they follow, and therefore by engaging with this game they have the chance to discover new Twitter users that they might not currently engage with.

(back to top)

Built With

  • Typescript
  • Storybook
  • Next
  • React
  • Supabase

(back to top)

About the repo

Backend

This /backend folder contains code for the cloud functions that run daily on Google Cloud Scheduler. It includes

  • A scrape function to grab the day's tweets from the allow-listed Twitter accounts using the v2 /search API.
  • A solve function to autogenerate a series of puzzle options. After this function runs I have an hour-long window to manually pick one of the options to serve as the day's puzzle, however, if I do not do this then it will automatically run an autoPickPuzzle function which will just grab the most suitable one.

The database that the app runs on is a Postgres instance hosted by Supabase.

Frontend

The /frontend folder contains the main Next.js app. Try running:

cd frontend; npm i; npm run storybook

in order to view a locally hosted version of the app running on mocked data. This also features a few common user-journeys or "stories" that serve as the basis of the frontend e2e tests.

Admin

This folder is .gitignore'd. However, I have an extra admin app that I can use for managing things like:

  • the Twitter handles that can form the basis of the puzzles
  • selection / overriding of the day's puzzle
  • adding / removing possible four-word phrases

(back to top)

About

A fun word game (my entry into the Chirp Developer Challenge 2022)

https://www.birdle.art


Languages

Language:TypeScript 88.1%Language:CSS 9.0%Language:JavaScript 3.0%