Skip to content

hmcodinginc/convertly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convertly

Conversion intelligence for modern product and growth teams.

Convertly audits public websites for conversion readiness — trust, UX, CTAs, forms, and growth blockers — then returns a Growth Score with prioritized, consultant-grade recommendations.

Built by HM Coding.

Positioning

Convertly is a conversion / CRO / business-readiness product.

We are We are not
Conversion, trust, growth, UX An SEO platform
Weighted business-impact scoring Keyword / rank tracking
Prioritized conversion fixes Lighthouse / full Core Web Vitals lab suite
Supporting technical signals (light) Search Console replacement

Lightweight technical checks (H1, ALT, robots/sitemap, OG/Twitter cards, schema presence, mixed content) appear inside the existing conversion report as supporting signals — not a separate SEO product.


Features

Audit engine

  • Conversion audits — Page discovery, static + rendered acquisition, intent-aware rule packs
  • Growth Score (Intelligence v4) — Weighted conversion impact (not issue count); category breakdowns and confidence
  • SPA-aware reliability — Softens form/DOM findings when render confidence is low or OAuth/JS shells are detected
  • Page Preview (Open Graph) — Report cards show the page’s og:image (and favicon when present) as a supporting thumbnail — not a live screenshot or capture pipeline
  • Recommendations + playbooks — Rule-linked fixes with implementation guidance
  • Live execution UI — Stage timeline, progress, bot-protection handling
  • Exports — PDF and structured report exports

Product app

  • Marketing — Home, sample report; Vertly on public pages
  • Dashboard — Metrics, opportunity queue, recommendations, drafts
  • Audits — History, detail reports with equal-height page cards, live execution, report actions
  • Vertly — Rule-based Convertly product specialist (message-first routing + page context; not a general LLM chatbot)
  • Workspace — Usage, audit ledger, domains
  • Billing — Free / Starter / Growth / Scale via Razorpay (Stripe-ready abstraction)
  • Settings — Profile (optional birthdate, country, avatar upload/crop), preferences, notifications, security, danger zone
  • Birthday UX — On the user’s birthday (local timezone), Vertly hosts a one-time celebration card; corner launcher is suppressed while open
  • Ops — Email notifications (Resend), Sentry (optional), product analytics events
  • Auth — Cloudflare Turnstile on login/signup/forgot-password with a stable explicit render (avoids remount / StrictMode iframe races)

Tech stack

Layer Technology
Frontend React 19, TypeScript, Vite 8, Tailwind CSS v4
UI shadcn/ui, Framer Motion, Lucide
Auth & DB Supabase (Auth, Postgres, Edge Functions, RLS)
Payments Razorpay subscriptions via edge functions
Email Resend via email-notifications edge function
Render Playwright render worker (Node.js)
Monitoring Optional Sentry (production builds only)
Deploy Vercel (client), Render/Fly (worker), Supabase (backend)

Production client build uses vite build (see Vite CLI).


Architecture (summary)

Full detail: Architecture.md.

Audit pipeline

Website → Discovery → Acquisition (static / render)
       → Website intent → Page intent → Applicability
       → Rule execution → Render reliability → Scoring → Recommendations
       → Snapshot (scores, intents, optional pagePreviews from og:image/favicon)
       → Persistence → Entitlement consume → Optional email

Audits run in the browser tab. Keep the tab open until completion.

Page Preview: During analysis, HTTPS og:image / favicon URLs already present in the parsed DOM are stored on the intelligence snapshot (pagePreviews) and rendered in the report as lazy-loaded thumbnails. Missing or broken images fall back to an empty state. This does not use screenshot APIs, storage buckets, or extra crawl requests at report time.

Vertly

Message → Conversational intents → Scope → Domain → Subtopic
       → Local handler (product memory / audit / billing / …) → Response

Page-context suggestions enrich prompts; product answers come from the Vertly dataset/handlers — not an open-ended SEO chatbot.

Vertly can also host lightweight in-app moments (e.g. birthday celebration): the floating launcher can be suppressed while an overlay shows the companion character, then restore with an optional speech bubble on dismiss.

Repository layout

Convertly/
├── client/                 # React SPA (Vite)
├── render-worker/          # Playwright POST /render
├── supabase/
│   ├── migrations/
│   ├── functions/          # Edge functions + _shared
│   └── scripts/            # OPERATIONS.md runbook
├── Architecture.md
└── README.md

Routes

Route Access Screen
/ Public Marketing home
/sample-report Public Sample conversion audit report
/login, /signup, /forgot-password Guest Auth
/reset-password Public Password recovery
/dashboard Authenticated Dashboard
/audit/new Authenticated New audit
/audits, /audits/:id Authenticated History and report
/workspace Authenticated Workspace
/billing, /billing/return Authenticated Plans and checkout return
/settings/* Authenticated Profile, preferences, notifications, security, danger zone

Local development

cd client
npm install
cp .env.example .env
npm run dev          # http://localhost:5173
npm run typecheck
npm run lint
npm run build        # vite build

Prerequisites: Node.js 20+, npm 10+. For the render worker: npx playwright install chromium.

Copy client/.env.example to client/.env and fill local values. Production must use real Supabase auth (not local auth). Optional local render worker: see render-worker/. Edge configuration for payments and email lives in Supabase Dashboard — never in the client bundle. Details: supabase/functions/PAYMENTS.md, NOTIFICATIONS.md.


Supabase

Migrations

Apply in timestamp order (supabase db push). Notable recent migrations:

Migration Purpose
…_audit_engine.sql … business/payment foundation Core schema
…_audit_entitlement_consumption.sql Entitlement ledger
…_vertly_conversations.sql Vertly history
…_fail_stale_audits_watchdog.sql Stuck-audit cleanup
…_atomic_audit_start_entitlement.sql Start-race entitlement fix
…_product_events.sql Product analytics
…_service_role_notification_grants.sql Email function table grants
…_profile_enrichment.sql Optional profiles.birthdate / country / avatar_url + public avatars storage bucket (RLS: own folder only)

Edge functions

Function Role
audit-fetch Server-side HTML / robots / sitemap fetch
audit-render Playwright render proxy
email-notifications Audit complete, score-drop, weekly digest (Resend)
contact-enquiry Public contact form → HM Coding inbox
delete-account Cancel provider subscription (if any), then delete account
payment-checkout Start subscription checkout
payment-portal Subscription management
payment-cancel Cancel subscription
payment-change-plan Plan change flow
payment-webhook Provider webhook ingestion (no user JWT)

Ops runbook: supabase/scripts/OPERATIONS.md.


Security

  • Never commit secrets or .env files
  • Only public VITE_* values ship to the browser; RLS protects data
  • Privileged keys stay in edge functions / hosting dashboards
  • Payments and webhooks run server-side
  • Render worker requires authenticated access in production

Coding standards

  • Prefer @/* imports; run npm run typecheck before merge
  • Log with createLogger() — no sensitive data in client logs
  • Premium dark SaaS UI; mobile-first; minimal focused diffs
  • Do not redesign the audit engine, rewrite scoring, or reposition as SEO without explicit approval

Branch strategy

Branch Purpose
main Production
fix/*, feat/* Work → main when ready

Roadmap

Shipped

  • Conversion audit engine + Growth Score + confidence / SPA softening
  • Open Graph Page Preview on report page cards (metadata thumbnails, not screenshots)
  • Business foundation, billing, workspace ledger
  • Vertly Convertly-only routing + expanded context suggestions
  • Profile enrichment — optional birthdate, country, avatar; Vertly-hosted birthday card
  • Turnstile captcha stability on auth forms
  • Live execution, sample report, notifications plumbing
  • Lightweight supporting technical signals in-report

Next

  • Team invitations / org workspaces
  • Optional hosted LLM provider for Vertly (routing unchanged)
  • Stronger crawl for geo-restricted / heavily blocked sites
  • Real screenshot capture pipeline (placeholders today — separate from Page Preview)
  • Server-side audit job runner (replace browser-tab engine)

License

Proprietary. © 2026 Convertly · HM Coding. All rights reserved.

Contributing

  1. Branch from main
  2. From client/: npm run typecheck, npm run lint, npm run build
  3. Keep changes scoped; note migrations if schema changes
  4. Never commit secrets

About

Convertly is an AI-powered conversion intelligence platform that helps businesses analyze websites, prioritize improvements, and optimize user journeys for measurable growth.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages