Behind the build: How I built Personality Compass (454 questions, PDF reports) โ AMA / deep dive
๐งญ Behind the Build: How I Created Personality Compass โ An Offline-First Self-Discovery App with 454 Questions Across 3 Psychological Models
Hey Product Hunt community! ๐ I'm Ilja, a solo developer from Estonia, and I wanted to share the story and architecture behind Personality Compass โ a project that grew from a personal need into a fully-featured app now available in 4 stores.
๐ง The Problem I Wanted to Solve
I've always been fascinated by personality psychology โ Enneagram, Big Five, etc. But I had two major frustrations:
Privacy concerns: Most tests send your answers to servers. My data, my reflections โ why should they leave my phone?
Depth vs. accessibility: Free tests are often shallow (10-20 questions). Quality tests cost money or require internet.
So I decided to build my own solution. One that works 100% offline, keeps all data on device, and offers real depth โ 454 questions in total.
๐๏ธ The App at a Glance
Feature | Details |
|---|---|
Platform | Flutter / Dart |
Architecture | Offline-first, local data only |
Languages | English, Russian, Estonian (full localization) |
Total Questions | 454 across all tests |
Tests | MindPath 16 (80/20 Q), MindPath 5D (120/20 Q), Enneagram (254/81 Q) |
PDF Reports | Professional exports with charts, colors, and insights |
Storage | All results saved locally, no cloud, no registration |
๐ง Technical Deep Dive
Project Structure (simplified)
text
lib/
โโโ main.dart
โโโ components/ # Reusable UI components
โโโ enneagram/ # Enneagram-specific logic
โ โโโ cards/ # Result screen cards
โ โโโ charts/ # Interactive Enneagram chart
โ โโโ constants/ # UI constants, colors
โโโ models/ # Data models (questions, results, diary)
โโโ screens/ # All app screens
โโโ services/ # Business logic, test scoring
โโโ utils/ # PDF exporters, helpers, themesKey Technical Challenges & Solutions
1. 100% Offline PDF Generation with Complex Graphics
The biggest technical hurdle: generating professional PDF reports that include interactive-style charts, all without internet.
Solution:
Used RepaintBoundary + PictureRecorder to capture widgets as images
Implemented fallback mechanisms with custom Painter when screenshot fails
Created adaptive timeouts (up to 3000ms) for different device capabilities
Built modular PDF sections โ each part of the report (cover, chart, arrows, career) is a separate widget
dart
// Example: Capturing chart for PDF
final boundary = _chartKey.currentContext?.findRenderObject() as RenderRepaintBoundary;
final image = await boundary.toImage(pixelRatio: 3.0);
final byteData = await image.toByteData(format: ImageByteFormat.png);2. Building Original Psychological Models (Avoiding Trademarks)
I wanted the depth of comprehensive personality models like the Big Five and Enneagram, but faced two challenges: privacy concerns (most tests send data to servers) and trademark restrictions (existing branded frameworks can't be replicated). So I built my own: MindPath 16 (a 16-type model analyzing cognitive preferences) and MindPath 5D (a 5-dimensional trait assessment) โ completely original, 100% offline, and free from any third-party intellectual property restrictions.
3. The Full Enneagram (254 Questions!)
Most free Enneagram tests give you a type in 5 minutes. But real Enneagram work includes wings, subtypes, and development levels.
Implementation:
Core type identification (108 questions across 12 groups)
Subtype assessment (54 questions, sp/so/sx)
Development levels (162 statements)
Total: 254 questions โ one of the most complete free Enneagram tests available
4. Interactive Enneagram Chart with "Smart" Arrows
The Enneagram diagram shows 9 points with connecting arrows. I wanted it to be context-aware:
By default: shows only development arrows for your type (reducing cognitive load)
On tap: shows arrows for any selected type
Auto-returns to your type after 5 seconds (balance between exploration and focus)
This "interactivity โ PDF" cycle ensures users see the same visualization in reports as in the app.
๐จ Design System & Consistency
I built a centralized style system (EnneagramCardStyles) that ensures visual consistency across all screens and PDF reports:
dart
// Single source of truth for styles
import './utils/enneagram_card_styles.dart' as styles;
// Using consistent components everywhere
styles.EnneagramCardStyles.buildEnhancedCard()
styles.EnneagramCardStyles.buildColoredSection()Color theming: Each Enneagram type has its own color profile, consistently applied in UI, settings, and PDF exports.
๐งช Testing & Reliability
Unit tests ensure accuracy of psychological calculations:
MindPath 16/5D: Short and full version validation
Enneagram: Type identification (1-9), wings, subtypes (sp/so/sx), development levels (1-9)
All tests run on real data from assets/
bash
flutter test๐ By the Numbers
3 psychological models
454 total questions (80 + 120 + 254)
3 languages (full localization)
3 PDF report types (with professional formatting)
4 app stores (iOS, Android, Huawei, RuStore)
๐ฑ What Users Get
Complete privacy: No internet, no data collection, no registration
Real depth: Full test versions (80-254 questions) or quick versions (20 questions)
Beautiful PDF reports: Share with coaches, therapists, or keep for self-reflection
Personal diary: Track your growth journey with reminders
All free: No paywalls, no subscriptions
๐ What's Next?
The architecture is ready for combined reports โ cross-analyzing results from MindPath 16, MindPath 5D, and Enneagram in a single "Personality Compass" PDF. The IntegrationEngine is already in place, waiting for content.
๐ก Lessons Learned
Offline-first is hard but worth it. Users appreciate privacy more than we think.
Build modular from day one. My PDF section architecture saved me weeks when adding new features.
Don't let trademarks limit you. You can build original models with similar depth โ just do the work.
Test-driven development saves sanity. Unit tests caught countless scoring errors.
๐ Links
App Store: https://apps.apple.com/app/personality-compass/id6756028837
Google Play: https://play.google.com/store/apps/details?id=ee.personality.compass
Huawei AppGallery: https://appgallery.huawei.com/app/C116153415
RuStore: https://www.rustore.ru/catalog/app/ee.personality.compass.personality_compass
Landing Page: ferrosergio-dev.github.io/personality-compass-app
๐ I'd Love Your Feedback!
Whether you're a developer curious about PDF generation, a psychology enthusiast, or just someone who cares about privacy โ I'd love to hear your thoughts.
Questions for the community:
Have you built offline-first apps? What were your biggest challenges?
Would you use a tool like this for team-building or coaching?
Any features you'd like to see in future versions?
Happy to answer any technical questions about Flutter, PDF generation, or psychological model implementation!
Tags: #Flutter #OfflineFirst #Enneagram #SelfDiscovery #Privacy #IndieDev #MobileApp


Replies