diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 99fe7d0..2dc61be 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,6 +25,7 @@ jobs: - name: Build landing Docker image run: | docker build --build-arg NEXT_PUBLIC_APP_URL=${{ secrets.NEXT_PUBLIC_APP_URL }} \ + --build-arg NEXT_PUBLIC_GA_ID=G-N8FTR16C4L \ -t markmdev/lingput-landing:${{ github.sha }} \ -t markmdev/lingput-landing \ ./apps/landing diff --git a/apps/frontend/public/apple-touch-icon.png b/apps/frontend/public/apple-touch-icon.png new file mode 100644 index 0000000..7b83c7f Binary files /dev/null and b/apps/frontend/public/apple-touch-icon.png differ diff --git a/apps/frontend/public/favicon-96x96.png b/apps/frontend/public/favicon-96x96.png new file mode 100644 index 0000000..ac6d901 Binary files /dev/null and b/apps/frontend/public/favicon-96x96.png differ diff --git a/apps/frontend/public/favicon.ico b/apps/frontend/public/favicon.ico new file mode 100644 index 0000000..f85cc23 Binary files /dev/null and b/apps/frontend/public/favicon.ico differ diff --git a/apps/frontend/public/favicon.svg b/apps/frontend/public/favicon.svg new file mode 100644 index 0000000..56d4ece --- /dev/null +++ b/apps/frontend/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/frontend/public/site.webmanifest b/apps/frontend/public/site.webmanifest new file mode 100644 index 0000000..8b77109 --- /dev/null +++ b/apps/frontend/public/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Lingput", + "short_name": "Lingput", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/apps/frontend/public/web-app-manifest-192x192.png b/apps/frontend/public/web-app-manifest-192x192.png new file mode 100644 index 0000000..ad2c57f Binary files /dev/null and b/apps/frontend/public/web-app-manifest-192x192.png differ diff --git a/apps/frontend/public/web-app-manifest-512x512.png b/apps/frontend/public/web-app-manifest-512x512.png new file mode 100644 index 0000000..435a059 Binary files /dev/null and b/apps/frontend/public/web-app-manifest-512x512.png differ diff --git a/apps/frontend/src/app/(unprotected)/login/page.tsx b/apps/frontend/src/app/(unprotected)/login/page.tsx index dc2856f..f80e159 100644 --- a/apps/frontend/src/app/(unprotected)/login/page.tsx +++ b/apps/frontend/src/app/(unprotected)/login/page.tsx @@ -63,6 +63,17 @@ export default function LoginPage() { Sign up
++ By logging in, you agree to our{" "} + + Terms of Service + {" "} + and{" "} + + Privacy Policy + + . +
{error?.message}
diff --git a/apps/frontend/src/app/(unprotected)/signup/page.tsx b/apps/frontend/src/app/(unprotected)/signup/page.tsx index 1e93f6a..a6d501d 100644 --- a/apps/frontend/src/app/(unprotected)/signup/page.tsx +++ b/apps/frontend/src/app/(unprotected)/signup/page.tsx @@ -61,6 +61,19 @@ export default function SignupPage() { Log in + ++ By signing up, you agree to our{" "} + + Terms of Service + {" "} + and{" "} + + Privacy Policy + + . +
+{error?.message}
diff --git a/apps/frontend/src/app/cookie/page.tsx b/apps/frontend/src/app/cookie/page.tsx new file mode 100644 index 0000000..7b7f1a3 --- /dev/null +++ b/apps/frontend/src/app/cookie/page.tsx @@ -0,0 +1,63 @@ +import ReactMarkdown from "react-markdown"; + +export default function TermsPage() { + const content = ` +# Cookie Policy — Lingput + +**Effective date:** September 4, 2025 +**Service:** Lingput (AI-powered language learning platform) + +--- + +## 1. What Are Cookies? + +Cookies are small text files stored on your device when you visit a website. They help websites remember your preferences and improve your browsing experience. Some cookies are essential, while others are optional. + +--- + +## 2. How Lingput Uses Cookies + +We use cookies in the following categories: + +* **Essential cookies (required)** + Needed for core functionality such as login sessions, account security, and remembering your language progress. + These cannot be disabled. + +* **Analytics cookies (optional)** + With your consent, we use Google Analytics 4 (Consent Mode) to understand how users interact with Lingput and to improve the platform. These cookies are only activated if you click **Accept** in the cookie banner. + +* **No advertising cookies** + Lingput does not use advertising, remarketing, or personalization cookies. + +--- + +## 3. Managing Your Cookie Preferences + +* When you first visit Lingput, you can accept or reject analytics cookies via the cookie banner. +* You can change your choice at any time by clicking **Cookie Settings** in the footer. +* You can also delete cookies through your browser settings. + +--- + +## 4. Third-Party Cookies + +Some cookies may be placed by trusted third parties: + +* **Google Analytics (Google LLC, USA)** — analytics cookies (only with your consent). + +--- + +## 5. More Information + +For details on how we handle personal data, see our [Privacy Policy](/privacy). + +If you have questions about this Cookie Policy, contact us at **support@lingput.dev**. + + `; + + return ( +