SPEAK AAC

Project log · Started Feb 26, 2026 · Last updated Apr 21, 2026
Lines of Code
19,147
across 30 source files
Est. Hours Worked
~80
across ~40 sessions
Total Spent
~$103
Claude Pro + Netlify + Domain + LLC
Days Active
54
Feb 26 → Apr 21, 2026

Progress by Day

Feb 26
First Spark
~30 min
  • Conceived the AAC app idea — nonverbal children, safety channel concept
  • First conversation: "AAC App Business Idea"
Mar 6
Early Research
~30 min
  • Website creation inquiry — exploring what building this would take
  • Market research on existing AAC tools, gap analysis
Mar 10
Business Planning + Decision to Build
~2 hrs
  • Full market analysis — confirmed no AAC app has a private safety channel
  • Defined brand: Speak, with Speak Guides / Shield / Friends ecosystem
  • Identified NIDILRR grant track ($100k–$500k)
  • Decided to build an MVP immediately, not just plan
Mar 11–12
Core App Build — Session 1 & 2
~6 hrs total
  • Password gate (access code: speak2026)
  • 10-step onboarding wizard with 17 diagnosis profiles (autism, Down syndrome, CP, apraxia, etc.)
  • Profile config engine — auto-configures interface based on diagnosis, age, motor ability, sensory profile
  • Symbol grid with Mulberry Symbols pictograms (CC BY-SA 4.0 — real AAC symbols)
  • 93 pre-generated audio files (gTTS)
  • Category tabs (Needs, Feelings, Food, Actions, People, Places, More)
Mar 13
Safety Channel + Provider Features
~5 hrs
  • Private safety channel — hidden symbol sequence + Help button → silent EmailJS alert to trusted contact (tested + working)
  • Crisis resources embedded (911, Childhelp 1-800-422-4453, Crisis Text Line, 988)
  • Provider dashboard — communication log, event history
  • Kiosk mode — fullscreen lock, exit requires PIN
  • AI sentence builder — Claude API, button, turns symbol taps into full sentences
  • Privacy/Security FAQ modal (10-question accordion)
Mar 14
Landing Page + Netlify Deploy + Domain
~4 hrs
  • Landing page (index.html) — hero, features, pricing, FAQ, About
  • Deployed to Netlify → speakaac.org live
  • PWA manifest + service worker (installable on iPad/Android)
  • Welcome screen with feature cards, stronger headline
  • "← Home" navigation links throughout
  • Scholarship essays written and organized (all 5 scholarships)
Mar 15
Session Lock + Institution Tier + Supabase + Logo
~5 hrs
  • Session lock screen — PIN pad, auto-locks after 10 min, re-locks on tab hide
  • Institution pricing tier — $49/mo, up to 10 profiles, teacher accounts, admin dashboard
  • Auth-before-onboarding — new users sign in/create account before setup
  • Supabase backend — live project, auth (sign up/in/out), profile sync, event logging
  • Logo designed (Ideogram AI) — speech bubble icon, PNG converted and deployed
  • Logo live on all tabs, nav, footer, session lock, PWA install icon
  • Social media color variants generated (Instagram, TikTok, email accounts)
  • @speakaac accounts created on Instagram and TikTok
Mar 16
Teacher Dashboard + Outreach + Social
~4 hrs
  • Teacher dashboard (teacher.html) — separate Supabase login, read-only communication log per child, safety alert badges, event timeline
  • logEvent() defined — event logging now actually working (symbols, sentences, AI, safety alerts)
  • Teacher email field added to Provider Settings
  • KU email sent — Dr. Nancy Brady, nbrady@ku.edu, research collaboration proposal
  • Research concept document saved (~/aac-app/research_concept.md)
  • Netlify upgraded to Personal ($9/mo) — site back online after credit limit
  • Profile pics uploaded to @speakaac Instagram and TikTok
  • Pony Express scholarship hand-delivered to Lyle Ladner in Frankfort, KS (Mar 17)
  • 4 awareness video scripts written with full production direction
Mar 17 — S1
Messaging Overhaul + Stripe Live + New Pages + Security
~4 hrs
  • Messaging corrected everywhere — removed "free app" language from landing page, GoFundMe, social bios, and all 4 video scripts
  • Stripe account live — 3 payment links generated (Family $9.99/mo, Clinic $29.99/mo, Institution $49.99/mo), wired into all pricing buttons; account under review 2–3 days
  • onboarding_demo.html — full interactive 10-step setup demo, no login required
  • install_guide.html — iPad + desktop PWA install guide with screenshots
  • privacy.html — COPPA-compliant privacy policy
  • _headers — Netlify CSP + security headers (X-Frame-Options, X-Content-Type, CSP)
  • Teacher dashboard demo (teacher_demo.html) — mock data version, no login required
  • Mission page (mission.html) — story, equity angle, school access program
  • GoFundMe live: gofundme.com/f/giving-nonverbal-children-a-voice-and-a-way-to-stay-safe
  • Supabase RLS confirmed ON for both tables (events + profiles)
  • Project log (this file) created
Mar 17 — S2
Core Vocab Bar + Teacher Rebuild + Custom Symbols + Offline
~4 hrs
  • Core vocabulary bar — always-visible strip of 14 high-frequency words above grid; clinical AAC standard
  • Category color coding — clinical-standard color accents per category
  • Quick Phrases category () — 18 full phrases added as a grid category
  • Session history drawer — Log button slides up timestamped log of everything communicated
  • Teacher dashboard complete rebuild — summary stats, per-child charts, CSV export
  • Custom symbol upload ("Mine" category ) — parent uploads photo, becomes tappable symbol; localStorage; deletable
  • Offline indicator badge — pulsing badge appears/disappears on network change
  • Service worker bumped to v2; styles.css +367 lines; app.js +314 lines
Mar 17 — S3
Full Deployment Sprint — App Goes Live End-to-End
~6 hrs
  • Supabase ai_usage table created — tracks AI sentence usage per user per day; RLS on; ai_usage_summary view for cost monitoring
  • Secure AI proxy deployed — netlify/functions/ai-sentence.js: Anthropic API key never in browser; free tier 5/day server-enforced; paid tiers unlimited; anon 3 lifetime
  • Netlify env vars set — ANTHROPIC_API_KEY, SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY live
  • speakaac.org confirmed as custom domain — green dot in Netlify; all code references updated from boisterous-eclair subdomain
  • Global email fix — all support@speakaac.app references replaced with support@speakaac.org; Zoho Mail confirmed working
  • speak-store deployed — ~/speak-store/ live as a separate Netlify site (coming-soon merch/cause page)
  • Stripe redirect URLs set — all 3 payment links now redirect to payment-success.html?tier= after purchase
  • Supabase redirect URLs configured — speakaac.org added to allowed redirect list
  • Forgot password feature built — reset-password.html, "Forgot password?" link in auth modal, Sync.resetPassword() in sync.js
  • Service worker bumped to v5 — forces full cache refresh; Typekit + Google Fonts added to NETWORK_ONLY bypass list
  • CSP updated — Google Analytics, Typekit, Google Fonts all allowed in headers
  • Console errors fixed — null addEventListener guard on index.html; stale SW cache resolved
  • milestones.html created — public build log showing journey from idea to launch with pending milestone slots
  • Cookie consent bar — on all 5 marketing pages; localStorage-based; shows once per browser
  • Google Analytics snippet — added to all marketing pages with G-SMWRXK6MXT placeholder; consent-gated; CSP updated
  • AI sentence builder CONFIRMED WORKING ✓ live — tapped NO + EAT → Claude returned "I don't want to eat." — end-to-end verified
Mar 18
Major Polish Sprint — 10+ Features Shipped
~3 hrs
  • Mobile hamburger nav on all pages — responsive menu for phones
  • Loading screen with progress bar on app launch
  • Toast notifications — non-blocking feedback for all user actions
  • Modal entrance animations — smooth open/close transitions
  • Scroll-triggered fade-in animations on index.html sections
  • 404 page (404.html) + netlify.toml redirect rule
  • Social footer links — Instagram + TikTok @speakaac on all pages
  • "A message from the creator" section on mission.html
  • User review prompt — fires on 5th session via EmailJS (EmailJS service: service_v5znqrd)
  • clinic_guide.html — full clinical guide for SLPs; guide.html — user guide for families
  • Mobile responsive layout — sidebar, topbar, corebar scale down at ≤480px breakpoint
  • iOS long-press fix — -webkit-touch-callout, -webkit-user-select on all buttons
  • color-scheme: light dark declared — prevents browser Smart Invert forcing black/white
  • Session lock greeting fixed — shows "Welcome back, [name]" or "Welcome back to Speak"
  • Supabase ai_usage table SQL applied; ai_usage row logging confirmed working end-to-end
Mar 19
First Real-World Clinical Demo
~1 hr
  • Hospital social worker demo — showed speakaac.org on phone; she liked it
  • Walked away with: local school contact number + care home contact number
  • Issues noted for follow-up: grey globe favicon on hospital computer, browser "risky site" warning on new domain
  • research_concept.md drafted — NIDILRR Field-Initiated Projects one-pager
  • Dr. Brady email (hello@speakaac.org → nbrady@ku.edu) finalized for morning send
Mar 20
GitHub Launch · Pricing Locked · Research Page · Dr. Brady
~3 hrs
  • GitHub repo live ✓ — full history pushed to github.com/logansnell-a11y/speakaac; auto-deploy to Netlify connected
  • Pricing finalized — Institution corrected to $49.99/mo; Lifetime plan added at $79.99 (buy.stripe.com/dRm4gscXy5Ec5yZ0qidwc04); all Stripe links confirmed live
  • research.html built — speakaac.org/research.html: full public research concept page with citations, live app links, CTA for university partners
  • Citations added: Sullivan & Knutson (2000), Beukelman & Light (2020), Light & McNaughton (2014)
  • Dr. Brady email sent ✓ sent — hello@speakaac.org → nbrady@ku.edu @ 10:00 AM; research collaboration introduction; access code line removed
  • ARASAAC email sent — support@speakaac.org → arasaac@aragon.es; formal commercial use permission request
  • milestones.html updated — Mar 20 entries added: GitHub, pricing, research page, Dr. Brady, ARASAAC
  • Old exposed Anthropic API key deleted at console.anthropic.com
  • Research link added to nav on press.html, milestones.html
Mar 21–26
Security Sweep + Google Presence + LLC Filed
~5 hrs
  • 2FA enabled on all accounts — Zoho, Supabase, GitHub, Netlify, Stripe
  • Stripe Radar rules — 5/6 fraud rules enabled; fraud notifications on
  • CORS restriction on Netlify AI function — requests locked to speakaac.org only
  • Tier self-upgrade bypass patched — plan enforcement moved server-side
  • Supabase RLS audit — profiles + events tables both confirmed locked down
  • Google Search Console verified + sitemap.xml submitted
  • API key audit — clean history; old exposed key deleted, new key rotated
  • LLC filed — Speak AAC LLC registered; Chase business account application submitted (7–14 day processing)
  • press.html — media kit page with mission stats, founder story, contact info
Mar 28
ARASAAC → Mulberry Symbol Migration
~3 hrs
  • Symbol library replaced — arasaac.js deleted; mulberry.js added (Mulberry Symbols, CC BY-SA 4.0, Garry Pye)
  • Symbols served via jsDelivr CDN — no hosting cost, cacheable for offline use
  • All 9 HTML files updated — CSP headers updated to allow jsdelivr.net
  • ARASAAC formally notified of migration — support@speakaac.org
  • Service worker bumped to v7 — forces full symbol cache refresh
  • pitch.html added — investor/grant pitch deck page
Apr 1–8
Stripe Webhook + KansasVoices Concept + Clinic Research
~4 hrs
  • stripe-webhook.js built — Netlify function handles checkout.session.completed; writes tier to Supabase profiles on payment (env vars + Stripe registration still pending)
  • KansasVoices.org concept — statewide AAC advocacy site mapped out; 66k+ Kansas IDEA students identified as target audience
  • Clinic outreach strategy — SLP procurement timeline (April/May budget cycle), HCPCS E2510 code identified, Proloquo2Go gap analysis complete
  • HIPAA BAA template (baa_template.md) — ready to fill in and PDF for clinic deals
  • NIDILRR grant research — Phase I SBIR application path mapped; $300k–$750k potential
  • All scholarships submitted ✓ — First Heritage Bank, Pro-Life, United Bank & Trust
Apr 21
Spanish Localization + Agent Auth Fix + Offline Planning
~5 hrs
  • Full Spanish translation system — EN/ES pill on landing page translates all content live; page-lang.js shared module handles nav/footer/cookie bar on every sub-page
  • mission.html, guide.html, clinic_guide.html, install_guide.html — all fully translated to Spanish via inline SPEAK_ES_PAGE objects
  • FOUC fix — DOMContentLoaded timing bug fixed; returning from sub-page to index now correctly preserves ES preference without flash of English
  • Core vocab bar overlap fixed — search bar + core bar no longer collide at top of app
  • Agent system re-authenticated — Claude Code Pro login restored; 3 pending overnight research tasks unblocked
  • Market gap research queued — 10-niche analysis task in inbox.md; fires tonight at 10 PM
  • computer_use.py built — autonomous task agent with human-in-the-loop checkpoints; screenshot → Claude plans → user approves each step → executes
  • Service worker bumped to v29

Codebase Breakdown

styles.css
4,010
app.js
2,153
index.html
2,319
teacher.html
954
onboarding.js
772
app.html
760
mission.html
655
onboarding_demo.html
603
clinic_guide.html
551
research.html
537
press.html
521
milestones.html
502
guide.html
461
install_guide.html
455
payment-success.html
416
teacher_demo.html
379
pitch.html
370 new
symbols.js
315
dashboard.js
300
ai-sentence.js
292
privacy.html
240
terms.html
221
stripe-webhook.js
174 new
reset-password.html
189
mulberry.js
142 new
sync.js
109
page-lang.js
88 new
404.html
94
sw.js
67
TOTAL
19,147

Money Spent

ServiceWhat ForCostRecurring
Claude Pro All development sessions (Claude Code) $20.00 Monthly
Netlify Personal Hosting speakaac.org (upgraded Mar 16) $9.00 Monthly
speakaac.org domain Custom domain for the app ~$12.00 Yearly
Anthropic API Claude Haiku — AI sentence builder (pay-as-you-go, ~$0.00025/call) ~$0.00 Usage-based
Stripe Payment processing — Family, Clinic, Institution plans Free 2.9% + 30¢ per transaction
Supabase Auth + database backend + ai_usage logging Free Free tier
Zoho Mail support@speakaac.org business email Free Free tier
EmailJS Silent safety channel alerts Free Free tier
Mulberry Symbols AAC symbol pictograms Free CC BY-SA 4.0 (commercial OK)
Ideogram Logo generation Free —
GoFundMe Fundraising page Free % of donations
LLC Filing Speak AAC LLC — Kansas SOS ~$160.00 ~$50/yr renewal
Claude Pro (×2 mo) All development sessions (Claude Code) $40.00 $20/mo
TOTAL ~$233.00 ~$29/mo ongoing
Last updated April 21, 2026 · speakaac.org · github.com/logansnell-a11y/speakaac · AI sentence builder confirmed working ✓ · EN/ES bilingual ✓ · LLC filed ✓