Commit graph

6 commits

Author SHA1 Message Date
Vadym Samoilenko
0ffb58ca74 Add TinaCMS domains to CSP connect-src
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>
2026-03-18 21:43:03 +00:00
Vadym Samoilenko
f7a010fc93 Fix nginx /blog/ 403: use try_files \$uri /index.html without \$uri/
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>
2026-03-18 21:42:41 +00:00
Vadym Samoilenko
2fb3fce608 Fix blog 403: add try_files to /blog/ nginx location
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>
2026-03-18 21:37:15 +00:00
Vadym Samoilenko
73b1a0feda Add AI chatbot: FastAPI backend + React chat widget
- Python FastAPI backend (chatbot-api/) with Claude Sonnet 4.6, prompt injection
  protection, rate limiting (30 msg/session), off-topic filtering, Redis session storage
- Rocket.Chat integration for live monitoring and human takeover
- Lead capture via n8n webhook
- React chat widget: floating bubble, auto-greeting after 30s, glassmorphism chat
  window, mobile responsive, lazy loaded, Mixpanel analytics
- Nginx proxy /api/chat → chatbot-api:8000
- Docker: chatbot-api + Redis services added to docker-compose

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:14:07 +00:00
Vadym Samoilenko
6c1956585a Add SEO, structured data, AI indexing, and Google Reviews integration
- 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>
2026-03-08 14:26:05 +00:00
Vadym Samoilenko
67c7ab3289 Initial commit: Aimpress website
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>
2026-03-08 13:47:37 +00:00