Skip to content

Repository files navigation

Emoji Copy

A privacy-first static web app for finding and copying Unicode emojis. It uses native HTML, CSS, and JavaScript in the browser, generates a real static route for every emoji, and deploys to GitHub Pages without a backend, trackers, cookies, or third-party runtime code.

Local development

Requirements: Node.js 22 or newer.

npm ci
npm run dev

Open http://localhost:4173/ or a detail route such as http://localhost:4173/waving-hand/. The development server rebuilds when source data, templates, styles, scripts, or build code changes.

Useful commands:

  • npm run data:validate validates catalogue and route invariants.
  • npm test runs unit and build integration tests with coverage.
  • npm run build creates the deployable dist/ directory.
  • npm run verify:build checks generated routes, assets, metadata, and sitemap entries.
  • npm run check runs formatting, linting, validation, tests, build, and output verification.

Test a GitHub project-site base path with:

SITE_URL=https://owner.github.io/emoji-copy/ npm run build

Data and routes

The canonical catalogue is data/emojis.json. Curated aliases are merged from data/overrides.json, and approved legacy paths are declared in data/redirects.json. A successful build writes the browser catalogue and generates /<slug>/index.html for every canonical record.

The controlled importer accepts reviewed local Unicode emoji-test.txt and English CLDR annotation JSON files. It imports fully-qualified sequences, preserves published slugs and aliases, records SHA-256 provenance, and never fetches live data during a normal build. Run npm run data:import -- without parameters to see the required options, or use the manual Update emoji data workflow with pinned HTTPS URLs and expected digests; that workflow opens a pull request and never deploys or auto-merges.

Do not edit or commit dist/. See CONTRIBUTING.md and ARCHITECTURE.md for the maintainer contract and complete design.

Deployment

Set Settings → Pages → Build and deployment → Source to GitHub Actions. Pushes to main run the quality suite, build with the Pages-provided base URL, upload dist/, and deploy through the protected github-pages environment. Pull-request CI has read-only repository permissions.

Data attribution

Emoji names, categories, and annotation terminology are based on the Unicode Emoji and Unicode CLDR projects. Unicode data files and software are governed by the Unicode License. Native emoji glyph artwork is supplied by the user's operating system and is not distributed by this repository.

Source provenance is recorded in data/sources.lock.json. The seed catalogue is deliberately small; a controlled, pinned upstream import should record release URLs and cryptographic digests before a full data refresh is merged.

Source code is available under the MIT License.

About

A fast, privacy-friendly static emoji browser with search, one-click copying, and generated emoji pages

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages