perf(site-wide): render-blocking /style.css on 17 pages; <main> landmark; BF footer form action

Same defect the bootcamp carried (2aa9b19), fixed site-wide in one mechanical pass.

P0 (17 pages): /style.css was deferred via media="print" onload=... -> unstyled
first paint -> a BODY layout shift. Now a normal render-blocking
<link rel="stylesheet">; the now-redundant no-JS <noscript> for style.css is
dropped. Web fonts + Font Awesome keep their legitimate deferral.
Pages: index.html, odoo-black-friday/, odoo-hosting-offers/, de/index.html,
es/index.html, odoo-hosting-2027.html (+de/+es), odoo-community-upgrade.html
(+de/+es), odoo-staging-environment/, odoo-community-ai/,
odoo-n8n-masterclass/, australia.html, workshops/, what-can-i-use-odoo-for/.

P1 (1 page): /odoo-black-friday/ footer form action mailto: -> CRM webhook
(Lighthouse is-on-https). Changed only because the page already loads a handler
for #footerContactForm (static/black-friday.js). The other 13 mailto-form pages
load no handler and are left alone on purpose (no drive-by handler copy-in).
Added the no-JS <noscript> fallback so a JS-off visitor keeps a path.

P2 (35 pages): add a single <main> landmark wrapping the primary content; top
bar and footer stay outside. Additive only, no redesign.

Guards held: bootcamp EN/DE/ES and every JS/static file untouched; Buy forms
product_id 4/17 intact; one [data-bc-seats]; ads-consent gate intact.
verify-html.py PROBLEMS 0; competitor QC 74 pre-existing, 0 added.
This commit is contained in:
webmaster committed 2026-11-02 18:18:46 +00:00
1 parent 2aa9b19c3c
commit 0e832d8fd1
36 files changed
+91 -35

No files matched your search

+3 -2
View File
@@ -28,8 +28,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="style.css" />
<noscript><link rel="stylesheet" href="style.css" /></noscript>
<style> <style>
/* ---- Australia landing page (page-scoped; additive) ---- */ /* ---- Australia landing page (page-scoped; additive) ---- */
.cmp-sr-only { .cmp-sr-only {
@@ -408,6 +407,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero cmp-hero"> <section class="hero cmp-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -733,6 +733,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
@@ -134,6 +134,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -323,6 +324,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -203,6 +203,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -273,6 +274,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -190,6 +190,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="blog-post-container"> <div class="blog-post-container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -253,5 +254,6 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
</body> </body>
</html> </html>
+2
View File
@@ -214,6 +214,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -275,6 +276,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -214,6 +214,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -294,6 +295,7 @@ Admin credentials: sent via email</code></pre>
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -196,6 +196,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -259,6 +260,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script <script
defer defer
src="/static/agent-odoo4projects/agent.js" src="/static/agent-odoo4projects/agent.js"
+2
View File
@@ -197,6 +197,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -259,6 +260,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script <script
defer defer
src="/static/agent-odoo4projects/agent.js" src="/static/agent-odoo4projects/agent.js"
@@ -107,6 +107,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -173,6 +174,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -173,6 +173,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container" style="width:80%; max-width:800px; margin:0 auto; padding:0 20px;"> <div class="container" style="width:80%; max-width:800px; margin:0 auto; padding:0 20px;">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -309,6 +310,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -181,6 +181,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -248,6 +249,7 @@ Odoo &gt; Settings &gt; Technical &gt; Scheduled Actions &gt; backup job</code><
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -202,6 +202,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -265,6 +266,7 @@ Password: (check your email)</code></pre>
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
@@ -107,6 +107,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a> <a href="../../index.html#blog">&larr; Back to Blog</a>
@@ -163,6 +164,7 @@
<a href="../../index.html#blog">&larr; Back to all posts</a> <a href="../../index.html#blog">&larr; Back to all posts</a>
</div> </div>
</div> </div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+3 -2
View File
@@ -220,8 +220,7 @@
#customQuoteModal .biz-success p{color:var(--midnight)} #customQuoteModal .biz-success p{color:var(--midnight)}
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}} @media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
</style> </style>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<!-- Privacy-friendly analytics by Plausible --> <!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script> <script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script> <script>
@@ -240,6 +239,7 @@
FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, and DESIGN.md. FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, and DESIGN.md.
--> -->
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero"> <section class="hero">
<div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden> <div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden>
<i class="fas fa-check-circle" aria-hidden="true"></i> <i class="fas fa-check-circle" aria-hidden="true"></i>
@@ -625,6 +625,7 @@
</section> </section>
<!-- Footer --> <!-- Footer -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -38,8 +38,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */ /* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
.oc-sr-only { .oc-sr-only {
@@ -496,6 +495,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -837,6 +837,7 @@ sudo -u postgres pg_restore -d &lt;DB_NEW&gt; /path/backup/&lt;DB&gt;.dump
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -31,8 +31,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */ /* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
.cmp-sr-only { .cmp-sr-only {
@@ -576,6 +575,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero cmp-hero"> <section class="hero cmp-hero">
<div class="container"> <div class="container">
<p class="hero-kicker">Vollständig verwaltetes Odoo Community Hosting</p> <p class="hero-kicker">Vollständig verwaltetes Odoo Community Hosting</p>
@@ -981,6 +981,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+2
View File
@@ -277,6 +277,7 @@
<script defer src="/static/lang.js"></script> <script defer src="/static/lang.js"></script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="/de/">&larr; Zurück zur Startseite</a> <a href="/de/">&larr; Zurück zur Startseite</a>
@@ -584,6 +585,7 @@
}); });
</script> </script>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+3 -2
View File
@@ -220,8 +220,7 @@
#customQuoteModal .biz-success p{color:var(--midnight)} #customQuoteModal .biz-success p{color:var(--midnight)}
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}} @media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
</style> </style>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<!-- Privacy-friendly analytics by Plausible --> <!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script> <script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script> <script>
@@ -240,6 +239,7 @@
FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, and DESIGN.md. FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, and DESIGN.md.
--> -->
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero"> <section class="hero">
<div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden> <div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden>
<i class="fas fa-check-circle" aria-hidden="true"></i> <i class="fas fa-check-circle" aria-hidden="true"></i>
@@ -625,6 +625,7 @@
</section> </section>
<!-- Footer --> <!-- Footer -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -38,8 +38,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */ /* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
.oc-sr-only { .oc-sr-only {
@@ -496,6 +495,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -837,6 +837,7 @@ sudo -u postgres pg_restore -d &lt;DB_NEW&gt; /path/backup/&lt;DB&gt;.dump
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -31,8 +31,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */ /* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
.cmp-sr-only { .cmp-sr-only {
@@ -576,6 +575,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero cmp-hero"> <section class="hero cmp-hero">
<div class="container"> <div class="container">
<p class="hero-kicker">Hosting de Odoo Community totalmente gestionado</p> <p class="hero-kicker">Hosting de Odoo Community totalmente gestionado</p>
@@ -980,6 +980,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+2
View File
@@ -277,6 +277,7 @@
<script defer src="/static/lang.js"></script> <script defer src="/static/lang.js"></script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="/es/">&larr; Volver al inicio</a> <a href="/es/">&larr; Volver al inicio</a>
@@ -584,6 +585,7 @@
}); });
</script> </script>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+3 -2
View File
@@ -230,8 +230,7 @@
.bf-topbar-cta{color:var(--brass);white-space:nowrap} .bf-topbar-cta{color:var(--brass);white-space:nowrap}
.bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)} .bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)}
</style> </style>
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="style.css" />
<noscript><link rel="stylesheet" href="style.css" /></noscript>
<!-- Privacy-friendly analytics by Plausible --> <!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script> <script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script> <script>
@@ -260,6 +259,7 @@
</a> </a>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero"> <section class="hero">
<div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden> <div class="hero-notice" id="heroConfirmNotice" role="status" aria-live="polite" hidden>
<i class="fas fa-check-circle" aria-hidden="true"></i> <i class="fas fa-check-circle" aria-hidden="true"></i>
@@ -649,6 +649,7 @@
</section> </section>
<!-- Footer --> <!-- Footer -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+2
View File
@@ -123,6 +123,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="index.html">&larr; Back to Home</a> <a href="index.html">&larr; Back to Home</a>
@@ -202,6 +203,7 @@
</div> </div>
</section> </section>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+5 -3
View File
@@ -43,8 +43,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript> <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */ /* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
.bf-sr-only { .bf-sr-only {
@@ -752,6 +751,7 @@
fastest server's city photo slides in with a "fits your location" label; the Location fastest server's city photo slides in with a "fits your location" label; the Location
Selector below slides any city into it on click. The headline and copy are adapted to the Selector below slides any city into it on click. The headline and copy are adapted to the
Black Friday offer so the page leads with the deal; the stats row is the homepage's. --> Black Friday offer so the page leads with the deal; the stats row is the homepage's. -->
<main>
<section class="hero" id="hero"> <section class="hero" id="hero">
<div class="hero-bg"></div> <div class="hero-bg"></div>
<div class="container"> <div class="container">
@@ -1187,6 +1187,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
@@ -1218,7 +1219,7 @@
<a href="https://www.linkedin.com/company/odoo4projects/" target="_blank" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.76-1.95 4.02 0 4.76 2.5 4.76 5.75V21h-4v-5.5c0-1.31-.02-3-1.9-3-1.9 0-2.19 1.42-2.19 2.9V21H9z" /></svg></a> <a href="https://www.linkedin.com/company/odoo4projects/" target="_blank" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.05c.53-.95 1.83-1.95 3.76-1.95 4.02 0 4.76 2.5 4.76 5.75V21h-4v-5.5c0-1.31-.02-3-1.9-3-1.9 0-2.19 1.42-2.19 2.9V21H9z" /></svg></a>
<a href="https://www.youtube.com/@ODOO4projects" target="_blank" aria-label="YouTube"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23 12s0-3.2-.41-4.73a2.5 2.5 0 0 0-1.76-1.77C19.3 5.1 12 5.1 12 5.1s-7.3 0-8.83.4A2.5 2.5 0 0 0 1.4 7.27C1 8.8 1 12 1 12s0 3.2.41 4.73a2.5 2.5 0 0 0 1.76 1.77c1.53.4 8.83.4 8.83.4s7.3 0 8.83-.4a2.5 2.5 0 0 0 1.76-1.77C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12z" /></svg></a> <a href="https://www.youtube.com/@ODOO4projects" target="_blank" aria-label="YouTube"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23 12s0-3.2-.41-4.73a2.5 2.5 0 0 0-1.76-1.77C19.3 5.1 12 5.1 12 5.1s-7.3 0-8.83.4A2.5 2.5 0 0 0 1.4 7.27C1 8.8 1 12 1 12s0 3.2.41 4.73a2.5 2.5 0 0 0 1.76 1.77c1.53.4 8.83.4 8.83.4s7.3 0 8.83-.4a2.5 2.5 0 0 0 1.76-1.77C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12z" /></svg></a>
</div> </div>
<form class="footer-contact-form" id="footerContactForm" action="mailto:hello@odoo4projects.com" method="post" enctype="text/plain"> <form class="footer-contact-form" id="footerContactForm" action="https://n8n.odoo4projects.com/webhook/ODOO4projects/crm" method="post" enctype="text/plain">
<label class="bf-sr-only" for="footerContactEmail">Your email address</label> <label class="bf-sr-only" for="footerContactEmail">Your email address</label>
<input type="email" id="footerContactEmail" name="email" placeholder="Your email address" required /> <input type="email" id="footerContactEmail" name="email" placeholder="Your email address" required />
<div class="footer-textarea-wrap"> <div class="footer-textarea-wrap">
@@ -1228,6 +1229,7 @@
</div> </div>
<div class="footer-form-status" id="footerFormStatus" role="status"></div> <div class="footer-form-status" id="footerFormStatus" role="status"></div>
</form> </form>
<noscript><p>JavaScript is off. Email us directly at <a href="mailto:support@ODOO4projects.com">support@ODOO4projects.com</a>.</p></noscript>
</div> </div>
</div> </div>
<div class="fcopy">Copyright &copy; ODOO4projects LLC &middot; <a href="#" id="adsConsentOpen">Cookie settings</a></div> <div class="fcopy">Copyright &copy; ODOO4projects LLC &middot; <a href="#" id="adsConsentOpen">Cookie settings</a></div>
+3 -2
View File
@@ -23,8 +23,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- "Odoo Community + AI agent" page (page-scoped; additive). /* ---- "Odoo Community + AI agent" page (page-scoped; additive).
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
@@ -662,6 +661,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -889,6 +889,7 @@
</section> </section>
<!-- Footer (copied from odoo-staging-environment/; no link to this page is added anywhere) --> <!-- Footer (copied from odoo-staging-environment/; no link to this page is added anywhere) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -38,8 +38,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="style.css" />
<noscript><link rel="stylesheet" href="style.css" /></noscript>
<style> <style>
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */ /* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
.oc-sr-only { .oc-sr-only {
@@ -496,6 +495,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -987,6 +987,7 @@ sudo -u postgres pg_restore -d &lt;DB_NEW&gt; /path/backup/&lt;DB&gt;.dump
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -31,8 +31,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="style.css" />
<noscript><link rel="stylesheet" href="style.css" /></noscript>
<style> <style>
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */ /* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
.cmp-sr-only { .cmp-sr-only {
@@ -576,6 +575,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero cmp-hero"> <section class="hero cmp-hero">
<div class="container"> <div class="container">
<p class="hero-kicker">Managed Odoo Community Hosting</p> <p class="hero-kicker">Managed Odoo Community Hosting</p>
@@ -986,6 +986,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -35,8 +35,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */ /* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
.of-sr-only { .of-sr-only {
@@ -466,6 +465,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero of-hero"> <section class="hero of-hero">
<div class="container"> <div class="container">
<h1>Odoo hosting offers, and what a year costs</h1> <h1>Odoo hosting offers, and what a year costs</h1>
@@ -568,6 +568,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -27,8 +27,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive). /* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
The block below is the bootcamp page's page-scoped CSS, reused so the two The block below is the bootcamp page's page-scoped CSS, reused so the two
@@ -558,6 +557,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero bc-hero"> <section class="hero bc-hero">
<div class="container"> <div class="container">
<p class="hero-kicker">2 HOURS &middot; LIVE &middot; OLIVER ARNOLD &middot; ENGLISH</p> <p class="hero-kicker">2 HOURS &middot; LIVE &middot; OLIVER ARNOLD &middot; ENGLISH</p>
@@ -783,6 +783,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -29,8 +29,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- "Odoo staging environment" guide page (page-scoped; additive). /* ---- "Odoo staging environment" guide page (page-scoped; additive).
Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on
@@ -475,6 +474,7 @@
</div> </div>
<!-- Hero: the reader's question, answered before the first H2 --> <!-- Hero: the reader's question, answered before the first H2 -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -774,6 +774,7 @@
<!-- Footer (copied from what-can-i-use-odoo-for/; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from what-can-i-use-odoo-for/; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+2
View File
@@ -210,6 +210,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="page-subtitle"> <div class="page-subtitle">
You <b>immediately</b> unlock all new features and higher limits.<br /> You <b>immediately</b> unlock all new features and higher limits.<br />
Any extra time is <b>added</b> to your existing subscription. Any extra time is <b>added</b> to your existing subscription.
@@ -492,5 +493,6 @@
loadContract(); loadContract();
</script> </script>
</main>
</body> </body>
</html> </html>
+2
View File
@@ -111,6 +111,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="index.html">&larr; Back to Home</a> <a href="index.html">&larr; Back to Home</a>
@@ -203,6 +204,7 @@
</div> </div>
</section> </section>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -277,6 +277,7 @@
<script defer src="/static/lang.js"></script> <script defer src="/static/lang.js"></script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="index.html">&larr; Back to Home</a> <a href="index.html">&larr; Back to Home</a>
@@ -588,6 +589,7 @@
}); });
</script> </script>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+2
View File
@@ -111,6 +111,7 @@
</script> </script>
</head> </head>
<body> <body>
<main>
<div class="container"> <div class="container">
<div class="blog-header"> <div class="blog-header">
<a href="index.html">&larr; Back to Home</a> <a href="index.html">&larr; Back to Home</a>
@@ -193,6 +194,7 @@
</div> </div>
</section> </section>
</main>
<script defer src="/static/agent-odoo4projects/agent.js"></script> <script defer src="/static/agent-odoo4projects/agent.js"></script>
</body> </body>
</html> </html>
+3 -2
View File
@@ -27,8 +27,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive). /* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive).
The block below is odoo-community-upgrade.html's page-scoped CSS, reused so The block below is odoo-community-upgrade.html's page-scoped CSS, reused so
@@ -518,6 +517,7 @@
</div> </div>
<!-- Hero: the question, answered in the first hundred words --> <!-- Hero: the question, answered in the first hundred words -->
<main>
<section class="hero oc-hero"> <section class="hero oc-hero">
<div class="hero-bg"> <div class="hero-bg">
<img <img
@@ -904,6 +904,7 @@
<!-- Footer (copied from odoo-community-upgrade.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from odoo-community-upgrade.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">
+3 -2
View File
@@ -27,8 +27,7 @@
onload="this.media='all'" onload="this.media='all'"
/> />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" /> <link rel="stylesheet" href="/style.css" />
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
<style> <style>
/* ---- Workshops and Classes hub page (page-scoped; additive). /* ---- Workshops and Classes hub page (page-scoped; additive).
The block below is the bootcamp page's page-scoped CSS, reused so the two The block below is the bootcamp page's page-scoped CSS, reused so the two
@@ -506,6 +505,7 @@
</div> </div>
<!-- Hero --> <!-- Hero -->
<main>
<section class="hero bc-hero"> <section class="hero bc-hero">
<div class="container"> <div class="container">
<p class="hero-kicker">TWO LIVE COURSES &middot; ONLINE &middot; OLIVER ARNOLD &middot; ENGLISH</p> <p class="hero-kicker">TWO LIVE COURSES &middot; ONLINE &middot; OLIVER ARNOLD &middot; ENGLISH</p>
@@ -740,6 +740,7 @@
<!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page <!-- Footer (copied from index.html; icon-font glyphs replaced with inline SVG so the page
carries no external icon dependency) --> carries no external icon dependency) -->
</main>
<footer class="footer"> <footer class="footer">
<div class="container"> <div class="container">
<div class="fgrid"> <div class="fgrid">