content.tinajs.io and *.tinajs.io were blocked by CSP, preventing
the visual editor from connecting to TinaCloud.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When \$uri ends with / and the directory exists (dist/blog/), nginx
considers it "found" and returns 403 (no autoindex, no index.html).
Removing \$uri/ ensures SPA fallback always works for route paths.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Nginx was intercepting /blog/ before the SPA fallback, causing 403 when
it found the blog/ directory without autoindex. Adding try_files ensures
SPA routing handles all /blog/* paths correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New twenty_crm.py: full CRUD for people, companies, notes via Twenty REST API
- Lead capture now creates person + company in Twenty CRM automatically
- New update_lead tool: enriches CRM profile as conversation progresses
(job title, phone, city, budget, requirements)
- Session meta stored in Redis to track Twenty person ID across messages
- Docker-compose updated with TWENTY_CRM env vars
- Chat bubble: pulsating ring animation with gradient background
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add react-helmet-async with SEO component for dynamic meta tags on all pages
- Add JSON-LD structured data (Organization, WebSite, ProfessionalService) to index.html
- Add fallback OG/Twitter Card meta tags in index.html for non-JS crawlers
- Add robots.txt allowing all crawlers including AI bots (GPTBot, Claude-Web, etc.)
- Add sitemap.xml with all routes
- Add llms.txt for AI crawler discovery
- Add X-Robots-Tag header and reviews.json cache rule to nginx.conf
- Replace fake testimonials with Google Reviews (fetch /reviews.json)
- Add star ratings, Google badge, and "Leave us a review" button to testimonials
- Add server/sync-reviews.mjs for daily Google Places API review sync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
React 19 + TypeScript SPA with Vite, mobile responsive fixes,
GitHub Actions CI/CD pipeline for automated deployment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>