A fun, interactive web application that helps you discover which programming language best matches your personality! Built with SvelteKit, TypeScript, and deployed to GitHub Pages.
Visit the live application at: https://repobirdbot.github.io/programming-personality/
- MBTI-Based Assessment: Two-phase quiz combining personality typing with language matching
- 42 Programming Languages: Curated list with dual MBTI mappings for better personality matches
- Adaptive Questioning: Dynamic questions based on your MBTI personality type
- Improved Distribution: Languages support 1-2 MBTI types, ensuring all 16 personalities have options
- Share Your Results: Social sharing buttons for Twitter, LinkedIn, WhatsApp, and Reddit
- Shareable Links: Copy and share unique URLs that display your quiz results
- Beautiful UI: Modern, responsive design with smooth animations
- Type-Safe: Built with TypeScript for reliability
- Fast & Static: Deployed as a static site for instant loading
- Framework: SvelteKit 2.0
- Language: TypeScript
- Styling: CSS with modern gradients and animations
- Build Tool: Vite
- Deployment: GitHub Pages with GitHub Actions
- Code Quality: ESLint + Prettier
- Clone the repository:
git clone https://github.com/[your-username]/programming-personality.git
cd programming-personality
- Install dependencies:
npm install
# or
make install
- Start the development server:
npm run dev
# or
make dev
- Open your browser and navigate to
http://localhost:5173
Using npm:
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm run check # Run type checking
Using Make:
make help # Show all available commands
make dev # Start development server
make build # Build for production
make lint # Run ESLint
make format # Format code with Prettier
make test # Run all checks
make deploy # Build for deployment
The application automatically deploys to GitHub Pages when you push to the main
branch.
- Build the application:
npm run build
# or
make build
-
The build output will be in the
build/
directory -
Push to the
main
branch to trigger automatic deployment
- Go to your repository settings
- Navigate to Pages section
- Set source to "GitHub Actions"
- The site will be available at
https://[your-username].github.io/programming-personality/
programming-personality/
├── src/
│ ├── lib/
│ │ ├── components/ # Svelte components
│ │ │ ├── Question.svelte
│ │ │ └── Results.svelte
│ │ ├── data/ # Quiz data
│ │ │ ├── questions.ts
│ │ │ └── languages.ts
│ │ ├── stores/ # State management
│ │ │ └── quiz.ts
│ │ └── types/ # TypeScript types
│ │ └── quiz.ts
│ └── routes/ # SvelteKit routes
│ ├── +layout.ts
│ └── +page.svelte
├── static/ # Static assets
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions workflow
├── Makefile # Build commands
├── package.json
├── svelte.config.js # SvelteKit configuration
├── tsconfig.json # TypeScript configuration
└── README.md
- MBTI Assessment: Answer personality questions to determine your MBTI type (INTJ, ENFP, etc.)
- Adaptive Questions: Get customized language preference questions based on your personality
- Smart Matching: Algorithm matches you with languages that align with your MBTI profile
- Share Results: Generate a unique shareable link to show off your programming language match
- Social Sharing: One-click sharing to Twitter, LinkedIn, WhatsApp, or Reddit with rich previews
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is open source and available under the MIT License.
- Built with SvelteKit
- Deployed with GitHub Pages
- Icons and emojis for visual appeal
For questions or feedback, please open an issue on GitHub.
Made with ❤️ using SvelteKit and TypeScript