Repository navigation
Release/26.8.0 - #1
Conversation
There was a problem hiding this comment.
Pull request overview
Introduces a new standalone marketing landing page under web/landing/ (Vite + React + TS + Tailwind, containerized with nginx) as part of the 26.8.0 release, while removing the previous CRA-based static/html implementation and legacy deployment/chart artifacts.
Changes:
- Add a new Vite/React landing app (
web/landing) with Tailwind styling, Biome config, pnpm lockfile, and Docker/nginx runtime config. - Bump the root
versionto26.8.0. - Remove the legacy
static/htmlapp, git-subtree tracking, and the previously committedinfra/helmand.tln.conffiles.
Reviewed changes
Copilot reviewed 81 out of 95 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| web/landing/vite.config.ts | Adds Vite config for the new landing app. |
| web/landing/tsconfig.node.json | Adds TS config for Node/Vite tooling. |
| web/landing/tsconfig.json | Adds TS config for the browser app. |
| web/landing/tailwind.config.ts | Adds Tailwind configuration and brand palette. |
| web/landing/src/vite-env.d.ts | Adds Vite client type references. |
| web/landing/src/types/terminal.ts | Defines terminal block types for UI rendering. |
| web/landing/src/pages/SolutionDetail.tsx | Adds solution detail page UI. |
| web/landing/src/pages/Home.tsx | Adds home/overview page UI. |
| web/landing/src/main.tsx | Adds React entrypoint + router bootstrapping. |
| web/landing/src/index.css | Adds Tailwind layers + shared component classes. |
| web/landing/src/data/solutions.ts | Adds solution catalog content and helpers. |
| web/landing/src/components/TerminalWindow.tsx | Adds terminal-style UI component. |
| web/landing/src/components/SolutionCard.tsx | Adds solution card component for the grid. |
| web/landing/src/components/layout/PageContainer.tsx | Adds shared page container wrapper. |
| web/landing/src/components/layout/Navbar.tsx | Adds top navigation with router links. |
| web/landing/src/components/layout/Footer.tsx | Adds footer with external links and icons. |
| web/landing/src/components/FeatureList.tsx | Adds feature list rendering component. |
| web/landing/src/components/CtaButtons.tsx | Adds GitHub/npm CTA button component. |
| web/landing/src/App.tsx | Adds top-level routes and layout composition. |
| web/landing/README.md | Documents local dev/build/docker workflow for the new app. |
| web/landing/postcss.config.js | Adds PostCSS config for Tailwind/autoprefixer. |
| web/landing/pnpm-lock.yaml | Adds dependency lockfile for reproducible installs. |
| web/landing/package.json | Adds app manifest/scripts/engines and dependencies. |
| web/landing/nginx.conf | Adds nginx config for SPA routing + asset caching. |
| web/landing/index.html | Adds HTML entrypoint and metadata. |
| web/landing/Dockerfile | Adds container build for static site (build + nginx serve). |
| web/landing/biome.json | Adds Biome formatter/linter configuration. |
| web/landing/.gitignore | Adds project-local ignores for landing app. |
| web/landing/.dockerignore | Adds Docker build context exclusions. |
| version | Bumps deployed site/app version to 26.8.0. |
| static/html/src/serviceWorker.js | Removes legacy CRA service worker implementation. |
| static/html/src/services/index.js | Removes legacy services barrel export. |
| static/html/src/services/ConnectionService.test.js | Removes legacy service test. |
| static/html/src/services/ConnectionService.js | Removes legacy connection service. |
| static/html/src/services/ConfigService.test.js | Removes legacy service test. |
| static/html/src/services/ConfigService.js | Removes legacy config service. |
| static/html/src/services/AuthService.test.js | Removes legacy service test. |
| static/html/src/services/AuthService.js | Removes legacy auth service. |
| static/html/src/README.md | Removes legacy embedded README content. |
| static/html/src/pages/Login/Login.js | Removes legacy login page. |
| static/html/src/pages/Home/index.js | Removes legacy home page export. |
| static/html/src/pages/Home/Home.test.js | Removes legacy page test. |
| static/html/src/pages/Home/Home.js | Removes legacy markdown-driven home page. |
| static/html/src/pages/Home/Home.css | Removes legacy page CSS. |
| static/html/src/index.js | Removes legacy CRA bootstrap entrypoint. |
| static/html/src/index.css | Removes legacy global CSS. |
| static/html/src/components/Navbar/Navbar.js | Removes legacy navbar component. |
| static/html/src/components/Navbar/Navbar.css | Removes legacy navbar styles. |
| static/html/src/components/Navbar/index.js | Removes legacy navbar export. |
| static/html/src/components/Footer/index.js | Removes legacy footer export. |
| static/html/src/components/Footer/Footer.js | Removes legacy footer component. |
| static/html/src/components/AuthComponent/index.js | Removes legacy auth component export. |
| static/html/src/components/AuthComponent/AuthComponent.js | Removes legacy auth HOC. |
| static/html/src/App.test.js | Removes legacy app test. |
| static/html/src/App.js | Removes legacy router/app implementation. |
| static/html/src/App.css | Removes legacy app CSS. |
| static/html/sonar-project.properties.template | Removes legacy SonarQube config template. |
| static/html/README.md | Removes legacy CRA README. |
| static/html/public/robots.txt | Removes legacy robots.txt. |
| static/html/public/manifest.json | Removes legacy PWA manifest. |
| static/html/public/index.html | Removes legacy CRA HTML template. |
| static/html/package.json | Removes legacy CRA package manifest. |
| static/html/Jenkinsfile | Removes legacy Jenkins pipeline file. |
| static/html/Dockerfile | Removes legacy Docker build. |
| static/html/default.conf.template | Removes legacy nginx template. |
| static/html/default.conf.https.template | Removes legacy HTTPS nginx template. |
| static/html/.tln.conf | Removes legacy TLN component config for static app. |
| static/html/.gitignore | Removes legacy ignores. |
| static/.tln.conf | Removes legacy TLN parent component config. |
| infra/terraform/.tln.conf | Removes legacy Terraform stub component config. |
| infra/helm/tln-sh/values.yaml | Removes legacy Helm chart values. |
| infra/helm/tln-sh/templates/service.yaml | Removes legacy Helm service template. |
| infra/helm/tln-sh/templates/secret.yaml | Removes legacy Helm TLS secret template. |
| infra/helm/tln-sh/templates/namespace.yaml | Removes legacy Helm namespace template. |
| infra/helm/tln-sh/templates/ingress.yaml | Removes legacy Helm ingress template. |
| infra/helm/tln-sh/templates/deployment.yaml | Removes legacy Helm deployment template. |
| infra/helm/tln-sh/templates/crsecret.yaml | Removes legacy Helm registry secret template. |
| infra/helm/tln-sh/Chart.yaml | Removes legacy Helm chart metadata. |
| infra/helm/tln-sh/.helmignore | Removes legacy Helm ignore file. |
| infra/helm/.tln.conf | Removes legacy Helm TLN component config. |
| infra/.tln.conf | Removes legacy infra deployment TLN component config. |
| CLAUDE.md | Adds repository guidance (needs updates to reflect new layout). |
| .gitsubtrees | Removes git-subtree tracking configuration. |
| .gitignore | Expands ignore rules for nested Node/Vite build artifacts and env files. |
Files not reviewed (1)
- web/landing/pnpm-lock.yaml: Generated file
Suppressed comments (3)
CLAUDE.md:19
- The
Repo layoutsection referencesinfra/andstatic/html/as if they exist and describes their contents, but those directories are not present in this branch. Please update this section so it reflects the actual deployed/served site code (web/landing) and any remaining deployment configuration.
- `infra/` — deployment component. `infra/.tln.conf` depends on `kubectl-1.24.4` and `helm-3.10.1`, and defines steps: `deploy` (helm install of `infra/helm/tln-sh` with `--set namespace/registry/domain/reverseDomain/tlnShVersion --values <secrets/values.yaml>`), `cluster-status`, `status` (= `ingress-status` + `cluster-status`), `undeploy` (`helm uninstall tln-sh`).
- `infra/helm/tln-sh/` — the Helm chart itself.
- `values.yaml` — declares `deployments` (map of prefix → instances → replica count) and `routes` (ingress path → backend service mapping). This is the source of truth for what gets deployed; templates iterate over these maps generically rather than hardcoding service names.
- `templates/deployment.yaml` — iterates `.Values.deployments[group].instances[inst]`, creating one Deployment per instance. Image is `<registry>/<reverseDomain>.<group>.<inst>:<tlnShVersion>` (e.g. `registry.digitalocean.com/projects-cr/sh.tln.static.html:22.10.0`).
- `templates/ingress.yaml` — iterates `.Values.routes`, one Ingress per route, all pointing at host `tln.sh` with TLS via `ingress-tls` secret.
CLAUDE.md:40
- The
Commandssection points tostatic/html/(CRA) commands, but the current landing page lives underweb/landing/and uses pnpm. Update these commands so contributors run the right tooling.
Frontend commands run from `static/html/`:
- `npm start` — dev server on port 9080 (`cross-env PORT=9080 react-scripts start`)
- `npm run build` — production build via `react-scripts build`
- `npm test` — `cross-env CI=true react-scripts test --coverage --watchAll=false` (CRA/Jest under the hood; pass a path or `-t <name>` to scope to one test file/case)
CLAUDE.md:45
- This note mentions
deploysteps and version consistency withstatic/html/package.jsonand a hardcoded footer version, but those no longer apply after removingstatic/html. Update the note so it reflects the current deployment/versioning mechanics.
- `secrets/` (gitignored) must exist locally with `tln.sh.crt`, `tln.sh.key`, `config.json` before `create-secrets` / `deploy` steps can run — these are not present in the repo and are expected to be provisioned out-of-band.
- Bumping the deployed version means updating `version` (root) — this flows into both `TLN_VERSION`/`tlnShVersion` (Helm image tag) and should stay consistent with `static/html/package.json`'s `version` and the `Footer` component's hardcoded version string in `src/App.js`.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 81 out of 95 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- web/landing/pnpm-lock.yaml: Generated file
Suppressed comments (2)
web/landing/src/data/solutions.ts:82
- The card preview command for
tln-cloudsusesgit clone tln-clouds, which is not a valid clone target unless a local repository/alias exists. This will be a broken copy/paste instruction for most users; use a full GitHub URL (or SSH URL) like thegettingStartedblock above.
web/landing/nginx.conf:21 - The immutable 1-year cache policy is applied to all images (including
/logo.png,/author.jpg,/hero-*.png) served from thepublic/root. Those files are not fingerprinted, so future updates may not be visible to returning users due to aggressive caching. Consider limitingimmutablecaching to Vite's fingerprinted/assets/output and using a shorter cache for root-level public assets.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 81 out of 95 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- web/landing/pnpm-lock.yaml: Generated file
Suppressed comments (2)
web/landing/src/components/TerminalWindow.tsx:21
keycan becomeundefined(or duplicated) becauseTerminalBlockallows bothcommandandcommentto be absent. That can lead to React key warnings and unstable list rendering; include an index (or a required id) as a fallback to guarantee uniqueness.
web/landing/Dockerfile:12- The runtime image uses an unpinned
nginx:alpinetag, which can change over time and make builds non-reproducible (and can unexpectedly pull in security-breaking changes). Pin to a specific nginx version (or digest) that your deployment process supports.
No description provided.