KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 14, 2026
Featurekamo-marketing

Embed homepage marketing video on white-label CRM fees article

Give readers the same product reel from the homepage after the intro, before the resold-software section.

Kamo·1mo ago
September 13, 2026
Featurekamo-marketing

Let a visitor cancel their registration from the emailed link

/webinar/cancel/<token> is where a webinar confirmation email sends someone who can no longer make it. It looks the registration up through the public webinar A...

Kamo·1mo ago
Fixkamo-marketing

Book the "Schedule a KamoCRM Product Demo" webinar, matched by title

The page took the first webinar type the org publishes. Types come back sorted by title, so that was "Affiliate Partner Demonstration" and every demo booking la...

Kamo·1mo ago
September 12, 2026
Fixkamo-marketing

Label every prerendered page site-hunt, so a deploy's refresh reaches it

getHuntOffer returned early when the hunt was not configured, and the build never is, so the build made no fetch and the pages it baked carried no site-hunt tag...

Kamo·1mo ago
Fixkamo-marketing

Refresh the site hunt's footer line on every pod after a deploy

exec on deploy/ reaches one replica, and each keeps its own cache, so the other served pages without the line for up to ten minutes after every deploy.

Kamo·1mo ago
Fixkamo-marketing

Every hunt window wears the site's own pop-up, not a black box

The signal card, pill, exit panel, console and whisper were flat rgba(8,8,8) boxes in monospace with an off-brand green, and read as something dropped on top of...

Kamo·1mo ago
Featurekamo-marketing

A hidden, per-visitor site hunt for a capped promotion, and signals that lead visitors into it

The hunt: seven locks per visitor, generated from a seed and HUNT_SECRET, enciphered with the previous answer, hidden on a page that moves every UTC midnight, w...

Kamo·1mo ago
September 11, 2026
Featurekamo-marketing

Let a reader send the seat-fee article to someone they know

A "pass it on" form at the foot of **************** reached from a chip at the top and a line after the seven questions. The reader names up to three people and...

Kamo·1mo ago
Featurekamo-marketing

Put every page in /sitemap.xml itself, and list pages only in the languages they have

/sitemap.xml was an index, so opening it showed 79 file names rather than the site's pages. - /sitemap.xml is now one <urlset> with every page: 18,700 of them,...

Kamo·1mo ago
Featurekamo-marketing

Public service announcement on who keeps software seat fees

New page at **************** explaining, for non-technical owners, how resold white-label platforms work: a flat agency license, per-seat fees the agency keeps,...

Kamo·1mo ago
Featurekamo-marketing

List every page in every language it exists in, and make each page agree

/sitemap.xml listed each page once, as its English URL. The 17,843 changelog entries had no language alternates at all, and every page's own hreflang named all ...

Kamo·1mo ago
Fixkamo-marketing

Order sitemap <url> children as the schema does, and give each chunk one address

The sitemap XSD is a sequence: loc, lastmod, changefreq, priority, then extension elements. The hreflang links were written straight after <loc>, which Google t...

Kamo·1mo ago
Featurekamo-marketing

Generate the sitemaps per request, and give every change its own page

/sitemap.xml was a metadata file prerendered at build time, in a container that cannot reach KBService or SecurityService, so every deploy shipped a sitemap wit...

Kamo·1mo ago
September 10, 2026
Fixkamo-marketing

Drop the remaining third-party plan and cost wording

- zoho-mail, ecwid: the FAQ answering which of the vendor's plans, free or paid, the integration needs is removed. Both items take i18nKey "<slug>-r2" so no...

Kamo·1mo ago
Fixkamo-marketing

Quote only our own price, never another company's

The comparison pages set each competitor's list prices, add-on prices, "a typical team pays" estimates, TCO and implementation figures, and "N% cheaper" verdict...

Kamo·1mo ago
Featurekamo-marketing

List the phone number on the English pages only

showsPhone(locale) in app/lib/phone.ts is the single rule, currently locale === "en". PhoneLink returns nothing elsewhere, which covers the header, mobile menu ...

Kamo·1mo ago
Featurekamo-marketing

Let the logo lead home, and list the phone number where visitors decide

The header's Home entry duplicated the logo, which already links to /. It is gone from the desktop and mobile menus; in its place the logo carries a hover/focus...

Kamo·1mo ago
Fixkamo-marketing

Draw the search icon down from the full-size mark instead of doubling the small one

The 192px icon Google lists was the 96px export with every pixel doubled. It is now downscaled from the 820px master, so its edges are drawn rather than stepped...

Kamo·1mo ago
Fixkamo-marketing

Give Google a canonical it can read, and stop redirects outvoting it

Search Console began excluding pages as "Duplicate without user-selected canonical", "Duplicate, Google chose different canonical than user" and "Alternate page...

Kamo·1mo ago
Fixkamo-marketing

Publish prices search engines accept, and the ones the page actually shows

Search Console's product snippet report flagged "Invalid price format" on both `price` and `priceSpecification.price`. The cause was Enterprise going out as "pr...

Kamo·1mo ago
Featurekamo-marketing

Hand Google the green-tile mark, because it lists the largest icon we declare

Search shows one icon per site and takes the largest one declared, apple-touch-icon included, so the 180px touch icons (ours and the theme's) outranked everythi...

Kamo·1mo ago
September 9, 2026
Fixkamo-marketing

The offer countdown could not hydrate, so React threw the banner away on every load

The homepage has been throwing React #418 — "the server rendered text didn't match the client" — on every load, in production as well as locally. The mismatch i...

Kamo·1mo ago
Featurekamo-marketing

Give the film a watch page, because Google will not index it from the homepage

Search Console reports the one video on this site as "video is not on a watch page". That is not a bug in the hero — it is Google saying the homepage is about t...

Kamo·1mo ago
September 7, 2026
Fixkamo-marketing

Let a local build reach the catalogue it already has the key for

`npm run build` on a laptop died prerendering /en/alternatives/gohighlevel with "Kamo seat prices unavailable", and `npm run dev` served a homepage with no pric...

Kamo·1mo ago
Docskamo-marketing

The Labor Day crane is fifteen lines, not nine

The cost note counted the crane before it grew a two-leg lattice mast and a triangular jib section, which is the shape it needed to stop reading as a wobbling r...

Kamo·1mo ago
Featurekamo-marketing

Labor Day — a working skyline clocking off

The nineteenth scene, and the first Monday in September with the Saturday and Sunday before it. It is the one window on this calendar that cannot collide with a...

Kamo·1mo ago
September 6, 2026
Fixkamo-marketing

One source of truth, and a build that can actually reach it

Every price on this site had a second copy in the repo, and the second copy was the one being served. kamo-prices.ts said so in its own comment: the fallback t...

Kamo·1mo ago
Performancekamo-marketing

Stop every scene re-rasterising its sprite bank on resize

An audit of all eighteen scenes found the same defect in twelve of them, and it is the shape that degrades a tab over a minute or two and then stalls it in garb...

Kamo·1mo ago
Fixkamo-marketing

Remove the footer picker, keep the ?holiday= parameter

The dropdown was a temporary control for the initial review of the eighteen scenes and it has served its purpose. The query parameter stays — it is the only way...

Kamo·1mo ago
Fixkamo-marketing

Stop the page-rotation easter egg re-firing on every trip to the footer

The reported lockup was never the holiday scenes. It is `HiddenAnimations`, which has been in this repo the whole time, and the report described it exactly: "so...

Kamo·1mo ago
Fixkamo-marketing

Stop the scenes hanging the tab

Reported: "after about a minute or two the page looks to animate away then animate back and its completely locked up. Browser wants to close the tab." Reproduce...

Kamo·1mo ago
Featurekamo-marketing

Dress the site for eighteen days of the year

On ~84 days a year the marketing site now decorates itself, automatically, from the reader's own calendar. Snow falls through December and settles on the cards ...

Kamo·1mo ago
Featurekamo-marketing

Carry the no-credit-card mark on the nav Start Free too

The hero CTA changed but the nav button kept a Rocket, so the same action wore two different marks on the same screen — and the nav one is the button a reader s...

Kamo·1mo ago
Featurekamo-marketing

Swap the Start Free arrow for a no-credit-card mark

The hero CTA carried a generic ArrowRight, which told a reader nothing they did not already know from the button being a button. The objection it has to answer ...

Kamo·1mo ago
Fixkamo-marketing

Stop losing referral attribution on the marketing site

Two ways a member's referral was being dropped, both silent. 1. Every register/login CTA was the string literal `https://register.kamocrm.com`, while this s...

Kamo·1mo ago
September 5, 2026
Fixkamo-marketing

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

Kamo·1mo ago
Fixkamo-marketing

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

Kamo·1mo ago
Featurekamo-marketing

Say what the Free plan does not charge, beside what the paid ones do

Now that Starter and Business each carry a one-time charge on the card, a Free card that says nothing about it invites exactly the wrong inference — the reader ...

Kamo·1mo ago
Fixkamo-marketing

Make the startup fee findable — discreet is not the same as hidden

The note shipped at #8c8c8c with no spacing, wedged between the bright green term line and the plan description. That is DARKER than the body copy beneath it, s...

Kamo·1mo ago
Fixkamo-marketing

Remove the last "$0 setup" claim, and quote the fee only where it is fixed

Rendering the calculator turned up a claim the first pass missed: its "Included Free!" panel led with "Setup & Implementation — $0", struck through against a co...

Kamo·1mo ago
Featurekamo-marketing

State the startup fee, and stop claiming there isn't one

The site said "$0 setup fees" three times in the pricing page's metadata and listed "No mandatory onboarding fees" as an advantage over HubSpot. All of it is no...

Kamo·1mo ago
Chorekamo-marketing

Rebuild — the previous run never produced an image

f0edd01 was pushed with the rest of the fleet-wide rollout-safety work and is the only one of that batch whose image never appeared: the deployment is still run...

Kamo·1mo ago
September 4, 2026
Featurekamo-marketing

Drain on SIGTERM, and run two pods

Next handles SIGTERM with a bare process.exit(143), so every deploy severed whatever this pod had in flight — a form post, a server action, a streamed RSC paylo...

Kamo·1mo ago
Fixkamo-marketing

Let a rollout finish what the old pod was doing

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

Kamo·1mo ago
Fixkamo-marketing

25 pages titled themselves KamoCRM twice

Every page's <title> read `X | KamoCRM | KamoCRM`. The root layout sets `title.template: "%s | KamoCRM"`, and each page's own `title` already ended in the same ...

Kamo·1mo ago
Featurekamo-marketing

A product gallery at /screenshots

A page for showing the product as it actually looks. It is built around a data module rather than markup, because more screenshots are coming and adding one sho...

Kamo·1mo ago
September 2, 2026
Fixkamo-marketing

The summary line double-counted sections

A section page is itself one of the articles, so "291 articles, 16 areas, 29 sections" invited the reader to add up three numbers that do not add up. One number...

Kamo·1mo ago
Featurekamo-marketing

Rebuild the index as a map of the product

It was one recursive list of all three hundred articles, indented by depth. Everything was on the page and nothing was findable, and the page weighed 3.9 MB. T...

Kamo·1mo ago
Fixkamo-marketing

Keep made-up article paths out of the index

The canonical check already stops a wrong path rendering the article -- it serves the not-found page instead. What it cannot do is change the status code: this ...

Kamo·1mo ago
Fixkamo-marketing

Point at the real org, keep the tree in the URL, show related articles

KB_ORG_ID was "1". The help center lives in org 1168485648209608710, so every KB read on this site missed -- /help-center rendered its empty state no matter wha...

Kamo·1mo ago

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.

Start Free ForeverView Pricing