Skip to main content

Welcome to Simple Manager Mobile

Simple Manager is a mobile-first management application built with Expo and React Native. It provides a flexible, record-based system for managing clients, tasks, appointments, notes, and any other manageable entities in your business or personal workflow.
Simple Manager follows Clean Architecture principles, ensuring maintainability, testability, and scalability as your application grows.

Key Features

Clean Architecture

Organized in clear layers: Domain, Application, Infrastructure, and Presentation for better code organization and maintainability.

Offline-First

Built with SQLite for local-first data storage. All your data is stored securely on device with expo-sqlite.

Flexible Records

Generic Record entity that can represent any manageable item - clients, tasks, appointments, notes, and more.

Cross-Platform

Run on iOS, Android, and Web with a single codebase using Expo and React Native.

Architecture Overview

Simple Manager is built following Clean Architecture principles with clear separation of concerns:
  • Domain Layer: Core business entities and rules (Record interface, business logic)
  • Application Layer: Services and use cases (RecordService, validators)
  • Infrastructure Layer: External dependencies (SQLite database, repositories)
  • Presentation Layer: React Native UI (screens, hooks, components)
The architecture is designed to support future migration to an API backend. When needed, repositories can be replaced with HTTP adapters without changing business logic.

The Record Entity

At the heart of Simple Manager is the Record entity - a flexible data structure that can represent any manageable item:
Record Interface
export interface Record {
    id: string;              // UUID generated with expo-crypto
    title: string;           // Required, max 50 characters
    subtitle?: string;       // Optional additional info
    metadata?: string;       // Flexible JSON storage
    type: string;           // Category/type of record
    userId?: string;        // For multi-user support
    createdAt: string;      // ISO timestamp
    updatedAt: string;      // ISO timestamp
    isDeleted: boolean;     // Soft delete flag
}
Records use soft deletion - items are never permanently deleted from the database. The isDeleted flag marks logical deletion, allowing data recovery and audit trails.

Technology Stack

  • Framework: Expo ~54.0
  • UI Library: React Native 0.81
  • Navigation: Expo Router ~6.0 with typed routes
  • Database: expo-sqlite for local storage
  • State Management: Zustand for global state
  • Language: TypeScript
  • React Version: 19.1.0

Next Steps

Installation

Set up your development environment and install Simple Manager

Quick Start

Get your app running in under 5 minutes

Build docs developers (and LLMs) love