Skip to content

BeeeQueue/isthepatchout

Repository files navigation

isthepatchout

A website that automatically notifies when a new patch is released.

It also supports notifications via the Web Push API and Discord Webhooks. Notifications are sent via the notifications service.

This is accomplished by using Supabase and their real-time services to watch the patches table for new patches, and then doing what needs to be done based on it!

Removing notifications

Discord
  1. Go to the channel's settings
    image
  2. Go to the integrations
    image
  3. Delete the isthepatchout integration
    image
Web Push

Click the button that does it

image

or...

Deny the website access to notifications - google it!

Privacy & GDPR

No PII data is stored. It only stores the data needed to send notifications, which is either:

  • A Discord Webhook URL (e.g. https://discord.com/api/webhooks/{random number}/{random string})
  • Web Push API URL (e.g. https://fcm.googleapis.com/fcm/send/{random string})

as well as which patch number was last sent to the recipient.

Architecture

graph TD
worker(Cloudflare Worker)
vercel(Vercel)
supa(Supabase)
browser([Browser])
notif(fa:fa-arrow-up-right-from-square notifications service)
discord([Discord Channels])

worker -- Triggers checks on a cron schedule --> vercel
supa -- patch data, real-time updates --> browser
vercel -- hosts SPA, lambda functions --> browser
vercel -- updates patch, push notif data --> supa
supa -- real-time updates --> notif
notif -- push notifications --> browser
notif -- webhooks --> discord

click notif href "https://github.com/isthepatchout/notifications" "Repo"

style supa stroke:#1d9065
style worker stroke:orange

Development

Requires Node ^20, Supabase CLI, Vercel CLI

Setup

  1. Install dependencies: $ pnpm i
  2. Set up a local supabase instance: $ supabase start
  3. Set up the .env file
    1. Create the file: $ cp .env.example .env
    2. Insert the values from starting the supabase instance, etc.
  4. Install the Vercel CLI: $ npm i -g vercel
  5. Run dev server: $ vercel dev

Optional unless you need to work with realtime:

Execute the following SQL query in the database:

ALTER PUBLICATION supabase_realtime ADD TABLE patches;