diff --git a/.github/workflows/deploy-frontend.yml b/.github/workflows/deploy-frontend.yml
new file mode 100644
index 0000000..a36cb7f
--- /dev/null
+++ b/.github/workflows/deploy-frontend.yml
@@ -0,0 +1,79 @@
+name: Deploy Frontend to Cloudflare Pages
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - 'frontend/**'
+ - '.github/workflows/deploy-frontend.yml'
+ pull_request:
+ branches:
+ - main
+ paths:
+ - 'frontend/**'
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ deployments: write
+ pull-requests: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: 'npm'
+ cache-dependency-path: frontend/package-lock.json
+
+ - name: Install dependencies
+ working-directory: frontend
+ run: npm ci
+
+ - name: Build
+ working-directory: frontend
+ run: npm run build
+
+ - name: Deploy to Cloudflare Pages
+ id: deploy
+ uses: cloudflare/wrangler-action@v3
+ with:
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ command: pages deploy dist --project-name=workmate
+ workingDirectory: frontend
+
+ - name: Comment preview URL on PR
+ if: github.event_name == 'pull_request'
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const body = `🚀 **Cloudflare Pages Preview**\n\nDeployed to: ${process.env.DEPLOYMENT_URL}`;
+ const { data: comments } = await github.rest.issues.listComments({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ });
+ const existing = comments.find(c => c.body.includes('Cloudflare Pages Preview'));
+ if (existing) {
+ await github.rest.issues.updateComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ comment_id: existing.id,
+ body,
+ });
+ } else {
+ await github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ body,
+ });
+ }
+ env:
+ DEPLOYMENT_URL: ${{ steps.deploy.outputs.deployment-url }}
diff --git a/frontend/src/app/App.tsx b/frontend/src/app/App.tsx
index 78e0b67..4508716 100644
--- a/frontend/src/app/App.tsx
+++ b/frontend/src/app/App.tsx
@@ -1,5 +1,4 @@
import { Routes, Route } from "react-router-dom";
-import { LoginPage } from "./pages/LoginPage";
import { ChatPage } from "./pages/ChatPage";
import { AdminPage } from "./pages/AdminPage";
import { SettingsPage } from "./pages/SettingsPage";
@@ -9,12 +8,11 @@ import { Sidebar } from "./components/Sidebar";
export default function App() {
return (
-
{description}
+ + ← Back to Home + ++ {"\u{1F4AC}"} + + What did we decide about the pricing model? + +
+ + + ++ AI-Powered Knowledge Assistant +
++ Ask questions across all your documents. Get sourced answers in + real-time. +
+ ++ About WorkMate +
++ WorkMate was born from a simple frustration: teams store critical + knowledge in Notion, but finding specific answers means digging + through pages manually. We built an AI assistant that retrieves, + reasons over, and cites your workspace documents — so your team can + focus on decisions, not searching. +
++ The Team +
++ San Francisco Bay University — CS Capstone, Spring 2026 +
++ Tech Stack +
++ {g.label} +
++ Documentation +
++ Everything you need to connect your workspace and start asking + questions. +
++ Getting Started +
++ {step.desc} +
++ Frequently Asked Questions +
++ Built with +
++ Features +
+{f.desc}
++ How It Works +
+{s.desc}
++ Connect your Notion workspace and start getting answers in minutes. +
+ + Get Started Free + ++ Pricing +
++ Start free. Upgrade as your team grows. +
++ {tier.name} +
+{tier.description}
++ Have questions? Check our{" "} + + Docs & FAQ + {" "} + page. +
+