├── .gitattributes
├── .npmrc
├── public
├── plink.mp4
├── assets
│ ├── globe.png
│ ├── locked.png
│ ├── oneko.gif
│ ├── rocket.png
│ ├── shiggy.gif
│ ├── favicon.png
│ ├── logo-nav.png
│ ├── package.png
│ ├── light-bulb.png
│ ├── oneko-jump.png
│ ├── chrome-button.png
│ ├── firefox-button.webp
│ ├── hammer-and-wrench.png
│ ├── logo-nav-oneko-padding.png
│ └── screenshot-placeholder.png
├── robots.txt
├── fonts
│ ├── Inter.var-subset.woff2
│ └── Minecraft-Regular.woff
└── favicon.svg
├── src
├── env.d.ts
├── pages
│ ├── github.astro
│ ├── install.astro
│ ├── support.astro
│ ├── discord.astro
│ ├── plugins.json.astro
│ ├── docs
│ │ ├── plugin-requests.astro
│ │ └── index.astro
│ ├── faq.json.ts
│ ├── plugins
│ │ ├── [plugin].astro
│ │ └── index.astro
│ ├── download.astro
│ ├── cloud
│ │ ├── index.astro
│ │ ├── privacy.astro
│ │ └── gdpr.astro
│ ├── 404.astro
│ ├── releases
│ │ └── [repo].ts
│ ├── faq.astro
│ └── index.astro
├── components
│ ├── pages
│ │ ├── cloud
│ │ │ └── privacy
│ │ │ │ ├── Usage.astro
│ │ │ │ ├── sections.astro
│ │ │ │ ├── Changes.astro
│ │ │ │ ├── DataRetention.astro
│ │ │ │ ├── InfoStored.astro
│ │ │ │ └── Intro.astro
│ │ ├── download
│ │ │ ├── MacTab.astro
│ │ │ ├── Tab.astro
│ │ │ ├── WindowsTab.astro
│ │ │ ├── LinuxTab.astro
│ │ │ ├── BrowserTab.astro
│ │ │ └── index.svelte
│ │ └── plugins
│ │ │ └── Plugins.svelte
│ ├── Code.astro
│ ├── AutoSizeGrid.astro
│ ├── Card.astro
│ ├── LinkButton.astro
│ ├── ThemeToggle.svelte
│ ├── NavBar.astro
│ └── Footer.astro
├── content
│ ├── faq
│ │ ├── 7_settings.md
│ │ ├── 1_installing.md
│ │ ├── 3_web_support.md
│ │ ├── 5_other_mods_plugins.md
│ │ ├── 8_rtc_connecting.md
│ │ ├── 2_not_working.md
│ │ ├── 10_devtools_logout.md
│ │ ├── 9-themes.md
│ │ ├── 6_tos.md
│ │ └── 4_mobile.md
│ └── config.ts
├── scripts
│ ├── collections.ts
│ ├── data.ts
│ ├── cache.ts
│ ├── types.ts
│ ├── text.ts
│ └── constants.ts
├── styles
│ └── prose.css
└── layouts
│ └── Layout.astro
├── .vscode
├── extensions.json
├── launch.json
└── settings.json
├── svelte.config.js
├── .prettierrc.yaml
├── README.md
├── .gitignore
├── tsconfig.json
├── package.json
├── astro.config.mjs
└── LICENSE
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | strict-peer-dependencies=false
2 |
--------------------------------------------------------------------------------
/public/plink.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/plink.mp4
--------------------------------------------------------------------------------
/public/assets/globe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/globe.png
--------------------------------------------------------------------------------
/public/assets/locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/locked.png
--------------------------------------------------------------------------------
/public/assets/oneko.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/oneko.gif
--------------------------------------------------------------------------------
/public/assets/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/rocket.png
--------------------------------------------------------------------------------
/public/assets/shiggy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/shiggy.gif
--------------------------------------------------------------------------------
/public/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/favicon.png
--------------------------------------------------------------------------------
/public/assets/logo-nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/logo-nav.png
--------------------------------------------------------------------------------
/public/assets/package.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmfunc/vencord-web/main/public/assets/package.png
--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | We will only use your data for the aforementioned purposes. We will never 3 | share your data with any third parties, unless we are required to do so by 4 | law. 5 |
6 | -------------------------------------------------------------------------------- /src/pages/docs/plugin-requests.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { StatusCodes } from "scripts/constants"; 3 | 4 | return Astro.redirect( 5 | "https://github.com/Vendicated/Vencord/discussions/categories/ideas", 6 | StatusCodes.Found 7 | ); 8 | --- 9 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/content/faq/7_settings.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How do I migrate my Vencord Settings from Canary to Stable (or vice versa)? 3 | tags: settings, migrate 4 | --- 5 | 6 | Settings are already shared across all Discord instances on the same PC so you can just switch and they will be kept! 7 | -------------------------------------------------------------------------------- /src/content/faq/1_installing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How do I install Vencord? 3 | tags: installation, install, download 4 | --- 5 | 6 | We provide a convenient graphical installer you can use. Or you can just grab Vencord from the Chrome & Firefox webstores. 7 | 8 | Visit our [download page](/download) to find out more! 9 | -------------------------------------------------------------------------------- /src/content/faq/3_web_support.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Can I use this on the web version of Discord? 3 | tags: browser, web, firefox, chrome, extension, userscript 4 | --- 5 | 6 | Yes! We provide extensions for Firefox & Chromium based browsers and a UserScript build. 7 | 8 | See our [download page](/download) for more info! 9 | -------------------------------------------------------------------------------- /src/components/Code.astro: -------------------------------------------------------------------------------- 1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/src/scripts/collections.ts:
--------------------------------------------------------------------------------
1 | import { getCollection } from "astro:content";
2 |
3 | export async function getSortedFaq() {
4 | const faq = await getCollection("faq");
5 |
6 | // uses the fact that parseInt("11_some_title.md") => 11
7 | faq.sort((a, b) => parseInt(a.id) - parseInt(b.id));
8 |
9 | return faq;
10 | }
11 |
--------------------------------------------------------------------------------
/src/content/faq/5_other_mods_plugins.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: How do I install BetterDiscord / Replugged / [insert other mod here] plugins?
3 | tags: betterdiscord, replugged, powercord, shelter, plugins, bd, rp
4 | ---
5 |
6 | You can't.
7 |
8 | Chances are, it's already a Vencord plugin! Or if it isn't, you can open a [plugin request](/docs/plugin-requests)
9 |
--------------------------------------------------------------------------------
/src/components/pages/cloud/privacy/sections.astro:
--------------------------------------------------------------------------------
1 | ---
2 | export { default as Changes } from "./Changes.astro";
3 | export { default as DataRetention } from "./DataRetention.astro";
4 | export { default as InfoStored } from "./InfoStored.astro";
5 | export { default as Intro } from "./Intro.astro";
6 | export { default as Usage } from "./Usage.astro";
7 | ---
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vencord Website
2 |
3 | https://vencord.dev
4 |
5 | ## Get a dev environment started:
6 |
7 | 1. Clone this repository and install the required packages:
8 |
9 | ```sh
10 | git clone https://github.com/hytracer/vencord-web.git
11 | cd vencord-web
12 | npm i
13 | ```
14 |
15 | 2. Start a dev server:
16 |
17 | ```sh
18 | npm run dev
19 | ```
20 |
--------------------------------------------------------------------------------
/src/scripts/data.ts:
--------------------------------------------------------------------------------
1 | import { PLUGINS_JSON_URL } from "./constants";
2 | import { PluginData } from "./types";
3 |
4 | export async function fetchPlugins() {
5 | const res = await fetch(PLUGINS_JSON_URL);
6 |
7 | if (!res.ok) throw new Error("Failed to fetch plugins.json: " + res.status);
8 |
9 | return res.json() as Promise2 | We will update this Privacy Policy if necessary, for example if we start 3 | storing more data as part of a new Service. If we do so, you will be 4 | notified via the announcements channel on our Discord Server. The last 5 | update date will also always be present at the very top of this Privacy 6 | Policy. 7 |
8 | -------------------------------------------------------------------------------- /src/scripts/cache.ts: -------------------------------------------------------------------------------- 1 | export const SECONDS = 1; 2 | export const MINUTES = 60 * SECONDS; 3 | export const HOURS = 60 * MINUTES; 4 | export const DAYS = 24 * HOURS; 5 | 6 | export function cacheResponseFor(req: { headers: Headers }, seconds: number) { 7 | req.headers.set( 8 | "Cache-Control", 9 | `public, max-age=${seconds}, s-maxage=${seconds}` 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/components/pages/cloud/privacy/DataRetention.astro: -------------------------------------------------------------------------------- 1 |2 | We will retain your data until it is no longer necessary for the 3 | aforementioned purposes. 4 |
5 |6 | You can delete all your data permamently at any time by using the Erase All Data button in the Vencord Cloud settings section or by emailing us at privacy@vencord.dev. 9 |
10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/base", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | // astro considers stuff only used in frontmatter unused, so disable for now 6 | // "importsNotUsedAsValues": "error", 7 | "strictNullChecks": true, 8 | "types": ["@cloudflare/workers-types"], 9 | "baseUrl": "src/" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/docs/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Layout from "layouts/Layout.astro"; 3 | --- 4 | 5 |WIP...
11 |We only store information you provide to us. This includes
2 |2 | This privacy policy applies to our cloud services, which you need to 3 | explicitly enable. If you don't enable the cloud, Vencord will not collect 4 | any data about you whatsoever. Our website (the one you are currently on) 5 | might collect data about you via our hosting provider Vercel. You can find 6 | out more about this in our GDPR policy linked below. 7 |
8 |9 | We take your privacy very seriously! As such, we collect as little 10 | information as possible and only use it for the purposes absolutely 11 | necessary to provide our services to you. 12 |
13 |14 | This is a very simple summary for normal people. We also have a proper GDPR policy. You might want to read that as well. 17 |
18 | -------------------------------------------------------------------------------- /src/components/pages/download/MacTab.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Card, { Kind } from "components/Card.astro"; 3 | import Code from "components/Code.astro"; 4 | import Tab from "./Tab.astro"; 5 | --- 6 | 7 |
9 | Download the zip, unzip it and run VencordInstaller.app!
10 |
14 | If you get a VencordInstaller can't be opened warning, right-click 15 | VencordInstaller.app and click open 16 |
17 |18 | This warning shows due the app not being signed. Doing so would cost 19 | us 100€ a year for an Apple Developer license 20 | :( 21 |
22 |24 | by {humanFriendlyJoin(p.authors, (a) => a.name)} 25 |
26 |29 | {p.description} 30 |
31 |19 | We have {plugins.length} plugins available for you to use immediately, 20 | with more being made every day. 21 |
22 | 23 |Download and run VencordInstaller.exe
Do not run the installer as an Administrator!
15 |16 | If you get a warning that the app cannot be opened, click "Run 17 | Anyways". You may need to click "more info" to see this option. 18 |
19 |22 | Alternatively, or if the normal installer doesn't work for you, open 23 | Powershell and run the following command: 24 |
25 |iwr
28 | "https://raw.githubusercontent.com/Vencord/Installer/main/install.ps1"
29 | | iex
31 |
16 | Most of the time, you can just use our automatic launcher script and
17 | it will figure everything out for you! To do so, just run the below
18 | command. If you're using fish, switch to bash first (by running
19 | {}
20 | bash)
21 |
sh -c "$(curl -sS
25 | https://raw.githubusercontent.com/Vendicated/VencordInstaller/main/install.sh)"
27 |
30 | Alternatively, download the correct installer manually and make it
31 | executable, then just run it. Make sure to use
32 | sudo/doas to elevate, running as root user
33 | is not supported
34 |
Now in your Vencord!!
14 | 15 |16 | Vencord has a cloud integration that powers additional features. It's 17 | completely optional and honours your privacy! 18 |
19 | 20 |31 | To start using our cloud integration, head over to the Vencord settings 32 | section inside Discord and check the "Enable Cloud Integrations" switch. 33 | After authorising, you're good to go! You can now enable specific 34 | features on the same page 35 |
36 | 37 |15 | You can download Vencord from the Chrome or Firefox Store, or use 16 | the UserScript. 17 |
18 | 37 |41 | Please note that due to Discord's 42 | content security policy, the CSS Editor, custom themes and plugins making use of external 45 | scripts will not work with the UserScript. 46 |
47 |Last Updated: 26/03/2023
28 | 29 | 40 | 41 | { 42 | sections.map(([id, title, Component]) => ( 43 |Questions that we're asked often.
16 | 17 |35 | Still lost? Visit our support server for more assistance! 36 | We're happy to help. 37 |
38 |Last Updated: 06/04/2023
13 | 14 |15 | This is the scary legal bit that we need to have (by law) to make sure 16 | that we are GDPR compliant. Long story short, we swear we won't do 17 | anything bad with your data, that we only use it for good and legitimate 18 | purposes, and that you can get it changed or removed at any time by 19 | contacting us at privacy@vencord.dev. 20 |
21 | 22 |We are a Data Controller of your information.
23 |24 | Vencord's legal basis for collecting and using the personal information 25 | described in this Privacy Policy depends on the Personal Information we 26 | collect and the specific context in which we collect the information: 27 |
38 | Vencord will retain your personal information only for as long as is 39 | necessary for the purposes set out in this Privacy Policy. We will 40 | retain and use your information to the extent necessary to comply with 41 | our legal obligations, resolve disputes, and enforce our policies. 42 |
43 |44 | If you are a resident of the European Economic Area (EEA), you have 45 | certain data protection rights. If you wish to be informed what Personal 46 | Information we hold about you and if you want it to be removed from our 47 | systems, please contact us. 48 |
49 |50 | In certain circumstances, you have the following data protection rights: 51 |
66 | Vencord follows a standard procedure of using log files. These files log 67 | visitors when they visit websites. All hosting companies do this and a 68 | part of hosting services' analytics. The information collected by log 69 | files include internet protocol (IP) addresses, browser type, Internet 70 | Service Provider (ISP), date and time stamp, referring/exit pages, and 71 | possibly the number of clicks. These are not linked to any information 72 | that is personally identifiable. The purpose of the information is for 73 | analyzing trends, administering the site, tracking users' movement on 74 | the website, and gathering demographic information. 75 |
76 | 77 |79 | Another part of our priority is adding protection for children while 80 | using the internet. We encourage parents and guardians to observe, 81 | participate in, and/or monitor and guide their online activity. 82 |
83 |84 | Vencord does not knowingly collect any Personal Identifiable Information 85 | from children under the age of 13. If you think that your child provided 86 | this kind of information on our website, we strongly encourage you to 87 | contact us immediately and we will do our best efforts to promptly 88 | remove such information from our records. 89 |
90 | 91 |93 | This Privacy Policy applies only to our online activities and is valid 94 | for visitors to our website with regards to the information that they 95 | shared and/or collect in Vencord. This policy is not applicable to any 96 | information collected offline or via channels other than this website. 97 |
98 | 99 |By using our website, you hereby consent to our Privacy Policy.
101 |{description}
77 |