It combines rigorous academic research with practical applications and insights offering detailed cognitive function analysis, type relationships, and a unique metabolic framework rooted in Jungian psychology and modern neuroscience. You should try the game too. Site should be accessible for the colour blind, and for different devices across the board. Site should be lightweight for the shittiest internet available.
- Sister Types - J/P swapped comparisons (INTP vs INTJ, etc.) with detailed behavioral analysis
- Brother Types - E/I swapped comparisons (INTJ vs ENTJ, etc.) across five key dimensions
- Cognitive Functions Overview - Essential function summaries and interactions
- Detailed Cognitive Functions - In-depth function analysis with developmental stages, shadow exploration, and interactive navigation
- Metabolic Principles - Comprehensive framework integrating Jung's psychological types with neuroscience research
- Type Relationships - Comprehensive relationship dynamics and communication patterns between all type combinations
- Research Validation - Neuroscience studies, psychological research, and clinical applications with curated sources
- Metabolic Exploration Game/Test - Immersive personality assessment determining your main metabolic driver through metaphorical landscapes. Currently ~30 questions (Aug '25), designed to challenge experienced test-takers and reveal authentic cognitive patterns. I do not guarantee correct results at any moment or place.
- Dark/Light Theme Toggle - Accessible theme switching with system preference detection
- Responsive Design - Optimized for mobile, tablet, and desktop experiences
- Client-Side Routing - Smooth SPA navigation with proper URL handling
- SolidJS - Reactive UI framework
- Vite - Build tool and dev server
- CSS Modules - Component-scoped styling
- PM2 - Production process management
- SPA Router - Client-side navigation
git clone https://github.com/soulwax/harpernet.org.git
cd harpernet.org
npm install
npm run devNavigate to http://localhost:3890
The pm2 ecosystem this webpage depends on is seen within the ecosystem.config.js file, hence the default port of 3890. You can change this for your own needs.
The page does not depend on .env files.
I hereby pledge: No logging where the site is hosted (at the time on a real life friend's Intel NUC) who is a security researcher at the Fraunhofer IST. For maximum privacy I developed a few very simple principles:
-
Nginx access logs simply go to
> /dev/nullwhich means, in layman terms, the logs are written into a space that discards them immediately. -
Nginx Critical Errors go to
> /etc/nginx/logs/critical.logwhereas your personal data, such as browser fingerprint and IP are expunged. What is a critical error? It happens when:- The server encounters an unrecoverable error (like disk space issues, memory exhaustion, or configuration corruption)
- A malicious attack is detected and blocked
- SSL/TLS certificate validation fails
In all three cases: No personal data is collected anyway.
-
No cookies, period.
-
One variable stored in your browser's Local Storage (NOT a cookie) to remember whether you prefer dark mode or not. Check by yourself:
Verify: Press F12, go to the Web Storage Tab.
If the site should be hosted by a third party not on https://harpernet.org or on vercel by yourself e.g., that might become a different story, and you should read up on Vercel's privacy policy.
Be wary of sites that look similar with a different domain.
With https://harpernet.org there is no logging, period. SSL/TLS is generously provided by the R10 authority, US legal law applied.
harpernet.org
├───.env.local
├───.env.sample
├───.gitignore
├───.prettierrc
├───CHANGELOG.md
├───ecosystem.config.js
├───index.html
├───LICENSE
├───package-lock.json
├───package.json
├───README.md
├───tree.txt
├───vercel.json
├───vite.config.js
├───.github/
│ └───resources/
│ └───infjlolcat.gif
├───public/
│ ├───.htaccess
│ ├───404.html
│ ├───_redirects
│ ├───harp.svg
│ ├───harperhue.png
│ └───vite.svg
├───src/
│ ├───App.css
│ ├───App.jsx
│ ├───index.css
│ ├───index.jsx
│ ├───Router.css
│ ├───Router.jsx
│ ├───assets/
│ │ ├───harp.svg
│ │ └───solid.svg
│ ├───components/
│ │ ├───About.jsx
│ │ ├───About.module.css
│ │ ├───BrotherTypes.jsx
│ │ ├───BrotherTypes.module.css
│ │ ├───CognitiveFunctions.jsx
│ │ ├───CognitiveFunctions.module.css
│ │ ├───DetailedCognitiveFunctions.jsx
│ │ ├───DetailedCognitiveFunctions.module.css
│ │ ├───Footer.jsx
│ │ ├───Footer.module.css
│ │ ├───Header.jsx
│ │ ├───Header.module.css
│ │ ├───HomePage.jsx
│ │ ├───HomePage.module.css
│ │ ├───MetabolicExplorationGame.jsx
│ │ ├───MetabolicExplorationGame.module.css
│ │ ├───MetabolicPrinciples.jsx
│ │ ├───MetabolicPrinciples.module.css
│ │ ├───NavLink.jsx
│ │ ├───Relationships.jsx
│ │ ├───Relationships.module.css
│ │ ├───Research.jsx
│ │ ├───Research.module.css
│ │ ├───SisterTypes.jsx
│ │ ├───SisterTypes.module.css
│ │ ├───ThemeToggle.jsx
│ │ ├───ThemeToggle.module.css
│ │ ├───TypeTable.jsx
│ │ └───TypeTable.module.css
│ ├───contexts/
│ │ └───ThemeContext.jsx
│ ├───data/
│ │ ├───brotherTypes.json
│ │ ├───cognitiveFunctions.json
│ │ ├───cognitiveFunctionsDetailed.json
│ │ ├───curatedSources.json
│ │ ├───homeDescriptions.json
│ │ ├───jungianFramework.json
│ │ ├───metabolicGameData.json
│ │ ├───metabolicPrinciples.json
│ │ ├───rawSources.json
│ │ ├───relationships.json
│ │ ├───relationshipsEnhanced.json
│ │ └───sisterTypes.json
│ ├───pages/
│ │ ├───AboutPage.jsx
│ │ ├───BrotherTypesPage.jsx
│ │ ├───CognitiveFunctionsDetailedPage.jsx
│ │ ├───CognitiveFunctionsPage.jsx
│ │ ├───HomePage.jsx
│ │ ├───MetabolicGamePage.jsx
│ │ ├───MetabolicPrinciplesPage.jsx
│ │ ├───RelationshipsPage.jsx
│ │ ├───ResearchPage.jsx
│ │ └───SisterTypesPage.jsx
│ └───styles/
│ └───theme.css
└───tools/
├───make-og.cjs
├───test-quiz-weights.js
└───update_harpernet.sh- Jung's Collected Works Volume 6 (CW 6) - Psychological Types
- Jung's On Psychic Energy (CW 8) - Energic conception of functions
- Myers & Briggs' Gifts Differing - MBTI development and applications
- Kępiński's Information Metabolism Theory - Biological framework for cognitive processing
- Contemporary neuroscience research - Brain imaging and neural network studies
- Meta-analysis of 130+ studies (2015-2025) on cognitive function neuroscience
The framework synthesizes Jung's foundational work on psychological types with modern neuroscience applications, providing practical comparisons grounded in cognitive function theory rather than surface-level behavioral descriptions.
Some work as you can see has been put into balancing the weights of the quiz but it is still a work in progress.
The current weights are as follows (run npm run weights to generate a weights.txt file, or node tools/examine-weights.js to output the table into the console):
┌─────────┬──────────────┬──────────────┬────────────────┐
│ (index) │ Function │ Total Weight │ Percentage (%) │
├─────────┼──────────────┼──────────────┼────────────────┤
│ 0 │ 'density' │ 262 │ '10.14' │
│ 1 │ 'revision' │ 240 │ '9.28' │
│ 2 │ 'expansion' │ 228 │ '8.82' │
│ 3 │ 'conducting' │ 219 │ '8.47' │
│ 4 │ 'Ti' │ 210 │ '8.12' │
│ 5 │ 'Fe' │ 209 │ '8.09' │
│ 6 │ 'Si' │ 208 │ '8.05' │
│ 7 │ 'Ne' │ 204 │ '7.89' │
│ 8 │ 'Se' │ 203 │ '7.85' │
│ 9 │ 'Te' │ 202 │ '7.81' │
│ 10 │ 'Fi' │ 201 │ '7.78' │
│ 11 │ 'Ni' │ 199 │ '7.70' │
└─────────┴──────────────┴──────────────┴────────────────┘npm run dev # Development server
npm run build # Production build
npm run preview # Preview build locally
npm start # PM2 production startGPL-3.0 - See LICENSE for details.
Jung did not walk away unchanged. No one ever does.
