A Nuxt 4 application for discovering and generating colour-adjusted icon assets that can be dropped straight into CoMapeo or Mapeo configurations. The app wraps The Noun Project API, provides on-the-fly translations, and exports ready-to-use SVG data URIs.
-
Duplicate the example environment file and add your credentials for The Noun Project API:
cp .env.example .env
-
Install dependencies and launch the development server:
npm install npm run dev
-
Visit
http://localhost:3000and start searching.
npm run dev– start the Vite-powered Nuxt dev servernpm run build– compile the production bundlenpm run preview– serve the built Nitro output locallynpm run lint– run ESLint, Stylelint and Prettier checksnpm run lintfix– autofix supported lint issues and format filesnpm run test– execute the Playwright end-to-end suite (headless); it starts the dev server on port4173, so keep that port freenpm run test:headed/npm run test:ui– run Playwright locally in headed or UI mode
The application expects the following variables in .env:
NOUN_KEY– The Noun Project consumer keyNOUN_SECRET– The Noun Project consumer secretICONS_TO_DOWNLOAD(optional) – number of icons to fetch per request
Restart the dev server whenever you update these values.
pages/– route-driven screens backed by the Nuxt routercomponents/– shared Vue components used across pagesserver/– Nitro API endpoints and supporting utilitieslibs/– browser-side utilities (e.g. colour filter generator)locales/– JSON translation bundles consumed by@nuxtjs/i18npublic/– static assets served directly without processingtests/e2e/– Playwright scenarios covering key user journeystypes/– TypeScript shims for external libraries without typings
The project relies on Tailwind CSS for styling and Playwright for UI verification. See package.json for additional scripts and tooling.