Tag
#honest-cam
17 posts across the garden · browse essays
The Bamboo House Gets Its Own Page
Swapped three different pitches for three different audiences with one real story: a Miami Beach condo, 940 documents, $6.04.
Portal mutable state, from JSON files to SQLite (Phase 3a)
Moving compliance events and study progress off the filesystem and into WAL-mode SQLite so the portal can finally leave its one long-lived host.
Self-hosting the portal on a Mac mini via Cloudflare Tunnel + Access (Phase 3c Tier 1)
honestcam.ocampo.io is now served from the Mac mini on my desk, gated by Cloudflare Access, and kept alive across crashes and reboots by two launchd user agents.
Dev command center, macOS Keychain integration, and proactive Xero token refresh
A /dev/ dashboard that bookmarks every service honest-cam touches, secrets loaded from macOS Keychain as a fallback to .env, and a proactive Xero token refresh so the 60-day expiry never catches me again.
Landing page i18n: Spanish, Portuguese, and Italian translations via an Anthropic-backed CLI
An AI-powered translation CLI that walks HTML landing pages, preserves structure, translates copy, and ships 12 new pages (ES, PT, IT) with a language switcher, hreflang tags, and Vercel locale routing.
Adding Vercel Web Analytics to the landing pages (two lines, zero dependencies)
A two-line script tag on four landing pages gets me Web Vitals (LCP, CLS, INP, TTFB) on the Vercel dashboard, complementing PostHog on the behavior side.
Landing page redesign: GoHighLevel layout, SEO metadata, and a conversion copy rewrite
A visual overhaul inspired by GoHighLevel (light gradient hero, Poppins, gold CTAs, dark navy sections), full SEO metadata (OG, Twitter, JSON-LD, canonical), and a copy rewrite built around specific numbers instead of vague promises.
Writing down the landing page update process (and refreshing memory files)
A checklist for the recurring landing-page update workflow and a batch refresh of the agent memory files so future sessions stay grounded.
FL 718.111(12)(g) association website and Xero PDF attachments
A statutorily-compliant association website with auth-gated official records, 940 docs auto-symlinked into the right categories, and source PDFs auto-attached to Xero transactions during sync.
First pass at honest-cam landing pages
Four static HTML landing pages (index, managers, owners, investors) deployed on Vercel with a shared CSS/JS bundle and a docs/feature-analytics.md plan for instrumentation.
Writing the architecture docs before writing the code
A docs-only PR that captures the feature plan, compliance model, OCR strategy, Xero integration, and dashboard shape before any of it ships — intentionally.
OCR pipeline: structured field extraction from 941 PDFs via native Anthropic PDF support
Phase 5: per-category prompts, validation-based confidence, Decimal-safe amounts, atomic sidecar writes, and a Haiku-default / Sonnet-retry ladder.
The Honest CAM platform MVP: Xero sync, billing, reporting, budgets (and a rename from PropCo)
Phase A of a PayHOA-equivalent built on Xero: vendor alias resolution, category routing, assessment billing, FL 718-compliant reporting, and YAML budgets — 251 tests, one monster PR.
Owner portal: FastAPI + HTMX with magic-link auth and Stripe checkout
Phase B Step 6: a passwordless self-service portal for unit owners, with HTMX partial swaps, signed-token auth, and Stripe Checkout for assessments.
Fixing six factually wrong CAM exam questions and expanding the bank to 105
A correctness pass on the Florida CAM study guide: six errors that would have cost a real licensee real money, plus coverage of 2024–2025 legislation (HB 1021, HB 913, SB 154).
Study portal: mobile quiz UI, browser speech synthesis, and a team-training admin view
A mobile-first HTMX quiz at /study/, audio mode powered entirely by the browser's SpeechSynthesis API, signed-cookie session state, and an admin dashboard for tracking multiple trainees.
Initial scaffold: an AI-first property management monorepo
Starting the honest-cam project with a Python + TypeScript monorepo, a YAML-driven document reorganization engine, and SHA-256 idempotency on a 958-file real-world dataset.