Files
my-biz/old/index-cafe.html
T

1578 lines
56 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="description"
content="my-biz.app — a hassle-free all-in-one back-office for NGOs, Startups, Manufacturers and Restaurants."
/>
<title>my-biz.app — Your Back-Office, Sorted.</title>
<style>
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--espresso: #1a0c05;
--roast: #2e1608;
--brown: #5c2e0e;
--caramel: #c07b3b;
--amber: #e8a84a;
--cream: #f5ecd7;
--chalk: #fefbf5;
--parchment: #f0e4c8;
--muted: #8a6a4a;
--dark-text: #2a1508;
--sage: #7a8c5c;
--r: 10px;
}
html {
scroll-behavior: smooth;
}
body {
font-family:
"Segoe UI",
system-ui,
-apple-system,
sans-serif;
background: var(--chalk);
color: var(--dark-text);
line-height: 1.7;
overflow-x: hidden;
}
/* Subtle paper grain overlay */
body::before {
content: "";
position: fixed;
inset: 0;
z-index: 0;
background-image:
radial-gradient(
circle 1px at 20% 30%,
rgba(160, 100, 40, 0.06),
transparent 2px
),
radial-gradient(
circle 1px at 55% 15%,
rgba(160, 100, 40, 0.04),
transparent 2px
),
radial-gradient(
circle 1px at 80% 60%,
rgba(160, 100, 40, 0.05),
transparent 2px
),
radial-gradient(
circle 1px at 35% 75%,
rgba(160, 100, 40, 0.04),
transparent 2px
),
radial-gradient(
circle 1px at 90% 25%,
rgba(160, 100, 40, 0.06),
transparent 2px
);
pointer-events: none;
}
/* ── KEYFRAMES ── */
@keyframes steamRise {
0% {
transform: translateY(0) scaleX(1);
opacity: 0.55;
}
50% {
transform: translateY(-18px) scaleX(1.15);
opacity: 0.25;
}
100% {
transform: translateY(-36px) scaleX(0.9);
opacity: 0;
}
}
@keyframes floatGently {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-7px);
}
}
@keyframes warmGlow {
0%,
100% {
box-shadow:
0 0 30px rgba(232, 168, 74, 0.2),
0 8px 30px rgba(0, 0, 0, 0.4);
}
50% {
box-shadow:
0 0 55px rgba(232, 168, 74, 0.4),
0 12px 40px rgba(0, 0, 0, 0.5);
}
}
@keyframes inkDrop {
0% {
transform: scale(0.8);
opacity: 0;
}
60% {
transform: scale(1.04);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 1;
}
}
/* ── CAROUSEL NEXT BUTTON ── */
#cc-next {
position: fixed;
bottom: 30px;
right: 30px;
z-index: 9999;
background: var(--espresso);
color: var(--cream);
border: 2px solid var(--caramel);
border-radius: 6px;
padding: 13px 26px;
font-size: 0.88rem;
font-weight: 700;
font-family: Georgia, "Times New Roman", serif;
letter-spacing: 0.6px;
cursor: pointer;
box-shadow:
0 6px 24px rgba(192, 123, 59, 0.3),
0 2px 8px rgba(0, 0, 0, 0.3);
transition:
transform 0.22s,
background 0.22s,
box-shadow 0.22s;
}
#cc-next:hover {
background: var(--roast);
transform: translateY(-3px);
box-shadow:
0 10px 32px rgba(192, 123, 59, 0.45),
0 4px 12px rgba(0, 0, 0, 0.4);
}
#cc-next:active {
transform: translateY(-1px);
}
/* ── NAV ── */
nav {
position: sticky;
top: 0;
z-index: 200;
background: rgba(26, 12, 5, 0.97);
backdrop-filter: blur(16px);
border-bottom: 2px solid var(--caramel);
padding: 0 6vw;
display: flex;
align-items: center;
justify-content: space-between;
height: 64px;
}
.nav-logo {
font-size: 1.3rem;
font-weight: 900;
font-family: Georgia, serif;
text-decoration: none;
color: var(--cream);
letter-spacing: 0.5px;
}
.nav-logo span {
color: var(--caramel);
}
.nav-links {
display: flex;
gap: 26px;
list-style: none;
align-items: center;
}
.nav-links a {
text-decoration: none;
color: rgba(245, 236, 215, 0.6);
font-size: 0.88rem;
transition: color 0.25s;
}
.nav-links a:hover {
color: var(--amber);
}
.nav-cta {
background: var(--caramel) !important;
color: var(--espresso) !important;
padding: 8px 20px !important;
border-radius: 4px !important;
font-weight: 800 !important;
font-size: 0.82rem !important;
letter-spacing: 0.8px !important;
text-transform: uppercase !important;
transition: background 0.2s !important;
opacity: 1 !important;
}
.nav-cta:hover {
background: var(--amber) !important;
color: var(--espresso) !important;
}
/* ── HERO ── */
.hero {
position: relative;
overflow: hidden;
background:
radial-gradient(
ellipse 70% 60% at 40% 50%,
rgba(92, 46, 14, 0.9) 0%,
transparent 70%
),
radial-gradient(
ellipse 50% 40% at 75% 30%,
rgba(60, 26, 8, 0.8) 0%,
transparent 60%
),
var(--espresso);
color: var(--cream);
padding: 120px 6vw 140px;
text-align: center;
min-height: calc(100vh - 64px);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
/* Coffee ring decorations */
.hero::before {
content: "";
position: absolute;
bottom: 50px;
right: 8vw;
width: 110px;
height: 110px;
border: 7px solid rgba(192, 123, 59, 0.14);
border-radius: 50%;
box-shadow:
inset 0 0 0 3px rgba(192, 123, 59, 0.07),
0 0 0 12px rgba(192, 123, 59, 0.04);
pointer-events: none;
animation: floatGently 7s ease-in-out infinite;
}
.hero::after {
content: "";
position: absolute;
top: 60px;
left: 7vw;
width: 70px;
height: 70px;
border: 5px solid rgba(232, 168, 74, 0.1);
border-radius: 50%;
box-shadow: inset 0 0 0 2px rgba(232, 168, 74, 0.06);
pointer-events: none;
animation: floatGently 9s ease-in-out infinite 2s;
}
.hero-eyebrow {
display: inline-block;
background: rgba(192, 123, 59, 0.18);
border: 1.5px solid rgba(192, 123, 59, 0.5);
color: var(--amber);
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
padding: 7px 22px;
border-radius: 3px;
margin-bottom: 34px;
position: relative;
z-index: 1;
animation: floatGently 5s ease-in-out infinite;
}
.hero h1 {
font-size: clamp(2.2rem, 5vw, 4.2rem);
font-weight: 900;
font-family: Georgia, "Times New Roman", serif;
line-height: 1.12;
max-width: 820px;
margin: 0 auto 24px;
letter-spacing: -0.3px;
color: var(--cream);
position: relative;
z-index: 1;
}
.hero h1 em {
font-style: italic;
color: var(--amber);
}
.hero-sub {
font-size: clamp(0.98rem, 2vw, 1.18rem);
max-width: 580px;
margin: 0 auto 18px;
color: rgba(245, 236, 215, 0.75);
line-height: 1.82;
position: relative;
z-index: 1;
}
.hero-tagline {
font-size: 1rem;
color: rgba(192, 123, 59, 0.65);
margin-bottom: 48px;
font-style: italic;
font-family: Georgia, serif;
position: relative;
z-index: 1;
}
.hero-actions {
display: flex;
gap: 18px;
justify-content: center;
flex-wrap: wrap;
position: relative;
z-index: 1;
}
.btn-primary {
background: var(--caramel);
color: var(--espresso);
padding: 15px 38px;
border-radius: 5px;
font-weight: 800;
font-size: 0.95rem;
text-decoration: none;
letter-spacing: 0.8px;
box-shadow: 0 6px 24px rgba(192, 123, 59, 0.45);
transition:
background 0.25s,
transform 0.25s,
box-shadow 0.25s;
display: inline-block;
}
.btn-primary:hover {
background: var(--amber);
transform: translateY(-2px);
box-shadow: 0 10px 32px rgba(232, 168, 74, 0.5);
}
.btn-secondary {
background: transparent;
border: 2px solid rgba(245, 236, 215, 0.3);
color: var(--cream);
padding: 15px 38px;
border-radius: 5px;
font-weight: 700;
font-size: 0.95rem;
text-decoration: none;
transition:
border-color 0.25s,
background 0.25s;
display: inline-block;
}
.btn-secondary:hover {
border-color: var(--caramel);
background: rgba(192, 123, 59, 0.12);
}
.hero-trust {
margin-top: 56px;
font-size: 0.78rem;
color: rgba(192, 123, 59, 0.5);
letter-spacing: 0.8px;
position: relative;
z-index: 1;
}
.hero-trust strong {
color: rgba(192, 123, 59, 0.85);
}
/* ── SECTION COMMONS ── */
section {
padding: 90px 6vw;
min-height: calc(100vh - 64px);
position: relative;
}
.section-label {
display: inline-block;
font-size: 0.68rem;
font-weight: 800;
letter-spacing: 3.5px;
text-transform: uppercase;
color: var(--caramel);
margin-bottom: 12px;
border-bottom: 1.5px solid var(--caramel);
padding-bottom: 5px;
}
.section-title {
font-size: clamp(1.8rem, 3.5vw, 2.8rem);
font-weight: 900;
font-family: Georgia, "Times New Roman", serif;
color: var(--roast);
line-height: 1.18;
max-width: 700px;
margin-bottom: 14px;
letter-spacing: -0.2px;
}
.section-sub {
font-size: 0.98rem;
color: var(--muted);
max-width: 560px;
margin-bottom: 55px;
line-height: 1.82;
}
/* ── VERTICALS ── */
#verticals {
background: linear-gradient(
180deg,
var(--chalk) 0%,
var(--cream) 100%
);
}
#verticals::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(
90deg,
transparent,
var(--caramel),
var(--amber),
var(--caramel),
transparent
);
}
.verticals-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 24px;
}
.vertical-card {
background: var(--chalk);
border: 1.5px solid var(--parchment);
border-left: 4px solid var(--caramel);
border-radius: var(--r);
padding: 34px 26px;
box-shadow: 0 3px 16px rgba(92, 46, 14, 0.08);
transition:
transform 0.3s,
box-shadow 0.3s,
border-left-color 0.3s;
cursor: default;
position: relative;
}
.vertical-card:nth-child(1) {
border-left-color: var(--caramel);
}
.vertical-card:nth-child(2) {
border-left-color: var(--sage);
}
.vertical-card:nth-child(3) {
border-left-color: #b04e20;
}
.vertical-card:nth-child(4) {
border-left-color: var(--amber);
}
.vertical-card:hover {
transform: translateY(-5px) rotate(0.3deg);
box-shadow: 0 12px 36px rgba(92, 46, 14, 0.14);
}
.vertical-icon {
font-size: 2.4rem;
margin-bottom: 16px;
display: block;
}
.vertical-name {
font-size: 1.18rem;
font-weight: 800;
font-family: Georgia, serif;
color: var(--roast);
margin-bottom: 10px;
}
.vertical-desc {
font-size: 0.9rem;
color: var(--muted);
line-height: 1.74;
}
.vertical-tag {
display: inline-block;
margin-top: 16px;
font-size: 0.7rem;
font-weight: 700;
color: var(--brown);
background: rgba(192, 123, 59, 0.1);
border: 1px solid rgba(192, 123, 59, 0.25);
padding: 4px 12px;
border-radius: 3px;
letter-spacing: 0.4px;
}
/* ── NEWS ── */
#news {
background: var(--parchment);
}
#news::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(
90deg,
transparent,
var(--amber),
var(--caramel),
var(--amber),
transparent
);
}
/* Floating coffee ring in background */
#news::after {
content: "";
position: absolute;
bottom: 80px;
right: 6vw;
width: 160px;
height: 160px;
border: 8px solid rgba(192, 123, 59, 0.08);
border-radius: 50%;
pointer-events: none;
}
.news-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 22px;
}
.news-card {
background: var(--chalk);
border-radius: var(--r);
border: 1.5px solid rgba(192, 123, 59, 0.2);
border-top: 4px solid var(--caramel);
padding: 28px 24px;
box-shadow: 0 2px 12px rgba(92, 46, 14, 0.07);
transition:
transform 0.3s,
box-shadow 0.3s;
}
.news-card:nth-child(2) {
border-top-color: var(--sage);
}
.news-card:nth-child(3) {
border-top-color: #b04e20;
}
.news-card:nth-child(4) {
border-top-color: var(--amber);
}
.news-card:hover {
transform: translateY(-4px);
box-shadow: 0 10px 30px rgba(92, 46, 14, 0.12);
}
.news-area {
font-size: 0.65rem;
font-weight: 800;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--caramel);
margin-bottom: 9px;
}
.news-title {
font-size: 1.02rem;
font-weight: 700;
font-family: Georgia, serif;
color: var(--roast);
margin-bottom: 9px;
line-height: 1.38;
}
.news-teaser {
font-size: 0.87rem;
color: var(--muted);
line-height: 1.7;
}
.news-date {
display: block;
margin-top: 16px;
font-size: 0.74rem;
color: rgba(192, 123, 59, 0.65);
letter-spacing: 0.4px;
}
/* ── PRICING ── */
#pricing {
background: var(--chalk);
text-align: center;
}
#pricing::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(
90deg,
transparent,
var(--caramel),
var(--amber),
var(--caramel),
transparent
);
}
#pricing .section-title,
#pricing .section-sub {
margin-left: auto;
margin-right: auto;
text-align: center;
}
.pricing-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 28px;
max-width: 780px;
margin: 0 auto;
}
.pricing-card {
background: var(--cream);
border: 2px solid var(--parchment);
border-radius: 12px;
padding: 44px 34px;
position: relative;
text-align: left;
box-shadow: 0 4px 20px rgba(92, 46, 14, 0.09);
transition:
transform 0.3s,
box-shadow 0.3s;
}
.pricing-card:hover {
transform: translateY(-4px);
box-shadow: 0 14px 40px rgba(92, 46, 14, 0.14);
}
/* Chalkboard style for featured */
.pricing-card.featured {
background: #2a2320;
border-color: var(--caramel);
color: var(--cream);
box-shadow: 0 8px 40px rgba(42, 35, 32, 0.5);
}
.pricing-badge {
position: absolute;
top: -1px;
left: 50%;
transform: translateX(-50%);
background: var(--caramel);
color: var(--espresso);
font-size: 0.68rem;
font-weight: 900;
letter-spacing: 2px;
text-transform: uppercase;
padding: 5px 18px;
border-radius: 0 0 8px 8px;
white-space: nowrap;
}
.pricing-plan {
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 3.5px;
text-transform: uppercase;
color: var(--caramel);
margin-bottom: 12px;
}
.pricing-card.featured .pricing-plan {
color: var(--amber);
}
.pricing-price {
font-size: 3.2rem;
font-weight: 900;
font-family: Georgia, serif;
color: var(--roast);
line-height: 1;
margin-bottom: 6px;
}
.pricing-card.featured .pricing-price {
color: var(--cream);
}
.pricing-period {
font-size: 0.84rem;
color: var(--muted);
margin-bottom: 20px;
}
.pricing-card.featured .pricing-period {
color: rgba(245, 236, 215, 0.6);
}
.pricing-quote {
font-size: 0.9rem;
font-style: italic;
font-family: Georgia, serif;
color: var(--muted);
border-left: 3px solid var(--parchment);
padding-left: 14px;
margin-bottom: 28px;
line-height: 1.6;
}
.pricing-card.featured .pricing-quote {
color: rgba(245, 236, 215, 0.7);
border-left-color: rgba(192, 123, 59, 0.4);
}
.pricing-features {
list-style: none;
margin-bottom: 32px;
}
.pricing-features li {
font-size: 0.88rem;
color: var(--dark-text);
padding: 7px 0;
border-bottom: 1px solid var(--parchment);
display: flex;
align-items: center;
gap: 10px;
}
.pricing-card.featured .pricing-features li {
color: rgba(245, 236, 215, 0.82);
border-bottom-color: rgba(192, 123, 59, 0.15);
}
.pricing-features li::before {
content: "✦";
color: var(--caramel);
font-size: 0.6rem;
flex-shrink: 0;
}
.pricing-cta {
display: block;
text-align: center;
padding: 13px 28px;
border-radius: 5px;
font-weight: 800;
font-size: 0.9rem;
text-decoration: none;
letter-spacing: 0.6px;
transition:
transform 0.2s,
background 0.2s,
box-shadow 0.2s;
background: var(--caramel);
color: var(--espresso);
box-shadow: 0 4px 16px rgba(192, 123, 59, 0.35);
}
.pricing-card.featured .pricing-cta {
background: var(--amber);
color: var(--espresso);
box-shadow: 0 4px 16px rgba(232, 168, 74, 0.4);
}
.pricing-cta:hover {
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(192, 123, 59, 0.45);
}
/* ── CUSTOMIZATION ── */
#customization {
background: linear-gradient(
180deg,
var(--cream) 0%,
var(--chalk) 100%
);
}
#customization::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(
90deg,
transparent,
var(--sage),
var(--caramel),
var(--sage),
transparent
);
}
.custom-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 26px;
}
.custom-card {
background: var(--chalk);
border: 1.5px solid var(--parchment);
border-radius: var(--r);
padding: 38px 30px;
box-shadow: 0 3px 16px rgba(92, 46, 14, 0.08);
transition:
transform 0.3s,
box-shadow 0.3s;
}
.custom-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 36px rgba(92, 46, 14, 0.13);
}
.custom-icon {
font-size: 2.4rem;
margin-bottom: 16px;
display: block;
}
.custom-title {
font-size: 1.16rem;
font-weight: 800;
font-family: Georgia, serif;
color: var(--roast);
margin-bottom: 10px;
}
.custom-body {
font-size: 0.9rem;
color: var(--muted);
line-height: 1.78;
margin-bottom: 20px;
}
.custom-body strong {
color: var(--brown);
}
.custom-rate {
display: inline-block;
background: var(--roast);
color: var(--amber);
font-weight: 900;
font-size: 1.1rem;
font-family: Georgia, serif;
padding: 9px 22px;
border-radius: 5px;
letter-spacing: 0.4px;
box-shadow: 0 4px 14px rgba(46, 22, 8, 0.3);
}
.custom-link {
display: inline-block;
font-weight: 700;
font-size: 0.9rem;
color: var(--caramel);
text-decoration: none;
border-bottom: 2px solid rgba(192, 123, 59, 0.3);
padding-bottom: 2px;
transition:
color 0.25s,
border-color 0.25s;
}
.custom-link:hover {
color: var(--roast);
border-color: var(--roast);
}
/* ── FOOTER ── */
footer {
background: var(--espresso);
color: rgba(245, 236, 215, 0.55);
padding: 60px 6vw 36px;
border-top: 3px solid var(--caramel);
}
.footer-top {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 36px;
padding-bottom: 44px;
border-bottom: 1px solid rgba(192, 123, 59, 0.15);
margin-bottom: 30px;
}
.footer-brand {
max-width: 300px;
}
.footer-logo {
font-size: 1.4rem;
font-weight: 900;
font-family: Georgia, serif;
text-decoration: none;
display: block;
margin-bottom: 12px;
color: var(--cream);
}
.footer-logo span {
color: var(--caramel);
}
.footer-brand p {
font-size: 0.87rem;
line-height: 1.78;
}
.footer-col h4 {
color: var(--amber);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 2.5px;
text-transform: uppercase;
margin-bottom: 16px;
}
.footer-col ul {
list-style: none;
}
.footer-col ul li {
margin-bottom: 9px;
}
.footer-col ul li a {
color: rgba(245, 236, 215, 0.5);
text-decoration: none;
font-size: 0.87rem;
transition: color 0.25s;
}
.footer-col ul li a:hover {
color: var(--amber);
}
.footer-bottom {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 12px;
font-size: 0.78rem;
color: rgba(192, 123, 59, 0.45);
}
.footer-legal a {
color: rgba(192, 123, 59, 0.4);
text-decoration: none;
margin-left: 18px;
transition: color 0.25s;
}
.footer-legal a:hover {
color: var(--amber);
}
/* ── RESPONSIVE ── */
@media (max-width: 680px) {
nav {
padding: 0 5vw;
}
.nav-links {
display: none;
}
section {
padding: 70px 5vw;
min-height: auto;
}
.hero {
padding: 80px 5vw 100px;
min-height: auto;
}
.footer-top {
flex-direction: column;
}
#cc-next {
bottom: 18px;
right: 18px;
padding: 11px 20px;
font-size: 0.82rem;
}
}
</style>
</head>
<body>
<!-- ── NAV ── -->
<nav>
<a class="nav-logo" href="#">my-biz<span>.app</span></a>
<ul class="nav-links">
<li><a href="#verticals">Verticals</a></li>
<li><a href="#news">News</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="#customization">Customization</a></li>
<li><a class="nav-cta" href="#pricing">Get Started</a></li>
</ul>
</nav>
<!-- ── HERO ── -->
<section class="hero" id="home">
<div class="hero-eyebrow">
✦ One Stop Shop &nbsp;·&nbsp; Built for Real Businesses
</div>
<h1>
Running a business is hard.<br /><em
>Your back-office shouldn't be.</em
>
</h1>
<p class="hero-sub">
We eliminate the chaos behind the scenes — invoicing, HR,
inventory, CRM, reports — all in one place, set up for your
exact industry, ready from day one.
</p>
<p class="hero-tagline">
No duct tape. No spreadsheet nightmares. No expensive surprises.
</p>
<div class="hero-actions">
<a class="btn-primary" href="#pricing"
>See Plans &amp; Pricing</a
>
<a class="btn-secondary" href="#verticals"
>Find Your Vertical</a
>
</div>
<p class="hero-trust">
Powered by <strong>Odoo Community Edition</strong> &nbsp;·&nbsp;
Specialists for every industry &nbsp;·&nbsp; From
<strong>$214 / year</strong>
</p>
</section>
<!-- ── VERTICALS ── -->
<section id="verticals">
<span class="section-label">Our Verticals</span>
<h2 class="section-title">We speak your industry's language.</h2>
<p class="section-sub">
Every vertical has a dedicated specialist who has lived through
your exact challenges. No generalists. No guessing. Just experts
who get it.
</p>
<div class="verticals-grid">
<div class="vertical-card">
<span class="vertical-icon">🌍</span>
<div class="vertical-name">NGO &amp; Non-Profit</div>
<p class="vertical-desc">
Grant tracking, donor management, project accounting,
and compliance reporting — built for organizations that
answer to their mission, not just their margin.
</p>
<span class="vertical-tag"
>Donor CRM · Grant Accounting · Impact Reports</span
>
</div>
<div class="vertical-card">
<span class="vertical-icon">🚀</span>
<div class="vertical-name">Startups</div>
<p class="vertical-desc">
Move fast without breaking your books. From your first
invoice to Series A due diligence, we set up systems
that grow with you and impress every investor.
</p>
<span class="vertical-tag"
>Invoicing · CRM · Equity-Ready Reporting</span
>
</div>
<div class="vertical-card">
<span class="vertical-icon">🏭</span>
<div class="vertical-name">Manufacturing</div>
<p class="vertical-desc">
Bills of materials, production orders, real-time
inventory, and quality control — everything on the floor
finally reflected in your numbers.
</p>
<span class="vertical-tag"
>MRP · Inventory · Purchase · Quality</span
>
</div>
<div class="vertical-card">
<span class="vertical-icon">🍽️</span>
<div class="vertical-name">Restaurants</div>
<p class="vertical-desc">
From tableside POS to supplier invoices to staff
scheduling — keep the kitchen and the books running
smoothly, even on your busiest Saturday night.
</p>
<span class="vertical-tag"
>POS · Supplier Mgmt · Payroll · Food Cost</span
>
</div>
</div>
</section>
<!-- ── NEWS ── -->
<section id="news">
<span class="section-label">News from Our Verticals</span>
<h2 class="section-title">Insights from the front lines.</h2>
<p class="section-sub">
Our specialists share what's actually working — no fluff, no
vendor noise. Real stories from real businesses in your space.
</p>
<div class="news-grid">
<div class="news-card">
<div class="news-area">NGO</div>
<div class="news-title">
How a regional NGO cut grant reporting time by 70%
</div>
<p class="news-teaser">
Automating donor reconciliation and project cost
allocation freed up 15 hours per week that went straight
back into their mission.
</p>
<span class="news-date">June 2025</span>
</div>
<div class="news-card">
<div class="news-area">Startups</div>
<div class="news-title">
Why investors love clean Odoo data rooms
</div>
<p class="news-teaser">
Three founders share how a structured back-office gave
them an edge during due diligence — and closed their
rounds faster.
</p>
<span class="news-date">May 2025</span>
</div>
<div class="news-card">
<div class="news-area">Manufacturing</div>
<div class="news-title">
Real-time BoM costing saved a mid-size factory $40k
</div>
<p class="news-teaser">
When raw material prices shifted overnight, live
production cost tracking allowed this team to reprice
quotes before they lost margin.
</p>
<span class="news-date">April 2025</span>
</div>
<div class="news-card">
<div class="news-area">Restaurants</div>
<div class="news-title">
Food cost under control: a chef's back-office story
</div>
<p class="news-teaser">
Linking POS sales data to supplier invoices
automatically flagged a 12% food cost creep — caught in
week one, fixed before it hurt.
</p>
<span class="news-date">March 2025</span>
</div>
</div>
</section>
<!-- ── PRICING ── -->
<section id="pricing">
<span class="section-label">Simple Pricing</span>
<h2 class="section-title">Transparent. Honest. No surprises.</h2>
<p class="section-sub">
Pick the plan that matches where your business is today. You can
always grow into more — on your timeline, not ours.
</p>
<div class="pricing-grid">
<div class="pricing-card">
<div class="pricing-plan">Side Hustle</div>
<div class="pricing-price">$214</div>
<div class="pricing-period">
per year &nbsp;·&nbsp; billed annually
</div>
<p class="pricing-quote">
"No big customizations — that is all my business needs."
</p>
<ul class="pricing-features">
<li>Core back-office modules</li>
<li>Invoicing &amp; basic accounting</li>
<li>Up to 3 users</li>
<li>Standard onboarding</li>
<li>Community support</li>
</ul>
<a
class="pricing-cta"
href="mailto:hello@my-biz.app?subject=Side Hustle Plan"
>Get Started</a
>
</div>
<div class="pricing-card featured">
<div class="pricing-badge">Most Popular</div>
<div class="pricing-plan">On the Rise</div>
<div class="pricing-price">$395</div>
<div class="pricing-period">
per year &nbsp;·&nbsp; billed annually
</div>
<p class="pricing-quote">
"I need some modules and professional reports."
</p>
<ul class="pricing-features">
<li>Everything in Side Hustle</li>
<li>Industry-specific modules</li>
<li>Professional report templates</li>
<li>Up to 10 users</li>
<li>Priority onboarding</li>
<li>Email &amp; chat support</li>
</ul>
<a
class="pricing-cta"
href="mailto:hello@my-biz.app?subject=On the Rise Plan"
>Get Started</a
>
</div>
</div>
</section>
<!-- ── CUSTOMIZATION ── -->
<section id="customization">
<span class="section-label">Customization</span>
<h2 class="section-title">Need something more bespoke?</h2>
<p class="section-sub">
Because we build on <strong>Odoo Community Edition</strong>, you
are never locked in. Choose the path that works best for your
team and budget.
</p>
<div class="custom-grid">
<div class="custom-card">
<span class="custom-icon">🌐</span>
<div class="custom-title">Hire Any Odoo Developer</div>
<p class="custom-body">
Since we use Odoo CE, the world's largest open-source
ERP community is at your fingertips. Thousands of
certified freelancers on <strong>Upwork</strong> and
<strong>Fiverr</strong>
can extend, theme, or integrate your instance — no
vendor lock-in, ever. You own your code. You own your
data.
</p>
<a
class="custom-link"
href="https://www.upwork.com/search/profiles/?q=odoo"
target="_blank"
rel="noopener"
>Browse Odoo Developers →</a
>
</div>
<div class="custom-card">
<span class="custom-icon">🛠️</span>
<div class="custom-title">Our In-House Team</div>
<p class="custom-body">
Prefer to work with specialists who already know your
setup inside-out? Our senior Odoo developers are on call
for custom modules, integrations, data migrations, and
anything else your business needs to scale. Transparent
scope, no hidden fees.
</p>
<span class="custom-rate">$65 USD / hour</span>
</div>
</div>
</section>
<!-- ── FOOTER ── -->
<footer>
<div class="footer-top">
<div class="footer-brand">
<a class="footer-logo" href="#">my-biz<span>.app</span></a>
<p>
A hassle-free all-in-one back-office built on Odoo
Community Edition. Specialists for NGOs, Startups,
Manufacturing, and Restaurants.
</p>
</div>
<div class="footer-col">
<h4>Product</h4>
<ul>
<li><a href="#verticals">Verticals</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="#customization">Customization</a></li>
<li><a href="#news">News</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Company</h4>
<ul>
<li>
<a href="mailto:hello@my-biz.app">Contact Us</a>
</li>
<li><a href="#">About</a></li>
<li><a href="#">Careers</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Legal</h4>
<ul>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Terms of Service</a></li>
<li><a href="#">Cookie Policy</a></li>
<li><a href="#">Imprint</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<span>&copy; 2025 my-biz.app — All rights reserved.</span>
<div class="footer-legal">
<a href="#">Privacy</a>
<a href="#">Terms</a>
<a href="#">Imprint</a>
</div>
</div>
</footer>
<script>
(function () {
"use strict";
/* ── All slides: every section + the footer ── */
var slides = Array.prototype.slice.call(
document.querySelectorAll("section, footer"),
);
var cur = 0;
var busy = false;
/* ── Button label for each slide (shows next destination) ── */
var LABELS = [
"Our Verticals →",
"News & Insights →",
"Pricing →",
"Customization →",
"Wrap it up →",
"↑ Start Over",
];
/* ── Hide every slide except the first ── */
slides.forEach(function (s, i) {
if (i > 0) {
s.style.display = "none";
s.style.opacity = "0";
}
});
/* ── Collect the child elements we want to animate ── */
function getEls(slide) {
return Array.prototype.slice.call(
slide.querySelectorAll(
".hero-eyebrow, h1, h2," +
".hero-sub, .hero-tagline, .hero-actions, .hero-trust," +
".section-label, .section-title, .section-sub," +
".vertical-card, .news-card, .pricing-card, .custom-card," +
".footer-brand, .footer-col, .footer-bottom",
),
);
}
/* ── Fly elements OUT (exit to the left) ── */
function flyOut(slide, done) {
var els = getEls(slide);
var STEP = 48; /* ms between each element */
var DUR = 280; /* transition duration */
var total = els.length * STEP + DUR + 60;
els.forEach(function (el, i) {
el.style.transition =
"opacity " +
DUR +
"ms ease " +
i * STEP +
"ms," +
"transform " +
DUR +
"ms cubic-bezier(.55,0,.9,.4) " +
i * STEP +
"ms";
/* trigger reflow so transition fires */
void el.offsetWidth;
el.style.opacity = "0";
el.style.transform = "translateX(-52px) scale(.96)";
});
setTimeout(function () {
/* reset inline styles so the slide is pristine when revisited */
els.forEach(function (el) {
el.style.transition = "";
el.style.opacity = "";
el.style.transform = "";
});
slide.style.display = "none";
slide.style.opacity = "0";
done();
}, total);
}
/* ── Fly elements IN (enter from right / bottom) ── */
function flyIn(slide, done) {
slide.style.display = "";
slide.style.opacity = "1";
window.scrollTo({ top: 0, behavior: "auto" });
var els = getEls(slide);
var STEP = 85; /* ms stagger between elements */
var DUR = 600; /* transition duration */
var PRE = 60; /* initial pause before first el */
var total = PRE + els.length * STEP + DUR + 80;
/* Snap all elements to their start state */
els.forEach(function (el) {
el.style.transition = "none";
el.style.opacity = "0";
el.style.transform = "translateY(38px) scale(.94)";
});
/* Double rAF: ensures the browser has painted the start state */
requestAnimationFrame(function () {
requestAnimationFrame(function () {
els.forEach(function (el, i) {
var delay = PRE + i * STEP;
el.style.transition =
"opacity " +
DUR +
"ms cubic-bezier(.18,.88,.32,1.15) " +
delay +
"ms," +
"transform " +
DUR +
"ms cubic-bezier(.18,.88,.32,1.15) " +
delay +
"ms";
el.style.opacity = "";
el.style.transform = "";
});
setTimeout(function () {
busy = false;
updateBtn();
if (typeof done === "function") done();
}, total);
});
});
}
/* ── Advance to the next slide ── */
function next() {
if (busy) return;
busy = true;
var from = slides[cur];
cur = (cur + 1) % slides.length;
var to = slides[cur];
flyOut(from, function () {
flyIn(to, null);
});
}
/* ── Build the floating button ── */
var btn = document.createElement("button");
btn.id = "cc-next";
document.body.appendChild(btn);
function updateBtn() {
btn.textContent =
LABELS[cur] !== undefined
? LABELS[cur]
: "↑ Start Over";
}
btn.addEventListener("click", next);
/* ── Keyboard: → ↓ Space advance; ← ↑ ignored ── */
document.addEventListener("keydown", function (e) {
if (
e.key === "ArrowRight" ||
e.key === "ArrowDown" ||
e.key === " "
) {
e.preventDefault();
next();
}
});
/* ── Progress dots (small, tasteful) ── */
var dotsWrap = document.createElement("div");
dotsWrap.id = "cc-dots";
dotsWrap.style.cssText =
"position:fixed;bottom:36px;left:50%;transform:translateX(-50%);" +
"display:flex;gap:8px;z-index:9998;";
slides.forEach(function (_, i) {
var d = document.createElement("span");
d.style.cssText =
"width:7px;height:7px;border-radius:50%;cursor:pointer;" +
"background:rgba(192,123,59,.35);transition:background .3s,transform .3s;";
d.addEventListener("click", function () {
if (busy || i === cur) return;
/* jump forward only (to keep animation direction consistent) */
if (i > cur) {
busy = true;
var from = slides[cur];
cur = i;
flyOut(from, function () {
flyIn(slides[cur], null);
});
}
});
dotsWrap.appendChild(d);
});
document.body.appendChild(dotsWrap);
function refreshDots() {
var ds = dotsWrap.querySelectorAll("span");
ds.forEach(function (d, i) {
if (i === cur) {
d.style.background = "#C07B3B";
d.style.transform = "scale(1.4)";
} else {
d.style.background = "rgba(192,123,59,.35)";
d.style.transform = "scale(1)";
}
});
}
/* Patch updateBtn to also refresh dots */
var _updateBtn = updateBtn;
updateBtn = function () {
_updateBtn();
refreshDots();
};
/* ── Init ── */
updateBtn();
})();
</script>
</body>
</html>