Today at a glance

Your home page. Click a section title to open that page, or a card to zoom straight into it.

Health

Daily habits, the habit calendar, and screen time.

Tasks

All your tasks in one list. Work and Personal are filtered views of the same list.

Faith

Bible reading schedule and prayer. Daily checks live on the Habit calendar.

Plants

Your plant database, watering checks, and Horty Junior.

Bible reading schedule

Genesis 1 → Revelation 22, in adaptive ~10-minute portions. You only move forward when you finish a reading.

Today’s reading

Up next

Projected dates assume one reading per day from here. Missed days push everything back — nothing gets skipped.

    Progress

    Recently completed

      Nothing completed yet. Check “Bible reading” on the Habit calendar or tap Mark complete above.

      Plan settings

      The start date is only used for the “behind by N days” indicator.

      How the plan works

      Adaptive portions (~10 minutes each). Each day starts at your current position and takes one chapter. If that chapter is thin, the next chapters get added until the portion is worth a sitting:
      • A chapter with 25+ verses stands alone (18+ in the dense teaching books: Romans–Jude and Ecclesiastes).
      • Shorter chapters keep pulling in the next one until the portion reaches that size, up to 5 chapters. A chapter isn’t added if it would push the portion past about 50 verses.
      • Genealogy and list chapters (for example Genesis 5, 10, 11, 36, Numbers 1–3 and 7, 1 Chronicles 1–9, Ezra 2, Nehemiah 7, 11–12) count as half weight, so they get combined.
      • Portions stay within one book. The exception is a tiny portion at the end of a book (under 15 verses, like 2 John), which joins the next book.
      • The estimate is about 0.4 min per verse, so 25 verses is roughly 10 minutes.
      Position-based progress. When you check Bible reading on the Habit calendar (or tap Mark complete here), your position moves past that portion. If a day goes by without the check, it doesn’t move, so tomorrow shows the same reading until you finish it. Unchecking today’s box moves your position back.

      Plant database

      Every plant you own, with its care basics.

      Add a plant

      Your plants

      No plants yet. Add your first one above.

      Watering tracker

      Each plant has its own check interval. A plant is due once that many days have passed since its last watering (or since you added it).

      Due now

      Nothing due. Every plant is within its check window.

      All plants

      Add plants in the Database first.

      Plant care guide

      General care by plant type. Each plant’s profile inherits these defaults, and you only override what’s different.

      Plant profile

      👑 Horty Junior

      Your plant-care advisor. Reads your plant database and watering log and tells you what needs attention.

      Today’s report

      Plant by plant

      Habit calendar

      Cardio, weight training, meal prep, Bible reading, prayer, and daily weight — one day at a time.

      Cardio Weight training Meal prep Bible reading Prayer ✓ all five done

      Today

      This month

      Habits

      Daily checklist with streaks.

      Daily habits

      Check off habits for today. Streaks count consecutive days completed.

      Add / edit habits

        Work

        Work tasks only. Anything added here also shows in Tasks.

        Personal

        Personal tasks only. Anything added here also shows in Tasks.

        Training

        Cardio and weight training by day since Oct 12, 2026, plus Strong CSV import, volume, and PRs.

        Training calendar

        Same checkmarks as the overview and the Habit calendar, so a check anywhere shows up everywhere.

        Why I skipped the gym

        Log a reason for a day you didn't train. It defaults to today; pick a date to log a past day. Days with a reason get a 📝 in the calendar above.

        Past reasons

        Training (Strong)

        Import a Strong app CSV export. Try sample-strong.csv in this folder. History is stored locally (and synced if cloud is on).

        Volume by workout

        Recent workouts

        Exercise PRs (max weight)

        ExerciseMax weightBest setDate

        Screen time

        Instagram and YouTube minutes.

        Screen time

        iPhone Screen Time can’t be pulled automatically from a browser. Enter minutes manually, or import a CSV (Date,App,Minutes) — e.g. via Shortcuts. Sample: sample-screentime.csv.

        Last 7 days

        Email

        Work inbox placeholder.

        Work email

        Live mail isn’t wired yet. Later this can connect via Gmail or Outlook. Below is a mock inbox layout only — no real messages.

        Ecosystem

        Every app you use, how you work with it, and how they connect.

        Standard operating procedures

        One card per app: what it's for, exact click paths, and the keys you've issued. Key values are never shown here, because this site is public.

        🏠 IGNIS ORALive

        Your personal hub for habits, tasks, training, faith, plants, and this Ecosystem map. Data is saved in your browser and syncs to Supabase once you sign in.

        How to

        1. Open it at jared-dashboard-3847.netlify.app.
        2. To turn on cloud sync, go to Sidebar > ⚙️ Settings > Cloud sync (Supabase), enter your email, and send the sign-in link.
        3. Open the email in Gmail and click the link. The sync pill at the top of the sidebar should read "Synced".
        4. To add it to your iPhone home screen, open it in Safari and tap Share > Add to Home Screen.

        Keys & tokens

        No keys of its own. It uses the Supabase public anon key, listed on the Supabase card.

        ▲ NetlifyLive

        Hosts the dashboard website (site jared-dashboard-3847) and the Sugoroku CRM (site sugoroku-crm-6898, behind a Netlify login). Chief of Engineering deploys new versions here.

        How to

        1. Sign in at app.netlify.com.
        2. To see the site and its deploy history, go to Sites > jared-dashboard-3847 > Deploys.
        3. To manage tokens, go to Avatar (top right) > User settings > Applications > Personal access tokens.

        Keys & tokens

        🔑 Netlify personal access token
        Stored as
        NETLIFY_AUTH_TOKEN, a secret on the shared bot computer
        Used by
        Chief of Staff and Assistant COS, to deploy the dashboard
        Scope
        Your whole Netlify account
        Issued
        Oct 19, 2026
        Expires
        Set by Jared, check Netlify

        ⚡ SupabaseLive

        The cloud database and email sign-in behind the dashboard (project socnwythmvgzrlzrcoul). Row-level security keeps the data readable by your account only.

        How to

        1. Sign in at supabase.com/dashboard and open project socnwythmvgzrlzrcoul.
        2. To view your data, go to Project > Table Editor.
        3. To check sign-in users and email settings, go to Project > Authentication > Users and Authentication > Emails.
        4. To find the project keys, go to Project > Project Settings > API Keys.
        5. To manage access tokens, go to Profile picture > Account preferences > Access Tokens.
        6. Sign-in is a magic link emailed to jaredddm1@gmail.com. Typing a sign-in code is paused because the free plan locks the email templates.

        Keys & tokens

        🔑 Supabase access token
        Stored as
        SUPABASE_ACCESS_TOKEN, a secret on the shared bot computer
        Used by
        Chief of Staff, for project setup
        Scope
        Your whole Supabase organization
        Issued
        Oct 19, 2026
        Expires
        30 days, around Nov 18, 2026
        🔑 Project anon (public) key
        Stored as
        Built into the dashboard code. Public by design.
        Used by
        The dashboard, to sync your data
        Scope
        Only what row-level security allows
        Issued
        At project creation, Oct 19, 2026
        Expires
        Doesn't expire unless rotated

        ✉️ GmailLive

        Your inbox (jaredddm1@gmail.com). It receives the Supabase sign-in links for the dashboard.

        How to

        1. When you sign in to the dashboard, look for an email from Supabase in Gmail > Inbox. If it isn't there, check Spam.
        2. Click "Log In" in that email on the same device and browser you want signed in.

        Keys & tokens

        No keys or tokens issued from this app.

        🤖 Grok Bot appLive

        Where your bots live: Chief of Staff, Assistant COS, and Horty. The bots share one computer, which holds the secrets listed on these cards.

        How to

        1. Open a bot from the sidebar of the Grok Bot app to chat with it.
        2. The "Chief of Staff team" group chat is where Chief of Staff and Assistant COS coordinate, so you can see everything.
        3. Whenever a new app is set up or connected, the bots update this SOPs page and the App Tree and redeploy.

        Keys & tokens

        No keys issued from it. It stores NETLIFY_AUTH_TOKEN and SUPABASE_ACCESS_TOKEN as secrets (values never shown).

        📌 Claim rule (one editor at a time)Team rule

        How your bots avoid editing the same file at once. Adopted Oct 19, 2026, and it applies to every bot, including ones added later.

        How to

        1. Check. Before editing a shared folder (for example /workspace/dashboard/ or /workspace/sugoroku-crm/), the bot looks for a CLAIM.md file there. If another bot wrote it, it stays out and asks in the "Chief of Staff team" room.
        2. Claim. It creates CLAIM.md with its bot name, the task, the paths covered, and the time in Pacific.
        3. Announce. It posts "claiming <path> for <task>" in the room.
        4. Work. It backs up before editing, as usual.
        5. Release. Once the change is deployed and verified, it deletes CLAIM.md and posts "released <path>".
        6. Stale claims. If a claim is over 2 hours old with no update, the room asks that bot. The file is removed only after that bot confirms or Chief of Staff approves.

        Keys & tokens

        None. The full write-up is at /workspace/sops/claim-rule.md on the shared bot computer.

        🛍️ ShopifyCSV only

        Your store. Its orders feed the Sugoroku CRM through a CSV file you export yourself. The bots have no Shopify login or access.

        How to

        1. Sign in at admin.shopify.com.
        2. Go to Orders > Export (top right of the Orders list).
        3. Choose All orders and CSV for Excel, Numbers, or other spreadsheet programs, then click Export orders. Shopify emails you the file if it's large.
        4. Import it in the CRM at Sugoroku CRM > Import. The file holds customer details, so share it only in a private chat, never the group room.

        Keys & tokens

        No keys or tokens issued from this app.

        📊 Google SheetsPlanned

        Holds the customer list and item master for the Sugoroku CRM. Not connected yet.

        How to

        1. Waiting on access. Click paths will be added once it's connected.

        Keys & tokens

        No keys or tokens issued from this app.

        📇 Sugoroku CRMLive · example data

        Your customer CRM: who's active or inactive each month, line preferences, open-item recommendations, match review, and promo drafts that are never sent automatically. It replaces the old Notion plan, so Notion isn't used.

        How to

        1. Open sugoroku-crm-6898.netlify.app. Netlify asks you to log in first (your Netlify account), which is a second lock on the customer data.
        2. Then enter jaredddm1@gmail.com, click Send sign-in link, and open the Supabase email in Gmail on the same browser.
        3. Use the left sidebar: Overview, Customers, Inactive, Review, Items, Import.
        4. To load real orders, go to Import and pick the Shopify CSV. It's read in your browser only, and re-importing the same file skips duplicates.
        5. Set closing dates on Items. Only open items get recommended.

        Keys & tokens

        No keys of its own. It uses the same Supabase sign-in and public anon key as IGNIS ORA, and the Netlify token deploys it.

        App tree

        How your apps connect. Each line says what passes between the two apps. Greyed, dashed apps are planned and not connected yet.

        Swipe sideways to see the whole map.

        Chief of Staff deploys new versions Chief of Staff sets up the project Bots build and edit the app Hosts and serves the site Syncs your data after sign-in Emails the magic sign-in link You click the link to sign in You export an orders CSV Customer list + item master 🤖 Grok Bot appbots + shared computer ▲ Netlifyhosting ⚡ Supabasedatabase + sign-in 🏠 IGNIS ORAweb app ✉️ Gmailjaredddm1@gmail.com 🛍️ ShopifyCSV export only 📊 Google Sheetsplanned 📇 Sugoroku CRMweb app
        Live connectionPlanned

        Connections

        • 🤖 Grok Bot app → ▲ Netlify
          Chief of Staff deploys new versions
        • 🤖 Grok Bot app → ⚡ Supabase
          Chief of Staff sets up the project
        • 🤖 Grok Bot app → 🏠 IGNIS ORA
          Bots build and edit the app
        • ▲ Netlify → 🏠 IGNIS ORA
          Hosts and serves the site
        • 🏠 IGNIS ORA → ⚡ Supabase
          Syncs your data after sign-in
        • ⚡ Supabase → ✉️ Gmail
          Emails the magic sign-in link
        • ✉️ Gmail → 🏠 IGNIS ORA
          You click the link to sign in
        • 🛍️ Shopify → 📇 Sugoroku CRM
          You export an orders CSV and import it (no store login)
        • ▲ Netlify → 📇 Sugoroku CRM
          Hosts the CRM behind a Netlify login
        • 📇 Sugoroku CRM → ⚡ Supabase
          Email sign-in, limited to your address
        • 📊 Google Sheets → 📇 Sugoroku CRM
          Customer list + item master (planned)

        Recurring tasks

        Every recurring task or routine any of your bots runs: what it does, when it runs (Pacific time), how often, which bot runs it, and whether it's active or paused.

        About IGNIS ORA

        What the name means.

        Ignisora
        1. Ignis (fire) + ora (to pray)
        2. To go down still burning is its own kind of discipline

        Settings

        Cloud sync, backup, and about.

        Cloud sync (Supabase)

        Optional. Signed out, everything stays in this browser only and the app works fully. Sign in with your email and every device shares one live, private dataset (only your account can read or write it).

        Not signed in.

        Tap the link in the email on this same browser, or type the code. Your session stays signed in on this device.

        One-time setup (Supabase)
        1. Open SQL Editor → New query, paste the SQL below, and Run.
        2. In Authentication → URL Configuration, set Site URL to this dashboard's address and add it under Redirect URLs.
        3. To get a typeable code, add {{ .Token }} to the Magic Link (and Confirm signup) email templates.
        4. Optional: after you've signed in once, turn off new sign-ups under Authentication → Providers/Sign In settings.
        create table if not exists dashboard_state (
          id text primary key,
          owner uuid not null default auth.uid() references auth.users(id) on delete cascade,
          data jsonb not null default '{}'::jsonb,
          updated_at timestamptz not null default now()
        );
        alter table dashboard_state enable row level security;
        create policy "owner_select" on dashboard_state for select to authenticated using (owner = auth.uid());
        create policy "owner_insert" on dashboard_state for insert to authenticated with check (owner = auth.uid());
        create policy "owner_update" on dashboard_state for update to authenticated using (owner = auth.uid()) with check (owner = auth.uid());
        create policy "owner_delete" on dashboard_state for delete to authenticated using (owner = auth.uid());
        alter publication supabase_realtime add table dashboard_state;

        Row-level security: only the signed-in owner can read or write their row. The anon key alone can't touch the data.

        Advanced: Supabase project keys

        Already set to your project. Only change these if you move to a different Supabase project.

        Backup & restore

        All data also lives in this browser’s localStorage. Export a JSON backup anytime.

        About IGNIS ORA

        Ignisora
        1. Ignis (fire) + ora (to pray)
        2. To go down still burning is its own kind of discipline

        Open the About page →

        About this app

        IGNIS ORA · single-file · dark Notion-style layout. Chart.js + Supabase JS load from CDN when online. Strong and screen-time CSV samples sit next to this file.