Hootify β€” System Status & Spec

Hootify System Status

Live status, definitive spec, changelog, and error log. Updated every turn. Last updated:

πŸ”΄ Live Status
πŸ“‹ Definitive Spec
πŸ“ Changelog
⚠️ Error Log
πŸ”‘ Key Status
🎨 Polotno
WORKER
Checking…
NOTION
Checking…
AI KEYS
Checking…

Module Status

ModuleURLStatusBlocker

Quick Actions

πŸ”‘ Upload API keys
Run health check to see results.

What Hootify Is

A personal AI operating system for Simon Johnson / Identity Partners. Deployed at hootify.identitypartners.uk. Backend: Cloudflare Worker. Knowledge: Notion. Auth: 4-digit PIN (Simon/Olivia/Nicholas/Guest).

The system monetises Simon's interpersonal services consultancy (Identity Partners) through AI-assisted content creation, research, CRM, and automated posting across 150+ platforms.

Architecture (Settled)

LayerTechnologyURL/IDStatus
FrontendCloudflare Pageshootify.identitypartners.ukLive
BackendCloudflare Workerhootify-orchestrator.identitypartners.workers.devLive
KV CacheCloudflare KVa0c71350bfda4dc9bd454e449db51b00Live
DatabaseCloudflare D1d7bb84ad-f7fc-471a-8c65-de79562a6307Live
KnowledgeNotionntn_z150… (token stored)Connected
Auth4-digit PIN/authWorking

Navigation Structure (Agreed)

Plain HTML pages. No JS routing. Each page is standalone. Sidebar links are hyperlinks, not JS calls. Domains = folders (not interaction membranes). Owl logo = click to go home.

PageURLPurposeStatus
Home/Dashboard/News feed, quick chat, calendar, social queue previewPartial
Chat/chatAI chat, 15 personas, 5 routing profiles, multi-model, round tableWorking
Research/research20+ sources, parallel search, AI synthesisKeys needed
Social Canvas/canvasTemplates + image injection + download PNGImages need keys
Templates/templates250 templates, edit, batch downloadImages need keys
Canvas Studio/polotnoLive editor, batch generatorImages need keys
Atomise/atomiseLongform β†’ platform postsAI keys needed
Proliferate/proliferateFull content pipeline: quotes β†’ posts β†’ canvases β†’ queueAI keys needed
Auto Post/postBluesky + LinkedIn direct postingSocial keys needed
Round Table/roundtableMulti-model debate, 10 personae, synthesisAI keys needed
Creator Studio/creatorVoice, music, podcast, videoVoice keys needed
Email/emailZoho Mail client, AI assist, composeZoho token needed
CRM/crm (standalone needed)Pipeline, contacts, actions, Notion syncBroken in index.html
Social Queue/socialCalendar, approve, schedule postsPartial
Settings/settingsChangelog, appearance, providers, Notion, CloudflareWorking
Setup/setupBulk API key uploadFixed β€” use this
Status (this page)/statusLive status, spec, changelog, errorsNew

What's Blocking Everything

Root cause: API keys not in worker

Every image, AI response, and research result requires keys in the Cloudflare Worker. The /setup page had a bug (payload key was secrets instead of keys) β€” now fixed and deployed. Go to /setup, paste all keys in KEY=VALUE format, click Save.

Once Unsplash/Pexels/Pixabay keys are in: all templates, canvas, and proliferate will show real images.
Once Groq/Cerebras keys are in: chat, research, atomise, round table, and proliferate will generate real content.

Polotno Integration Plan

Polotno Studio is the correct engine for social canvases. It has 500+ templates, Google Fonts, and a full canvas SDK. The current /polotno page embeds the Polotno web app which requires its own login β€” that's the loop you're seeing.

Correct approach: Use the Polotno SDK (polotno-studio npm package) embedded directly, authenticated with your API key. No separate login. Your brand assets and templates live inside Hootify.

What I need: Your Polotno API key (paste as POLOTNO_API_KEY=your_key in /setup). Once that's in the worker, I'll rebuild /canvas using the SDK β€” no login loop, full template library, direct PNG export.

Known Issues (Honest)

IssueCauseFixPriority
Images not loading in templates/canvasUnsplash/Pexels/Pixabay keys missing from workerUpload keys via /setupπŸ”΄ Critical
AI not responding in chat/research/atomiseGroq/Cerebras keys missing from workerUpload keys via /setupπŸ”΄ Critical
CRM doesn't loadRendered inside index.html via broken JS routingBuild standalone /crm.html🟠 High
Polotno login loopEmbedding web app instead of SDKRebuild with Polotno SDK + API key🟠 High
Sidebar doesn't scroll on tabletMissing overflow-y:auto on navCSS fix β€” 2 lines🟑 Medium
5 duplicate canvas/template pagesBuilt incrementally without consolidatingConsolidate into /canvas (one page)🟑 Medium
Dashboard news feed emptyRSS proxy not built in workerAdd /api/rss endpoint to worker🟑 Medium
Podcast generates script not audioElevenLabs key missingUpload ELEVENLABS_API_KEY🟑 Medium
Video generates script not videoFAL key missingUpload FAL_API_KEY🟑 Medium
Zoho email not connectedNeed access token from Self Client flowComplete Zoho OAuth, upload token🟑 Medium
Add Entry

All failed API calls, render errors, and silent failures are logged here automatically.

No errors logged yet.

Live key status from the worker. Upload missing keys β†’

Loading…

Polotno Integration

Why the current /polotno page shows a login loop

The page embeds studio.polotno.com β€” Polotno's own web app β€” which requires a separate Polotno account login. That's not the right approach.

The correct approach: Polotno SDK

Polotno provides a JavaScript SDK (polotno-studio) that embeds the full canvas editor directly inside Hootify, authenticated with your API key. No separate login. Your brand assets, templates, and fonts live inside Hootify.

What's needed to build this

  1. Your Polotno API key β€” paste as POLOTNO_API_KEY=your_key in /setup
  2. I rebuild /canvas using the Polotno SDK (React component, embedded via CDN)
  3. Brand assets (IP logo, parchment palette, fonts) pre-loaded as defaults
  4. Image search (Unsplash/Pexels/Pixabay) wired into the left panel
  5. PNG/JPG export β†’ direct download or Social Queue

Puppeteer/Playwright for Polotno login

Not needed and not the right approach. The SDK authenticates with the API key server-side. Playwright would be fragile and break on any UI change. SDK is the correct integration path.

Polotno API key status

Checking…
Upload POLOTNO_API_KEY β†’