Skip to content
Vicky Patel edited this page Sep 14, 2026 · 1 revision

21. Frequently Asked Questions (FAQ)

Answers to common questions about PACT OS architecture, contributions, and product features.


❓ General & Product Questions

Q: What is PACT OS?

A: PACT OS is a production-grade personal productivity and accountability system built with Next.js 16, React 19, TypeScript, Tailwind CSS v4, and Supabase PostgreSQL. It combines time-blocked planning, habit streaks, integer-cents financial ledgers, deep work focus timers, and a server-authoritative commitment engine.

Q: Is PACT OS open source?

A: Yes! PACT OS is open-source under the MIT License.

Q: Who is PACT OS designed for?

A: Developers, professionals, and students who want a unified productivity OS with binding accountability, verifiable proof of work, and strict data privacy.


💻 Development & Contribution Questions

Q: Do I need cloud Supabase credentials to run tests?

A: No! All 56 domain unit test suites run 100% offline locally in under 5 seconds. You do not need a live Supabase account or cloud credentials to develop and run tests.

Q: Where can I find beginner-friendly issues?

A: We maintain a Curated 20 Beginner Issue Catalog (#52–#71) labeled good first issue on GitHub. See our Contributing Guide.

Q: What files must NOT be modified by beginner PRs?

A:

  1. supabase/migrations/* (All 26 SQL migration files are frozen).
  2. src/lib/money.ts (Core integer-cents arithmetic logic).
  3. Database RLS policies and authentication security boundaries.

🏗️ Architecture & Engineering Questions

Q: Why does PACT OS use integer cents for financial calculations?

A: Floating-point math in JavaScript (0.1 + 0.2 = 0.30000000000000004) causes rounding errors. Storing currency as amount_cents (bigint) eliminates IEEE 754 precision drift.

Q: How does the focus timer generate background audio without downloading audio files?

A: PACT OS includes a client-side Web Audio synthesizer (src/lib/focus/sound.ts) that generates focus soundscapes directly in the browser via native AudioContext oscillators and filters. It consumes 0 network bandwidth and works 100% offline.

Q: How are deadlines enforced safely across timezones?

A: All database timestamps are stored in UTC (TIMESTAMPTZ). Day boundaries are converted deterministically using the user's IANA timezone (profiles.timezone). Critical deadline evaluations are performed server-side via cron (/api/cron/sweep-deadlines).

Clone this wiki locally