From 8bb1860ff7252c0a8faf391f3e04a0a5d11fddfb Mon Sep 17 00:00:00 2001 From: Steven Enamakel <31011319+senamakel@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:07:04 -0700 Subject: [PATCH] Feat/landing revamp (#3) * docs: add AGENTS.md for repository guidelines and project structure - Introduced AGENTS.md to outline project structure, build commands, coding style, testing guidelines, and commit/pull request practices. - Included detailed sections on module organization and naming conventions to enhance developer onboarding and consistency. * feat: enhance landing page and configuration for improved user experience - Updated next.config.ts to pin Turbopack root to the app directory for better workspace management. - Modified package.json scripts to use Webpack during development and build processes. - Refactored postcss.config.mjs to set the base path for Tailwind CSS. - Replaced CSS imports in globals.css with Tailwind directives for better styling management. - Introduced RotatingTetrahedronCanvas component for dynamic visual effects on the Welcome page. - Revamped Welcome page layout to include the new canvas and improve overall design and user engagement. * refactor: update CSS imports and enhance HeroCTA layout for improved responsiveness - Replaced Tailwind CSS directives in globals.css with an import statement for better compatibility. - Modified the HeroCTA component layout to improve responsiveness and alignment across different screen sizes. * feat: integrate RotatingTetrahedronCanvas and update HeroCTA links for enhanced landing page experience - Added RotatingTetrahedronCanvas component to display a dynamic 3D visual on the landing page. - Replaced outdated links in HeroCTA component to direct users to the updated TinyHumans resources. * update design --- AGENTS.md | 41 +++++++ lander/app/components/Footer.tsx | 4 +- lander/app/components/HeroCTA.tsx | 23 +--- lander/app/components/Navigation.tsx | 4 +- .../components/RotatingTetrahedronCanvas.tsx | 111 ++++++++++++++++++ lander/app/downloads/page.tsx | 2 +- lander/app/feedback/page.tsx | 6 +- lander/app/globals.css | 10 +- lander/app/layout.tsx | 8 +- lander/app/page.tsx | 94 ++++++++++----- lander/next.config.ts | 12 +- lander/package.json | 4 +- lander/postcss.config.mjs | 9 +- package.json | 2 + src/components/RotatingTetrahedronCanvas.tsx | 96 +++++++++++++++ src/pages/Welcome.tsx | 76 ++++++++---- yarn.lock | 53 +++++++++ 17 files changed, 460 insertions(+), 95 deletions(-) create mode 100644 AGENTS.md create mode 100644 lander/app/components/RotatingTetrahedronCanvas.tsx create mode 100644 src/components/RotatingTetrahedronCanvas.tsx diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..492bc221a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,41 @@ +# Repository Guidelines + +## Project Structure & Module Organization +- `src/`: React + TypeScript frontend (pages, components, hooks, store, services, lib). +- `src-tauri/`: Rust backend and Tauri desktop integration. +- `test/`: Vitest config and E2E/WebDriverIO setup (`test/e2e`, `test/wdio.conf.ts`). +- `skills/`: Skill runtime/build artifacts and manifests. +- `scripts/`: build/test automation (E2E helpers, tool generation). +- `docs/`: architecture and product documentation. +- `public/` and `src/assets/`: static assets. + +## Build, Test, and Development Commands +- `yarn dev`: run Vite web dev server. +- `yarn dev:app` (or `yarn tauri:dev`): run desktop app with Tauri + TDLib bootstrap. +- `yarn build`: type-check and build web bundle. +- `yarn build:app`: build app bundle plus skills/tools generation. +- `yarn compile`: TypeScript check only (`tsc --noEmit`). +- `yarn test` / `yarn test:coverage`: run unit tests and coverage. +- `yarn test:rust`: run Rust tests in `src-tauri`. +- `yarn test:e2e`: run E2E suite (login/auth/payment/telegram/notion/gmail). +- `yarn lint` / `yarn lint:fix`, `yarn format:check` / `yarn format`: quality and formatting checks. + +## Coding Style & Naming Conventions +- TypeScript-first; keep all app code under `src/`. +- Prettier is authoritative: 2 spaces, semicolons, single quotes, max width 100. +- Imports are auto-sorted via `@trivago/prettier-plugin-sort-imports`. +- ESLint (flat config) enforces React hooks rules, no duplicate imports, `prefer-const`, and TS-aware unused var checks. +- Naming: React components `PascalCase.tsx`; hooks `useX.ts`; slices/services/helpers `camelCase.ts`; tests `*.test.ts(x)`. + +## Testing Guidelines +- Framework: Vitest + Testing Library (`jsdom`), with MSW utilities in `src/test/`. +- Unit tests live beside code (`__tests__`) or as `*.test.ts(x)` in `src/`. +- Coverage thresholds (global minimum): lines 15%, statements 15%, functions 15%, branches 12%. +- Run `yarn test:coverage` before opening non-trivial PRs. + +## Commit & Pull Request Guidelines +- Prefer concise conventional-style subjects: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`. +- Keep commits scoped and descriptive (e.g., `fix: handle socket reconnect on auth expiry`). +- If contributing upstream, branch from `develop` and open PRs against `develop`. +- PRs should include: purpose, key changes, test evidence (commands run), linked issue (`Fixes #123`), and screenshots/videos for UI changes. +- Hooks exist but are lightweight; run lint, format, compile, and relevant tests manually before push. diff --git a/lander/app/components/Footer.tsx b/lander/app/components/Footer.tsx index f9a5a38c6..21b2d0238 100644 --- a/lander/app/components/Footer.tsx +++ b/lander/app/components/Footer.tsx @@ -1,7 +1,7 @@ export default function Footer() { return ( -