The DIMO Validation App powers the DIMO Data Accuracy tool. Drivers review the telemetry coming from their vehicles, report issues, and share updates with the DIMO team. The repository contains both the Next.js front end and the Firefly-based API that collects each submission.
- Production app: dimovalidation.com
- Support checklist:
TODO
- Visit dimovalidation.com and activate Get Started.
- Sign in with your DIMO account. The app may ask you to share specific vehicles before you can edit their data. Permissions that you grant in DIMO Login remain in effect inside the validation experience.
- After signing in you land on the dashboard. Shared vehicles appear under Shared Vehicles. Unshared vehicles remain under Vehicles Not Shared with a button that lets you grant access without leaving the page.
- Press
Tabto move between interactive items andShift+Tabto go back. - Activate buttons or vehicle tiles with
EnterorSpace. - Use arrow keys to switch between tabs or list items when the UI offers that control.
- Every form includes clear focus states so you always know which field is active before typing.
- Choose a vehicle tile to review its signals in either the basic or advanced view. You can update values and submit corrections, and the backend will forward your notes to the DIMO team for follow up.
- If you cannot resolve an issue, open the Having trouble? link on the landing page for next steps or support contacts.
- Submissions do not change data in the mobile app immediately. A disclaimer in the workflow reminds you that the DIMO team confirms each update first.
app/: Next.js 14 front end that uses the App Router, Tailwind CSS, and Mapbox components.backend/: Express and Firefly TypeScript service that integrates with the DIMO network, Google Sheets, and other data sources.TODO: Internal checklist for launch readiness and future enhancements.
- Node.js 20.x and npm 11.x (matches the backend package requirements).
- Mapbox token and DIMO API credentials for local development.
- Access to the Google service account and spreadsheet that the backend writes to.
Create .env.local inside app/ and .env inside backend/, or apply your
preferred secret management approach.
Front end (app/.env.local):
NEXT_PUBLIC_SERVER_URI: Base URL for the backend API used by the vehicle hooks and submission flows.NEXT_PUBLIC_DIMO_CLIENT_ID: OAuth client used by the DIMO login widget.NEXT_PUBLIC_DIMO_REDIRECT_URI: Redirect URI configured for DIMO login flows.NEXT_PUBLIC_DISCORD_WEBHOOK: Optional webhook that surfaces runtime errors in your support channels.NEXT_PUBLIC_MAPBOX_TOKEN: Public token used by the Mapbox map selector components.
Backend (backend/.env):
DIMO_CLIENT_ID,DIMO_REDIRECT_URI,DIMO_CLIENT_KEY: Credentials for authenticating with the DIMO data APIs and checking vehicle permissions.GOOGLE_SERVICE_ACCOUNT_EMAIL,GOOGLE_SERVICE_ACCOUNT_KEY,GOOGLE_SHEET_ID: Service account values used to append rows to the DIMO validation spreadsheet.
# From the repository root
cd app && npm install
cd ../backend && npm install- Start the backend API:
Firefly compiles the TypeScript sources and exposes the Express app on the port reported in your terminal. Leave this process running so the front end can proxy API requests.
cd backend npm run dev - In a new terminal start the Next.js client:
Next.js serves the UI at http://localhost:3000 by default. Update
cd app npm run dev.env.localsoNEXT_PUBLIC_SERVER_URIpoints to the backend development URL.
npm run buildandnpm run startinsideapp/generate the static production build for the Next.js site.npm run buildinsidebackend/transpiles the Firefly project and produces thedist/output thatnpm run startserves.- Track launch readiness, support planning, and future enhancements in the
TODOfile so product and support teams stay aligned.
Whether you are validating vehicle data or extending the platform, this repository provides everything you need to collaborate on the DIMO Validation experience.