diff --git a/.github/workflows/deploy-firebase.yml b/.github/workflows/deploy-firebase.yml new file mode 100644 index 00000000..ccd00d70 --- /dev/null +++ b/.github/workflows/deploy-firebase.yml @@ -0,0 +1,40 @@ +--- +# Builds the static site via pnpm, then copies that local directory's contents +# to Firebase, at: https://praxwallet.com +name: Deploy Prax marketing site +on: + # Support ad-hoc runs via dispatch, so we can deploy from + # unmerged feature branches if necessary. + workflow_dispatch: + push: + branches: + - main + +jobs: + build: + name: Deploy + runs-on: ubuntu-latest + steps: + - name: Checkout the source code + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v3 + with: + version: 8 + + - name: Install dependencies + run: pnpm install + + - name: Build static site + run: pnpm build + working-directory: apps/prax-marketing-site + + - name: Deploy dapp static site to firebase + # N.B. the firebase-action helper doesn't support semver, e.g. `@v13`, + # so we hardcode a version. + uses: w9jds/firebase-action@v13.7.2 + with: + args: deploy + env: + FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} + PROJECT_PATH: apps/prax-marketing-site/dist diff --git a/apps/prax-marketing-site/eslint.config.mjs b/apps/prax-marketing-site/eslint.config.mjs new file mode 100644 index 00000000..a53ed8e5 --- /dev/null +++ b/apps/prax-marketing-site/eslint.config.mjs @@ -0,0 +1,13 @@ +import { penumbraEslintConfig } from '@penumbra-zone/eslint-config'; +import { config, parser } from 'typescript-eslint'; + +export default config({ + ...penumbraEslintConfig, + languageOptions: { + parser, + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, +}); diff --git a/apps/prax-marketing-site/index.html b/apps/prax-marketing-site/index.html new file mode 100644 index 00000000..b03aafee --- /dev/null +++ b/apps/prax-marketing-site/index.html @@ -0,0 +1,10 @@ + + +
+ + + + + + + diff --git a/apps/prax-marketing-site/package.json b/apps/prax-marketing-site/package.json new file mode 100644 index 00000000..fe5be3f9 --- /dev/null +++ b/apps/prax-marketing-site/package.json @@ -0,0 +1,28 @@ +{ + "name": "prax-marketing-website", + "version": "4.2.0", + "private": true, + "type": "module", + "scripts": { + "build": "tsc && vite build", + "clean": "rm -rfv dist", + "dev": "vite --port 5173", + "lint": "eslint ." + }, + "dependencies": { + "@vitejs/plugin-react-swc": "^3.6.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.23.1", + "tailwindcss": "^3.4.3" + }, + "devDependencies": { + "@penumbra-zone/eslint-config": "workspace:*", + "@penumbra-zone/tailwind-config": "workspace:*", + "@types/react": "^18.3.2", + "@types/react-dom": "^18.3.0", + "autoprefixer": "^10.4.19", + "firebase-tools": "^13.8.0", + "postcss": "^8.4.38" + } +} diff --git a/apps/prax-marketing-site/postcss.config.js b/apps/prax-marketing-site/postcss.config.js new file mode 100644 index 00000000..2aa7205d --- /dev/null +++ b/apps/prax-marketing-site/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/prax-marketing-site/public/favicon.png b/apps/prax-marketing-site/public/favicon.png new file mode 100644 index 00000000..46f9be71 Binary files /dev/null and b/apps/prax-marketing-site/public/favicon.png differ diff --git a/apps/prax-marketing-site/public/prax-white-vertical.svg b/apps/prax-marketing-site/public/prax-white-vertical.svg new file mode 100644 index 00000000..42aece0e --- /dev/null +++ b/apps/prax-marketing-site/public/prax-white-vertical.svg @@ -0,0 +1,42 @@ + + \ No newline at end of file diff --git a/apps/prax-marketing-site/src/components/index.tsx b/apps/prax-marketing-site/src/components/index.tsx new file mode 100644 index 00000000..bc25dbf3 --- /dev/null +++ b/apps/prax-marketing-site/src/components/index.tsx @@ -0,0 +1,36 @@ +import { Link } from 'react-router-dom'; + +export const Index = () => { + return ( +Privacy Policy
+Last updated: May 6, 2024
+ ++ Welcome to Prax Wallet, created by Penumbra Labs Inc. (“Penumbra Labs,” " + we," "our," or "us"). We are committed to + protecting your privacy. This Privacy Policy describes our limited data processing + activities related to your use of the Prax Wallet application (the “Software”). +
+ ++ The Prax Wallet is open-source software, and your use of the Prax Wallet is subject to the + terms of the MIT license available{' '} + + here + + . +
+ +We Do Not Collect Personal Information
++ Prax Wallet is designed with privacy as a core principle. The Software runs entirely on the + end-user device, and we do not collect any personal information from users of our Software. + In particular, we do not collect the following categories of personal information + from you: +
+We Do Not Use or Share Your Personal Information
++ Because we do not collect any personal information from you through the Software, we also do + not use such information or share such information to any third parties. +
+Third-party RPC Endpoints and Frontends
++ Prax Wallet connects to a user-specified Remote Procedure Call (“RPC”) endpoint. + While the Penumbra protocol is designed to minimize information transmitted in RPC requests, + Penumbra Labs cannot make any guarantees about the privacy practices of third-party RPC + services. Similarly, Prax Wallet allows third-party web frontends to request connections to + the wallet and interact with user data. While Prax Wallet is designed to put users in + control of their data, Penumbra Labs cannot make any guarantees about the privacy practices + of third-party frontends. +
+Changes to This Privacy Policy
++ We reserve the right to update or change our Privacy Policy at any time. We will notify you + of any changes by posting the new Privacy Policy on this page. You are advised to review + this Privacy Policy periodically for any changes. +
+Contact Us
++ If you have any questions about this Privacy Policy, please contact us at{' '} + + contact@penumbralabs.xyz + + . +
+