From 99861973952c75298bc53c587d4c6f107a9a9e62 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:34 -0400 Subject: [PATCH 01/14] chore: add .github/workflows/ci.yml [skip netlify] --- .github/workflows/ci.yml | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..da45b64 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,63 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + mobile: + name: Mobile typecheck + runs-on: ubuntu-latest + timeout-minutes: 15 + defaults: + run: + working-directory: SmartProBonoPocket + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: SmartProBonoPocket/package-lock.json + + - name: Install dependencies + run: npm ci + + - name: TypeScript + run: npx tsc --noEmit + + support-site: + name: Support site build + runs-on: ubuntu-latest + timeout-minutes: 15 + defaults: + run: + working-directory: web-next + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: web-next/package-lock.json + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build From f14e580f4aa59a1142bfb928af3f1e25bc4cdce2 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:36 -0400 Subject: [PATCH 02/14] chore: add .github/dependabot.yml [skip netlify] --- .github/dependabot.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..81f799d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +version: 2 +updates: + - package-ecosystem: npm + directory: /SmartProBonoPocket + schedule: + interval: weekly + day: monday + open-pull-requests-limit: 5 + commit-message: + prefix: deps-mobile + + - package-ecosystem: npm + directory: /web-next + schedule: + interval: weekly + day: monday + open-pull-requests-limit: 5 + commit-message: + prefix: deps-web From 1247360aba21bcb14b590dbf5ba13540ec7fb681 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:38 -0400 Subject: [PATCH 03/14] chore: add .github/PULL_REQUEST_TEMPLATE.md [skip netlify] --- .github/PULL_REQUEST_TEMPLATE.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..34fba0c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,28 @@ +## What changed + +## Why + +## Verification + +- [ ] Mobile TypeScript passes +- [ ] Support-site build passes when `web-next/` changed +- [ ] No private session data, personal contacts, recordings, or credentials were committed +- [ ] Safety/privacy copy remains calm and non-authoritative +- [ ] Recording/location changes were checked against user-facing disclosures + +## Product surfaces checked + +- [ ] Onboarding +- [ ] Trusted Circle +- [ ] Safety Mode +- [ ] Travel Mode +- [ ] Kid Track / Family Hub +- [ ] Recording +- [ ] History +- [ ] Health Check +- [ ] Support site +- [ ] Not applicable + +## Deployment + +GitHub merge, EAS/App Store release, and Netlify publication are separate actions. From cff5d099f65715df07ba85262c8eec0068c091e6 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:41 -0400 Subject: [PATCH 04/14] chore: add .github/ISSUE_TEMPLATE/bug_report.md [skip netlify] --- .github/ISSUE_TEMPLATE/bug_report.md | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..d89773a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,39 @@ +--- +name: Bug report +about: Report a reproducible SmartProBono problem +title: "[Bug] " +labels: bug +assignees: "" +--- + +## What happened? + +## Expected behavior + +## Where? + +- [ ] Onboarding +- [ ] Trusted Circle +- [ ] Safety Mode +- [ ] Travel Mode +- [ ] Kid Track / Family Hub +- [ ] Recording +- [ ] History +- [ ] Health Check +- [ ] Support site +- [ ] Other + +## Steps to reproduce + +1. +2. +3. + +## Device / version + +- SmartProBono version: +- iOS / device: + +## Evidence + +Do not post private recordings, precise locations, trusted-contact details, phone numbers, or credentials. From ccf62bce29519d12d83020f80123a9fcfba21fce Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:43 -0400 Subject: [PATCH 05/14] chore: add .github/ISSUE_TEMPLATE/feature_request.md [skip netlify] --- .github/ISSUE_TEMPLATE/feature_request.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..017bc0a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest a SmartProBono product or engineering improvement +title: "[Feature] " +labels: enhancement +assignees: "" +--- + +## Problem + +## Proposed experience + +## Why it belongs in SmartProBono + +How does it improve safety-session usability, documentation, trusted-contact coordination, privacy, or reliability? + +## Notes / constraints + +Include privacy, recording-law, location, accessibility, and App Store considerations when relevant. From 25da3a3b9acc3ecc3ac8e9a716e50d76a47305bb Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:45 -0400 Subject: [PATCH 06/14] chore: add .github/CODEOWNERS [skip netlify] --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..fc2b286 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @BTheCoderr From 2775b64a64ea2ad423ee492a06a69e137fa4e898 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:47 -0400 Subject: [PATCH 07/14] chore: add CONTRIBUTING.md [skip netlify] --- CONTRIBUTING.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3a5e332 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,33 @@ +# Contributing to SmartProBono + +SmartProBono is a shipped local-first iOS safety companion. It helps users document important moments, share selected information with trusted contacts, and follow calm structured guidance. + +## Mobile checks + +```bash +cd SmartProBonoPocket +npm ci +npx tsc --noEmit +``` + +## Support-site checks + +```bash +cd web-next +npm ci +npm run build +``` + +## Privacy and safety + +Never commit real user contacts, precise location history, recordings, personal session details, credentials, or private device artifacts. + +Recording and location features require special care: preserve user-facing disclosures, explicit user control, and local-first defaults. + +## Scope + +SmartProBono is not emergency dispatch, a substitute for emergency services, a lawyer, or individualized legal advice. + +## Deployment + +GitHub merge, EAS/App Store release, and Netlify publication are separate release steps. From 0d1e4d811197812b09f6d231656fafd065864d12 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:49 -0400 Subject: [PATCH 08/14] chore: add SECURITY.md [skip netlify] --- SECURITY.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..41aadc5 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,9 @@ +# Security Policy + +Security fixes target the current production release and `main`. + +Do not open public issues containing private recordings, trusted-contact data, precise location history, device identifiers, credentials, or exploit details that could expose user information. + +Prefer GitHub private vulnerability reporting / Security Advisories when available. + +SmartProBono is local-first: changes should preserve minimal data collection, explicit sharing, and least-privilege permission use. From cf100bb79f77c29ff80d6c379ac61785f520161f Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:51 -0400 Subject: [PATCH 09/14] chore: add CHANGELOG.md [skip netlify] --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7bd7bb6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +## Current production line + +SmartProBono is publicly available on the Apple App Store. + +The mobile configuration is currently version **1.0.0**. The shipped product centers on trusted contacts, Safety Mode, location capture/sharing, optional recording, calm guidance, and local session history. + +Repository work may include features ahead of the currently published build; production release notes should only claim functionality that has passed device QA and App Store release. + +## Policy + +Add a dated entry whenever the App Store marketing version changes. Keep App Store changes separate from unreleased repository work. From cec98b9126b6b5b5fddd01ba53cee652b163c1b1 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:53 -0400 Subject: [PATCH 10/14] chore: add ROADMAP.md [skip netlify] --- ROADMAP.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 ROADMAP.md diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..fc4eb62 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,36 @@ +# SmartProBono Roadmap + +This is product direction, not a guarantee of dates. + +## Shipped + +- guided onboarding +- trusted emergency contact +- Safety Mode +- location capture / share flow +- optional safety recording +- calm guidance +- local session history +- App Store release +- support / privacy web pages + +## Improving + +- Family Hub and Kid Track QA +- Travel Mode continuity +- permission and recovery handling +- recording reliability +- accessibility +- Health Check diagnostics +- App Store / support-site consistency + +## Exploring + +- stronger multi-contact coordination +- clearer export / evidence organization +- improved session summaries +- safer cross-device continuity where it can preserve privacy + +## Product boundary + +SmartProBono is a support and documentation tool. It is not emergency dispatch and does not replace emergency services or individualized legal advice. From 7b0f8c60884a9d6e2e46c3a9e31bfd778561c9f8 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:55 -0400 Subject: [PATCH 11/14] chore: add LICENSE [skip netlify] --- LICENSE | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c5492ce --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2026 Baheem Ferrell + +All rights reserved. + +This source code is publicly viewable for portfolio, review, and collaboration purposes. No permission is granted to copy, modify, distribute, sublicense, sell, or create derivative works from this repository except with the copyright holder's prior written permission. + +Third-party dependencies and assets remain subject to their own licenses and terms. From 28abf767dc3088c01cf45a84d6d30e58aebb08ad Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:57 -0400 Subject: [PATCH 12/14] chore: add docs/ARCHITECTURE.md [skip netlify] --- docs/ARCHITECTURE.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 docs/ARCHITECTURE.md diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..ae012da --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,41 @@ +# SmartProBono Architecture + +## Product surfaces + +```text +iPhone / iPad +Expo + React Native + │ + ├── local session runtime + ├── AsyncStorage / local files + ├── Location / Contacts + ├── Audio / Camera + └── platform share / SMS flows + +web-next/ +Next.js support + privacy + marketing site +``` + +## Mobile + +`SmartProBonoPocket/` contains the primary shipped app. It uses React Native / Expo, React Navigation, AsyncStorage, location, contacts, audio, camera, file-system, and sharing APIs. + +## Data model + +The app is intentionally local-first. Sensitive safety-session data remains on-device unless the user explicitly shares it using platform flows. + +## Active-session runtime + +Session services coordinate Safety, Travel, and Kid Track flows, persist live state for recovery, and write finished sessions into local history. + +## Permissions + +Location, contacts, microphone, and camera are requested for specific user-facing functions. Permission copy and fallback behavior are part of the safety model and should be treated as product-critical. + +## Web + +`web-next/` contains the current support/marketing/legal surface. The older `web/` directory remains historical/supporting work. + +## Release boundary + +GitHub code, EAS builds, App Store submissions, and Netlify publishing are separate release stages. From 170036d3e52795771ff862c28e8af67d4a8649ac Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:06:59 -0400 Subject: [PATCH 13/14] chore: add docs/README.md [skip netlify] --- docs/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..d4e38df --- /dev/null +++ b/docs/README.md @@ -0,0 +1,14 @@ +# SmartProBono Documentation + +## Current production / engineering + +- [ARCHITECTURE.md](ARCHITECTURE.md) — system structure and release boundaries +- [../MARKETING.md](../MARKETING.md) — current product positioning +- [../NEXT_STEPS.md](../NEXT_STEPS.md) — active release priorities +- [../SmartProBonoPocket/RECORDING_FLOW.md](../SmartProBonoPocket/RECORDING_FLOW.md) — recording behavior + +## Historical / catch-up notes + +- [../SmartProBonoPocket/CATCHING_UP.md](../SmartProBonoPocket/CATCHING_UP.md) + +Older Pocket Buddy / SmartProBono Pocket naming may remain in historical files. The public App Store product name is **SmartProBono**. From b589c8a8eec7e182340e33c56809546e00870922 Mon Sep 17 00:00:00 2001 From: Baheem Ferrell <110173147+BTheCoderr@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:07:16 -0400 Subject: [PATCH 14/14] docs: harden SmartProBono repository presentation [skip netlify] --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/README.md b/README.md index 44fc1f7..95ffed0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ # SmartProBono — Mobile Safety Companion +[![CI](https://github.com/BTheCoderr/smartprobonopocketbuddy/actions/workflows/ci.yml/badge.svg)](https://github.com/BTheCoderr/smartprobonopocketbuddy/actions/workflows/ci.yml) +![App Store](https://img.shields.io/badge/App%20Store-Live-000000?logo=apple) +![Expo](https://img.shields.io/badge/Expo-54-000020?logo=expo) +![React Native](https://img.shields.io/badge/React%20Native-0.81-61DAFB?logo=react) +![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white) + + **Project snapshot:** SmartProBono is a shipped iOS safety companion that helps people document important moments, share location with trusted contacts, and follow calm, structured guidance during stressful situations. @@ -29,6 +36,22 @@ | Onboarding | Guided setup for contact, recording disclosure/preferences, and location permission | | Support web | Next.js marketing, privacy, support, and Pocket Buddy legal/support pages | +## Architecture + +```text +iPhone / iPad (Expo + React Native) + │ + ├── Trusted Circle + ├── Safety / Travel / Kid Track sessions + ├── Location + Contacts + ├── Audio / Camera / local files + └── explicit platform share flows + +web-next/ ──► Next.js support / privacy / marketing +``` + +See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full local-first data and release model. + ## Current mobile architecture `SmartProBonoPocket/` contains the Expo / React Native application. @@ -97,6 +120,21 @@ npm install npm run dev ``` +## Repository guide + +- [CHANGELOG.md](CHANGELOG.md) — production release notes +- [ROADMAP.md](ROADMAP.md) — shipped, improving, and exploring +- [docs/README.md](docs/README.md) — current vs. historical documentation +- [CONTRIBUTING.md](CONTRIBUTING.md) — development expectations +- [SECURITY.md](SECURITY.md) — vulnerability and privacy guidance +- [.github/workflows/ci.yml](.github/workflows/ci.yml) — automated mobile + support-site verification + +## Repository quality gates + +Pull requests now run mobile TypeScript verification and a production build of the current Next.js support site. Dependabot monitors both npm projects. + +**GitHub merge, EAS/App Store release, and Netlify publication are separate actions.** + ## Product status **Shipped.** SmartProBono is publicly available on the Apple App Store. @@ -108,3 +146,8 @@ The repository also contains work that may be ahead of the currently published s SmartProBono is a support and documentation tool. It is not a substitute for emergency services, a lawyer, or individualized legal advice. Recording and privacy laws vary by jurisdiction. Recording features are presented with user-facing disclosures and should only be used where lawful. + + +## License + +Copyright © 2026 Baheem Ferrell. All rights reserved. This public repository is viewable for portfolio, review, and collaboration purposes and is not released under an open-source license. See [LICENSE](LICENSE).