diff --git a/src/app/App.js b/src/app/App.js index d7f18a9..2b7d946 100644 --- a/src/app/App.js +++ b/src/app/App.js @@ -25,6 +25,7 @@ const ItemTradesSeekingPage = loadable(() => import("./ItemTradesPage").then((m) => m.ItemTradesSeekingPage) ); const ModelingPage = loadable(() => import("./ModelingPage")); +const PrivacyPolicyPage = loadable(() => import("./PrivacyPolicyPage")); const UserItemsPage = loadable(() => import("./UserItemsPage")); const WardrobePage = loadable(() => import("./WardrobePage"), { fallback: , @@ -104,6 +105,11 @@ function App() { + + + + + diff --git a/src/app/GlobalFooter.js b/src/app/GlobalFooter.js index 314171c..bded23d 100644 --- a/src/app/GlobalFooter.js +++ b/src/app/GlobalFooter.js @@ -9,7 +9,7 @@ import { } from "@chakra-ui/core"; import { EmailIcon, MoonIcon, SunIcon } from "@chakra-ui/icons"; import { SiGithub } from "react-icons/si"; -import { useRouteMatch } from "react-router-dom"; +import { Link as RouterLink, useRouteMatch } from "react-router-dom"; function GlobalFooter() { const classicDTIUrl = useClassicDTIUrl(); @@ -26,6 +26,9 @@ function GlobalFooter() { Terms of Use + + Hey + Classic DTI diff --git a/src/app/PrivacyPolicyPage.js b/src/app/PrivacyPolicyPage.js new file mode 100644 index 0000000..5b6e086 --- /dev/null +++ b/src/app/PrivacyPolicyPage.js @@ -0,0 +1,194 @@ +import React from "react"; +import { css } from "emotion"; +import { VStack } from "@chakra-ui/core"; + +import { Heading1, Heading2, Heading3 } from "./util"; + +function PrivacyPolicyPage() { + return ( + <> + Our privacy policy + +
+

+ Hi, friends! Dress to Impress collects certain personal data. Here's + how we use it! +

+

+ First off, we'll never sell your private data, ever. It'll + only be available to you and our small trusted staff—and we'll only + use it to serve you, or to operate the site. +

+
+
+ Account management +

+ While our classic app{" "} + uses its own authentication, the app you're using now uses a service + called Auth0 to manage account + creation and login. +

+

+ We made this decision because authentication is difficult to write + and maintain securely. We felt that Auth0 was the smoothest and most + secure experience we could offer, especially as a small team of + volunteers 😅 +

+

+ + Auth0's terms of service + {" "} + commit to treating your user data as confidential information, not + to be shared with anyone else, and only to be used as part of Dress + to Impress. (The details are in Sections 6 and 7!) +

+

+ When signing up, Auth0 will ask for a username, password, and email + address. They store your password as a hash (which, + colloquially, is like a one-way encryption), rather than as the + plain password itself. +

+

+ Some user accounts were created before we moved to Auth0. For those + users, we imported their accounts from our custom database into + Auth0. This included username, password hash, and email address. +

+
+
+ Analytics and logging +

+ To understand how people use our site, we use a service called{" "} + Plausible. Every time you visit + a page, we send them a{" "} + + small packet of information + + . +

+

+ Plausible is a privacy-focused service. It doesn't store your IP + address in a retrievable way, or add cookies to your browser, or + track you across multiple websites or over time.{" "} + + Here's their data policy. + +

+

+ We also use Vercel and{" "} + Fastly for web hosting. They + store aggregate usage logs for us, but not any + personally-identifying data. +

+
+
+ Creations and contributions +

+ People use Dress to Impress to create, share, and communicate! Some + of these things are public, some are private, and some are + configurable. +

+ Outfits +

+ Outfits are the central creation on Dress to Impress: combining a + pet with items to make something that looks nice! +

+

+ Users can log in and save outfits to their account. They can also + share outfits by URL without logging in. +

+

+ When you save an outfit to your account, it's somewhat private, but + somewhat public. +

+

+ It's private in the sense that there is no central place where + another user can look up your list of outfits. +

+

+ But it's public in the sense that anyone with the URL can see + it—and, because the URLs are based on a simple incrementing global + outfit ID, it's easy to look up all the outfits on the site. +

+

+ We might change this in the future, to make the URLs hard to guess + and genuinely private. Until then, we advise users to not + to include sensitive data in the outfits they save to their account. +

+ Item lists +

+ Logged-in users can track the Neopets customization items they own + and want, by saving item lists to their account. +

+

+ These lists are private by default, but can be configured to either + be "public" or "trading" as well. +

+

+ The "public" status means that anyone who knows your Dress to + Impress username, or item list URL, can see this list. +

+

+ The "trading" status includes the same visibility as "public", and + additionally we'll advertise that you own/want this item on its + public list of trades. +

+ Modeling contributions +

+ When a logged-in user enters their Neopets's name on the site, we + look up that pet's public data on Neopets.com. +

+

+ Sometimes, this will download new public outfit data that we've + never seen before. For example, you might show us a Draik (a species + of Neopet) wearing a new item, and we don't have data for a Draik + wearing that item yet. +

+

+ When that happens, we'll extract that specific piece of data from + your pet's outfit, and save it to our database, for other users to + mix and match into their own outfits. This process is called + "modeling". +

+

+ When you model new data for us, it's separated from your pet. Users + can't discover what pet modeled a certain piece of data, or what + else that pet was wearing. +

+

+ But, if you're logged in when modeling, we'll publicly credit your + account for the new "contribution". This will appear in a number of + places, including a list of the most recent contributions, and it + will add points to your account that contribute to a public high + score list. This will publicly display your username. +

+

+ Right now, modeling contributions from logged-in users are always + public. This is a limitation of our system, and we might change it + in the future! For now, if you would like to have your public + contributions removed from the site, please use the contact link at + the bottom of the page. +

+
+
+ + ); +} + +export default PrivacyPolicyPage;