No description
Find a file
goose 195ba2ec4e Research: Redux Toolkit 2.x selected for state management
- Completed Redux vs Zustand vs Jotai comparison
- Redux Toolkit selected (9.2/10 score)
- Best for complex state (family structure, permissions)
- Best for offline sync (RTK Query, optimistic updates)
- Largest ecosystem (most resources, tutorials, examples)
- Best developer experience (time-travel debugging)
- 100% code sharing between React Native and React

Trade-offs:
- More boilerplate (clearer structure)
- Steeper learning curve (better patterns)
- Larger bundle 60KB vs 3KB (negligible impact)

Updated tech stack decisions and README

Next: Authentication system design (JWT with recovery phrases)
2026-02-14 12:32:32 -03:00
thoughts/research Research: Redux Toolkit 2.x selected for state management 2026-02-14 12:32:32 -03:00
.gitignore Initial commit: Project setup and documentation 2026-02-14 11:11:06 -03:00
encryption.md Initial commit: Project setup and documentation 2026-02-14 11:11:06 -03:00
introduction.md Initial commit: Project setup and documentation 2026-02-14 11:11:06 -03:00
README.md Research: Redux Toolkit 2.x selected for state management 2026-02-14 12:32:32 -03:00

Normogen

Overview

Normogen is a privacy-focused health data tracking and management platform. The name comes from Mapudungun, relating to Balanced Life.

Vision

To record as many variables related to health as possible, store them in a secure, private manner, to be used by you, not by corporations. From medication reminders to pattern analysis, Normogen puts you in control of your health data.

Technology Stack

Backend

  • Framework: Axum 0.7.x
  • Runtime: Tokio 1.x
  • Middleware: Tower, Tower-HTTP
  • Database: MongoDB (with zero-knowledge encryption)
  • Language: Rust

Mobile (iOS + Android)

  • Framework: React Native 0.73+
  • Language: TypeScript
  • State Management: Redux Toolkit 2.x
  • Data Fetching: RTK Query 2.x
  • Health Sensors: react-native-health, react-native-google-fit
  • Encryption: react-native-quick-crypto

Web

  • Framework: React 18+
  • Language: TypeScript
  • State Management: Redux Toolkit 2.x
  • Data Fetching: RTK Query 2.x
  • Charts: Recharts

Deployment

  • Docker on Linux

Platform Strategy

Primary: Mobile Apps - Daily health tracking, sensor integration, QR scanning, push notifications

Secondary: Web Browser - Extensive reporting, visualization, profile management

Key Features

  • Zero-knowledge encryption
  • Multi-person profiles
  • Family structure management
  • Secure sharing with expiring links
  • Mobile apps with health sensor integration
  • Web interface for complex visualizations

Security Model

  • Client-side encryption: Data encrypted before leaving device
  • Zero-knowledge: Server stores only encrypted data
  • Proton-style encryption: AES-256-GCM with PBKDF2 key derivation
  • Shareable links: Self-contained decryption keys in URLs
  • Privacy-first: No data selling, subscription-based revenue

Documentation

Development Status

Phase: Planning/Documentation

Completed

  • Project vision and requirements
  • Security architecture design
  • Encryption implementation guide
  • Git repository initialization
  • Rust framework selection: Axum
  • Mobile/Web framework selection: React Native + React
  • State management selection: Redux Toolkit 2.x

Next Steps

  • Authentication system design (JWT with recovery phrases)
  • Database schema design
  • Create proof-of-concept with Axum
  • Implement basic CRUD API
  • Build mobile apps with health sensor integration
  • Build web companion app
  • Add encryption layer
  • Implement sharing functionality

Open Source

Normogen is open-source. Both server and client code will be publicly available.

Note: This project is currently in the planning phase. No implementation code has been written yet.