https://github.com/beeequeue/isthepatchout
🔔 A service that automatically checks and notifies for Dota 2 Patches
https://github.com/beeequeue/isthepatchout
dota dota2 nuxt nuxt3 patch supabase vercel vue website
Last synced: 11 days ago
JSON representation
🔔 A service that automatically checks and notifies for Dota 2 Patches
- Host: GitHub
- URL: https://github.com/beeequeue/isthepatchout
- Owner: beeequeue
- Created: 2021-04-12T18:55:58.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T12:03:44.000Z (12 days ago)
- Last Synced: 2025-04-15T06:15:10.349Z (11 days ago)
- Topics: dota, dota2, nuxt, nuxt3, patch, supabase, vercel, vue, website
- Language: TypeScript
- Homepage: https://isthepatchout.com
- Size: 10.2 MB
- Stars: 23
- Watchers: 2
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# isthepatchout
A website that automatically notifies when a new patch is released.
It also supports notifications via the [Web Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API) and [Discord Webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). Notifications are sent via the [`notifications`](https://github.com/isthepatchout/notifications) service.
This is accomplished by using [Supabase](https://supabase.com) 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

1. Go to the integrations

1. Delete the `isthepatchout` integration
Web Push
Click the button that does it

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
```mermaid
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 --> discordclick 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`
1. Set up a local supabase instance: `$ supabase start`
1. Set up the `.env` file
1. Create the file: `$ cp .env.example .env`
1. Insert the values from starting the supabase instance, etc.
1. Install the Vercel CLI: `$ npm i -g vercel`
1. Run dev server: `$ vercel dev`_Optional unless you need to work with realtime:_
Execute the following SQL query in the database:
```sql
ALTER PUBLICATION supabase_realtime ADD TABLE patches;
```