KamoCRM

Mabadiliko ya Tabianchi

Kila kipengele, kurekebisha na kuboresha, posted kama meli. Hakuna kitu kilichofichwa kwa ajili ya uzinduzi.

17,500
Mabadiliko ya Jumla
5,986
Features ya
5,284
Wa
30
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter ya aina
Aina zoteBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
August 20, 2026
Fixkamo-marketing

A fixed-position banner cannot use a scroll-driven reveal

Fallout from the framer sweep, caught before it could matter. The rewrite maps entrance animations onto `.reveal`, which is driven by `animation-timeline: view(...

Kamo·2mo ago
Performancekamo-marketing

Remove gsap, the second animation runtime on the homepage

Framer was the chunk Lighthouse named. GSAP is the one it did not, because it arrives late enough to fall outside "unused JavaScript" — but it is 69 KB in its o...

Kamo·2mo ago
Fixkamo-marketing

The platform runs YugabyteDB, not CockroachDB

Unrelated to the performance work — found while reading the homepage's inline payload, where the string turned up in the FAQ answers. CockroachDB was retired f...

Kamo·2mo ago
Performancekamo-marketing

Remove framer-motion from the site

"Reduce unused JavaScript" has named the same 35.4 KB chunk in every report, and it is Framer Motion. It is not an eager script on the homepage, which is why it...

Kamo·2mo ago
Performancekamo-marketing

Resolve the org's icons on the server and preconnect the origin

Lighthouse named theme.kamocrm.com as an unconnected origin worth 300 ms while also reporting no origins preconnected, and last round I read that as a stale com...

Kamo·2mo ago
Fixkamo-marketing

Make the server actually able to read the theme path

Completes the change 48493ae shipped half of. That commit swept four in-flight files — layout.tsx, DynamicMetaLoader, TouchOptimized and ThemedBackground — into...

Kamo·2mo ago
Otherkamo-internal

Finish the details the first pass left rough

Nine small corrections, each with a visible symptom. The drawer opened on ~0.4s of blank panel: `loading` started false, so the first committed render fell thr...

kamo·2mo ago
Fixkamo-marketing

Stop gating the referral beacon, and report the visit properly

Two corrections to what shipped, both restoring the behaviour this feature was asked for. The beacon was gating itself on the analytics consent record. That re...

Kamo·2mo ago
ChoreMediaService

Follow the renamed tracking repository queries

findVisitorsForCode and findTimelineForVisitor replace the derived finders, which now carry an id tiebreaker and NULLS LAST; the conversion consumer moves to th...

Kamo·2mo ago
Fixkamo-shared-library

Make the two paged tracking reads deterministic

Both paged queries ordered on a column that ties, with no tiebreaker, so the database was free to return tied rows in a different order per page fetch — which s...

Kamo·2mo ago
Performancekamo-marketing

Stop three route bundles being prefetched onto the homepage

Lighthouse's 103 KiB of "unused JavaScript" named four chunks, two of them essentially 100% unused. None of them appear in the homepage's HTML — they are other ...

Kamo·2mo ago
Performancekamo-marketing

Name the backdrop widths, and read the theme config on the server

Two findings, both of which were doing something other than what the code said. THE BACKDROP WAS FETCHING THE 1920 CANDIDATE. 149 KB, for a decorative picture ...

Kamo·2mo ago
Featurekamo-internal

Build out Tracking Codes in place of the referral placeholder

/marketing/discounts was a ComingSoon stub; it is now /marketing/tracking, a working workspace, with the old path kept as a client redirect so existing bookmark...

kamo·2mo ago
Featurekamo-register

Carry the marketing referral into the signup

The marketing site tags a referred visitor with kmrt_vid and kmrt_src on the shared apex, so register.<apex> can read them; handleFinish sends both in the reque...

Kamo·2mo ago
Featurekamo-marketing

Honour a partner link and report what it brought

A visitor who follows https://www.<apex>?mrt=<code> gets two first-party cookies from the edge middleware — an opaque GUID that lasts two years and the code its...

Kamo·2mo ago
FeatureSecurityService

Publish signup and org-created for tracked visitors

The register site now forwards the marketing visitor GUID and tracking code in the request body — not a header, because the proxy strips Cookie and the ingress ...

Kamo·2mo ago
FeatureBillingService

Publish the paid conversion for tracked organizations

Both paths that stamp BillingSourceType.PAID now publish marketing.visitor.paid, because hooking only one silently misses half the traffic — AccountSubscription...

Kamo·2mo ago
FeatureAPIService

Forward the tracking beacon to MediaService

Clones forwardPublicWebinar rather than the generic forward(): that method prints every URI, header map and body length to stdout with no level, and a visitor b...

Kamo·2mo ago
FeatureMediaService

Serve the tracking-codes tab and ingest the visitor beacon

MediaService already backs the other marketing tabs, so it takes both halves of tracking codes: the authenticated CRUD and stats surface at /api/media/marketing...

Kamo·2mo ago
Featurekamo-shared-library

Model tracking codes, their visitors and the visits they bring

A member mints a code, shares **************** and the six totals on the Tracking Codes tab answer what that link actually did: unique visitors, visits, page re...

Kamo·2mo ago
FeatureKlusterServices

Provision MARKETING_EVENTS for visitor conversion signals

Marketing tracking codes credit a partner for the signups, organizations and paid accounts their link produced, and those three moments happen in services that ...

Kamo·2mo ago
Performancekamo-marketing

Compress the images harder, hold the cards still, drop duplicate requests

Images. Every quality setting on the page goes down a step, and the allow-list in next.config.ts goes to [30, 50] so nothing can quietly ask for more: hero...

Kamo·2mo ago
August 19, 2026
Performancekamo-marketing

Split the hero, and take the last two libraries off the page

Step C. Neither GSAP nor Framer Motion is on the homepage any more, and the `home` message namespace is no longer sent to the browser at all. JS 24...

Kamo·2mo ago
Performancekamo-marketing

Seven sections stop hydrating

Step B. TrustBar, WhatReplacesWhat, HowItWorks, UseCases, Features, CTAStrip and Pricing are server components now. They render to HTML and ship no JavaScript. ...

Kamo·2mo ago
Performancekamo-marketing

Take the animation runtime off the homepage entirely

Step A of the hydration work. Framer Motion is gone from the homepage's eager bundle: 798,723 -> 687,593 bytes raw, 245,367 -> 209,422 gzip. That is 35,945 fewe...

Kamo·2mo ago
FixKlusterServices

Make the HLS playlists immutable, and say what that costs

The playlists were the last entry in Lighthouse's cache-lifetime audit — 300s originally, then an hour, still reported. Everything else in the ladder was alread...

Kamo·2mo ago
Performancekamo-marketing

Stop rendering eight off-screen sections before the hero can paint

LCP was 4.4 s, and its breakdown said where: 120 ms to first byte, 290 ms of load delay, 390 ms actually downloading the image — and then 1,810 ms of "element r...

Kamo·2mo ago
Performancekamo-marketing

Undo the two changes that cost 380ms of blocking time, and quiet the phone

The last two rounds took the score from 87 to 67. Total Blocking Time went from 80 ms to 460 ms and LCP from 3.9 s to 4.4 s. Two of my own changes did that, and...

Kamo·2mo ago
Featurekamo-internal

Shorten the empty-description hint

The Description column shows {No Description} in place of "No description provided..". The string was hardcoded English, so it now comes from the dictionary — w...

kamo·2mo ago
Featurekamo-internal

Reorder and retitle the document tabs

The strip now reads Originals | Modify (n) | Modified | Binders | Common | Uploads, and Common trades the gear icon for a library one now that it no longer says...

kamo·2mo ago
Performancekamo-marketing

Move the headline sweep onto the compositor, and the chat widget off load

Two things left over from the last round, both flagged rather than done because each trades something. Doing them now. THE HEADLINE'S LIGHT PASS. It was a seco...

Kamo·2mo ago
Fixkamo-internal

Stop opening a note from overwriting it with a blank body

The editor seeded its buffer with `note.content || ''`, then compared that '' against the incoming null and concluded the member had unsaved edits. Two seconds ...

kamo·2mo ago
FixKBService

Keep the encryption key across restarts instead of inventing one

Every note body in production was unreadable. NOTES_MASTER_ENCRYPTION_KEY was never set anywhere - not in the deployment, and the deployed ConfigMap carried no ...

Kamo·2mo ago
Fixkamo-shared-library

Tell an unreadable note apart from an empty one

A note whose body cannot be deciphered came back with content null and nothing else, which is exactly what an empty note looks like on the wire. Clients could n...

Kamo·2mo ago
Fixkamo-marketing

Render themed imagery server-side, and keep brand text readable

Every background on the homepage was being downloaded TWICE. The components rendered the local `/img/bg/N.webp`, then an effect resolved the org's theme path on...

Kamo·2mo ago
Fixkamo-internal

Paint the knowledge console in the org's colour, not a fixed purple

The rebuild took its chrome from --accent-knowledge, which globals.css declares as #8b5cf6. That variable does not move with an organization's brand, so every c...

kamo·2mo ago
FixKlusterServices

Compress the theme host, which was serving every text asset raw

MinIO returns object bytes exactly as stored — it does not negotiate Content-Encoding — and the two theme IngressRoutes carried `strip-hsts` and `cors` but no c...

Kamo·2mo ago
Performancekamo-marketing

Inline the stylesheet, and drop polyfills nothing can reach

Two Lighthouse findings, both of which stayed open after the last round because I had concluded they were not addressable. They were; I had not looked hard enou...

Kamo·2mo ago
Fixkamo-marketing

Name the controls that had no name, and lift the text under 4.5:1

Three separate defects, all of them invisible to the build, the type check, the lint run and both existing guards. UNNAMED CONTROLS — the phone layout's naviga...

Kamo·2mo ago
Performancekamo-marketing

Stop shipping 1.8 MB of unresized backgrounds after hydration

ThemedBackground was the most expensive thing left on the homepage, and none of it looked like a bug. It rendered a raw <img> straight at the theme bucket, so t...

Kamo·2mo ago
Performancekamo-marketing

Stop the fold waiting on hydration, and clear the load window

The homepage shipped its whole fold invisible. Framer Motion serialises an `initial` prop into the prerendered HTML as an inline style, so the markup arrived wi...

Kamo·2mo ago
Chorekamo-marketing

Remove the navigation timing probe

It did its job. The question it was added to answer — whether the remaining delay was network, script or paint — turned out to have a fourth answer the probe fo...

Kamo·2mo ago
Performancekamo-marketing

Stop the analytics tracker hijacking every link but Home

Every page except the homepage took seconds to open, and the reason was never in this app's own navigation path: the server prerenders, prefetch payloads are co...

Kamo·2mo ago
Fixkamo-marketing

Every route change was animating a scroll back to the top

<html> carried Tailwind's `scroll-smooth` and nothing else. Next suppresses smooth scrolling while it scrolls to a new route, but only for pages that declare it...

Kamo·2mo ago
Stylekamo-marketing

Move the video controls to the top right

They sat bottom-left only because the frame used to bleed off the right edge of the viewport, which would have put a control anchored there off screen. The reel...

Kamo·2mo ago
Chorekamo-marketing

Measure real navigations and cold loads, not just flagged sessions

Five rounds of fixes have each removed a real defect and none has fixed what is actually being felt, because every diagnosis so far has been inference from outs...

Kamo·2mo ago
Performancekamo-marketing

Drop the sitewide loading boundary that only secondary pages paid for

Every page except the homepage felt slow, which points straight at the (pages) subtree — and at something I put there. When 4fae924 added (pages)/loading.tsx ev...

Kamo·2mo ago
Performancekamo-marketing

Prerender the changelog count, refresh it on publish instead of on visit

Every visitor was fetching this number themselves. PreviewBanner lives in the shared layout, so on every page it hit /api/changelog/today after hydration, waite...

Kamo·2mo ago
Performancekamo-marketing

Stop prefetching a megabyte per page, and stop calling the backend for free

Two costs that were paid on every page, both found by following the reporter's own hunch about i18n and needless backend calls. PREFETCH VOLUME — a regression ...

Kamo·2mo ago
Chorekamo-marketing

Add an opt-in navigation timing probe behind ?perf=1

Page switches still feel slow on production, and the server has been ruled out from the reporter's own machine: 55-122ms responses, x-nextjs-cache HIT, prefetch...

Kamo·2mo ago

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei