refactor(blog): rebuild Odoo 20 Is Live post on the newest post chrome

Same URL, slug, date and body (body bytes unchanged, sha256 4fea9c0c).
Chrome copied from blog/posts/how-to-install-odoo-modules-using-git.html:
main.blog-post / span.badge / div.post-body / a.back-link, Marcellus headings,
cream palette. Replaces the older .container/.post-content chrome.
This commit is contained in:
webmaster committed 2026-11-03 10:16:35 +00:00
1 parent 5d65fa7027
commit 82b74c359a
1 file changed
+30 -78
@@ -4,22 +4,10 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Odoo 20 Is Live on Our Servers — Here Is What Changed | ODOO4projects</title> <title>Odoo 20 Is Live on Our Servers — Here Is What Changed | ODOO4projects</title>
<meta <meta name="description" content="Two weeks. That is how long it took us to bring up Odoo 20 on our servers, with every new feature that comes with it. It" />
name="description" <link rel="canonical" href="https://odoo4projects.com/blog/posts/odoo-20-is-live-on-our-servers-here-is-what-changed.html" />
content="Two weeks. That is how long it took us to bring up Odoo 20 on our servers, with every new feature that comes with it. It" <meta property="og:title" content="Odoo 20 Is Live on Our Servers — Here Is What Changed" />
/> <meta property="og:description" content="Two weeks. That is how long it took us to bring up Odoo 20 on our servers, with every new feature that comes with it. It" />
<link
rel="canonical"
href="https://odoo4projects.com/blog/posts/odoo-20-is-live-on-our-servers-here-is-what-changed.html"
/>
<meta
property="og:title"
content="Odoo 20 Is Live on Our Servers — Here Is What Changed"
/>
<meta
property="og:description"
content="Two weeks. That is how long it took us to bring up Odoo 20 on our servers, with every new feature that comes with it. It"
/>
<meta property="og:url" content="https://odoo4projects.com/blog/posts/odoo-20-is-live-on-our-servers-here-is-what-changed.html" /> <meta property="og:url" content="https://odoo4projects.com/blog/posts/odoo-20-is-live-on-our-servers-here-is-what-changed.html" />
<meta property="og:type" content="article" /> <meta property="og:type" content="article" />
<meta property="og:image" content="https://image.office.odoo4projects.com/img/ODOO_20_chatter.png" /> <meta property="og:image" content="https://image.office.odoo4projects.com/img/ODOO_20_chatter.png" />
@@ -27,53 +15,28 @@
<link rel="icon" href="../../images/favicon.ico" /> <link rel="icon" href="../../images/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link <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" />
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
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" /> <link rel="stylesheet" href="../../style.css" />
<style> <style>
:root { body { background: #0d1b2e; }
--primary: #714b67; .blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
--dark: #212529; .blog-post h1 { font-family: 'Marcellus', Georgia, serif; font-size: 2.4rem; font-weight: 400; margin: 0 0 0.5rem; color: #0d1b2e; }
--border: #e5e3e0; .blog-post .post-meta { font-family: Inter, sans-serif; font-size: 0.82rem; color: rgba(23,28,38,0.6); margin-bottom: 2rem; }
--radius: 0.6rem; .blog-post .post-meta .badge { display: inline-block; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #c9a227; margin-right: 0.75rem; }
} .blog-post .post-image { width: 100%; border-radius: 0.75rem; margin-bottom: 2rem; box-shadow: 0 2px 8px rgba(13,27,46,0.08); }
* { box-sizing: border-box; } .blog-post p { font-family: Inter, sans-serif; font-size: 1rem; line-height: 1.7; margin-bottom: 1.2rem; }
body { .blog-post h2 { font-family: 'Marcellus', Georgia, serif; font-size: 1.6rem; font-weight: 400; margin: 2rem 0 0.75rem; color: #0d1b2e; }
margin: 0; .blog-post ul, .blog-post ol { font-family: Inter, sans-serif; font-size: 1rem; line-height: 1.7; margin-bottom: 1.2rem; padding-left: 1.5rem; }
font-family: Inter, sans-serif; .blog-post li { margin-bottom: 0.3rem; }
font-size: 1rem; .blog-post a { color: #8a6f1f; text-decoration: underline; }
line-height: 1.7; .blog-post strong { font-weight: 600; }
background: #fff; .blog-post figure { margin: 2rem 0; }
color: #212529; .blog-post figure img { width: 100%; border-radius: 0.75rem; box-shadow: 0 2px 8px rgba(13,27,46,0.08); }
} .blog-post figcaption { font-family: Inter, sans-serif; font-size: 0.85rem; line-height: 1.6; color: rgba(23,28,38,0.6); margin-top: 0.6rem; }
.container { width: 80%; max-width: 800px; margin: 0 auto; padding: 0 20px; } .back-link { display: inline-block; margin-top: 2rem; font-family: 'Marcellus', Georgia, serif; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.04em; color: #c9a227; text-decoration: none; }
@media (max-width: 768px) { .container { width: 100%; } } .back-link:hover { text-decoration: underline; }
.blog-header { padding: 2rem 0; border-bottom: 1px solid var(--border); } @media (max-width: 600px) { .blog-post h1 { font-size: 1.7rem; } .blog-post { padding: 2rem 1rem 4rem; } }
.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 { padding-left: 1.5rem; }
.post-content li { margin: 0.5rem 0; color: rgba(33,37,41,0.7); }
.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> </style>
<script type="application/ld+json"> <script type="application/ld+json">
{ {
@@ -107,18 +70,12 @@
</script> </script>
</head> </head>
<body> <body>
<main> <main class="blog-post">
<div class="container"> <span class="badge">news</span>
<div class="blog-header"> <h1>Odoo 20 Is Live on Our Servers — Here Is What Changed</h1>
<a href="../../index.html#blog">&larr; Back to Blog</a>
</div>
<article>
<h1 class="post-title">Odoo 20 Is Live on Our Servers — Here Is What Changed</h1>
<div class="post-meta">November 3, 2026 &middot; News</div> <div class="post-meta">November 3, 2026 &middot; News</div>
<img src="https://image.office.odoo4projects.com/img/ODOO_20_chatter.png" <img src="https://image.office.odoo4projects.com/img/ODOO_20_chatter.png" alt="Odoo 20 Is Live on Our Servers — Here Is What Changed" class="post-image" loading="lazy" />
alt="Odoo 20 Is Live on Our Servers — Here Is What Changed" <div class="post-body">
class="post-image" loading="lazy" />
<div class="post-content">
<p>Two weeks. That is how long it took us to bring up <strong>Odoo 20</strong> on our servers, with every new feature that comes with it. It is live now — if your instance runs with us, the engine underneath it just moved forward.</p> <p>Two weeks. That is how long it took us to bring up <strong>Odoo 20</strong> on our servers, with every new feature that comes with it. It is live now — if your instance runs with us, the engine underneath it just moved forward.</p>
<p>The version upgrade is only part of the story. Alongside it we shipped a set of changes to the management console, the place where you run your Odoo hosting from inside Odoo itself.</p> <p>The version upgrade is only part of the story. Alongside it we shipped a set of changes to the management console, the place where you run your Odoo hosting from inside Odoo itself.</p>
@@ -138,12 +95,7 @@
<p>Over the next two weeks we take one piece at a time: the MCP server first, then the quieter half — backups and logfiles. Follow along.</p> <p>Over the next two weeks we take one piece at a time: the MCP server first, then the quieter half — backups and logfiles. Follow along.</p>
</div> </div>
</article> <a href="../../index.html#blog" class="back-link">&larr; Back to the Blog</a>
<div class="post-footer">
<a href="../../index.html#blog">&larr; Back to all posts</a>
</div>
</div>
</main> </main>
<script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>