{"id":51102272,"url":"https://github.com/thomasbnt/Discord-Entitlement-Dashboard","last_synced_at":"2026-07-12T17:01:05.568Z","repository":{"id":361865054,"uuid":"1256163659","full_name":"thomasbnt/Discord-Entitlement-Dashboard","owner":"thomasbnt","description":"Web dashboard to manage Entitlements for a Discord App. List, filter, delete and create test entitlements.","archived":false,"fork":false,"pushed_at":"2026-06-13T10:11:08.000Z","size":483,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-28T13:32:09.074Z","etag":null,"topics":["api","discord","docker","docker-compose","entitlements","premium","sku","vue"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thomasbnt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/funding.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"thomasbnt","buy_me_a_coffee":"thomasbnt"}},"created_at":"2026-06-01T14:18:17.000Z","updated_at":"2026-06-13T10:29:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/thomasbnt/Discord-Entitlement-Dashboard","commit_stats":null,"previous_names":["thomasbnt/discord-entitlement-dashboard"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/thomasbnt/Discord-Entitlement-Dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasbnt%2FDiscord-Entitlement-Dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasbnt%2FDiscord-Entitlement-Dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasbnt%2FDiscord-Entitlement-Dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasbnt%2FDiscord-Entitlement-Dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomasbnt","download_url":"https://codeload.github.com/thomasbnt/Discord-Entitlement-Dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasbnt%2FDiscord-Entitlement-Dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35396896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","discord","docker","docker-compose","entitlements","premium","sku","vue"],"created_at":"2026-06-24T12:00:24.566Z","updated_at":"2026-07-12T17:01:05.550Z","avatar_url":"https://github.com/thomasbnt.png","language":"Vue","funding_links":["https://github.com/sponsors/thomasbnt","https://buymeacoffee.com/thomasbnt"],"categories":["Vue"],"sub_categories":[],"readme":"# Discord Entitlement Dashboard\n\n[![Nuxt](https://img.shields.io/badge/Nuxt-3.x-00DC82?logo=nuxt.js\u0026logoColor=white)](https://nuxt.com)\n[![Discord API](https://img.shields.io/badge/Discord_API-v10-5865F2?logo=discord\u0026logoColor=white)](https://discord.com/developers/docs)\n[![Discord Premium Apps](https://img.shields.io/badge/Discord_Premium_Apps-5865F2?logo=discord\u0026logoColor=white)](https://docs.discord.com/developers/platform/app-monetization)\n[![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=white)](https://docker.com)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=white)](https://typescriptlang.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nWeb dashboard to manage [Entitlements](https://docs.discord.com/developers/resources/entitlement) for a Discord App. List, filter, delete and create test entitlements without slash commands.\n\n![Web Dashboard to manage Discord App Entitlements.](https://github.com/user-attachments/assets/ac5265db-5539-456e-be88-341fb6ccca53)\n\n## What are Premium Apps \u0026 Activities?\n\n**Premium Apps \u0026 Activities** is Discord's monetization system for developers. It lets you charge users or servers for premium features inside your Discord app:\n\n- **App Subscriptions** — recurring billing, per user or per server (guild)\n- **One-time purchases** — single payment for a permanent item or feature unlock\n\nWhen a user or guild pays, Discord creates an **Entitlement** — the record that grants access. This dashboard manages those entitlements directly via the Discord API.\n\n![Discord App Monetization Overview](public/images/monetization-overview.png)\n\n## Features\n\n- Multi-app support: save and switch between multiple Discord apps from the header; credentials validated against Discord before saving; app name fetched automatically\n- List all entitlements with filters (guild, user, SKU, expired, deleted)\n- Export filtered entitlements to CSV (id, type, SKU name, user, guild, dates)\n- Delete test entitlements (type `TEST_MODE_PURCHASE` or API-created)\n- Create test entitlements with SKU selector\n- Guild name resolution (bot member + widget fallback)\n- Stats overview: total / active / test / expired\n- Copy IDs to clipboard\n- Persistent filter preferences (localStorage)\n- Sorting on key columns\n\n## Stack\n\n- [Nuxt 3](https://nuxt.com) (v4 compat mode) + TypeScript\n- [Nuxt UI v3](https://ui.nuxt.com)\n- [Pinia](https://pinia.vuejs.org)\n- [Docker](https://docker.com)\n\n## Requirements\n\n- Node.js 20+\n- A Discord Bot Token and its Application ID\n\n\u003e **Discord monetization prerequisites:** your app must be [verified](https://support-dev.discord.com/hc/en-us/articles/23926564536471), owned by a [developer team](https://discord.com/developers/teams), and have [monetization enabled](https://docs.discord.com/developers/monetization/enabling-monetization) before entitlements can exist. See the [eligibility checklist](https://docs.discord.com/developers/monetization/enabling-monetization#step-2-complete-the-eligibility-checklist) for full requirements.\n\n## Development\n\n```bash\nnpm install\nnpm run dev\n```\n\n→ \u003chttp://localhost:3000\u003e\n\n## Docker\n\n```bash\ncp .env.example .env\ndocker compose up --build\n```\n\n→ \u003chttp://localhost:4545\u003e\n\n## Environment variables\n\n| Variable | Default | Description        |\n|----------|---------|--------------------|\n| `PORT`   | `4545`  | Docker host port   |\n\n## Security\n\nThe bot token only transits between the browser and the local Nuxt server. It is never sent to third-party servers. Use HTTPS in production.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). Commits must follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/):\n\n```text\nfeat: add guild filter\nfix: token not cleared on logout\ndocs: update env variables table\nci: add docker build workflow\nchore: bump nuxt to 3.16\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasbnt%2FDiscord-Entitlement-Dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomasbnt%2FDiscord-Entitlement-Dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasbnt%2FDiscord-Entitlement-Dashboard/lists"}