NudgeThis Docs

Documentation / Routes & devices

Route review

Open Route review in the dashboard, or Routes in the overlay. Enter the exact origin of your running local application and choose Scan routes. The origin must appear in server.allowedOrigins. NudgeThis reads source files; it does not start your development server, run package scripts or contact an agent.

Discovery recognizes common file routes in Next.js app/pages, Nuxt/Vue/Astro pages, SvelteKit src/routes, and literal path declarations used by React/Vue/Angular routers. It is a candidate inventory, not a framework compiler or exhaustive runtime crawl. Dynamic parameters, relative nested routes, generated routes, router base paths and authentication may require adjustment. Source hints remain unverified.

Use Add a missing route for URLs the scan missed. Resolve a dynamic pattern such as /products/[id] to a real path such as /products/42. Add extra concrete URLs separately to review multiple data cases. Exclude route removes false positives from the checklist and denominator. No source files are changed by these controls.

Desktop and mobile

The preview embeds your application in a browser frame. Switch between Desktop (1024–1920 px presets) and Mobile (320–480 px presets); the default widths are 1440 and 390 px. Fit preview scales the frame visually while retaining its chosen layout width. Turn it off to inspect at actual size and scroll the preview.

Embedded layout exercises CSS media queries and the layout viewport. It does not emulate touch, user agent or device pixel ratio. Device browser, described below, adds those Chromium emulation controls in a separate browser window. Login requirements, redirects and frame restrictions may prevent an embedded preview. NudgeThis cannot reliably identify cross-origin frame errors or confirm a rendered route; verify the URL/content yourself and record blockers honestly.

Each route has separate desktop and mobile records: pending, reviewed or blocked. Loading a route never marks it reviewed. After checking the requested page at the selected width, confirm the checkbox and choose Mark desktop/mobile reviewed. Record a reason when marking a view blocked. Notes retain their draft text when switching views.

Progress is reviewed viewports / (included routes × 2). A route is complete only when both viewports are reviewed. Blocked views remain incomplete. Next pending view walks the remaining checklist; filters show incomplete, completed, blocked or unresolved routes. Coverage records a point in time, not continuous monitoring: rescan after code changes to start a fresh checklist. Export the current report first to preserve it.

Create change opens a task composer carrying the route, viewport and notes. You can save a draft without execution or start the configured agent when execution is enabled. Export report downloads JSON with source candidates, checks, notes, timestamps, widths and the Git HEAD recorded at scan time. This records manual review, not automated visual correctness or provider compatibility.

Records persist in local SQLite. Concurrent saves use a revision number; a stale window must reopen Route review before saving. Scans skip ignored/generated/private paths, symlinks, source files over 256 KiB and literal scanning beyond 3000 source files. A checklist is limited to 1000 routes. No DOM screenshots or image uploads are collected.

Device browser

Choose Device browser under Preview, then choose Desktop or Mobile. Mobile offers generic small-phone (360 × 800, DPR 3), phone (390 × 844, DPR 3), large-phone (430 × 932, DPR 3) and tablet (768 × 1024, DPR 2) profiles. Rotate between portrait and landscape; Open device browser applies the selected settings and navigates to the selected route. Choosing Desktop and opening it restores 1440 × 900, DPR 1, mouse input and the original desktop user agent. Changing a control alone does not change the open tab.

NudgeThis controls an installed Chrome, Edge or Chromium through the Chrome DevTools Protocol from Rust. It does not require Node, ChromeDriver, an extension or an agent at runtime. Mobile settings include device metrics, screen orientation, touch capabilities, mouse-to-touch emulation, an Android user agent and matching client hints. Tablet client hints use the Android tablet convention (mobile: false) while retaining touch/mobile layout. These are generic Chromium profiles, not claims of exact named-phone compatibility.

The browser uses a new temporary profile inside ignored .nudgethis/. Existing browser tabs, accounts and profiles are not attached to or changed. Login/local storage persist while this device session stays open, including when changing route or device settings. Sign in to the local application in this window if necessary. Close device browser or a graceful server shutdown ends the owned process and removes its temporary profile. Closing the Route review dialog leaves the device browser open so you can keep inspecting. An abrupt process/OS crash can leave a browser-* directory; only remove it after confirming its browser process has stopped. The application does not bulk-delete old browser profiles.

Before counting a device review, the server checks the current session/settings, the main frame URL and completion of document loading. Redirects, closed windows, stale sessions or the wrong Desktop/Mobile category return an error. HTTP/application errors still require human judgment: a loaded document is not proof of a correct page. The record includes method: manual-device-emulation, configured dimensions/DPR/orientation, browser version and observed layout dimensions, touch capabilities and pointer media query. Missing viewport metadata or overflowing content can make observed dimensions differ from the configured screen. Query strings and fragments are not included in the review evidence.

There is one desktop and one mobile record per route. Reviewing another mobile profile replaces the mobile record; it does not claim every device/orientation has been reviewed. Export the current report to preserve it before recording another case. Both methods still require the review checkbox and manual confirmation. Source changes do not invalidate old coverage automatically. Rescan when you want a fresh checklist.

Browser setup and limitations

nudgethis doctor and Workspace setup report whether a supported executable was found, without launching it. If detection fails, set NUDGETHIS_BROWSER_PATH in the server's environment to an absolute Chrome/Edge/Chromium executable path, then restart NudgeThis. The browser API cannot supply an executable, arbitrary arguments, JavaScript or CDP commands. On Linux a graphical session is required for visible review; NUDGETHIS_BROWSER_HEADLESS=1 is available for automated browser checks and does not provide a visible review window.

Device preview is available with agent execution disabled. Opening it explicitly starts a browser and runs the trusted local application's JavaScript; it never runs project setup, validation or agent commands. Remote debugging is bound to loopback and uses only the owned temporary profile. Do not expose that debugging port or the NudgeThis server remotely.

Emulation does not reproduce Safari/WebKit, physical hardware, real network/radio behavior, an OS virtual keyboard, safe-area notches or every device gesture. Physical-device and cross-engine testing remain necessary for those behaviors. No screenshot evidence is captured automatically.

View this guide on GitHub