Public Access
A filtered-out directory card stayed visible. The card is targeted by an
id-based ready-state selector (`.js #directory[data-dir-state="ready"]
#dirGrid > .dev-card`, two ids), which outranked the old per-element patch
`.dev-card[hidden] { display:none }` — so `card.hidden = true` set the
attribute and every card stayed on screen while the count line correctly
read "Showing 1 of 4".
Fix: one rule, `[hidden] { display:none !important }`, early in /style.css.
A class- or id-based `display` can no longer beat the attribute, so this
cannot recur with the next class that sets `display`. The per-element
`[hidden]` patches are removed so a single mechanism governs:
- odoo-community-developers: cards + filter row + pager + modal
(load-bearing — each sets `display`); focus-sliders/noscript (redundant)
- index/de/es `.hero-notice[hidden]`, odoo-black-friday `.ads-consent[hidden]`
(redundant — those elements set no `display`)
Re-fingerprint local assets (style.css changed): /style.css?v 3332fbba93 ->
061517baef across 51 pages.
Measured in a real browser (local harness, stubbed webhook; no record created,
no probe write) — computed display + geometry, never the `hidden` property:
- filtered to one card: the other three report display:none and height 0;
the visible set (1) equals the count line ("Showing 1 of 4") — 1 == 1
- HEAD (pre-fix) reproduces the defect: 3 cards hidden=true yet display:flex,
height 599.38 each; 4 visible vs the count's 1
- pager: display:none height 0 with one page; display:flex height 66.83 with
12 cards (Page 1 of 2); page 2 hides page-1 cards (display:none)
- modals closed: display:none height 0; load state: cards 0, pager/empty
display:none, filter row visibility:hidden by design
- 375 px: same result, no horizontal overflow; avatar ask-row top identical
across a row (2053.97 / links 2086.91)
211 lines
9.8 KiB
HTML
211 lines
9.8 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="Privacy Policy for ODOO4projects LLC — what data we hold, where your instance runs, and how to reach us."
|
|
/>
|
|
<title>Privacy Policy | ODOO4projects</title>
|
|
<link rel="canonical" href="https://odoo4projects.com/privacy.html" />
|
|
<meta property="og:title" content="Privacy Policy | ODOO4projects" />
|
|
<meta property="og:description" content="What data ODOO4projects holds and why." />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://odoo4projects.com/privacy.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=061517baef" />
|
|
<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">← Back to Home</a>
|
|
</div>
|
|
</div>
|
|
|
|
<section class="legal-hero">
|
|
<div class="container">
|
|
<h1>Privacy Policy</h1>
|
|
<p style="margin-top: 0.5rem; color: rgba(33, 37, 41, 0.6); font-size: 0.85rem;">
|
|
Last updated 2026-11-02
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="legal-section">
|
|
<div class="container">
|
|
<div class="legal-card">
|
|
<h2>Who we are</h2>
|
|
<p><strong>ODOO4projects LLC</strong></p>
|
|
<p class="address">
|
|
30 N Gould St, STE R, Sheridan<br />
|
|
WY 82801, USA
|
|
</p>
|
|
<p>Contact: <span class="contact-email">support@odoo4projects.com</span></p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>What we hold</h2>
|
|
<p><strong>Account details you give us:</strong> your name, your company name, and your email address.</p>
|
|
<p><strong>Service details:</strong> the plan you bought, the region you chose, and your instance address.</p>
|
|
<p><strong>Payment records:</strong> invoices and their payment status.</p>
|
|
<p><strong>Support messages:</strong> what you send us, and our replies.</p>
|
|
<p>Card details are entered on Stripe's checkout page. We do not receive or store your card number.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Why we hold it</h2>
|
|
<p>To create and run your instance, to invoice you, to answer your support requests, and to email you about your account.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Where your instance runs</h2>
|
|
<p>You choose the region when you sign up. The regions we offer are Amsterdam, Boston, Manchester, Mumbai, São Paulo and Sydney. Your instance and its data run in the region you chose.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Backups</h2>
|
|
<p>How many backups we keep depends on your plan: one rotating slot on Side Hustle, four on On the Rise and Powerhouse. Slots work first-in, first-out. When the slots are full, the oldest backup is overwritten and permanently deleted. We keep no separate copy.</p>
|
|
<p>The free trial has no backups.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>The assistant on this website</h2>
|
|
<p>Our homepage carries an AI assistant that answers questions and can pass a request to a person. Do not enter confidential information into it.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Other services our pages load</h2>
|
|
<p>Our pages load Stripe (payments), Google Fonts, Font Awesome, GSAP, and our own agent widget from our server. Like any website, these requests can see the IP address your browser connects from.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Advertising cookies</h2>
|
|
<p>On our Black Friday page we would like to measure our advertising with Google Ads. This is optional, and it is off until you turn it on.</p>
|
|
<p>If you accept, the Google Ads tag loads and sets advertising cookies (named <strong>_gcl_au</strong> and <strong>_gcl_aw</strong>). They let Google tell us which ad or search led to a visit, so we spend our budget on the ads that work. They do not change what you pay, and we do not sell your data.</p>
|
|
<p>If you decline, the tag does not load and those cookies are not set. The page works the same either way. You can change your choice at any time with the “Cookie settings” link in the footer of the Black Friday page, or by clearing cookies in your browser.</p>
|
|
<p>Our privacy-friendly analytics are separate: they set no cookies and collect no personal data.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Email</h2>
|
|
<p>We email you about your account, your invoices and your service. Marketing email carries an unsubscribe link, and unsubscribing does not stop service email about an active account.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>What we do not do</h2>
|
|
<p>We do not sell your data. We run no affiliate programme and we pay no commission to anyone who recommends us.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Your requests</h2>
|
|
<p>Ask us for a copy of your data, a correction, or deletion at <span class="contact-email">support@odoo4projects.com</span>. If your account is active, deletion ends the service. We keep invoice records for as long as accounting rules require them.</p>
|
|
</div>
|
|
|
|
<div class="legal-card">
|
|
<h2>Changes</h2>
|
|
<p>We update this page when the facts change. The date at the top changes with it.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
</main>
|
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
|
</body>
|
|
</html>
|