Files
ODOO4projects.com/terms.html
T
webmaster bd0881f882 cache-bust local assets; narrow the language facet to scores >= 3
Part 1 — asset versioning: every local <script src> and <link rel=stylesheet> on the
tracked pages now carries ?v=<sha256-of-the-file> (10 hex), computed at BUILD time from
the file's bytes by work/build-asset-versions.py — never hand-typed, and idempotent
(re-running with no file change rewrites nothing). This is what makes an edited
focus-rule.js / photo-upload.js a new URL instead of a stale cache hit.

Part 2 — language facet: a language now counts for the Language filter only when its
0-5 self-assessment is >= LANG_FACET_MIN (3 = 'works in it'). The constant sits beside
the 15-point rule in the page script and its mirror in build-directory.py. Nothing
stored changes; the card's languages chart still prints every language above 0, the
search box is unchanged, and the facet stays an exact membership test against the
card's value. A '1' language no longer offers the person under that language.
2026-11-03 21:26:58 +00:00

201 lines
9.1 KiB
HTML

<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="Terms of Service for ODOO4projects LLC — plans, the free trial, payment, cancellation and your data."
/>
<title>Terms of Service | ODOO4projects</title>
<link rel="canonical" href="https://odoo4projects.com/terms.html" />
<meta property="og:title" content="Terms of Service | ODOO4projects" />
<meta property="og:description" content="The rules of the ODOO4projects service." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://odoo4projects.com/terms.html" />
<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
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"
/>
<link rel="stylesheet" href="style.css?v=3332fbba93" />
<style>
.legal-hero {
padding: 4rem 0 2.5rem;
text-align: center;
background: var(--light);
border-bottom: 1px solid var(--border);
}
.legal-hero h1 {
font-size: clamp(1.8rem, 3.2vw, 2.8rem);
color: var(--dark);
}
.legal-section {
padding: 3rem 0 4rem;
}
.legal-section .container {
max-width: 700px;
}
.legal-card {
background: #fff;
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 1.75rem;
margin-bottom: 1.25rem;
}
.legal-card:last-child {
margin-bottom: 0;
}
.legal-card h2 {
font-size: 1.05rem;
font-weight: 600;
color: var(--primary);
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--border);
}
.legal-card p,
.legal-card .address {
color: rgba(33, 37, 41, 0.7);
font-size: 0.88rem;
line-height: 1.7;
margin-bottom: 0.4rem;
}
.legal-card strong {
color: var(--dark);
}
.legal-card .contact-email {
color: var(--primary);
font-weight: 500;
}
.image-credits {
display: flex;
flex-direction: column;
gap: 0.3rem;
}
.image-credits .credit-row {
color: rgba(33, 37, 41, 0.6);
font-size: 0.82rem;
}
.image-credits .credit-row a {
color: var(--primary);
}
.trademark-notice {
background: rgba(113, 75, 103, 0.04);
border: 1px solid rgba(113, 75, 103, 0.15);
border-radius: var(--radius);
padding: 1rem 1.25rem;
}
.trademark-notice p {
font-size: 0.82rem;
margin: 0;
color: rgba(33, 37, 41, 0.6);
}
@media (max-width: 768px) {
.legal-hero { padding: 2.5rem 0 1.5rem; }
.legal-card { padding: 1.25rem; }
}
</style>
<!-- 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>
<main>
<div class="container">
<div class="blog-header">
<a href="index.html">&larr; Back to Home</a>
</div>
</div>
<section class="legal-hero">
<div class="container">
<h1>Terms of Service</h1>
<p style="margin-top: 0.5rem; color: rgba(33, 37, 41, 0.6); font-size: 0.85rem;">
Last updated 2026-10-21
</p>
</div>
</section>
<section class="legal-section">
<div class="container">
<div class="legal-card">
<h2>Who we are</h2>
<p>ODOO4projects LLC, 30 N Gould St, STE R, Sheridan, WY 82801, USA. Contact: <span class="contact-email">support@odoo4projects.com</span></p>
<p>These terms cover the hosting service we sell on this website.</p>
</div>
<div class="legal-card">
<h2>The service</h2>
<p>We host and manage an Odoo Community instance for you. We run the server, the backups, the SSL certificate and the updates. You use the instance to run your business.</p>
</div>
<div class="legal-card">
<h2>Your plan</h2>
<p>Every app that ships with Odoo Community is available on every plan. Custom modules and modules from odoo-community.org install from On the Rise up. Side Hustle has no module installation.</p>
<p>Backup slots and domain routings are listed on the pricing page and in the app. Side Hustle keeps one backup slot and one domain; On the Rise and Powerhouse keep four backups and three domains.</p>
</div>
<div class="legal-card">
<h2>The free trial</h2>
<p>The trial runs for 30 days from signup and there is one way to start it: sign up. No credit card is needed to start.</p>
<p>The trial has no backups, no domain mapping and no module installation.</p>
</div>
<div class="legal-card">
<h2>Price and payment</h2>
<p>Plans are billed yearly, in advance, in US dollars, tax included &mdash; the price you see is the price you pay. Payment is taken by card through Stripe. The current prices are the ones on the pricing page.</p>
</div>
<div class="legal-card">
<h2>Cancelling</h2>
<p>You can cancel at any time. Cancelling stops the next renewal, and we refund the time you have not used &mdash; the part of the period you have paid for that is still ahead of you, pro rata against the period you paid for.</p>
</div>
<div class="legal-card">
<h2>Version upgrades and migrations</h2>
<p>Updates and upgrades within your current Odoo version are included in your plan. Moving a database to a new major Odoo version is a migration: it is a separate service and is quoted separately, so ask our support team for a quote. Our migration service covers databases on the main Odoo releases 17, 18 and 19. New instances can run Odoo 20, the current release. We do not support patch releases such as 18.1.</p>
</div>
<div class="legal-card">
<h2>Your data</h2>
<p>Your data is yours. You can export it from your instance at any time. We hold it only to run the service for you, as described in the <a href="privacy.html">Privacy Policy</a>.</p>
</div>
<div class="legal-card">
<h2>What you must not do</h2>
<p>Do not use the service for anything unlawful, do not resell it as your own, and do not attempt to interfere with the platform or with other customers' instances.</p>
</div>
<div class="legal-card">
<h2>Availability and maintenance</h2>
<p>The service needs restarts, patches and maintenance from time to time. We keep interruptions as short as we can and we do not promise a fixed uptime figure.</p>
</div>
<div class="legal-card">
<h2>Changes to these terms</h2>
<p>We update these terms when the service changes. The date at the top changes with them.</p>
</div>
<div class="legal-card">
<h2>Governing law</h2>
<p>These terms are governed by the laws of the State of Wyoming, United States.</p>
</div>
</div>
</section>
</main>
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
</body>
</html>