2 critical issues need your attention now
phonecasesforcharity site is dark (no app dir) · scopesuite SMTP sending as wrong account (mail bouncing)
SaaS Productsboth live
SignCast
up · 99.9%
pm2 signcast-ai running on :3055
18 customers · $612 MRR
Stripe webhooks active · signcast.app 200 OK
What should happen
Monitor customer growth — target 25 by end of Q3
Review /saas console for any failed downloads or AI relay errors
No action needed
SignCast is healthy. View full console for detailed customer & product data.
Open SAAS console
ShiftDeck
up · 99.1%
storectl :3001 · shiftdeck.tech serving 200
7 companies · $230 MRR · Stripe live mode
Postgres live · 22 tables · 8 users · 7 companies
3-round pre-launch review done (2026-06-12)
What should happen
Clock-in race condition — needs DB partial-unique migration (post-launch)
Token exp/iat hardening deferred — schedule for next sprint
Ready to go-live — push marketing
Pre-launch checklist complete. Sales-ready. Begin customer acquisition.
View live site
Phone Case Stores9/10 online
storectl registry — 10 stores
9 online · 1 dark
| phonecasesforall | :3002 | online | |
| galaxycaseco | :3005 | online | |
| phonecasegift | :3006 | online | |
| titancase | :3007 | online | |
| phonecasesforher | :3008 | online |
| casepop | :3009 | online | |
| phonecaselabs | :3010 | online | |
| inklings | :3400 | online | |
| phonecasesforkids | static | Caddy | |
| phonecasesforcharity | :3003 | DARK! |
phonecasesforcharity
site dark
Port :3003 reserved in storectl registry
No app directory at /var/www/phonecasesforcharity
Caddy has no process to proxy — site returns nothing
What needs to happen
Clone the phone-case store repo into /var/www/phonecasesforcharity, run prebuild + build for charity variant, then storectl start phonecasesforcharity
Fix command sequence
cd /var/www && git clone <store-repo> phonecasesforcharity
cd phonecasesforcharity && npm run prebuild:charity && npm run build:charity
storectl start phonecasesforcharity
AAB — Affiliate Sites (22)13 untagged
Site fleet status
all serving
22 sites live on VPS — Astro + Tailwind stack
FastAPI :3025 serving /api/* routes — running
Factory build_site.py auto-provisions GA4 on new builds
DB: /opt/factory/phonescale.db — 22 rows in aab_sites
What should happen
Backfill GA4 on remaining 13 sites — auto-provisioning is built, just needs running
GA4 backfill — 13 sites
13 untagged
9 top sites already tagged (ids 1,4,5,6,10,11,12,13,14)
13 sites: traffic going untracked — no GA4 ID in aab_sites.ga4_id
factory/ga4_admin.py ensure_ga4() already built and idempotent
SA ga-traffic-reader@decoded-vision-381123 has Editor on account
Run backfill on VPS
This will auto-create GA4 properties for all 13 remaining sites and rebuild them. Idempotent — safe to re-run.
cd /var/www/aiaffiliate/factory
python3 -c "
from ga4_admin import ensure_ga4
import sqlite3
db = sqlite3.connect('/opt/factory/phonescale.db')
sites = db.execute(\"SELECT id,slug,display_title FROM aab_sites WHERE ga4_id IS NULL OR ga4_id=''\").fetchall()
for sid,slug,title in sites:
mid = ensure_ga4(slug, title, f'https://{slug}.com')
db.execute('UPDATE aab_sites SET ga4_id=? WHERE id=?',[mid,sid])
db.commit()
print(f'{slug} -> {mid}')
"
Open shell to run
GA4-tagged sites (9)
tracking
ergonomic-office-chairs | G-LKSYTJB6P0 |
best-air-purifiers | G-TQ2VZM34B4 |
camping-gear | G-MMM3KZ3RYY |
dog-grooming | G-QSX6ZKK49C |
scentscape | G-HZS86EC466 |
earnvista | G-Y185DBR3G6 |
nibblenook | G-8ZQT2PKVCD |
drawerlogic | G-ZKT53Z4WJF |
cookingwise | G-9T979FTR11 |
Email / SMTP — Stalwart1 misconfigured
Stalwart SMTP — v0.16.5
live · :587
Stalwart running on :587 STARTTLS, :8082 JMAP admin
hello@shiftdeck.tech — DKIM/SPF/DMARC/MX live ✓
ShiftDeck sends as hello@shiftdeck.tech — verified 250 OK
scopesuite.app still using admin account — 501 errors
Working mailboxes
hello@shiftdeck.tech ✓
hello@scopesuite.app ✗ (wrong creds)
scopesuite SMTP broken
501 errors
scopesuite .env has SMTP_USER=admin — admin can't send-as any address
All scopesuite transactional email is bouncing right now
Fix: create hello@scopesuite.app mailbox in Stalwart, update .env
2-step fix
Step 1 — Create the Stalwart mailbox via JMAP:
curl -s -X POST http://127.0.0.1:8082/jmap \
-u admin:Ricky2026\!MailAdmin \
-H 'Content-Type: application/json' \
-d '{"using":["urn:stalwart:jmap"],"methodCalls":[["x:Account/set",{"accountId":"d333333","create":{"1":{"@type":"User","name":"hello","domainId":"scopesuite.app","credentials":{"0":{"@type":"Password","secret":"YourPassword123!"}}}}},"0"]]}'
Step 2 — Update scopesuite .env on VPS:
sed -i 's/SMTP_USER=admin/SMTP_USER=hello@scopesuite.app/' /var/www/scopesuite/.env
sed -i 's/SMTP_PASS=.*/SMTP_PASS=YourPassword123!/' /var/www/scopesuite/.env
pm2 restart scopesuite
Open shell
Affiliate Networks2 pending approval
CJ Affiliate
active
PID 7662017 — activated and wired
nibblenook (site_id 12) linked and serving CJ links
Other sites not yet wired to CJ — opportunity to expand
Expand CJ to more sites
Wire additional AAB sites to CJ deep links — start with high-traffic sites (ergonomic-office-chairs, camping-gear).
CJ dashboard
Awin
pending approval
Application submitted — waiting on Awin review team
Approval email will go to reasner196@gmail.com
Check your inbox
Awin typically approves within 3–5 business days. Check Gmail for approval or requests for more info.
Search Gmail for Awin
ShareASale
pending approval
Application submitted — waiting on ShareASale review
Approval email will go to reasner196@gmail.com
Check your inbox
ShareASale approvals can take up to a week. Once approved, wire links into AAB sites via the affiliate catalog.
Search Gmail for ShareASale