Server-side stats for real totals, infinite scroll, accurate filter counts
Stats bar and filter pill counts now come from /api/changelog/public/stats (real DB aggregates, not loaded-page counts). Replaced Load More button with Intersec...
Force changelog page to render dynamically, not statically at build time
Add case-insensitive text replacements for changelog display
Replaces internal tool names with public-facing names (Docs->Docs, Meet->Meet, Capcha->Capcha, Avatar Creator->Avatar Creator, etc.) in titles and descriptions ...
Add Live Change Log page with timeline UI, filters, and stats
Server-side fetches changelog from SecurityService, client component provides project/type filtering, date grouping, expandable descriptions, and paginated load...
Make hexagon icon borders thicker and visible
Replace invisible CSS border (clipped by clip-path) with a ::before pseudo-element border that extends 3px outside the hexagon shape.
Auto-flatten 3D scroll elements when user stops scrolling
Adds scroll-idle detection so perspective-rotated elements animate to flat after 300ms of no scrolling, instead of staying tilted. Once flat, they stay flat unt...
Redesign demo page with webinar scheduling integration
Replaces the placeholder demo form with a three-phase booking flow: 1. Lead capture form (creates lead with KamoCRM Platform market) 2. Webinar scheduling (join...
Update footer social links with real URLs and correct icons
Replace GitHub with Instagram, Twitter icon with X brand icon, add LinkedIn. All external links open in new tab with noopener noreferrer. Update Organization JS...
Add programmatic OG image generation for all routes
Uses Next.js opengraph-image.tsx convention with Satori/Resvg rendering pipeline. Each route gets a branded 1200x630 image with Inter font, dark background, gra...
Match integrations banner scroll speed to built-with banner
Increased duration from 30s to 56s so both marquees scroll at ~88px/s regardless of item count.
Add 9 e-commerce platform logos to integrations banner
Added BigCommerce, WooCommerce, Magento, Squarespace, PrestaShop, Wix, OpenCart, Ecwid, and Shift4Shop to the "Integrates With" marquee, interleaved with existi...
Standardize brand naming across site — Kamo → KamoCRM / KamoCRM Inc.
Legal pages (terms, privacy, GDPR, footer copyrights) now use "KamoCRM Inc." for the corporate entity. Product/brand references across marketing copy, metadata,...
Reduce hero section padding on mobile so headline is fully visible
Tightened pt and mb spacing at base breakpoint so "Unify Your Clients," is no longer pushed off-screen on portrait phones where the fixed banner and nav consume...
Make preview banner fixed to viewport and reduce hero text size on mobile
Banner is now position:fixed so it stays visible while scrolling, with body padding injected dynamically to prevent content overlap. Hero headline reduced from ...
Make preview banner responsive with dynamic height and raise chat z-index
Banner now measures its own height via CSS variable so nav/content adapt automatically when text wraps on small screens. Chat widget z-index raised above the ba...
Comprehensive pricing integration audit — make all pages API-driven
Calculator page: - Split into server component + CalculatorClient - All plan prices, addon prices, bundle prices now from API - Promo code validation against li...
Remove all 14-day trial references from pricing and offer pages
Trial removed from Starter and Business plans. Free plan serves as the try-before-you-buy experience. Updated CTA buttons ("Get Started"), FAQ, footer text, off...
Convert /pricing page from hardcoded data to live API-driven catalog
- Split pricing page into server component (data fetching) and client component (interactive UI with animations, toggles, FAQ) - Add pricing-catalog.ts utilit...
Hide 30% promo banner on calculator, show dynamically when discount code applied
Mobile chat is minimized by default, opens fullscreen with no in-between
On mobile (<640px): always starts minimized regardless of first visit. Tapping the tab opens fullscreen. Minimize returns to tab. No 70vh intermediate state — j...
Raise z-index above nav, add mobile bottom sheet, update welcome message
- Bumps widget z-index to 10002 (nav is 10001) so maximized mode isn't hidden - Mobile: renders as a 70vh bottom sheet with drag indicator and rounded top cor...
Remove unreachable minimized state check to resolve TypeScript narrowing error
Wrap PublicChatWidget in client component to resolve ssr:false in Server Component error
Next.js 16 disallows dynamic() with ssr:false in Server Components. Adds PublicChatLoader as a client component wrapper.
Set PUBLIC_CHAT_API_KEY and API_SERVICE_URL in K8s configmap
Configures the public chat API key and internal API service URL for the chat widget to communicate with backend services in production.
Add hybrid popup chat widget with AI Chat and Live Support modes
Adds a production-quality chat widget that auto-opens for new visitors with two modes: AI Chat (REST-based with RAG integration) and Live Support (WebSocket rea...
Default contact form to Unspecified topic and link footer email icon to contact page
Replace all email addresses with contact form links and add support ticket submission
Correct 7 legally contestable marketing claims across the site
1. 99.9% uptime — was claimed universally, now qualified: "Up to 99.9%" or "99.9% (Enterprise)". Fixed in Hero, Testimonials, CTAStrip, TrustBar, Features...
Adjust Free plan claim from "the full platform" to "core features"
"The full platform" is legally contestable since the Free plan has significant limits vs paid plans (1 user, 3GB, 100 contacts, view-only docs, no video/AI/HR/S...
Add icons to Login, Demo, and Start Free nav buttons
Login gets LogIn icon, Demo gets Play icon, Start Free gets Rocket icon. Applied to both desktop CTA buttons and mobile menu buttons.
Make pricing comparison table horizontally scrollable on mobile
Wrap the feature comparison table in an overflow-x-auto container with a 700px minimum width so columns maintain readable sizes on narrow screens. Users can swi...
Remove global scroll-behavior:smooth that prevented pages from starting at top
The html element had scroll-behavior:smooth globally, which caused Next.js client-side navigation to slowly smooth-scroll from the previous scroll position inst...
Remove inline display:flex that was overriding mobile breakpoint
The desktop nav container had display:'flex' in inline styles which overrode the Tailwind 'hidden lg:flex' class (inline styles always win over classes). This m...
Replace scroll-spy nav with main site links on homepage desktop and mobile
The homepage Navigation component was showing ScrollSpyNav jump-to-section links (Home, Features, Demo, Show Me, Cases, ROI, etc.) on desktop instead of the mai...
Replace homepage mobile menu scroll-spy links with site navigation links
The homepage Navigation.tsx mobile menu was showing section jump links (Home, Features, Demo, Show Me, Cases, ROI, Testimonials, Pricing, FAQ) instead of actual...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
