Tag telling Google which URL is the "official" version of a page among multiple possible duplicates.
`<link rel="canonical" href="...">` consolidates PageRank to a single URL when content exists in multiple places (UTM params, pagination, trailing slashes, HTTP/HTTPS). Essential to avoid duplicate content. A URL should always self-reference when no alternative exists.
Example: An FR article and its EN alternate each have their own canonical pointing to themselves; hreflang links the two.
Monthly or annual attrition rate: % of customers (or MRR) lost over a period.
Churn is calculated in customers (logo churn) or revenue (revenue churn). A healthy B2B SaaS targets <1% monthly logo churn; B2C often sits at 5-10%. "Net Revenue Retention" (NRR), which includes expansion, is now the preferred KPI for SaaS boards because it can exceed 100%.
Example: A SaaS starting the month at $100K MRR and ending at $95K (excluding new sales) has 5% revenue churn.
Continuous Integration / Continuous Deployment: automated tests, build and deploy on every commit.
CI runs tests, lint and type-check on every push to catch regressions early. CD automatically deploys the main branch (or creates a preview for each PR). Standards: GitHub Actions, GitLab CI, CircleCI, integrated Vercel/Netlify. Without CI/CD, a multi-developer project regresses fast.
Example: A Lovable repo connected to Vercel: each push runs a build, runs tests, deploys a preview URL and notifies Slack.
Cloudflare's static hosting platform, integrated with Workers to add edge compute.
Cloudflare Pages deploys any JS/TS framework to the Cloudflare network (300+ POPs). Cloudflare Workers add serverless edge with a generous free tier. Often cheaper than Vercel at scale, with a more austere DX.
Example: A static Next.js blog deployed on Cloudflare Pages benefits from a free global CDN and Workers KV for session storage.
Score summing unintended visual shifts during page load. Target: < 0.1.
High CLS creates the classic frustration: you're about to click a button that jumps because of a cookie banner or an unsized image. To optimise: always reserve space for images/videos/iframes with width/height, and insert dynamic banners without pushing content.
Example: A late-injected ad at the top of a page without reserved space pushes CLS to 0.4 — an SEO penalty.
Real-time serverless backend with reactive database, TypeScript queries and client sync.
Convex takes a unique approach: you write queries and mutations in TypeScript on the server, and the React client receives real-time updates with zero config. An emerging competitor to Supabase and Firebase, especially suited to collaborative apps.
Example: A Notion-style app can display another user's edits in real time thanks to Convex's reactive model.
Trio of Google metrics measuring real-user page experience: LCP, INP and CLS.
Launched in 2020, Core Web Vitals influence Google rankings. They measure time to the largest visible element (LCP), interaction responsiveness (INP, which replaced FID in 2024), and visual stability (CLS). A site is "good" if all three are within thresholds on 75% of mobile and desktop visits.
Example: PageSpeed Insights shows field CWV (CrUX real Chrome data) on top of lab metrics (Lighthouse).
Rendering done in the browser: the server returns near-empty HTML, then JavaScript builds the UI.
CSR is the classic SPA mode (Vite + React, Create React App). It delivers a smooth app experience after the first load but hurts SEO and LCP unless combined with pre-rendering. Suits internal tools, dashboards, post-login apps. Lovable ships CSR by default.
Example: A Vite SaaS dashboard is served via CSR; the initial HTML is 2 KB, JavaScript then loads every needed view.
VS Code fork bundling an AI agent (Claude, GPT) to edit and refactor multi-file codebases.
Cursor is an IDE that looks like VS Code but ships an AI agent able to edit multiple files, run shell commands and explain code. It targets developers who want to keep control while accelerating their daily workflow. Unlike Lovable or Bolt, Cursor doesn't deploy and offers no managed backend.
Example: A developer can ask Cursor to migrate a class component to a React hook, refactor 12 files and run tests, in a single command.