This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
This project supports GA4 to track visits and geography.
-
Create a GA4 property and web data stream. Copy the Measurement ID (looks like
G-XXXXXXX). -
Set the environment variable locally or in your hosting provider:
NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXX
You can use .env.local during development. See .env.local.example.
- The app automatically loads GA and tracks route changes. No additional setup is needed.
Notes:
- GA4 reports: Acquisition (source/medium/referrals) and Demographics (country/city).
- GA4 does not identify individual users; data is aggregate. Ensure cookie/consent compliance as required.
Generate the NCBI Taxonomy hierarchy used by the hidden phyletic-distribution tool:
npm run generate:phyletic-treeThe generator reads
public/phyletic-distribution/taxonomy_eukaryotes_filtered.json and writes
public/phyletic-distribution/taxonomy_eukaryotes_filtered.nwk plus
public/phyletic-distribution/taxonomy_eukaryotes_filtered.tree-order.json.
- Newick tips are NCBI taxIDs so they map directly to visualization records.
- Every populated taxonomy field is retained, including
Cellular Root, all named ranks,CladethroughClade 21, andNo RankthroughNo Rank 3. Empty andNAvalues never create nodes. - Because the JSON stores ranked and unranked fields in separate flattened columns, groups are nested by containment of their sampled descendant taxa. Repeated names in different lineages are separated by broader context.
- Multifurcations are preserved as nodes with any number of children; the tree is never forced into a binary topology.
- The companion order file is the authoritative leaf order used by the visualization, preventing the taxonomy bars and tree tips from diverging.
- Branch lengths are layout distances, not evolutionary distances. The whole hierarchy is stretched to the available height; lineages may contain different numbers of populated taxonomy layers while all tips stay aligned.
For future visualization, prune the tree by visible taxID tips and retain child arrays of arbitrary length. The NCBI tree should be described as a taxonomy hierarchy and displayed as a cladogram by default.