2358 lines
90 KiB
HTML
2358 lines
90 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="Odoo hosting, AI consulting and N8N automation. Reliable Odoo CE and Enterprise hosting with expert support, custom modules, and smart workflows."
|
|
/>
|
|
<title>
|
|
ODOO4projects | Odoo Hosting, AI Consulting & N8N Automation
|
|
</title>
|
|
<link rel="canonical" href="https://ODOO4projects.com/" />
|
|
<meta
|
|
property="og:title"
|
|
content="ODOO4projects | Odoo Hosting, AI Consulting & N8N Automation"
|
|
/>
|
|
<meta
|
|
property="og:description"
|
|
content="Odoo hosting, AI consulting and N8N automation. Reliable Odoo CE and Enterprise hosting with expert support, custom modules, and smart workflows."
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://ODOO4projects.com/" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<link rel="icon" href="images/favicon.ico" />
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Organization",
|
|
"name": "ODOO4projects",
|
|
"url": "https://ODOO4projects.com/",
|
|
"description": "Odoo hosting, AI consulting and N8N automation. Reliable Odoo CE and Enterprise hosting.",
|
|
"foundingDate": "2020",
|
|
"contactPoint": {
|
|
"@type": "ContactPoint",
|
|
"contactType": "customer support",
|
|
"url": "https://ODOO4projects.com/contactus"
|
|
},
|
|
"sameAs": ["https://www.linkedin.com/company/odooprojects"]
|
|
}
|
|
</script>
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "WebSite",
|
|
"name": "ODOO4projects",
|
|
"url": "https://ODOO4projects.com/"
|
|
}
|
|
</script>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link
|
|
rel="preload"
|
|
as="style"
|
|
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="preload"
|
|
as="style"
|
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
|
/>
|
|
<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"
|
|
media="print"
|
|
onload="this.media = 'all'"
|
|
/>
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
|
media="print"
|
|
onload="this.media = 'all'"
|
|
/>
|
|
<style>
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
body {
|
|
margin: 0;
|
|
font-family: Inter, sans-serif;
|
|
font-size: 0.8rem;
|
|
line-height: 1.6;
|
|
color: #212529;
|
|
background: #fff;
|
|
}
|
|
h1,
|
|
h2,
|
|
h3 {
|
|
font-family:
|
|
Inter Tight,
|
|
sans-serif;
|
|
font-weight: 600;
|
|
line-height: 1.25;
|
|
margin-top: 0;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
h1 {
|
|
font-size: clamp(1.44rem, 3.2vw, 2.24rem);
|
|
}
|
|
h2 {
|
|
font-size: clamp(1.2rem, 2.56vw, 1.76rem);
|
|
}
|
|
h3 {
|
|
font-size: clamp(0.96rem, 2vw, 1.28rem);
|
|
}
|
|
p {
|
|
margin-top: 0;
|
|
margin-bottom: 1rem;
|
|
}
|
|
a {
|
|
color: #65435c;
|
|
text-decoration: none;
|
|
}
|
|
img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
vertical-align: middle;
|
|
}
|
|
:root {
|
|
--primary: #714b67;
|
|
--secondary: #f0cda8;
|
|
--dark: #1b1319;
|
|
--light: #f6f5f4;
|
|
--border: #e5e3e0;
|
|
--radius: 0.6rem;
|
|
--radius-lg: 1rem;
|
|
}
|
|
.container {
|
|
width: 80%;
|
|
padding: 0 20px;
|
|
margin: 0 auto;
|
|
max-width: 1300px;
|
|
}
|
|
@media (max-width: 768px) {
|
|
.container {
|
|
max-width: 100%;
|
|
}
|
|
}
|
|
.row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
margin: 0 -15px;
|
|
}
|
|
.col-lg-5 {
|
|
flex: 0 0 41.666%;
|
|
max-width: 41.666%;
|
|
padding: 0 15px;
|
|
}
|
|
.col-lg-6 {
|
|
flex: 0 0 50%;
|
|
max-width: 50%;
|
|
padding: 0 15px;
|
|
}
|
|
.col-lg-10 {
|
|
flex: 0 0 83.333%;
|
|
max-width: 83.333%;
|
|
padding: 0 15px;
|
|
}
|
|
.offset-lg-1 {
|
|
margin-left: 8.333%;
|
|
}
|
|
.offset-lg-6 {
|
|
margin-left: 50%;
|
|
}
|
|
@media (max-width: 992px) {
|
|
.col-lg-5,
|
|
.col-lg-6,
|
|
.col-lg-10 {
|
|
flex: 0 0 100%;
|
|
max-width: 100%;
|
|
}
|
|
.offset-lg-1,
|
|
.offset-lg-6 {
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
.text-center {
|
|
text-align: center;
|
|
}
|
|
.d-none {
|
|
display: none !important;
|
|
}
|
|
.d-flex {
|
|
display: flex;
|
|
}
|
|
.align-items-center {
|
|
align-items: center;
|
|
}
|
|
.mb-4 {
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
.mt-3 {
|
|
margin-top: 1rem;
|
|
}
|
|
.btn {
|
|
display: inline-block;
|
|
padding: 0.5rem 1.3rem;
|
|
font-size: 0.72rem;
|
|
font-weight: 500;
|
|
border: 1px solid transparent;
|
|
border-radius: 0.5rem;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
transition: all 0.2s;
|
|
}
|
|
.btn-primary {
|
|
color: #fff;
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
}
|
|
.btn-primary:hover {
|
|
background: #5e3f55;
|
|
border-color: #5e3f55;
|
|
transform: translateY(-1px);
|
|
}
|
|
.btn-outline-primary {
|
|
color: #65435c;
|
|
border-color: #65435c;
|
|
background: transparent;
|
|
}
|
|
.btn-outline-primary:hover {
|
|
color: #fff;
|
|
background: #65435c;
|
|
border-color: #65435c;
|
|
}
|
|
.btn-lg {
|
|
padding: 0.75rem 2rem;
|
|
font-size: 0.84rem;
|
|
border-radius: 2rem;
|
|
}
|
|
.hr {
|
|
width: 3.5rem;
|
|
height: 3px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
var(--primary),
|
|
var(--secondary)
|
|
);
|
|
border-radius: 2px;
|
|
margin: 0 auto 1rem;
|
|
}
|
|
.hero-carousel {
|
|
position: relative;
|
|
overflow: hidden;
|
|
min-height: 400px;
|
|
}
|
|
.hero-slide {
|
|
position: absolute;
|
|
inset: 0;
|
|
min-height: 400px;
|
|
display: flex;
|
|
align-items: center;
|
|
background-size: cover;
|
|
background-position: center;
|
|
transform: translateY(-100%);
|
|
opacity: 0;
|
|
transition:
|
|
transform 0.5s ease,
|
|
opacity 0.5s ease;
|
|
z-index: 1;
|
|
}
|
|
.hero-slide.active {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
z-index: 2;
|
|
}
|
|
.hero-slide.prev {
|
|
transform: translateY(100%);
|
|
opacity: 0;
|
|
z-index: 1;
|
|
}
|
|
.hero-slide::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background: none;
|
|
}
|
|
.hero-box {
|
|
position: relative;
|
|
z-index: 2;
|
|
padding: 1.5rem;
|
|
border-radius: var(--radius);
|
|
background: rgba(27, 19, 25, 0.75);
|
|
color: #fff;
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
}
|
|
.hero-box h2 {
|
|
color: #fff;
|
|
font-size: clamp(1rem, 2.2vw, 1.4rem);
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
.hero-box p {
|
|
color: rgba(255, 255, 255, 0.9);
|
|
font-size: 0.75rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
.carousel-dots {
|
|
position: absolute;
|
|
bottom: 1rem;
|
|
left: 0;
|
|
right: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 0.5rem;
|
|
z-index: 3;
|
|
}
|
|
.carousel-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
border: none;
|
|
background: rgba(255, 255, 255, 0.35);
|
|
cursor: pointer;
|
|
transition: all 0.3s;
|
|
}
|
|
.carousel-dot.active {
|
|
background: rgba(255, 255, 255, 0.8);
|
|
transform: scale(1.2);
|
|
}
|
|
.arrow {
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
z-index: 3;
|
|
background: rgba(27, 19, 25, 0.5);
|
|
color: #fff;
|
|
border: none;
|
|
width: 2.5rem;
|
|
height: 2.5rem;
|
|
border-radius: 50%;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.2s;
|
|
}
|
|
.arrow:hover {
|
|
background: rgba(27, 19, 25, 0.8);
|
|
transform: translateY(-50%) scale(1.05);
|
|
}
|
|
.arrow.left {
|
|
left: 1rem;
|
|
}
|
|
.arrow.right {
|
|
right: 1rem;
|
|
}
|
|
@media (max-width: 768px) {
|
|
.arrow {
|
|
display: none;
|
|
}
|
|
}
|
|
.stitle {
|
|
text-align: center;
|
|
padding: 2rem 0;
|
|
}
|
|
.stitle h1 {
|
|
font-size: clamp(1.12rem, 2.4vw, 1.6rem);
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
color: var(--dark);
|
|
}
|
|
.tabs-section {
|
|
padding: 2rem 0;
|
|
}
|
|
.tabs-wrap {
|
|
display: flex;
|
|
gap: 2rem;
|
|
}
|
|
.tabs-nav {
|
|
flex: 0 0 220px;
|
|
max-width: 220px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.25rem;
|
|
}
|
|
.tabs-content {
|
|
flex: 1;
|
|
min-height: 200px;
|
|
font-size: 0.84rem;
|
|
line-height: 1.7;
|
|
}
|
|
.tab-btn {
|
|
display: block;
|
|
padding: 0.6rem 1rem;
|
|
color: #212529;
|
|
border-radius: var(--radius);
|
|
border: none;
|
|
background: none;
|
|
width: 100%;
|
|
text-align: left;
|
|
font-size: 0.76rem;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
.tab-btn:hover {
|
|
background: var(--light);
|
|
}
|
|
.tab-btn.active {
|
|
background: linear-gradient(
|
|
135deg,
|
|
rgba(113, 75, 103, 0.08),
|
|
rgba(113, 75, 103, 0.03)
|
|
);
|
|
color: var(--primary);
|
|
font-weight: 600;
|
|
border-left: 3px solid var(--primary);
|
|
}
|
|
.tab-btn small {
|
|
display: block;
|
|
color: rgba(33, 37, 41, 0.55);
|
|
font-size: 0.64rem;
|
|
margin-top: 0.1rem;
|
|
}
|
|
.tab-btn.active small {
|
|
color: rgba(113, 75, 103, 0.6);
|
|
}
|
|
.tab-pane {
|
|
display: none;
|
|
}
|
|
.tab-pane.active {
|
|
display: block;
|
|
}
|
|
@media (max-width: 992px) {
|
|
.tabs-wrap {
|
|
flex-direction: column;
|
|
}
|
|
.tabs-nav {
|
|
flex: 0 0 100%;
|
|
max-width: 100%;
|
|
flex-direction: row;
|
|
overflow-x: auto;
|
|
padding-bottom: 0.5rem;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
.tab-btn {
|
|
white-space: nowrap;
|
|
width: auto;
|
|
border-left: none;
|
|
}
|
|
.tab-btn.active {
|
|
border-left: none;
|
|
border-bottom: 3px solid var(--primary);
|
|
}
|
|
.tab-btn small {
|
|
display: none;
|
|
}
|
|
.tabs-content {
|
|
flex: 0 0 100%;
|
|
max-width: 100%;
|
|
}
|
|
}
|
|
.psection {
|
|
padding: 2rem 0;
|
|
background: var(--light);
|
|
}
|
|
.pgrid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 1rem;
|
|
}
|
|
.pcard {
|
|
background: #fff;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
transition: all 0.3s;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
|
|
}
|
|
.pcard:hover {
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
|
|
transform: translateY(-3px);
|
|
}
|
|
.pcard.featured {
|
|
border: 2px solid var(--primary);
|
|
position: relative;
|
|
}
|
|
.pcard.featured::before {
|
|
content: "Most Popular";
|
|
position: absolute;
|
|
top: 0.75rem;
|
|
right: 0.75rem;
|
|
background: var(--primary);
|
|
color: #fff;
|
|
padding: 0.2rem 0.6rem;
|
|
border-radius: 2rem;
|
|
font-size: 0.6rem;
|
|
font-weight: 600;
|
|
}
|
|
.pcard-body {
|
|
padding: 1.25rem;
|
|
flex: 1;
|
|
}
|
|
.pcard-body h3 {
|
|
font-size: 0.92rem;
|
|
font-weight: 700;
|
|
}
|
|
.pcard .price {
|
|
margin: 0.5rem 0;
|
|
}
|
|
.pcard .price strong {
|
|
font-size: clamp(1.28rem, 2vw, 1.92rem);
|
|
color: var(--dark);
|
|
}
|
|
.pcard .price small {
|
|
color: rgba(33, 37, 41, 0.55);
|
|
font-size: 0.68rem;
|
|
}
|
|
.pcard .desc {
|
|
font-size: 0.68rem;
|
|
color: rgba(33, 37, 41, 0.6);
|
|
min-height: 2rem;
|
|
font-style: italic;
|
|
}
|
|
.pcard .btn {
|
|
margin-bottom: 0.75rem;
|
|
width: 100%;
|
|
}
|
|
.pcard ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
.pcard li {
|
|
padding: 0.4rem 0;
|
|
font-size: 0.68rem;
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.4rem;
|
|
}
|
|
.pcard li:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
.pcard-foot {
|
|
padding: 0.6rem 1.25rem;
|
|
text-align: center;
|
|
border-top: 1px solid var(--border);
|
|
font-size: 0.64rem;
|
|
color: rgba(33, 37, 41, 0.55);
|
|
}
|
|
@media (max-width: 992px) {
|
|
.pgrid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
@media (max-width: 576px) {
|
|
.pgrid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
.trial {
|
|
padding: 3rem 0;
|
|
background: linear-gradient(135deg, #1b1319, #2a1d27);
|
|
color: #fff;
|
|
}
|
|
.trial h2 {
|
|
color: #fff;
|
|
}
|
|
.trial p {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
}
|
|
.abanner {
|
|
padding: 2rem 0;
|
|
text-align: center;
|
|
background: #fff;
|
|
}
|
|
.abanner h2 {
|
|
font-size: clamp(1.12rem, 2.4vw, 1.6rem) !important;
|
|
max-width: 700px;
|
|
margin: 0 auto 0.5rem;
|
|
}
|
|
.footer {
|
|
background: var(--dark);
|
|
color: rgba(255, 255, 255, 0.85);
|
|
padding-top: 3rem;
|
|
}
|
|
.fgrid {
|
|
display: grid;
|
|
grid-template-columns: 1.5fr 3fr 3.5fr;
|
|
gap: 2rem;
|
|
padding-bottom: 2rem;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
|
}
|
|
.footer h5 {
|
|
color: #fff;
|
|
margin-bottom: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
.footer ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
.footer li {
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
.footer a {
|
|
color: rgba(255, 255, 255, 0.65);
|
|
transition: color 0.2s;
|
|
}
|
|
.footer a:hover {
|
|
color: #fff;
|
|
text-decoration: none;
|
|
}
|
|
.footer p {
|
|
color: rgba(255, 255, 255, 0.7);
|
|
font-size: 0.72rem;
|
|
line-height: 1.7;
|
|
}
|
|
.footer strong {
|
|
color: #fff;
|
|
}
|
|
.footer .social a {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 2.5rem;
|
|
height: 2.5rem;
|
|
border-radius: 50%;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: rgba(255, 255, 255, 0.7);
|
|
margin-right: 0.3rem;
|
|
transition: all 0.2s;
|
|
}
|
|
.footer .social a:hover {
|
|
background: var(--primary);
|
|
color: #fff;
|
|
}
|
|
.fform label {
|
|
font-weight: 500;
|
|
margin-bottom: 0.25rem;
|
|
display: block;
|
|
color: #fff;
|
|
}
|
|
.fform input {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 0.5rem 0.8rem;
|
|
font-size: 0.72rem;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
border-radius: 0.5rem;
|
|
color: #fff;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.fform input:focus {
|
|
outline: none;
|
|
border-color: var(--primary);
|
|
}
|
|
.fform input::placeholder {
|
|
color: rgba(255, 255, 255, 0.35);
|
|
}
|
|
.fcopy {
|
|
padding: 1rem 0;
|
|
text-align: center;
|
|
font-size: 0.68rem;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
}
|
|
@media (max-width: 992px) {
|
|
.fgrid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
.spinner-overlay {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--dark);
|
|
z-index: 5;
|
|
transition: opacity 0.5s;
|
|
}
|
|
.spinner-overlay.hidden {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
.spinner {
|
|
width: 2rem;
|
|
height: 2rem;
|
|
border: 3px solid rgba(255, 255, 255, 0.15);
|
|
border-top-color: #fff;
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
/* ---- Billing Toggle ---- */
|
|
.billing-toggle-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
.toggle-label {
|
|
font-size: 0.82rem;
|
|
font-weight: 500;
|
|
color: rgba(33, 37, 41, 0.6);
|
|
cursor: pointer;
|
|
transition: color 0.2s;
|
|
user-select: none;
|
|
}
|
|
.toggle-label.active {
|
|
color: var(--dark);
|
|
font-weight: 600;
|
|
}
|
|
.toggle-label small {
|
|
display: block;
|
|
font-size: 0.62rem;
|
|
font-weight: 400;
|
|
color: #28a745;
|
|
margin-top: 0.1rem;
|
|
}
|
|
.toggle-switch {
|
|
width: 48px;
|
|
height: 26px;
|
|
background: var(--border);
|
|
border-radius: 13px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
transition: background 0.25s;
|
|
flex-shrink: 0;
|
|
}
|
|
.toggle-switch.yearly {
|
|
background: var(--primary);
|
|
}
|
|
.toggle-switch .thumb {
|
|
position: absolute;
|
|
top: 3px;
|
|
left: 3px;
|
|
width: 20px;
|
|
height: 20px;
|
|
background: #fff;
|
|
border-radius: 50%;
|
|
transition: left 0.25s;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
|
}
|
|
.toggle-switch.yearly .thumb {
|
|
left: 25px;
|
|
}
|
|
.price-save {
|
|
font-size: 0.6rem;
|
|
font-weight: 700;
|
|
color: #28a745;
|
|
margin-top: 0.15rem;
|
|
}
|
|
.price-period {
|
|
color: rgba(33, 37, 41, 0.55);
|
|
font-size: 0.68rem;
|
|
}
|
|
/* ---- Blog Section ---- */
|
|
.blog-section {
|
|
padding: 3rem 0;
|
|
background: #08080c;
|
|
color: #e8e8f0;
|
|
}
|
|
.blog-section h2 {
|
|
color: #e8e8f0;
|
|
}
|
|
.blog-search-wrap {
|
|
max-width: 500px;
|
|
margin: 0 auto 2rem;
|
|
}
|
|
.blog-search {
|
|
width: 100%;
|
|
padding: 0.75rem 1rem;
|
|
font-size: 0.85rem;
|
|
background: #1a1a2e;
|
|
border: 1px solid #2a2a4e;
|
|
border-radius: 0.5rem;
|
|
color: #e8e8f0;
|
|
font-family: Inter, sans-serif;
|
|
transition: border-color 0.2s;
|
|
outline: none;
|
|
}
|
|
.blog-search:focus {
|
|
border-color: #00f5ff;
|
|
box-shadow: 0 0 0 2px rgba(0, 245, 255, 0.15);
|
|
}
|
|
.blog-search::placeholder {
|
|
color: rgba(232, 232, 240, 0.35);
|
|
}
|
|
.blog-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 1.25rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
@media (max-width: 992px) {
|
|
.blog-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
@media (max-width: 576px) {
|
|
.blog-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
.blog-card {
|
|
background: #12121c;
|
|
border: 1px solid #1a1a2e;
|
|
border-radius: 0.6rem;
|
|
padding: 1.25rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
transition:
|
|
transform 0.2s,
|
|
border-color 0.2s,
|
|
box-shadow 0.2s;
|
|
}
|
|
.blog-card:hover {
|
|
transform: translateY(-2px);
|
|
border-color: #00f5ff;
|
|
box-shadow: 0 4px 20px rgba(0, 245, 255, 0.08);
|
|
}
|
|
.blog-card-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.75rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
.blog-badge {
|
|
display: inline-block;
|
|
padding: 0.15rem 0.5rem;
|
|
border-radius: 3rem;
|
|
font-size: 0.6rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.04em;
|
|
text-transform: uppercase;
|
|
color: #08080c;
|
|
}
|
|
.blog-badge-speed-run {
|
|
background: #f472b6;
|
|
}
|
|
.blog-badge-guide {
|
|
background: #a78bfa;
|
|
}
|
|
.blog-badge-howto {
|
|
background: #00f5ff;
|
|
}
|
|
.blog-badge-news {
|
|
background: #ffaa00;
|
|
}
|
|
.blog-badge-default {
|
|
background: #a78bfa;
|
|
}
|
|
.blog-agent {
|
|
display: inline-block;
|
|
padding: 0.15rem 0.45rem;
|
|
border-radius: 3rem;
|
|
font-size: 0.56rem;
|
|
font-weight: 600;
|
|
background: rgba(0, 245, 255, 0.15);
|
|
color: #00f5ff;
|
|
border: 1px solid rgba(0, 245, 255, 0.25);
|
|
}
|
|
.blog-date {
|
|
font-size: 0.7rem;
|
|
color: rgba(232, 232, 240, 0.45);
|
|
margin-bottom: 0.4rem;
|
|
}
|
|
.blog-card h3 {
|
|
font-family: "Inter Tight", sans-serif;
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
margin: 0 0 0.5rem;
|
|
line-height: 1.35;
|
|
}
|
|
.blog-card h3 a {
|
|
color: #e8e8f0;
|
|
text-decoration: none;
|
|
transition: color 0.2s;
|
|
}
|
|
.blog-card h3 a:hover {
|
|
color: #00f5ff;
|
|
}
|
|
.blog-teaser {
|
|
font-size: 0.78rem;
|
|
color: rgba(232, 232, 240, 0.65);
|
|
line-height: 1.55;
|
|
margin-bottom: 1rem;
|
|
flex: 1;
|
|
}
|
|
.blog-readmore {
|
|
font-size: 0.75rem;
|
|
color: #00f5ff;
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
transition: opacity 0.2s;
|
|
margin-top: auto;
|
|
}
|
|
.blog-readmore:hover {
|
|
opacity: 0.75;
|
|
}
|
|
.blog-empty {
|
|
grid-column: 1 / -1;
|
|
text-align: center;
|
|
padding: 2rem;
|
|
color: rgba(232, 232, 240, 0.5);
|
|
font-size: 0.9rem;
|
|
}
|
|
.blog-pagination {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.75rem;
|
|
padding: 1rem 0;
|
|
}
|
|
.blog-page-btn {
|
|
padding: 0.4rem 1rem;
|
|
font-size: 0.78rem;
|
|
background: #12121c;
|
|
border: 1px solid #1a1a2e;
|
|
border-radius: 0.4rem;
|
|
color: #e8e8f0;
|
|
cursor: pointer;
|
|
font-family: Inter, sans-serif;
|
|
transition:
|
|
border-color 0.2s,
|
|
background 0.2s;
|
|
}
|
|
.blog-page-btn:hover:not(:disabled) {
|
|
border-color: #00f5ff;
|
|
background: rgba(0, 245, 255, 0.08);
|
|
}
|
|
.blog-page-btn:disabled {
|
|
opacity: 0.3;
|
|
cursor: default;
|
|
}
|
|
.blog-page-info {
|
|
font-size: 0.78rem;
|
|
color: rgba(232, 232, 240, 0.55);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="hero-carousel" id="hc">
|
|
<div class="spinner-overlay" id="spinner">
|
|
<div style="text-align: center">
|
|
<div class="spinner" style="margin: 0 auto 1rem"></div>
|
|
<p
|
|
style="
|
|
margin: 0;
|
|
font-size: 0.7rem;
|
|
color: rgba(255, 255, 255, 0.6);
|
|
"
|
|
>
|
|
Loading…
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
class="hero-slide active"
|
|
style="background-image: url("images/holland.webp")"
|
|
data-idx="0"
|
|
>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-5">
|
|
<div class="hero-box">
|
|
<h2>Try ODOO 4 weeks for free</h2>
|
|
<p>
|
|
Curious about Odoo 19 or testing our
|
|
service? Explore everything with a 4-week
|
|
free trial — no credit card required!
|
|
</p>
|
|
<p>
|
|
<a
|
|
class="btn btn-primary btn-lg"
|
|
href="javascript:void(0)"
|
|
onclick="
|
|
openOrderWidget(
|
|
'On the Rise',
|
|
36.21,
|
|
395.0,
|
|
false,
|
|
)
|
|
"
|
|
>Try Now</a
|
|
>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
class="hero-slide"
|
|
style="
|
|
background-image: url("images/brazil.webp");
|
|
background-position: 50% 100%;
|
|
"
|
|
data-idx="1"
|
|
>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-5">
|
|
<div class="hero-box">
|
|
<h2>
|
|
Startup challenge!<br />From Zero to ERP in
|
|
3 Month
|
|
</h2>
|
|
<p>
|
|
With our consulting and training partners
|
|
over at OD8N we offer a compelling hands on
|
|
workshop for startups. Our ODOO 19 and N8N
|
|
hosting
|
|
<strong>included for a year</strong>.
|
|
</p>
|
|
<p>
|
|
<a
|
|
class="btn btn-primary"
|
|
href="/odoo-erp-automation-bootcamp"
|
|
>More Info</a
|
|
>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
class="hero-slide"
|
|
style="background-image: url("images/india.webp")"
|
|
data-idx="2"
|
|
>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-6 offset-lg-6">
|
|
<div class="hero-box" style="text-align: center">
|
|
<h2>Turn Your Network into Income</h2>
|
|
<hr
|
|
style="
|
|
width: 3rem;
|
|
margin: 0.5rem auto;
|
|
border-color: rgba(255, 255, 255, 0.2);
|
|
"
|
|
/>
|
|
<p>
|
|
Promote AI-powered tools and hosting
|
|
solutions your audience already loves
|
|
— earn up to 25% commissions with
|
|
ready-to-use materials, instant setup and an
|
|
interesting target audience!
|
|
</p>
|
|
<p>
|
|
<a
|
|
class="btn btn-primary"
|
|
href="/affiliates"
|
|
>More Info</a
|
|
>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
class="hero-slide"
|
|
style="
|
|
background-image: url("images/england.webp");
|
|
background-position: 50% 15.6182%;
|
|
"
|
|
data-idx="3"
|
|
>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="hero-box">
|
|
<h2>Supercharge ODOO with N8N Automations</h2>
|
|
<p>
|
|
Copy our automated invoice workflow —
|
|
generate invoices with payment links in ODOO
|
|
instantly. Just set up a server and our
|
|
modules, and you’re ready to go.
|
|
</p>
|
|
<p>
|
|
Want to see how it works? Just buy a hosting
|
|
pack and you will be seeing it.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="carousel-dots">
|
|
<button
|
|
class="carousel-dot active"
|
|
onclick="goSlide(0)"
|
|
aria-label="1"
|
|
></button>
|
|
<button
|
|
class="carousel-dot"
|
|
onclick="goSlide(1)"
|
|
aria-label="2"
|
|
></button>
|
|
<button
|
|
class="carousel-dot"
|
|
onclick="goSlide(2)"
|
|
aria-label="3"
|
|
></button>
|
|
<button
|
|
class="carousel-dot"
|
|
onclick="goSlide(3)"
|
|
aria-label="4"
|
|
></button>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
id="orderWidgetOverlay"
|
|
style="
|
|
display: none;
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 999;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
align-items: center;
|
|
justify-content: center;
|
|
"
|
|
>
|
|
<!-- Buy Panel (shown on manual button clicks) -->
|
|
<div id="orderPanelBuy" style="display: none">
|
|
<div
|
|
style="
|
|
background: #fff;
|
|
border-radius: 1rem;
|
|
max-width: 460px;
|
|
width: 90%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
"
|
|
>
|
|
<button
|
|
onclick="closeOrderWidget()"
|
|
style="
|
|
position: absolute;
|
|
top: 0.75rem;
|
|
right: 0.75rem;
|
|
z-index: 10;
|
|
background: #fff;
|
|
border: none;
|
|
width: 2.4rem;
|
|
height: 2.4rem;
|
|
border-radius: 50%;
|
|
cursor: pointer;
|
|
font-size: 1.3rem;
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
color: #555;
|
|
"
|
|
>
|
|
×
|
|
</button>
|
|
<div style="padding: 2rem">
|
|
<h2
|
|
style="
|
|
font-size: clamp(1rem, 2vw, 1.24rem);
|
|
margin-bottom: 0.5rem;
|
|
color: #1b1319;
|
|
"
|
|
id="orderPlanTitle"
|
|
>
|
|
On the Rise
|
|
</h2>
|
|
<p
|
|
style="
|
|
font-size: 0.8rem;
|
|
color: rgba(33, 37, 41, 0.6);
|
|
margin-bottom: 1rem;
|
|
"
|
|
>
|
|
<span id="orderPlanPrice">$ 36.21</span>
|
|
<span id="orderPlanPeriod">/ month</span>
|
|
<span
|
|
id="orderPlanTax"
|
|
style="
|
|
font-size: 0.7rem;
|
|
color: rgba(33, 37, 41, 0.45);
|
|
"
|
|
>
|
|
+ tax</span
|
|
>
|
|
</p>
|
|
<p
|
|
id="orderCouponMsg"
|
|
style="
|
|
font-size: 0.78rem;
|
|
color: #28a745;
|
|
margin-bottom: 1rem;
|
|
display: none;
|
|
"
|
|
>
|
|
Use coupon <strong>FREE TRIAL</strong> at checkout
|
|
for 1 month free
|
|
</p>
|
|
<p
|
|
id="orderYearlySave"
|
|
style="
|
|
font-size: 0.78rem;
|
|
color: #28a745;
|
|
margin-bottom: 1rem;
|
|
display: none;
|
|
"
|
|
>
|
|
Save <span id="orderSavePercent">15</span>% with
|
|
yearly billing
|
|
</p>
|
|
<label
|
|
style="
|
|
font-size: 0.78rem;
|
|
font-weight: 500;
|
|
display: block;
|
|
margin-bottom: 0.25rem;
|
|
color: #1b1319;
|
|
"
|
|
>Server Location</label
|
|
>
|
|
<select
|
|
id="orderServerLocation"
|
|
style="
|
|
width: 100%;
|
|
padding: 0.6rem 0.8rem;
|
|
font-size: 0.82rem;
|
|
border: 1px solid #e5e3e0;
|
|
border-radius: 0.5rem;
|
|
background: #fff;
|
|
color: #1b1319;
|
|
margin-bottom: 1.5rem;
|
|
font-family: Inter, sans-serif;
|
|
cursor: pointer;
|
|
"
|
|
>
|
|
<option value="USA">
|
|
🇺🇸 United States
|
|
</option>
|
|
<option value="Brazil">
|
|
🇧🇷 Brazil
|
|
</option>
|
|
<option value="India">
|
|
🇮🇳 India
|
|
</option>
|
|
<option value="Australia">
|
|
🇦🇺 Australia
|
|
</option>
|
|
<option value="Netherlands">
|
|
🇳🇱 Netherlands
|
|
</option>
|
|
<option value="UK">
|
|
🇬🇧 United Kingdom
|
|
</option>
|
|
</select>
|
|
<a
|
|
id="orderBuyBtn"
|
|
href="/contactus"
|
|
class="btn btn-primary btn-lg"
|
|
style="
|
|
width: 100%;
|
|
text-align: center;
|
|
display: block;
|
|
"
|
|
>
|
|
Continue to Stripe →
|
|
</a>
|
|
<p
|
|
style="
|
|
font-size: 0.68rem;
|
|
color: rgba(33, 37, 41, 0.45);
|
|
text-align: center;
|
|
margin-top: 0.6rem;
|
|
"
|
|
>
|
|
🔒 Secure Stripe checkout · Credit
|
|
card required
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Free Trial Panel (shown on automatic scroll popup) -->
|
|
<div id="orderPanelTrial" style="display: none">
|
|
<div
|
|
style="
|
|
background: #fff;
|
|
border-radius: 1rem;
|
|
max-width: 460px;
|
|
width: 90%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
text-align: center;
|
|
"
|
|
>
|
|
<button
|
|
onclick="closeOrderWidget()"
|
|
style="
|
|
position: absolute;
|
|
top: 0.75rem;
|
|
right: 0.75rem;
|
|
z-index: 10;
|
|
background: #fff;
|
|
border: none;
|
|
width: 2.4rem;
|
|
height: 2.4rem;
|
|
border-radius: 50%;
|
|
cursor: pointer;
|
|
font-size: 1.3rem;
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
color: #555;
|
|
"
|
|
>
|
|
×
|
|
</button>
|
|
<div style="padding: 2rem 2rem 1.5rem">
|
|
<h2
|
|
style="
|
|
font-size: clamp(1rem, 2vw, 1.24rem);
|
|
margin-bottom: 0.5rem;
|
|
color: #1b1319;
|
|
"
|
|
>
|
|
Start your 4 weeks free ODOO 19 trial
|
|
</h2>
|
|
<p
|
|
style="
|
|
font-size: 0.8rem;
|
|
color: rgba(33, 37, 41, 0.7);
|
|
margin-bottom: 1.5rem;
|
|
"
|
|
>
|
|
Credit card required · Cancel anytime
|
|
</p>
|
|
<a
|
|
href="javascript:void(0)"
|
|
class="btn btn-primary btn-lg"
|
|
onclick="switchToBuyPanel()"
|
|
style="
|
|
background: #714b67;
|
|
border-color: #714b67;
|
|
color: #fff;
|
|
display: inline-block;
|
|
"
|
|
>Select a Plan</a
|
|
>
|
|
<p
|
|
style="
|
|
font-size: 0.68rem;
|
|
color: rgba(33, 37, 41, 0.45);
|
|
margin-top: 0.8rem;
|
|
"
|
|
>
|
|
🔒 Secure · No commitment
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<section class="stitle">
|
|
<div class="container">
|
|
<div class="hr"></div>
|
|
<h1>
|
|
Effortless Odoo Community Hosting with AI-Powered Automation
|
|
— Scale Your Business Seamlessly
|
|
</h1>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="tabs-section">
|
|
<div class="container">
|
|
<div class="tabs-wrap">
|
|
<nav class="tabs-nav">
|
|
<button class="tab-btn active" data-t="tab1">
|
|
Our process innovation
|
|
<small>We practice what we preach</small>
|
|
</button>
|
|
<button class="tab-btn" data-t="tab2">
|
|
Our competitive advantages
|
|
<small>Why are we here to stay</small>
|
|
</button>
|
|
<button class="tab-btn" data-t="tab3">
|
|
Grow with us
|
|
<small>Our technology lets us grow with you</small>
|
|
</button>
|
|
<button class="tab-btn" data-t="tab4">
|
|
Affiliates <small>Earn while you sleep</small>
|
|
</button>
|
|
<button class="tab-btn" data-t="tab5">
|
|
FAQ
|
|
<small
|
|
>Here you find answers to your questions</small
|
|
>
|
|
</button>
|
|
</nav>
|
|
<div class="tabs-content">
|
|
<div class="tab-pane active" id="tab1">
|
|
<p>
|
|
We believe in ODOO as a stable,
|
|
<strong>battle-proven</strong> ERP platform with
|
|
countless integrations. This gives us a solid
|
|
foundation to build on.
|
|
</p>
|
|
<p>
|
|
On top of this, we enhance the system with
|
|
modern <strong>AI tooling</strong> via N8N,
|
|
enabling us to create entirely new business
|
|
processes from scratch.
|
|
</p>
|
|
<p>
|
|
<strong>We practice what we preach:</strong> our
|
|
website has no traditional shop. The entire
|
|
sales process is powered by N8N, while ODOO
|
|
handles only invoicing and payment processing,
|
|
proving that automation and ERP can seamlessly
|
|
work together.
|
|
</p>
|
|
</div>
|
|
<div class="tab-pane" id="tab2">
|
|
<h3><em>Our Competitive Advantages</em></h3>
|
|
<p>
|
|
🌎 <strong>Promotion of ODOO CE</strong
|
|
><br />Keep costs low while bootstrapping;
|
|
upgrade to Enterprise as you grow.
|
|
</p>
|
|
<p>
|
|
🤖
|
|
<strong>Advanced N8N & AI Automation</strong
|
|
><br />Automate servers, sales, and marketing to
|
|
boost efficiency and reduce errors.
|
|
</p>
|
|
<p>
|
|
✈️
|
|
<strong>Direct International Rollout</strong
|
|
><br />Easily scale your operations and launch
|
|
globally without friction.
|
|
</p>
|
|
</div>
|
|
<div class="tab-pane" id="tab3">
|
|
<p>
|
|
We are not the best hardware data center
|
|
managers — and we don’t try to be.
|
|
</p>
|
|
<p>
|
|
Instead, we purchase compute from the
|
|
world’s top providers 🌎 and
|
|
combine it with our fully automated server
|
|
management, letting us scale extremely fast.
|
|
</p>
|
|
<p>
|
|
In the unlikely event you overtake us or prefer
|
|
to use your own bare metal, we can integrate
|
|
your server into our management service and take
|
|
care of business. In this case, please contact
|
|
our sales.
|
|
</p>
|
|
</div>
|
|
<div class="tab-pane" id="tab4">
|
|
<p>
|
|
<strong
|
|
>Earn Up to 25% Commission 💰</strong
|
|
>
|
|
</p>
|
|
<p>
|
|
Promote our <strong>Odoo Hosting</strong> and
|
|
<strong>Workshops</strong> — trusted by
|
|
real businesses.
|
|
</p>
|
|
<p>We handle the sales. You earn.</p>
|
|
<p>
|
|
🌟 High-converting pages • 📦
|
|
Easy promo materials
|
|
</p>
|
|
<p>
|
|
<a class="btn btn-primary" href="/affiliates"
|
|
>More Info</a
|
|
>
|
|
</p>
|
|
</div>
|
|
<div class="tab-pane" id="tab5">
|
|
<p>
|
|
Our chatbot answers all the FAQs and snacks on
|
|
tokens along the way.
|
|
</p>
|
|
<p>
|
|
Want a real human? Just tell it to book you a
|
|
📅 meeting for us. Looking forward
|
|
hearing from you!
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="psection">
|
|
<div class="container">
|
|
<div class="text-center mb-4">
|
|
<div class="hr"></div>
|
|
<h2>Your Plan, Your Timing: Upgrade Anytime</h2>
|
|
</div>
|
|
<div class="billing-toggle-wrap">
|
|
<span class="toggle-label toggle-label-monthly active"
|
|
>Monthly</span
|
|
>
|
|
<div class="toggle-switch" id="billingSwitch">
|
|
<div class="thumb"></div>
|
|
</div>
|
|
<span class="toggle-label toggle-label-yearly"
|
|
>Yearly <small>1 month free</small></span
|
|
>
|
|
</div>
|
|
<div class="pgrid">
|
|
<div class="pcard">
|
|
<div class="pcard-body">
|
|
<h3>Side Hustle</h3>
|
|
<div class="price">
|
|
<strong
|
|
class="price-amount"
|
|
data-monthly="19.62"
|
|
data-yearly="214.00"
|
|
>$ 19.62</strong
|
|
>
|
|
<small class="price-period">/ month</small>
|
|
<div class="price-save" style="display: none">
|
|
1 month free
|
|
</div>
|
|
</div>
|
|
<p class="desc">
|
|
“ODOO Standard .. that is all my business
|
|
needs”
|
|
</p>
|
|
<a
|
|
href="javascript:void(0)"
|
|
class="btn btn-primary"
|
|
onclick="
|
|
openOrderWidget(
|
|
'Side Hustle',
|
|
19.62,
|
|
214.0,
|
|
false,
|
|
)
|
|
"
|
|
>Buy Now</a
|
|
>
|
|
<ul>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
ODOO CE hosting
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
1 Backup Slots
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
1 Domain Mapping, SSL Cert
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-times"
|
|
style="color: #dc3545"
|
|
></i>
|
|
No module installation
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="pcard-foot">
|
|
Instant setup, satisfied or reimbursed.
|
|
</div>
|
|
</div>
|
|
<div class="pcard featured">
|
|
<div class="pcard-body">
|
|
<h3>On the Rise</h3>
|
|
<div class="price">
|
|
<strong
|
|
class="price-amount"
|
|
data-monthly="36.21"
|
|
data-yearly="395.00"
|
|
>$ 36.21</strong
|
|
>
|
|
<small class="price-period">/ month</small>
|
|
<div class="price-save" style="display: none">
|
|
1 month free
|
|
</div>
|
|
</div>
|
|
<p class="desc">
|
|
“I need some modules and professional
|
|
reports”
|
|
</p>
|
|
<a
|
|
href="javascript:void(0)"
|
|
class="btn btn-primary"
|
|
onclick="
|
|
openOrderWidget(
|
|
'On the Rise',
|
|
36.21,
|
|
395.0,
|
|
false,
|
|
)
|
|
"
|
|
>Buy Now</a
|
|
>
|
|
<ul>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
ODOO CE hosting
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
4 Backup Slots
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
3 Domain Mappings, SSL Cert
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
Module installation via git
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="pcard-foot">
|
|
Instant setup, satisfied or reimbursed.
|
|
</div>
|
|
</div>
|
|
<div class="pcard">
|
|
<div class="pcard-body">
|
|
<h3>Powerhouse</h3>
|
|
<div class="price">
|
|
<strong
|
|
class="price-amount"
|
|
data-monthly="54.54"
|
|
data-yearly="595.00"
|
|
>$ 54.54</strong
|
|
>
|
|
<small class="price-period">/ month</small>
|
|
<div class="price-save" style="display: none">
|
|
1 month free
|
|
</div>
|
|
</div>
|
|
<p class="desc">
|
|
“ODOO Enterprise is a must have!”
|
|
</p>
|
|
<a
|
|
href="javascript:void(0)"
|
|
class="btn btn-primary"
|
|
onclick="
|
|
openOrderWidget(
|
|
'Powerhouse',
|
|
54.54,
|
|
595.0,
|
|
false,
|
|
)
|
|
"
|
|
>Buy Now</a
|
|
>
|
|
<ul>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
All of On the Rise
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
ODOO Enterprise Ready
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
2 Workers
|
|
</li>
|
|
<li><br /></li>
|
|
</ul>
|
|
</div>
|
|
<div class="pcard-foot">
|
|
Instant setup, satisfied or reimbursed.
|
|
</div>
|
|
</div>
|
|
<div class="pcard">
|
|
<div class="pcard-body">
|
|
<h3>Empire</h3>
|
|
<div class="price">
|
|
<strong
|
|
class="price-amount"
|
|
data-monthly="86.67"
|
|
data-yearly="950.00"
|
|
>>$ 86.67</strong
|
|
>
|
|
<small class="price-period">/ month</small>
|
|
<div class="price-save" style="display: none">
|
|
1 month free
|
|
</div>
|
|
</div>
|
|
<p class="desc">
|
|
“My house! My Horse! My Server!”
|
|
</p>
|
|
<a
|
|
href="javascript:void(0)"
|
|
class="btn btn-outline-primary"
|
|
onclick="
|
|
openOrderWidget(
|
|
'Empire',
|
|
86.67,
|
|
950.0,
|
|
true,
|
|
)
|
|
"
|
|
>Contact Us</a
|
|
>
|
|
<ul>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
Our service on your server
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
All modules & features
|
|
</li>
|
|
<li>
|
|
<i
|
|
class="fas fa-check"
|
|
style="color: #28a745"
|
|
></i>
|
|
Unlimited customization
|
|
</li>
|
|
<li><br /></li>
|
|
</ul>
|
|
</div>
|
|
<div class="pcard-foot">
|
|
Instant setup, satisfied or reimbursed.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="blog-section" id="blog">
|
|
<div class="container">
|
|
<div class="text-center mb-4">
|
|
<div class="hr"></div>
|
|
<h2>Latest from the Blog</h2>
|
|
</div>
|
|
<div class="blog-search-wrap">
|
|
<input
|
|
type="text"
|
|
class="blog-search"
|
|
id="blogSearch"
|
|
placeholder="Search posts..."
|
|
/>
|
|
</div>
|
|
<div class="blog-grid" id="blogGrid"></div>
|
|
<div class="blog-pagination" id="blogPagination"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer class="footer">
|
|
<div class="container">
|
|
<div class="fgrid">
|
|
<div>
|
|
<h5>Useful Links</h5>
|
|
<ul>
|
|
<li><a href="/">Home</a></li>
|
|
<li><a href="/support">Support</a></li>
|
|
<li><a href="/legal">Legal</a></li>
|
|
<li><a href="/contactus">Contact us</a></li>
|
|
<li><a href="/workshops">Workshops</a></li>
|
|
<li><a href="/affiliates">Affiliates</a></li>
|
|
<li>
|
|
Partner: <a href="https://OD8N.com">OD8N</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div>
|
|
<h5>About us</h5>
|
|
<p>
|
|
We build smart, scalable business solutions by
|
|
combining the <strong>stability</strong> of Odoo ERP
|
|
with the <strong>power</strong> of AI and N8N
|
|
automation.
|
|
</p>
|
|
<p>
|
|
From streamlined sales to global rollouts, our
|
|
<strong>lean, eco-friendly</strong> approach helps
|
|
businesses cut costs, boost efficiency, and grow
|
|
without limits.
|
|
</p>
|
|
</div>
|
|
<div>
|
|
<h5>Contact us</h5>
|
|
<p>
|
|
<a
|
|
class="btn btn-primary"
|
|
href="/contactus"
|
|
style="
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-color: rgba(255, 255, 255, 0.2);
|
|
color: #fff;
|
|
"
|
|
>Contact Form</a
|
|
>
|
|
</p>
|
|
<div class="social">
|
|
<a
|
|
href="/website/social/linkedin"
|
|
target="_blank"
|
|
aria-label="LinkedIn"
|
|
><i class="fab fa-linkedin-in"></i></a
|
|
><a href="/" target="_blank" aria-label="Home"
|
|
><i class="fas fa-home"></i></a
|
|
><a
|
|
href="/website/social/youtube"
|
|
target="_blank"
|
|
aria-label="YouTube"
|
|
><i class="fab fa-youtube"></i
|
|
></a>
|
|
</div>
|
|
<form
|
|
class="fform"
|
|
action="/website/form/"
|
|
method="post"
|
|
>
|
|
<label for="n1">Your Name *</label
|
|
><input
|
|
type="text"
|
|
name="name"
|
|
id="n1"
|
|
required
|
|
placeholder="Your Name"
|
|
/><label for="e1">Your Email *</label
|
|
><input
|
|
type="email"
|
|
name="email"
|
|
id="e1"
|
|
required
|
|
placeholder="Your Email"
|
|
/>
|
|
<div
|
|
class="d-flex align-items-center gap-2"
|
|
style="margin-bottom: 0.75rem"
|
|
>
|
|
<input
|
|
type="checkbox"
|
|
id="c1"
|
|
checked
|
|
style="width: auto"
|
|
/><label
|
|
for="c1"
|
|
style="
|
|
margin: 0;
|
|
color: rgba(255, 255, 255, 0.7);
|
|
font-weight: 400;
|
|
"
|
|
>Subscribe to Newsletter</label
|
|
>
|
|
</div>
|
|
<button
|
|
type="submit"
|
|
class="btn btn-primary"
|
|
style="
|
|
background: var(--primary);
|
|
border-color: var(--primary);
|
|
"
|
|
>
|
|
Submit
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<script>
|
|
var si = 0,
|
|
slides = document.querySelectorAll(".hero-slide"),
|
|
dots = document.querySelectorAll(".carousel-dot"),
|
|
t,
|
|
dir = 1,
|
|
autoStop = false,
|
|
autoInterval = 7000;
|
|
|
|
function show(i, direction) {
|
|
if (direction === undefined) return;
|
|
var current = slides[si];
|
|
var next = slides[i];
|
|
if (direction === 1) {
|
|
current.style.transform = "translateY(100%)";
|
|
current.style.opacity = "0";
|
|
current.style.zIndex = "1";
|
|
next.style.transform = "translateY(-100%)";
|
|
next.style.opacity = "0";
|
|
next.style.zIndex = "1";
|
|
requestAnimationFrame(function () {
|
|
next.style.transition =
|
|
"transform 0.5s ease, opacity 0.5s ease";
|
|
next.style.transform = "translateY(0)";
|
|
next.style.opacity = "1";
|
|
next.style.zIndex = "2";
|
|
});
|
|
} else {
|
|
current.style.transform = "translateY(-100%)";
|
|
current.style.opacity = "0";
|
|
current.style.zIndex = "1";
|
|
next.style.transform = "translateY(100%)";
|
|
next.style.opacity = "0";
|
|
next.style.zIndex = "1";
|
|
requestAnimationFrame(function () {
|
|
next.style.transition =
|
|
"transform 0.5s ease, opacity 0.5s ease";
|
|
next.style.transform = "translateY(0)";
|
|
next.style.opacity = "1";
|
|
next.style.zIndex = "2";
|
|
});
|
|
}
|
|
for (var j = 0; j < dots.length; j++) {
|
|
if (j === i) {
|
|
dots[j].classList.add("active");
|
|
} else {
|
|
dots[j].classList.remove("active");
|
|
}
|
|
}
|
|
si = i;
|
|
}
|
|
function nextSlide() {
|
|
show((si + 1) % slides.length, 1);
|
|
resetTimer();
|
|
}
|
|
function prevSlide() {
|
|
show((si - 1 + slides.length) % slides.length, -1);
|
|
resetTimer();
|
|
}
|
|
function goSlide(i) {
|
|
autoStop = true;
|
|
show(i, i > si ? 1 : -1);
|
|
clearInterval(t);
|
|
t = null;
|
|
}
|
|
function resetTimer() {
|
|
clearInterval(t);
|
|
t = setInterval(nextSlide, autoInterval);
|
|
}
|
|
|
|
window.addEventListener("load", function () {
|
|
var o = document.getElementById("spinner");
|
|
o.classList.add("hidden");
|
|
setTimeout(function () {
|
|
o.style.display = "none";
|
|
}, 500);
|
|
});
|
|
setTimeout(function () {
|
|
var o = document.getElementById("spinner");
|
|
o.classList.add("hidden");
|
|
setTimeout(function () {
|
|
o.style.display = "none";
|
|
}, 500);
|
|
}, 3000);
|
|
t = setInterval(nextSlide, autoInterval);
|
|
|
|
for (var s = 0; s < slides.length; s++) {
|
|
slides[s].addEventListener("click", function () {
|
|
autoStop = true;
|
|
clearInterval(t);
|
|
t = null;
|
|
});
|
|
}
|
|
|
|
setTimeout(function () {
|
|
var blogSection = document.getElementById("blog");
|
|
if (blogSection) {
|
|
function onBlogScroll() {
|
|
var rect = blogSection.getBoundingClientRect();
|
|
if (rect.top < window.innerHeight && rect.bottom > 0) {
|
|
openTrialWidget();
|
|
window.removeEventListener("scroll", onBlogScroll);
|
|
}
|
|
}
|
|
window.addEventListener("scroll", onBlogScroll);
|
|
}
|
|
}, 3000);
|
|
|
|
document.querySelectorAll(".tab-btn").forEach(function (b) {
|
|
b.addEventListener("click", function () {
|
|
document.querySelectorAll(".tab-btn").forEach(function (x) {
|
|
x.classList.remove("active");
|
|
});
|
|
document
|
|
.querySelectorAll(".tab-pane")
|
|
.forEach(function (p) {
|
|
p.classList.remove("active");
|
|
});
|
|
this.classList.add("active");
|
|
document
|
|
.getElementById(this.getAttribute("data-t"))
|
|
.classList.add("active");
|
|
});
|
|
});
|
|
|
|
/* ---- Order Widget ---- */
|
|
var orderPopupShown = false;
|
|
function openOrderWidget(
|
|
plan,
|
|
monthlyPrice,
|
|
yearlyPrice,
|
|
isEmpire,
|
|
) {
|
|
document.getElementById("orderPanelTrial").style.display =
|
|
"none";
|
|
document.getElementById("orderPanelBuy").style.display =
|
|
"block";
|
|
var widget = document.getElementById("orderWidgetOverlay");
|
|
document.getElementById("orderPlanTitle").textContent = plan;
|
|
var yearly = yearlyMode;
|
|
var price = yearly ? yearlyPrice : monthlyPrice;
|
|
var amountEl = document.getElementById("orderPlanPrice");
|
|
var prefix = isEmpire ? ">$" : "$";
|
|
amountEl.textContent = prefix + " " + price.toFixed(2);
|
|
document.getElementById("orderPlanPeriod").textContent = yearly
|
|
? "/ year"
|
|
: "/ month";
|
|
var couponMsg = document.getElementById("orderCouponMsg");
|
|
var yearlySave = document.getElementById("orderYearlySave");
|
|
if (!yearly) {
|
|
couponMsg.style.display = "block";
|
|
yearlySave.style.display = "none";
|
|
} else {
|
|
couponMsg.style.display = "none";
|
|
yearlySave.style.display = "block";
|
|
var saved = Math.round(
|
|
(1 - yearlyPrice / (monthlyPrice * 12)) * 100,
|
|
);
|
|
document.getElementById("orderSavePercent").textContent =
|
|
saved;
|
|
}
|
|
var buyBtn = document.getElementById("orderBuyBtn");
|
|
var loc = document.getElementById("orderServerLocation").value;
|
|
buyBtn.href =
|
|
"/3/" +
|
|
price.toFixed(2) +
|
|
"/4/" +
|
|
encodeURIComponent(plan) +
|
|
"?location=" +
|
|
encodeURIComponent(loc);
|
|
widget.style.display = "flex";
|
|
orderPopupShown = true;
|
|
}
|
|
function openTrialWidget() {
|
|
document.getElementById("orderPanelBuy").style.display = "none";
|
|
document.getElementById("orderPanelTrial").style.display =
|
|
"block";
|
|
document.getElementById("orderWidgetOverlay").style.display =
|
|
"flex";
|
|
orderPopupShown = true;
|
|
}
|
|
function switchToBuyPanel() {
|
|
openOrderWidget("On the Rise", 36.21, 395.0, false);
|
|
}
|
|
function closeOrderWidget() {
|
|
document.getElementById("orderWidgetOverlay").style.display =
|
|
"none";
|
|
}
|
|
document
|
|
.getElementById("orderServerLocation")
|
|
.addEventListener("change", function () {
|
|
var plan =
|
|
document.getElementById("orderPlanTitle").textContent;
|
|
var priceText = document
|
|
.getElementById("orderPlanPrice")
|
|
.textContent.replace(">$", "")
|
|
.replace("$", "")
|
|
.trim();
|
|
var price = parseFloat(priceText);
|
|
var loc = this.value;
|
|
document.getElementById("orderBuyBtn").href =
|
|
"/3/" +
|
|
price.toFixed(2) +
|
|
"/4/" +
|
|
encodeURIComponent(plan) +
|
|
"?location=" +
|
|
encodeURIComponent(loc);
|
|
});
|
|
/* ---- Billing Toggle ---- */
|
|
var yearlyMode = false;
|
|
var biSwitch = document.getElementById("billingSwitch");
|
|
var labels = document.querySelectorAll(".toggle-label");
|
|
var monthlyLabel = document.querySelector(".toggle-label-monthly");
|
|
var yearlyLabel = document.querySelector(".toggle-label-yearly");
|
|
|
|
function updatePrices(yearly) {
|
|
var amounts = document.querySelectorAll(".price-amount");
|
|
for (var k = 0; k < amounts.length; k++) {
|
|
var el = amounts[k];
|
|
var val = yearly
|
|
? el.getAttribute("data-yearly")
|
|
: el.getAttribute("data-monthly");
|
|
var prefix =
|
|
el.textContent.trim().charAt(0) === ">" ? ">" : "";
|
|
el.textContent = prefix + "$ " + parseFloat(val).toFixed(2);
|
|
}
|
|
var periods = document.querySelectorAll(".price-period");
|
|
for (var k = 0; k < periods.length; k++) {
|
|
periods[k].textContent = yearly ? "/ year" : "/ month";
|
|
}
|
|
var saves = document.querySelectorAll(".price-save");
|
|
for (var k = 0; k < saves.length; k++) {
|
|
saves[k].style.display = yearly ? "block" : "none";
|
|
}
|
|
}
|
|
|
|
function setBilling(yearly) {
|
|
yearlyMode = yearly;
|
|
if (yearly) {
|
|
biSwitch.classList.add("yearly");
|
|
monthlyLabel.classList.remove("active");
|
|
yearlyLabel.classList.add("active");
|
|
} else {
|
|
biSwitch.classList.remove("yearly");
|
|
monthlyLabel.classList.add("active");
|
|
yearlyLabel.classList.remove("active");
|
|
}
|
|
updatePrices(yearly);
|
|
}
|
|
|
|
biSwitch.addEventListener("click", function () {
|
|
setBilling(!yearlyMode);
|
|
});
|
|
monthlyLabel.addEventListener("click", function () {
|
|
setBilling(false);
|
|
});
|
|
yearlyLabel.addEventListener("click", function () {
|
|
setBilling(true);
|
|
});
|
|
|
|
/* ---- Blog Module ---- */
|
|
var blogState = {
|
|
allPosts: [],
|
|
filteredPosts: [],
|
|
currentPage: 1,
|
|
perPage: 6,
|
|
searchTerm: "",
|
|
};
|
|
|
|
function formatDate(dateStr) {
|
|
var d = new Date(dateStr + "T00:00:00Z");
|
|
var months = [
|
|
"Jan",
|
|
"Feb",
|
|
"Mar",
|
|
"Apr",
|
|
"May",
|
|
"Jun",
|
|
"Jul",
|
|
"Aug",
|
|
"Sep",
|
|
"Oct",
|
|
"Nov",
|
|
"Dec",
|
|
];
|
|
return (
|
|
months[d.getUTCMonth()] +
|
|
" " +
|
|
d.getUTCDate() +
|
|
", " +
|
|
d.getUTCFullYear()
|
|
);
|
|
}
|
|
|
|
function badgeClass(area) {
|
|
var m = {
|
|
"speed-run": "speed-run",
|
|
guide: "guide",
|
|
howto: "howto",
|
|
news: "news",
|
|
};
|
|
return m[area] || "default";
|
|
}
|
|
|
|
function renderBlog() {
|
|
var grid = document.getElementById("blogGrid");
|
|
var search = (blogState.searchTerm || "").toLowerCase();
|
|
blogState.filteredPosts = blogState.allPosts.filter(
|
|
function (p) {
|
|
if (!search) return true;
|
|
return (
|
|
(p.headline + " " + p.teaser)
|
|
.toLowerCase()
|
|
.indexOf(search) !== -1
|
|
);
|
|
},
|
|
);
|
|
var total = blogState.filteredPosts.length;
|
|
var totalPages = Math.max(
|
|
1,
|
|
Math.ceil(total / blogState.perPage),
|
|
);
|
|
if (blogState.currentPage > totalPages)
|
|
blogState.currentPage = totalPages;
|
|
var start = (blogState.currentPage - 1) * blogState.perPage;
|
|
var pagePosts = blogState.filteredPosts.slice(
|
|
start,
|
|
start + blogState.perPage,
|
|
);
|
|
|
|
var html = "";
|
|
if (pagePosts.length === 0) {
|
|
html =
|
|
'<div class="blog-empty">No posts match your search.</div>';
|
|
} else {
|
|
for (var i = 0; i < pagePosts.length; i++) {
|
|
var p = pagePosts[i];
|
|
var bc = badgeClass(p.area);
|
|
var agentHtml = "";
|
|
if (p.agent)
|
|
agentHtml =
|
|
'<span class="blog-agent">' +
|
|
p.agent +
|
|
"</span>";
|
|
html +=
|
|
'<div class="blog-card">' +
|
|
'<div class="blog-card-top">' +
|
|
'<span class="blog-badge blog-badge-' +
|
|
bc +
|
|
'">' +
|
|
p.area +
|
|
"</span>" +
|
|
agentHtml +
|
|
"</div>" +
|
|
'<div class="blog-date">' +
|
|
formatDate(p.date) +
|
|
"</div>" +
|
|
'<h3><a href="' +
|
|
p.link +
|
|
'">' +
|
|
p.headline +
|
|
"</a></h3>" +
|
|
'<p class="blog-teaser">' +
|
|
p.teaser +
|
|
"</p>" +
|
|
'<a href="' +
|
|
p.link +
|
|
'" class="blog-readmore">Read more →</a>' +
|
|
"</div>";
|
|
}
|
|
}
|
|
grid.innerHTML = html;
|
|
|
|
var pag = document.getElementById("blogPagination");
|
|
var pagHtml = "";
|
|
if (totalPages > 1) {
|
|
pagHtml +=
|
|
'<button class="blog-page-btn" onclick="blogGo(1)"' +
|
|
(blogState.currentPage <= 1 ? ' disabled"' : '"') +
|
|
">«</button>";
|
|
pagHtml +=
|
|
'<button class="blog-page-btn" onclick="blogGo(' +
|
|
(blogState.currentPage - 1) +
|
|
')"' +
|
|
(blogState.currentPage <= 1 ? ' disabled"' : '"') +
|
|
">‹ Prev</button>";
|
|
pagHtml +=
|
|
'<span class="blog-page-info">Page ' +
|
|
blogState.currentPage +
|
|
" of " +
|
|
totalPages +
|
|
"</span>";
|
|
pagHtml +=
|
|
'<button class="blog-page-btn" onclick="blogGo(' +
|
|
(blogState.currentPage + 1) +
|
|
')"' +
|
|
(blogState.currentPage >= totalPages
|
|
? ' disabled"'
|
|
: '"') +
|
|
">Next ›</button>";
|
|
pagHtml +=
|
|
'<button class="blog-page-btn" onclick="blogGo(' +
|
|
totalPages +
|
|
')"' +
|
|
(blogState.currentPage >= totalPages
|
|
? ' disabled"'
|
|
: '"') +
|
|
">»</button>";
|
|
}
|
|
pag.innerHTML = pagHtml;
|
|
}
|
|
|
|
function blogGo(page) {
|
|
blogState.currentPage = page;
|
|
renderBlog();
|
|
}
|
|
|
|
fetch("blog/index.json?_=" + Date.now())
|
|
.then(function (r) {
|
|
return r.json();
|
|
})
|
|
.then(function (data) {
|
|
blogState.allPosts = data.posts;
|
|
renderBlog();
|
|
})
|
|
.catch(function () {
|
|
document.getElementById("blogGrid").innerHTML =
|
|
'<div class="blog-empty">Could not load blog posts.</div>';
|
|
});
|
|
|
|
document
|
|
.getElementById("blogSearch")
|
|
.addEventListener("input", function () {
|
|
blogState.searchTerm = this.value;
|
|
blogState.currentPage = 1;
|
|
renderBlog();
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|