Files
oc-guy/index.html
T
The OC Guy 1c1492cfc2 Add self-hosted Plausible analytics to all pages and post template
Oliver asked for our self-hosted Plausible snippet on oc-guy.com. The
template edit matters most: the daily sync only writes pages for new
posts, so a page-level-only change would be lost on the next generated
post. Both existing blog pages were updated directly to match the
template exactly, so the next sync produces no head diff.

The snippet is async and renders nothing: no visual change, no touch to
CSS, layout or copy.
2026-10-24 13:33:47 +00:00

215 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>The OC Guy — Odoo Community tips, modules and community news</title>
<meta name="description" content="Welcome. Practical tips and tricks for Odoo Community, the open-source ERP: install it, back it up, extend it, and put AI on top. By The OC Guy, Oliver Arnold.">
<meta name="color-scheme" content="light">
<meta name="theme-color" content="#F2E9D6">
<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=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-rN8268mNMAUdwSbE2e1wZ.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>
<link rel="stylesheet" href="css/site.css">
</head>
<body>
<a class="skip" href="#tips">Skip to the tips</a>
<header class="masthead">
<a class="wordmark" href="#top">The OC Guy</a>
<nav class="nav" aria-label="Sections">
<a href="#welcome">Welcome</a>
<a href="#tips">Tips</a>
<a href="#blog">Blog</a>
<a href="#community">Community</a>
<a href="#ask">About</a>
</nav>
<a class="nav-cta" href="#ask">Ask a question</a>
</header>
<main id="top">
<section class="lead" id="welcome" aria-labelledby="lead-title">
<div class="lead-side">
<div class="box">
<p class="box-kicker">Get the most out of Odoo Community</p>
<p class="box-lede">Install it, back it up, extend it, bolt AI on top — the notes I wish I had on day one.</p>
<a class="btn" href="#tips">Read the tips</a>
</div>
<ul class="side-list">
<li><span class="side-kicker">Written by</span> Oliver Arnold, 安雷威</li>
<li><span class="side-kicker">Since</span> 2024, in German, English and Spanish</li>
<li><span class="side-kicker">Contact</span> <a href="mailto:oliver@oc-guy.com">oliver@oc-guy.com</a></li>
</ul>
</div>
<figure class="lead-media">
<img src="assets/hero-aisle.jpg" alt="A long aisle of shelves in an archive, lit from above, running to a vanishing point" width="1280" height="853">
</figure>
<div class="lead-caption">
<p class="meta"><span>Guide</span><span>Odoo Community</span><time datetime="2026-10-23">23 Oct 2026</time></p>
<h1 id="lead-title">Welcome. Best tips and tricks for Odoo Community.</h1>
<p class="standfirst">Hey — you are in the right place. This is where I write down how to run the open-source
ERP that small companies own themselves: the install that holds, the backup that restores, the module
that already exists, and the AI that sits on top of your records instead of guessing at them.</p>
</div>
</section>
<section class="section" id="tips" aria-labelledby="tips-title">
<header class="section-head">
<span class="initial" aria-hidden="true">T</span>
<h2 class="section-title" id="tips-title"><span class="kicker">The latest in</span> <em>Tips &amp; Tricks</em></h2>
<a class="more" href="#blog">All posts</a>
</header>
<div class="feed-tools">
<label class="sr-only" for="tipsSearch">Search tips and tricks</label>
<input id="tipsSearch" class="feed-search" type="search" placeholder="Search the tips…" autocomplete="off">
<span class="feed-count"><span id="tipsCount">0</span> posts</span>
</div>
<div class="cards" id="tipsGrid" data-feed="tips"></div>
</section>
<section class="section" id="blog" aria-labelledby="blog-title">
<header class="section-head">
<span class="initial" aria-hidden="true">B</span>
<h2 class="section-title" id="blog-title"><span class="kicker">Everything</span> <em>The OC Guy blog</em></h2>
<a class="more" href="#community">Community news</a>
</header>
<div class="feed-tools">
<label class="sr-only" for="blogSearch">Search the blog</label>
<input id="blogSearch" class="feed-search" type="search" placeholder="Search every post…" autocomplete="off">
<span class="feed-count"><span id="blogCount">0</span> posts</span>
</div>
<div class="cards" id="blogGrid" data-feed="blog"></div>
</section>
<section class="section oca" id="oca" aria-labelledby="oca-title">
<header class="section-head">
<span class="initial" aria-hidden="true">O</span>
<h2 class="section-title" id="oca-title"><span class="kicker">The latest in</span> <em>OCA modules</em></h2>
<a class="more" href="https://github.com/OCA" target="_blank" rel="noopener">All OCA modules</a>
</header>
<table class="oca-table">
<caption class="sr-only">Top OCA modules, and whether each has a branch for Odoo 19.0 and 20.0</caption>
<thead>
<tr>
<th scope="col">Module</th>
<th scope="col">Area</th>
<th scope="col">19.0</th>
<th scope="col">20.0</th>
</tr>
</thead>
<tbody id="oca-rows">
<tr>
<td class="oca-name"><a href="https://github.com/OCA/mail/tree/18.0/mail_tracking" target="_blank" rel="noopener">Mail Tracker</a></td>
<td class="oca-area">Utilities</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/OCA/account-reconcile/tree/18.0/account_reconcile_oca" target="_blank" rel="noopener">Account Reconcilation</a></td>
<td class="oca-area">Accounting</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/OCA/bank-statement-import/tree/18.0/account_statement_import_base" target="_blank" rel="noopener">Account Statements</a></td>
<td class="oca-area">Accounting</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/oca/currency" target="_blank" rel="noopener">Currency Rate Update</a></td>
<td class="oca-area">Accounting</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/OCA/account-financial-tools/tree/18.0/account_usability" target="_blank" rel="noopener">Enable Accounting</a></td>
<td class="oca-area">Accounting</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/OCA/field-service" target="_blank" rel="noopener">Field Service</a></td>
<td class="oca-area">Field Service</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
<tr>
<td class="oca-name"><a href="https://github.com/oca/queue" target="_blank" rel="noopener">Job Que</a></td>
<td class="oca-area">System</td>
<td class="oca-status"><span class="mark is-on" aria-hidden="true">✓</span><span class="sr-only">has a 19.0 branch</span></td>
<td class="oca-status"><span class="mark" aria-hidden="true">—</span><span class="sr-only">no 20.0 branch yet</span></td>
</tr>
</tbody>
</table>
</section>
<section class="section" id="community" aria-labelledby="community-title">
<header class="section-head">
<span class="initial" aria-hidden="true">C</span>
<h2 class="section-title" id="community-title"><span class="kicker">The latest in</span> <em>Community news</em></h2>
<a class="more" href="https://github.com/OCA" target="_blank" rel="noopener">View all community news</a>
</header>
<div class="feed-tools">
<label class="sr-only" for="newsSearch">Search community news</label>
<input id="newsSearch" class="feed-search" type="search" placeholder="Search the news…" autocomplete="off">
<span class="feed-count"><span id="newsCount">0</span> posts</span>
</div>
<ul class="news" id="newsList" data-feed="news"></ul>
</section>
<section class="ask" id="ask" aria-labelledby="ask-title">
<div class="ask-inner">
<h2 id="ask-title">Ask a question</h2>
<p class="ask-lede">One question, one answer, by mail. No list, no tracking, no follow-up sequence.</p>
<form class="ask-form" action="mailto:oliver@oc-guy.com" method="post" enctype="text/plain">
<label for="ask-mail">Your email</label>
<input id="ask-mail" name="email" type="email" inputmode="email" placeholder="you@company.com" autocomplete="email" required>
<button class="btn" type="submit">Send the question</button>
</form>
</div>
</section>
</main>
<footer class="foot">
<p class="foot-name" aria-hidden="true">The OC Guy</p>
<div class="foot-cols">
<p class="foot-note">Odoo Community advocate. Written by Oliver Arnold, 安雷威 —
no partner programme, no licences sold.</p>
<nav class="foot-links" aria-label="Elsewhere">
<a href="https://www.odoo.com/documentation" target="_blank" rel="noopener">Documentation</a>
<a href="https://github.com/OCA" target="_blank" rel="noopener">OCA modules</a>
<a href="https://apps.odoo.com" target="_blank" rel="noopener">App store</a>
<a href="mailto:oliver@oc-guy.com">Email</a>
</nav>
</div>
<p class="foot-credits">
Photographs from <a href="https://pixabay.com/" target="_blank" rel="noopener">Pixabay</a>, used under the
<a href="https://pixabay.com/service/license-summary/" target="_blank" rel="noopener">Pixabay Content License</a>:
archive aisle, cardboard boxes, old books, workshop tools, warehouse shelving. No attribution required; credited anyway.
</p>
</footer>
<script src="js/site.js" defer></script>
<script src="js/feed.js" defer></script>
</body>
</html>