Skip to content

Restructure into apps/* monorepo and add marketing website - #25

Merged
Gift-Stack merged 4 commits into
mainfrom
feat/monorepo-website
Jul 12, 2026
Merged

Gift-Stack merged 4 commits into
mainfrom
feat/monorepo-website

Conversation

@Gift-Stack

@Gift-Stack Gift-Stack commented Jul 12, 2026 •

Copy link
Copy Markdown
Contributor

What

Three commits:

  1. refactor: move desktop app to apps/desktop monorepo layout — promotes the repo to a proper apps/* + packages/* layout. The desktop app moves app/ → apps/desktop/ (via git mv, full history preserved), and every path reference is updated.
  2. feat: add marketing website under apps/website — a Next.js 16 + Tailwind 4 landing page for Pontoon.
  3. fix(desktop): resolve repo root three levels up in build.rs — the move broke the Tauri sidecar build (see Verification).

Restructure details

File Change
pnpm-workspace.yaml "app" → "apps/*"
scripts/build-sidecar.mjs sidecar output → apps/desktop/src-tauri/binaries
.github/workflows/release.yml projectPath + rust-cache workspaces → apps/desktop
.gitignore tauri ignore rules → apps/desktop/…; added .next, *.tsbuildinfo
turbo.json build outputs now include .next/** (minus cache)
apps/desktop/src-tauri/build.rs repo root now resolved three levels up (was two); rerun-if-changed paths ../../ → ../../../
README.md structure tree + doc paths

I kept the package name @pontoon/app (referenced by --filter, so pnpm dev, desktop:dev, and the release workflow keep working). Happy to rename to @pontoon/desktop in a follow-up.

Website details

@pontoon/website, dark-first single-page landing. Reuses the product's exact design tokens (charcoal + the two pontoon greens, ported from apps/desktop/src/styles.css) so the site and app read as one product. Archivo + JetBrains Mono; the hero centrepiece is a live in-code transaction-tree inspector mock. Sections: hero → features → how-it-works → panels → CTA → footer. Runs with pnpm --filter @pontoon/website dev (port 3100). Passes a WCAG pass (faint-text contrast to AA, CTA touch targets ≥44px, visible focus states, reduced-motion).

Verification

  • pnpm install --frozen-lockfile resolves the new apps/* workspace.
  • pnpm tsc (turbo across desktop + website + bridge) passes.
  • Website: clean production build (next build, static prerender); typechecks cold; verified in-browser at 375 / 390 / 1440px, no console errors, no horizontal overflow.
  • Desktop dev (pnpm dev): Vite serves the app from apps/desktop (5173) and the bridge runs from packages/bridge (37631); the app UI renders and shows "Bridge connected", Status Healthy, seeded treasuries.
  • Desktop build (pnpm desktop:build): the move broke build.rs (it resolved the repo root two levels up, so the sidecar step looked in apps/scripts/ instead of scripts/). Fixed in commit 3. After the fix, a clean build compiles the Rust app in release and produces Pontoon.app (arm64, dev.entrypoint.pontoon v0.1.0) with the pontoon-bridge sidecar embedded.

Note

The bundle_dmg.sh step fails in a headless session (it drives Finder via AppleScript to style the disk image); the .app itself builds fine, and the release workflow runs on real macos-latest runners where DMG bundling works. Not a code issue and not changed here.

@Gift-Stack
Gift-Stack force-pushed the feat/monorepo-website branch 2 times, most recently from 12273ec to ad0d5a6 Compare July 12, 2026 18:05
@Gift-Stack
Gift-Stack force-pushed the feat/monorepo-website branch from ad0d5a6 to b823845 Compare July 12, 2026 18:07
@Gift-Stack
Gift-Stack merged commit 2d921c6 into main Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant