A practical framework for maximizing UX impact without overcomplicating design processes. This website presents eight core principles that guide pragmatic UX practice, along with an interactive decision helper to find the most relevant principles and methods for your specific situation.
- Eight Core UX Principles - Practical guidance for effective UX design
- 51 UX Methods - Comprehensive collection organized by category (Research, Design, Testing, Implementation, Strategy, Optimization)
- 33 UX Book Recommendations - Curated selection of essential UX design books with descriptions, key takeaways, and Amazon links
- Interactive Decision Helper - 5-question flow providing personalized recommendations
- Project Phase Integration - Methods tailored to project stages (start, middle, end)
- Methods Overview - Browse and filter all available UX methods with modal details
- Books Overview - Browse recommended UX books filtered by category and level
- Responsive Design - Optimized for all devices with modern glassmorphism UI
- State Persistence - Decision Helper progress automatically saved
- Contact Integration - Direct email integration for method implementation support
- Node.js 18+
- npm or yarn
# Install dependencies
npm install# Start development server
npm run dev
# Open http://localhost:3000 in your browserThe development server includes hot-reload, so changes will automatically refresh in your browser.
- Homepage: βWho itβs for & what we addressβ - New section with two cards (target audience and problems) below the Hero
- Hero βFor whom?β line - Short sentence in DE/EN for who the framework is for
- Decision Helper: concrete wording - Challenge options (e.g. negative feedback, support requests) and time/budget (e.g. βWenig Zeit, knappes Budgetβ) for easier use by non-UX people
- UX Book Recommendations - New
/bookspage with 33 curated UX design books, filterable by category and level - Books Filtering - Filter books by category (usability, fundamentals, interaction, process, psychology, research) and level (beginner, intermediate, advanced, all)
- Automated Book Cover Downloads - Script to download book cover images from Goodreads API
- Modal-based Method Details - Interactive method cards with detailed descriptions, steps, and tips
- Glassmorphism UI Effects - Modern visual design with backdrop blur and gradient glows
- Project Phase Integration - Decision Helper now considers project stage (start/middle/end)
- Contact Integration - Direct email links for implementation support
- Methods Filtering - Browse methods by category with visual chips
- Mobile-Optimized Cookie Banner - Improved responsive design for mobile devices
- Release Notes Page - Dedicated page for version history and changelog
- Standalone Embed Tools - Individual tools available at dedicated URLs for focused usage
- Enhanced Type Safety - Comprehensive TypeScript interfaces and strict typing
- Accessibility - WCAG AA compliant with proper ARIA labels, keyboard navigation, and focus management
- Documentation - Updated arc42 architecture docs and decision logic documentation
Each core component is available as a standalone tool for focused usage:
- Methods Toolkit (
/embed/methods) - Browse and filter 51 UX methods - Principles Guide (
/embed/principles) - Explore the 8 core UX principles - Decision Helper (
/embed/decision-helper) - Interactive project assessment tool - Books Library (
/books) - Browse 33 recommended UX design books
- Clean Interface - Focused on the specific tool without navigation distractions
- Branding Links - Clear attribution and links back to the full framework
- SEO Optimized - Each embed page has proper meta tags and descriptions
- Mobile Responsive - Optimized for all device sizes
- State Management - Decision Helper progress persists across sessions
# Build the application
npm run build
# Start production server
npm start# Run ESLint
npm run lint- README.md - This file with setup and usage instructions
- LICENSE - GPL v3.0 License terms and conditions
- RELEASE_NOTES.md - Version history and changelog
- docs/arc42.md - Complete architecture documentation following arc42 template
- docs/decision-logic.md - Detailed Decision Helper logic and rule engine documentation
- CONTRIBUTING.md - Contributing guidelines and development setup
- CODE_OF_CONDUCT.md - Community code of conduct
- SECURITY.md - Security policy and vulnerability reporting
We welcome contributions! See our Contributing Guide for:
- Development setup and guidelines
- Code style and architecture patterns
- Pull request process and requirements
- Testing and quality standards
- π Bug Reports
- β¨ Feature Requests
- π Documentation Issues
- β Questions
- π¬ GitHub Discussions
- π§ Email Support
- π‘οΈ Security Issues
This project follows a Code of Conduct to ensure a welcoming environment.
- Security Policy - How to report security vulnerabilities
- Contact: patrick.federi@ergon.ch
pragmaticux/
βββ app/ # Next.js app directory
β βββ about/ # About page
β βββ books/ # Books recommendations page (NEW)
β βββ decision-helper/ # Decision Helper page
β βββ methods/ # Methods overview page
β βββ principles/ # Individual principle pages
β β βββ [id]/ # Dynamic route for principle details
β βββ release-notes/ # Release notes page
β βββ embed/ # Standalone embeddable tools
β β βββ methods/ # Standalone methods toolkit
β β βββ principles/ # Standalone principles guide
β β βββ decision-helper/ # Standalone decision helper
β βββ layout.tsx # Root layout with Navigation & Footer
β βββ page.tsx # Home page
β βββ globals.css # Global styles and Tailwind imports
βββ components/ # React components
β βββ About.tsx # About page content
β βββ BooksOverview.tsx # Books overview with filtering and modals (NEW)
β βββ CTA.tsx # Call-to-action component
β βββ CookieBanner.tsx # GDPR cookie consent banner (mobile optimized)
β βββ DecisionHelper.tsx # Interactive decision helper (5 questions + project phase)
β βββ Footer.tsx # Site footer with cookie settings
β βββ Hero.tsx # Hero section
β βββ Layout.tsx # Main layout wrapper
β βββ MethodsOverview.tsx # Methods overview with filtering and modals
β βββ Navigation.tsx # Header navigation with mobile menu
β βββ PrinciplesOverview.tsx # Principles grid overview
β βββ Workflow.tsx # Workflow section
βββ data/ # Data files
β βββ principles.json # Core principles data
β βββ methods.json # UX methods data with descriptions and steps
β βββ books.json # UX book recommendations data (NEW)
β βββ books.ts # Books TypeScript exports (NEW)
β βββ decision_tree.json # Decision tree for helper
β βββ principles.ts # Principles TypeScript exports
β βββ methods.ts # Methods TypeScript exports with categories
β βββ decisionTree.ts # Decision tree TypeScript exports
βββ scripts/ # Utility scripts
β βββ download-book-covers.js # Script to download book cover images (NEW)
βββ lib/ # Utility functions
β βββ utils.ts # Helper functions (cn, etc.)
βββ public/ # Static assets
β βββ assets/
β β βββ images/
β β βββ ergon_logo.svg
β βββ images/
β βββ books/ # Book cover images (33 images) (NEW)
βββ types/ # TypeScript type definitions
β βββ decisionTree.ts # Decision tree types
β βββ index.ts # Shared types (Principle, etc.)
βββ .cursor/ # Cursor IDE rules
βββ next.config.js # Next.js configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ postcss.config.js # PostCSS configuration
βββ tsconfig.json # TypeScript configuration
- Homepage βWho & what we addressβ - Section with target audience and problems (AudienceAndProblems)
- Hero βFor whom?β line - Short sentence in DE/EN
- Decision Helper - Concrete question wording (e.g. negative feedback, βtoo little time, tight budgetβ) for non-UX users
- Books Recommendations Page - Browse 33 curated UX design books with filtering by category and level
- Methods Overview Page - Browse all 51 UX methods with category filtering
- Enhanced Decision Helper - Added 5th question about project phase (start/middle/end)
- Project Phase Methods - Phase-specific method recommendations
- Unified Design System - Consistent card layouts and glassmorphism effects
- Analytics Integration - New quantitative research methods (Analytics Audit, Conversion Analysis)
- Book Cover Images - Automated download script for book cover images from Goodreads API
- Glassmorphism Design - Modern glass effects on all interactive elements
- Responsive Chips - Category chips with consistent styling across pages
- Unified Card Heights - Perfect alignment of method cards
- Mobile Optimization - Improved touch targets and spacing
- Navigation Update - Methods now appear before Decision Helper
- 51 UX Methods - Comprehensive collection across 6 categories
- New Methods Added: Design Studio, Analytics Audit, Conversion Funnel Analysis, User Segmentation Analysis
- Method Renaming: "Field Studies" β "Contextual Inquiry" for better UX terminology
- Duplicate Removal: Cleaned up categorization data
- TypeScript Enhancement - Better type safety across components
- State Management - Improved localStorage persistence
- Performance - Optimized rendering and bundle size
- Accessibility - Enhanced keyboard navigation and ARIA labels
- Framework: Next.js 15.5.7 (React 19.2.1)
- Styling: Tailwind CSS 3.4.0
- Language: TypeScript 5.9.3
- Icons: Lucide React
- Utilities: clsx, tailwind-merge, class-variance-authority
- Deployment: Optimized for Vercel (also works with Netlify, AWS Amplify, Railway)
Eight fundamental UX principles with detailed explanations, practical examples, and key questions:
- UX Should Fit the Process - Adapt UX methods to your team's workflow
- Efficiency Over Delight - Focus on what truly matters for users and business
- Empower, Not Overcomplicate - Simplify rather than add complexity
- Theory Is Nice, but Execution Wins - Practical implementation beats perfect theory
- Research Should Be Right-Sized - Match research depth to project needs
- Scale to Product Needs - Adjust UX approach based on product maturity
- Iterate with Purpose - Make informed iterations based on real insights
- Reuse Design Systems - Leverage existing patterns and components
Each principle page includes:
- Detailed explanation
- Why it matters (key benefits)
- Practical examples
- Key questions to ask
An interactive tool that guides users through a series of questions to identify the most relevant principles for their specific situation. Features include:
- Progressive Question Flow: Step-by-step guidance through relevant questions
- Answer Editing: Edit any answer without restarting the entire process
- State Persistence: Progress saved in localStorage across sessions
- Personalized Recommendations: Get tailored principle suggestions based on your answers
- Suggested Methods: Receive specific UX methods to implement
- Email Integration: Pre-filled email template with results for easy sharing
Fully optimized for mobile, tablet, and desktop devices:
- Mobile-First Navigation: Hamburger menu with collapsible submenu for principles
- Responsive Typography: Scales appropriately across all screen sizes
- Touch-Friendly Elements: Optimized button sizes and spacing for mobile
- Adaptive Layouts: Grid systems that stack on mobile, expand on larger screens
- Optimized Spacing: Consistent padding and margins across breakpoints
- Static page generation where possible
- Optimized images and assets
- Efficient code splitting
- Fast page loads and smooth transitions
The website is fully accessible and meets WCAG 2.1 Level AA standards:
- Semantic HTML: Proper use of semantic elements (
<nav>,<main>,<section>,<footer>) - ARIA Attributes: Comprehensive ARIA labels, roles, and states for all interactive elements
- Keyboard Navigation: Full keyboard support with visible focus indicators
- Screen Reader Support: All content is accessible via screen readers
- Color Contrast: WCAG AA compliant contrast ratios (minimum 4.5:1 for normal text, 3:1 for large text)
- Skip Links: Skip-to-main-content link for keyboard users
- Focus Management: Proper focus handling in modals and dropdowns
- Alternative Text: All images include descriptive alt text
- Form Labels: All form inputs have associated labels
- Progress Indicators: Accessible progress bars with ARIA attributes
- Radio Groups: Properly marked radio button groups in Decision Helper
Key Accessibility Features:
- Navigation dropdowns with
aria-expanded,aria-haspopup, androle="menu" - Decision Helper progress bar with
role="progressbar"and ARIA value attributes - Radio button groups with
role="radiogroup"andaria-checkedstates - All buttons and links have descriptive
aria-labelattributes - Decorative elements marked with
aria-hidden="true" - Focus rings on all interactive elements for keyboard navigation visibility
The website itself follows pragmatic UX principles:
- Clear Information Architecture: Easy navigation and content discovery
- Progressive Disclosure: Information revealed as needed (mobile menu, decision helper)
- Accessible Design: Semantic HTML, ARIA attributes, keyboard navigation, WCAG 2.1 AA compliant
- Performance: Optimized loading and rendering
- User-Centered: Focus on user needs and goals
- Consistent Design Language: Unified color scheme, typography, and spacing
This Next.js application is optimized for deployment on Vercel and other modern hosting platforms.
The easiest way to deploy is using Vercel:
- Push your code to GitHub
- Import your repository in Vercel
- Vercel will automatically detect Next.js and configure the build
Or use the Vercel CLI:
# Install Vercel CLI
npm i -g vercel
# Deploy
vercelThe application can be deployed to any platform that supports Node.js:
- Netlify: Connect your Git repository, Netlify will auto-detect Next.js
- AWS Amplify: Connect repository, configure build settings
- Railway: Connect repository, Railway auto-detects Next.js
- Any Node.js hosting: Run
npm run buildand deploy the.nextfolder
The project uses Next.js 15 with:
- App Router (app directory)
- Server Components by default
- Static generation where possible
- Dynamic routes for principle pages
This project uses Next.js 15 features:
paramsin dynamic routes are now Promises (must be awaited)- Server Components by default
- Improved TypeScript support
All components and utilities are fully typed. The project includes:
- Type definitions for principles and decision tree
- Strict type checking enabled
- Type-safe data imports
- Tailwind CSS for utility-first styling
- Custom color scheme using CSS variables
- Responsive breakpoints:
sm:,md:,lg:,xl: - Dark mode support (class-based)
This is a personal project by Patrick Federi. For questions or suggestions, please reach out via the contact form on the website or through the email link in the Decision Helper results.
This project is licensed under the GNU General Public License v3.0 with additional attribution requirements - see the LICENSE file for details.
The GPL ensures that all derivatives and modifications remain open source, while the attribution clause maintains credit to the original Pragmatic UX Design framework.
- β Free use - Use for any purpose
- β Modification - Modify and create derivatives
- β Distribution - Share copies of the code
- β Private use - Use privately without restrictions
- β Integration - Embed tools in your own applications
- π Copyleft - Modified versions must also be GPL-licensed
- π Source code - Must provide source code with binaries
- π License notice - Include GPL license text
- π State changes - Document all modifications
- π Website attribution - When used publicly, link to https://www.pragmaticuxdesign.com
- π Framework credit - Acknowledge "Pragmatic UX Design" as the source
- π Tool attribution - Credit the original methods and decision helper
For websites using the Decision Helper:
<div class="ux-attribution">
<small>
UX Decision Tool powered by
<a href="https://www.pragmaticuxdesign.com" target="_blank" rel="noopener">
Pragmatic UX Design
</a> (GPL v3.0)
</small>
</div>For embedded methods:
<section class="methods-section">
<!-- Your embedded methods content -->
<footer class="attribution">
Methods from <a href="https://www.pragmaticuxdesign.com/methods">Pragmatic UX Design</a>
- Licensed under GPL v3.0
</footer>
</section>For applications using the framework:
// In your app's about or credits section
const credits = {
uxFramework: {
name: "Pragmatic UX Design",
url: "https://www.pragmaticuxdesign.com",
license: "GNU General Public License v3.0",
attribution: "Clear attribution and GPL compliance required"
}
}When using this code in your projects:
- Include full GPL v3.0 license text
- Provide source code access if distributing binaries
- Document any modifications made
- Attribute to Pragmatic UX Design with website link
- Ensure derivative works are also GPL-licensed
Patrick Federi
Head of UX at Ergon Informatik AG
- π Website: www.pragmaticuxdesign.com
- π§ Contact: patrick.federi@ergon.ch
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Documentation: Full Docs
- π Security: Report Vulnerabilities
Built with β€οΈ using Next.js 15, React 19, and Tailwind CSS