Files
ODOO4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html
T
oliver 0cd0fa1af1 feat(analytics): Plausible snippet on every page, FAQ marked on the bootcamp
The snippet was on 10 of 40 pages, so the Trial / FAQ / Buy / Custom Quote /
search posts / Project Plan goals were inert everywhere else. It now sits
verbatim, in the same <head> position as index.html, on all 39 visitor-facing
pages. email/trial-confirmation.html is deliberately left out (email template).

FAQ: the five <details class="bc-faq"> <summary> elements on the bootcamp page
and its DE/ES twins now carry plausible-event-name=FAQ, and the 15
.faq-question buttons on de/es/support.html get the marking they were believed
to already have. No goal renamed: one FAQ goal across all languages.

No markup, copy or behaviour change, and no third-party request beyond the
snippet itself. verify-html.py PROBLEMS 0; check-links.py OK; event checker
59 PASS / 0 FAIL; impeccable detector +0/-0 findings on the changed files.
2026-10-28 21:50:53 +00:00

169 lines
9.0 KiB
HTML

<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day | ODOO4projects</title>
<meta
name="description"
content="Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking throu"
/>
<link
rel="canonical"
href="https://odoo4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html"
/>
<meta
property="og:title"
content="Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day"
/>
<meta
property="og:description"
content="Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking throu"
/>
<meta property="og:type" content="article" />
<meta property="og:image" content="https://image.office.odoo4projects.com/img/oca_module_status.png" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="../../images/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
/>
<link rel="stylesheet" href="../../style.css" />
<style>
:root {
--primary: #714b67;
--dark: #212529;
--border: #e5e3e0;
--radius: 0.6rem;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: Inter, sans-serif;
font-size: 1rem;
line-height: 1.7;
background: #fff;
color: #212529;
}
.container { width: 80%; max-width: 800px; margin: 0 auto; padding: 0 20px; }
@media (max-width: 768px) { .container { width: 100%; } }
.blog-header { padding: 2rem 0; border-bottom: 1px solid var(--border); }
.blog-header a { color: var(--primary); text-decoration: none; font-size: 0.85rem; }
.blog-header a:hover { text-decoration: underline; }
.post-title {
font-family: "Inter Tight", sans-serif;
font-size: clamp(1.5rem, 3vw, 2.2rem);
font-weight: 700; margin: 1.5rem 0 0.5rem; color: var(--dark);
}
.post-meta { color: rgba(33,37,41,0.5); font-size: 0.85rem; margin-bottom: 2rem; }
.post-image { width: 100%; border-radius: 0.75rem; margin-bottom: 2rem; box-shadow: 0 2px 8px rgba(13,27,46,0.08); }
.post-content h2 {
font-family: "Inter Tight", sans-serif;
font-size: 1.3rem; margin-top: 2rem; color: var(--dark);
}
.post-content p { margin: 1rem 0; color: rgba(33,37,41,0.7); line-height: 1.7; }
.post-content ul, .post-content ol { padding-left: 1.5rem; }
.post-content li { margin: 0.5rem 0; color: rgba(33,37,41,0.7); }
.post-content a { color: var(--primary); }
.post-footer { padding: 2rem 0; border-top: 1px solid var(--border); margin-top: 2rem; }
.post-footer a { color: var(--primary); text-decoration: none; }
.post-footer a:hover { text-decoration: underline; }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day",
"datePublished": "2026-10-24",
"url": "https://odoo4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html",
"image": "https://image.office.odoo4projects.com/img/oca_module_status.png",
"author": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/"
},
"publisher": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/",
"logo": {
"@type": "ImageObject",
"url": "https://odoo4projects.com/images/logo.png"
}
}
}
</script>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init()
</script>
</head>
<body>
<div class="container">
<div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a>
</div>
<article>
<h1 class="post-title">Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day</h1>
<div class="post-meta">October 24, 2026 &middot; Tips</div>
<img src="https://image.office.odoo4projects.com/img/oca_module_status.png"
alt="Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day"
class="post-image" loading="lazy" />
<div class="post-content">
<p>Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking through your favourite OCA repositories to find out which modules have been ported — and which ones you will have to live without for a while.</p>
<p>We do the same thing. So we automated it. Our homepage now carries a live table of the OCA modules we rely on most, checked and updated by our robots on a daily basis.</p>
<h2>Why a tracker is worth having</h2>
<p>OCA porting work happens at its own pace. Maintainers volunteer their time, and a module that is solid on one version can sit unported on the next for weeks or months. Checking manually means guessing, and guessing during an upgrade project is expensive — you plan around a module that is not ready, or you delay a migration that was actually fine to start.</p>
<p>A tracker turns that guesswork into a glance. That is the whole point.</p>
<h2>What we are tracking right now</h2>
<p>The current list covers the modules we reach for most often, across utilities, accounting and field service:</p>
<ul>
<li><strong>Mail Tracker</strong> — Utilities</li>
<li><strong>Account Reconciliation</strong> — Accounting</li>
<li><strong>Account Statements</strong> — Accounting</li>
<li><strong>Currency Rate Update</strong> — Accounting</li>
<li><strong>Enable Accounting</strong> — Accounting</li>
<li><strong>Base</strong> — Field Service</li>
</ul>
<p>Each row shows the module's area plus its status on 19.0 and 20.0. At the time of writing, every module on the list is ready for 19.0, while 20.0 is still marked as pending across the board. That dash is simply the honest answer, and it flips the moment the port lands.</p>
<h2>How to get the most out of it</h2>
<ol>
<li><strong>Check it before you commit to an upgrade plan.</strong> If the module your operations depend on is not ported yet, you want to know that in the planning phase, not the week before go-live.</li>
<li><strong>Use it as a shortlist, not a verdict.</strong> The tracker tells you what is available. It does not tell you whether a module fits your data model or your processes — that part is still your call.</li>
<li><strong>Revisit it rather than bookmarking it once.</strong> Because the table refreshes daily, the useful habit is a quick check whenever you are scoping work on a new version.</li>
<li><strong>Watch the gap between versions.</strong> A module that is green on 19.0 and pending on 20.0 tells you exactly where to plan extra time.</li>
</ol>
<h2>Missing something you cannot work without</h2>
<p>The list is ours, but it does not have to stay that way. If there is an OCA module you check every single release — a localisation, an accounting edge case, a field service helper — tell us and we will add it to the tracker so it gets checked alongside the rest.</p>
<p>You can find the live table on <a href="https://odoo4projects.com">ODOO4projects.com</a>, or leave your favourite OCA module in the comments and we will take it from there.</p>
</div>
</article>
<div class="post-footer">
<a href="../../index.html#blog">&larr; Back to all posts</a>
</div>
</div>
<script defer src="/static/agent-odoo4projects/agent.js"></script>
</body>
</html>