Files
boc/backups/2026-07-12-1023/quixzoom.nl/_backups/index-20260614-1629.html
T
Bernt 58ca4e68db feat(boc): Complete Business Operations Center v1.0
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
2026-07-12 12:41:35 +00:00

480 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>quiXzoom — Document Europe. Get Paid. | Become a Zoomer</title>
<meta name="description" content="Become a Zoomer anywhere in Europe: take photo missions near you and earn money. GDPR-compliant. Free to join. Launching August 1, 2026.">
<meta name="robots" content="index, follow">
<meta name="theme-color" content="#0a0a0a">
<meta name="author" content="quiXzoom AB">
<link rel="canonical" href="https://quixzoom.eu/">
<link rel="alternate" hreflang="en" href="https://quixzoom.eu/">
<link rel="alternate" hreflang="en" href="https://www.quixzoom.com/">
<link rel="alternate" hreflang="de" href="https://quixzoom.de/">
<link rel="alternate" hreflang="fr" href="https://quixzoom.fr/">
<link rel="alternate" hreflang="en-gb" href="https://quixzoom.co.uk/">
<link rel="alternate" hreflang="x-default" href="https://www.quixzoom.com/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="quiXzoom">
<meta property="og:title" content="quiXzoom — Document Europe. Get Paid. | Become a Zoomer">
<meta property="og:description" content="Become a Zoomer anywhere in Europe: take photo missions near you and earn money. GDPR-compliant. Free to join. Launching August 1, 2026.">
<meta property="og:url" content="https://quixzoom.eu/">
<meta property="og:locale" content="en_EU">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@quixzoom">
<style>
:root{--qx-black:#0a0a0a;--qx-white:#FFFFFF;--qx-blue:#0066FF;--qx-blue-light:#E8F0FF;--qx-blue-dark:#0052CC;--qx-green:#00C853;--qx-gray:#F5F5F7;--qx-gray-dark:#86868b;--qx-border:#D2D2D7;--qx-text:#1d1d1f;--qx-footer:#1a1a1a;--qx-radius:12px;--qx-radius-lg:20px;--qx-shadow:0 2px 20px rgba(0,0,0,.08);--qx-shadow-lg:0 8px 40px rgba(0,0,0,.14);--font:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--qx-white);color:var(--qx-text);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container{max-width:1100px;margin:0 auto;padding:0 24px}
#nav{position:sticky;top:0;z-index:200;background:rgba(10,10,10,.90);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid rgba(255,255,255,.07)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:58px;max-width:1100px;margin:0 auto;padding:0 24px;gap:16px}
.nav-logo{font-size:1.3rem;font-weight:800;color:var(--qx-white);letter-spacing:-.03em;flex-shrink:0}
.nav-logo .x{color:var(--qx-blue)}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{color:rgba(255,255,255,.78);font-size:.875rem;font-weight:500;padding:6px 10px;border-radius:8px;transition:color .15s,background .15s;white-space:nowrap}
.nav-links a:hover{color:var(--qx-white);background:rgba(255,255,255,.08)}
.nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-cta{background:var(--qx-blue);color:var(--qx-white);padding:8px 20px;border-radius:20px;font-size:.875rem;font-weight:700;transition:opacity .15s,transform .15s;white-space:nowrap}
.nav-cta:hover{opacity:.88;transform:translateY(-1px)}
#nav-toggle{display:none}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;border-radius:8px;background:rgba(255,255,255,.08);border:none;flex-shrink:0}
.hamburger span{display:block;width:20px;height:2px;background:rgba(255,255,255,.85);border-radius:2px;transition:transform .25s,opacity .25s}
#nav-toggle:checked ~ .nav-inner .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#nav-toggle:checked ~ .nav-inner .hamburger span:nth-child(2){opacity:0}
#nav-toggle:checked ~ .nav-inner .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;padding:12px 20px 20px;border-top:1px solid rgba(255,255,255,.07);gap:4px}
#nav-toggle:checked ~ .mobile-menu{display:flex}
.mobile-menu a{color:rgba(255,255,255,.85);font-size:1rem;font-weight:500;padding:10px 14px;border-radius:10px;transition:background .15s}
.mobile-menu a:hover{background:rgba(255,255,255,.08)}
.mobile-menu .m-cta{background:var(--qx-blue);color:var(--qx-white);font-weight:700;text-align:center;margin-top:8px;border-radius:20px}
#hero{background:var(--qx-black);color:var(--qx-white);padding:96px 24px 80px;text-align:center;position:relative;overflow:hidden}
#hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,102,255,.18) 0%,transparent 70%);pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(0,102,255,.15);color:#6699FF;border:1px solid rgba(0,102,255,.3);border-radius:24px;padding:7px 18px;font-size:.8125rem;font-weight:700;letter-spacing:.02em;margin-bottom:28px}
h1{font-size:clamp(2.25rem,5.5vw,4rem);font-weight:900;line-height:1.05;letter-spacing:-.04em;margin-bottom:24px}
h1 em{font-style:normal;color:var(--qx-blue)}
.hero-sub{font-size:clamp(1rem,2vw,1.25rem);color:rgba(255,255,255,.65);max-width:620px;margin:0 auto 36px;line-height:1.65}
.hero-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.btn-primary{background:var(--qx-blue);color:var(--qx-white);padding:15px 36px;border-radius:28px;font-size:1.0625rem;font-weight:700;transition:transform .15s,opacity .15s,box-shadow .15s;display:inline-block;box-shadow:0 4px 24px rgba(0,102,255,.35)}
.btn-primary:hover{transform:translateY(-2px);opacity:.92;box-shadow:0 8px 32px rgba(0,102,255,.45)}
.btn-secondary{background:rgba(255,255,255,.08);color:var(--qx-white);padding:15px 36px;border-radius:28px;font-size:1.0625rem;font-weight:600;border:1px solid rgba(255,255,255,.18);transition:background .15s,transform .15s;display:inline-block}
.btn-secondary:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}
.trust-strip{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:16px;color:rgba(255,255,255,.5);font-size:.8125rem;font-weight:500}
.trust-strip span{display:flex;align-items:center;gap:6px}
.trust-strip span::before{content:'✓';color:var(--qx-green);font-weight:700}
#stats{background:var(--qx-blue);color:var(--qx-white);padding:48px 24px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:960px;margin:0 auto;text-align:center}
.stat-value{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:900;letter-spacing:-.03em;line-height:1}
.stat-label{font-size:.875rem;font-weight:500;opacity:.82;margin-top:6px}
section{padding:88px 24px}
.section-label{font-size:.75rem;font-weight:800;color:var(--qx-blue);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px}
.section-title{font-size:clamp(1.875rem,3.5vw,2.75rem);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:14px}
.section-sub{color:var(--qx-gray-dark);font-size:1.0625rem;max-width:600px;margin-bottom:52px;line-height:1.65}
.section-link{display:inline-flex;align-items:center;gap:6px;color:var(--qx-blue);font-size:.9375rem;font-weight:600;margin-top:32px;border-bottom:1.5px solid rgba(0,102,255,.25);padding-bottom:2px;transition:border-color .15s,gap .15s}
.section-link:hover{border-color:var(--qx-blue);gap:10px}
#how-it-works{background:var(--qx-white)}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px}
.step-card{background:var(--qx-gray);border-radius:var(--qx-radius-lg);padding:36px 32px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s;display:block;color:inherit}
.step-card:hover{transform:translateY(-4px);box-shadow:var(--qx-shadow-lg)}
.step-num{font-size:5rem;font-weight:900;color:var(--qx-blue);opacity:.1;position:absolute;top:12px;right:20px;line-height:1;pointer-events:none}
.step-icon{font-size:2.25rem;margin-bottom:18px}
.step-title{font-size:1.1875rem;font-weight:800;margin-bottom:10px;color:var(--qx-black)}
.step-desc{color:var(--qx-gray-dark);font-size:.9375rem;line-height:1.65;margin-bottom:16px}
.step-link{display:inline-flex;align-items:center;gap:5px;color:var(--qx-blue);font-size:.875rem;font-weight:700;transition:gap .15s}
.step-link:hover{gap:9px}
#missions{background:var(--qx-gray)}
.missions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.mission-card{background:var(--qx-white);border:1.5px solid var(--qx-border);border-radius:var(--qx-radius-lg);overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}
.mission-card:hover,.mission-card:focus-within{transform:translateY(-4px);box-shadow:var(--qx-shadow-lg);border-color:rgba(0,102,255,.3)}
.mission-header{padding:28px 28px 0}
.mission-icon{font-size:2rem;margin-bottom:12px}
.mission-title{font-size:1.125rem;font-weight:800;color:var(--qx-black);margin-bottom:6px}
.mission-pay{display:inline-block;background:var(--qx-blue-light);color:var(--qx-blue);font-size:.8125rem;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:14px}
.mission-body{padding:0 28px 24px;color:var(--qx-gray-dark);font-size:.9375rem;line-height:1.6}
.mission-detail{background:var(--qx-blue-light);border-top:1px solid rgba(0,102,255,.1);padding:0;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}
.mission-card:focus-within .mission-detail,.mission-card:hover .mission-detail{max-height:200px;padding:16px 28px}
.mission-detail p{font-size:.875rem;color:var(--qx-blue-dark);line-height:1.6;margin-bottom:10px}
.mission-cta-link{display:inline-flex;align-items:center;gap:5px;color:var(--qx-blue);font-size:.875rem;font-weight:700;transition:gap .15s}
.mission-cta-link:hover{gap:9px}
#earnings{background:var(--qx-white)}
.earnings-intro{color:var(--qx-gray-dark);font-size:1.0625rem;max-width:600px;margin-bottom:44px;line-height:1.65}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:40px}
.pricing-card{border:2px solid var(--qx-border);border-radius:var(--qx-radius-lg);padding:36px 32px;position:relative;transition:transform .2s,box-shadow .2s;background:var(--qx-white)}
.pricing-card:hover{transform:translateY(-4px);box-shadow:var(--qx-shadow-lg)}
.pricing-card.featured{border-color:var(--qx-blue);box-shadow:0 4px 32px rgba(0,102,255,.15)}
.pricing-level{font-size:.8125rem;font-weight:700;color:var(--qx-gray-dark);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.pricing-amount{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:900;color:var(--qx-black);letter-spacing:-.03em;line-height:1;margin-bottom:6px}
.pricing-freq{color:var(--qx-gray-dark);font-size:.9375rem;margin-bottom:18px}
.pricing-desc{color:var(--qx-gray-dark);font-size:.9375rem;line-height:1.6;padding-top:18px;border-top:1px solid var(--qx-border)}
.payment-details{margin-top:36px}
.payment-details summary{cursor:pointer;font-size:1rem;font-weight:700;color:var(--qx-black);padding:18px 24px;background:var(--qx-gray);border-radius:var(--qx-radius);list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background .15s}
.payment-details summary:hover{background:#eaeaec}
.payment-details summary::after{content:'';font-size:1.25rem;color:var(--qx-blue);transition:transform .25s}
.payment-details[open] summary::after{content:''}
.payment-details-body{padding:24px;background:var(--qx-gray);border-radius:0 0 var(--qx-radius) var(--qx-radius);margin-top:-4px}
.payment-details-body ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.payment-details-body li{display:flex;gap:10px;color:var(--qx-gray-dark);font-size:.9375rem;line-height:1.5}
.payment-details-body li::before{content:'';color:var(--qx-blue);font-weight:700;flex-shrink:0}
.payment-details-body a{color:var(--qx-blue);font-weight:600;border-bottom:1px solid rgba(0,102,255,.2);transition:border-color .15s}
.payment-details-body a:hover{border-color:var(--qx-blue)}
#faq{background:var(--qx-gray)}
.faq-list{max-width:740px;display:flex;flex-direction:column;gap:10px}
.faq-list details{background:var(--qx-white);border-radius:var(--qx-radius);border:1px solid var(--qx-border);overflow:hidden;transition:box-shadow .2s}
.faq-list details[open]{box-shadow:var(--qx-shadow)}
.faq-list summary{cursor:pointer;padding:20px 24px;font-size:1rem;font-weight:700;color:var(--qx-black);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:background .15s}
.faq-list summary:hover{background:#fafafa}
.faq-list summary::after{content:'+';font-size:1.375rem;font-weight:400;color:var(--qx-blue);flex-shrink:0;line-height:1;transition:transform .25s}
.faq-list details[open] summary::after{content:''}
.faq-list summary::-webkit-details-marker{display:none}
.faq-answer-body{padding:0 24px 20px;color:var(--qx-gray-dark);font-size:.9375rem;line-height:1.7}
.faq-answer-body a{color:var(--qx-blue);font-weight:600;border-bottom:1px solid rgba(0,102,255,.2);transition:border-color .15s}
.faq-answer-body a:hover{border-color:var(--qx-blue)}
.faq-contact{margin-top:28px;color:var(--qx-gray-dark);font-size:.9375rem}
.faq-contact a{color:var(--qx-blue);font-weight:600;border-bottom:1px solid rgba(0,102,255,.2)}
#app-cta{background:var(--qx-black);color:var(--qx-white);text-align:center;position:relative;overflow:hidden}
#app-cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 100%,rgba(0,102,255,.2),transparent 70%);pointer-events:none}
#app-cta .section-title{color:var(--qx-white);margin-bottom:14px}
.app-sub{font-size:1.125rem;color:rgba(255,255,255,.65);margin-bottom:40px;line-height:1.6}
.app-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.app-btn{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.18);color:var(--qx-white);padding:14px 28px;border-radius:16px;font-size:1rem;font-weight:700;transition:background .15s,transform .15s,border-color .15s}
.app-btn:hover{background:rgba(255,255,255,.16);transform:translateY(-2px);border-color:rgba(255,255,255,.3)}
.app-btn-icon{font-size:1.75rem;line-height:1}
.app-btn-text{text-align:left;line-height:1.3}
.app-btn-text small{display:block;font-size:.75rem;font-weight:400;opacity:.7}
.app-trust{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;color:rgba(255,255,255,.45);font-size:.8125rem;font-weight:500}
footer{background:var(--qx-footer);color:rgba(255,255,255,.6);padding:60px 24px 32px}
.footer-inner{max-width:1100px;margin:0 auto}
.footer-cols{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px;margin-bottom:48px}
.footer-brand .brand-logo{font-size:1.4rem;font-weight:900;color:var(--qx-white);letter-spacing:-.03em;margin-bottom:8px}
.footer-brand .brand-logo .x{color:var(--qx-blue)}
.footer-brand .tagline{font-size:.875rem;color:rgba(255,255,255,.4);margin-bottom:20px;line-height:1.5}
.footer-lang{display:flex;flex-wrap:wrap;gap:6px}
.footer-lang a{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);padding:5px 10px;border-radius:7px;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}
.footer-lang a:hover{background:rgba(0,102,255,.25);color:var(--qx-white);border-color:rgba(0,102,255,.35)}
.footer-lang a.active{color:var(--qx-blue);border-color:rgba(0,102,255,.3);background:rgba(0,102,255,.12)}
.footer-col h4{font-size:.8125rem;font-weight:800;color:var(--qx-white);text-transform:uppercase;letter-spacing:.07em;margin-bottom:14px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.footer-col a{font-size:.875rem;color:rgba(255,255,255,.5);transition:color .15s}
.footer-col a:hover{color:rgba(255,255,255,.9)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-copy{font-size:.8125rem;color:rgba(255,255,255,.3)}
.footer-aamos{font-size:.8125rem}
.footer-aamos a{color:rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:1px;transition:color .15s,border-color .15s}
.footer-aamos a:hover{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.4)}
@media(max-width:900px){.footer-cols{grid-template-columns:1fr 1fr;gap:28px}.footer-brand{grid-column:1/-1}.stats-grid{grid-template-columns:repeat(2,1fr)}.nav-links{display:none}.hamburger{display:flex}}
@media(max-width:600px){section{padding:64px 16px}.stats-grid{grid-template-columns:1fr 1fr;gap:24px}.footer-cols{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}#hero{padding:72px 16px 64px}.app-buttons{flex-direction:column;align-items:center}.footer-bottom{flex-direction:column;text-align:center}}
@media(max-width:400px){.stats-grid{grid-template-columns:1fr}.footer-cols{grid-template-columns:1fr}}
html,body{overflow-x:hidden;-webkit-text-size-adjust:100%}
img,svg,video{max-width:100%}
@media(hover:none),(pointer:coarse){.mission-detail{max-height:none!important;padding:16px 28px!important}}
@media(max-width:480px){.nav-inner{padding:0 14px}#hero{padding:56px 14px 48px}h1{font-size:clamp(1.9rem,8vw,2.6rem)!important;line-height:1.08}.hero-sub{font-size:.95rem}.hero-badge{font-size:.75rem;padding:5px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90vw}.btn-primary,.btn-secondary{padding:13px 24px;font-size:.95rem;width:100%;text-align:center}.hero-ctas{flex-direction:column;gap:10px}.trust-strip{gap:10px;font-size:.75rem;flex-direction:column;gap:6px;align-items:flex-start;padding:0 4px}#stats{padding:32px 14px}.stats-grid{grid-template-columns:1fr 1fr!important;gap:16px}.stat-value{font-size:1.75rem!important}section{padding:48px 14px}.section-title{font-size:clamp(1.5rem,6vw,2rem)!important}.section-sub{font-size:.95rem;margin-bottom:32px}.steps-grid{grid-template-columns:1fr!important;gap:16px}.missions-grid{grid-template-columns:1fr!important;gap:14px}.pricing-grid{grid-template-columns:1fr!important;gap:16px}.faq-list summary{padding:16px 18px;font-size:.95rem}.faq-answer-body{padding:0 18px 16px;font-size:.875rem}footer{padding:40px 14px 24px}.footer-cols{grid-template-columns:1fr 1fr!important;gap:24px}.footer-lang a{font-size:.75rem;padding:4px 8px}.container{padding-left:14px;padding-right:14px;box-sizing:border-box;width:100%}}
@media(max-width:360px){h1{font-size:1.75rem!important}.footer-cols{grid-template-columns:1fr!important}}
/* AI Images */
.hero-image-wrap{position:relative;width:100%;max-width:960px;margin:40px auto 0;border-radius:20px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,102,.4)}
.hero-image-wrap img{width:100%;height:auto;display:block}
.app-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;pointer-events:none;z-index:0}
#app-cta{position:relative;overflow:hidden}
#app-cta .container{position:relative;z-index:1}
@media(max-width:480px){.hero-image-wrap{border-radius:12px;margin-top:28px}}
</style>
</head>
<body>
<input type="checkbox" id="nav-toggle" aria-hidden="true" style="display:none">
<nav id="nav" aria-label="Main navigation">
<div class="nav-inner">
<a class="nav-logo" href="https://quixzoom.eu/">quiX<span class="x">zoom</span></a>
<ul class="nav-links" role="list">
<li><a href="#how-it-works">How it works</a></li>
<li><a href="#missions">Mission types</a></li>
<li><a href="#earnings">Earnings</a></li>
<li><a href="#faq">FAQ</a></li>
</ul>
<div class="nav-right">
<a class="nav-cta" href="https://app.quixzoom.com/join">Become a Zoomer →</a>
<label class="hamburger" for="nav-toggle" aria-label="Menu" role="button">
<span></span><span></span><span></span>
</label>
</div>
</div>
<nav class="mobile-menu" aria-label="Mobile menu">
<a href="#how-it-works">How it works</a>
<a href="#missions">Mission types</a>
<a href="#earnings">Earnings</a>
<a href="#faq">FAQ</a>
<a class="m-cta" href="https://app.quixzoom.com/join">Become a Zoomer →</a>
</nav>
</nav>
<main>
<section id="hero" aria-labelledby="hero-h1">
<div class="container">
<div class="hero-badge">🇪🇺 Europe · Launch August 1, 2026</div>
<h1 id="hero-h1">Document Europe.<br><em>Get paid.</em></h1>
<p class="hero-sub">quiXzoom pays you to photograph infrastructure, nature and urban environments near you. Available across Europe — all countries welcome. GDPR-compliant. Paid per approved mission.</p>
<div class="hero-ctas">
<a class="btn-primary" href="https://app.quixzoom.com/join">Become a Zoomer →</a>
<a class="btn-secondary" href="#how-it-works">See how it works ↓</a>
</div>
<div class="trust-strip">
<span>Free to join</span>
<span>All European countries welcome</span>
<span>GDPR-compliant</span>
</div>
<div class="hero-image-wrap"><img src="https://www.quixzoom.com/images/hero_infrastructure.jpg" alt="Zoomer photographing infrastructure" width="960" height="540" loading="eager" decoding="async"></div>
</div>
</section>
<section id="stats" aria-label="Stats">
<div class="container">
<div class="stats-grid">
<div><div class="stat-value">~30 min</div><div class="stat-label">average mission time</div></div>
<div><div class="stat-value">All EU</div><div class="stat-label">countries welcome</div></div>
<div><div class="stat-value">Aug 1</div><div class="stat-label">Europe-wide launch 2026</div></div>
<div><div class="stat-value">GDPR</div><div class="stat-label">compliant by design</div></div>
</div>
</div>
</section>
<section id="how-it-works" aria-labelledby="how-h2">
<div class="container">
<p class="section-label">How it works</p>
<h2 id="how-h2" class="section-title">From app to paid in three steps</h2>
<p class="section-sub">No training needed, no special equipment — just your smartphone and a little time. Works in every European country.</p>
<div class="steps-grid">
<a class="step-card" href="https://app.quixzoom.com/join">
<div class="step-num" aria-hidden="true">1</div>
<div class="step-icon"><span style="font-size:2.25rem">📱</span></div>
<h3 class="step-title">Join for free</h3>
<p class="step-desc">Sign up in 5 minutes. Verify your identity with a photo of your passport or national ID plus a selfie. Works in every EU country.</p>
<span class="step-link">Get started →</span>
</a>
<a class="step-card" href="#missions">
<div class="step-num" aria-hidden="true">2</div>
<div class="step-icon"><span style="font-size:2.25rem">🗺️</span></div>
<h3 class="step-title">Pick a mission on the map</h3>
<p class="step-desc">Browse available missions near you across Europe. Filter by type, duration and payout.</p>
<span class="step-link">See mission types →</span>
</a>
<a class="step-card" href="#earnings">
<div class="step-num" aria-hidden="true">3</div>
<div class="step-icon"><span style="font-size:2.25rem">💶</span></div>
<h3 class="step-title">Shoot &amp; earn</h3>
<p class="step-desc">Navigate to the location, photograph to spec, upload. Payment is released as soon as your mission is approved.</p>
<span class="step-link">What do you earn? →</span>
</a>
</div>
</div>
</section>
<section id="missions" aria-labelledby="missions-h2">
<div class="container">
<p class="section-label">Mission types</p>
<h2 id="missions-h2" class="section-title">What kinds of missions are there?</h2>
<p class="section-sub">Six categories available across Europe. All with transparent pay. Choose what suits you.</p>
<div class="missions-grid">
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon">🏗️</div>
<h3 class="mission-title">Infrastructure Inspection</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">Bridges, roads, utility lines, foundations. Municipalities and government agencies across Europe pay for regular visual checks.</div>
<div class="mission-detail"><p>Clients: municipalities, government agencies, infrastructure operators. GDPR-compliant data handling throughout.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon">🏢</div>
<h3 class="mission-title">Property Survey</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">Facades, roofs, entrances, car parks. Property companies across Europe document continuously for insurance and maintenance planning.</div>
<div class="mission-detail"><p>Clients: property companies, housing associations, public housing operators.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon">🌿</div>
<h3 class="mission-title">Nature &amp; Coastline</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">European coasts, beaches, rivers, wetlands. Maritime authorities, environmental agencies, research institutions. Perfect if you already spend time outdoors.</div>
<div class="mission-detail"><p>Clients: maritime authorities, environmental companies, research institutions across Europe.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon"></div>
<h3 class="mission-title">Damage Documentation</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">Storm damage, flooding, vandalism. Insurance companies across Europe. Fastest missions pay most. Time-critical — bonus for quick delivery.</div>
<div class="mission-detail"><p>Clients: pan-European and local insurers. Triggered automatically by weather events.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon">📍</div>
<h3 class="mission-title">Geo-verification</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">Confirm that an asset exists and looks as expected. E-commerce, banks, property agencies across the EU. Quick and straightforward.</div>
<div class="mission-detail"><p>Clients: e-commerce, finance and logistics companies. Simple missions — typically 1015 minutes.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
<article class="mission-card" tabindex="0">
<div class="mission-header">
<div class="mission-icon">🏙️</div>
<h3 class="mission-title">Urban Environment</h3>
<span class="mission-pay">Paid per mission</span>
</div>
<div class="mission-body">Street conditions, signage, accessibility. Municipalities, retail chains, urban planners across Europe. Perfect in your own neighbourhood.</div>
<div class="mission-detail"><p>Clients: municipalities, retail chains, urban planners.</p><a class="mission-cta-link" href="https://app.quixzoom.com/join">Join to see active missions →</a></div>
</article>
</div>
<a class="section-link" href="https://app.quixzoom.com/join">Join to see active missions →</a>
</div>
</section>
<section id="earnings" aria-labelledby="earnings-h2">
<div class="container">
<p class="section-label">Earnings</p>
<h2 id="earnings-h2" class="section-title">What do you earn?</h2>
<p class="earnings-intro">Every approved mission earns you a direct payment. Available in all European countries. The more missions you complete, the more you earn.</p>
<div class="pricing-grid">
<div class="pricing-card">
<div class="pricing-level">Part-time</div>
<div class="pricing-amount">Side income</div>
<div class="pricing-freq">24 missions per week</div>
<div class="pricing-desc">Great as a supplement to studies or a part-time job. Flexible hours, no commitments. Works anywhere in Europe.</div>
</div>
<div class="pricing-card featured">
<div class="pricing-level">Active</div>
<div class="pricing-amount">Regular income</div>
<div class="pricing-freq">812 missions per week</div>
<div class="pricing-desc">A main income stream for many Zoomers across Europe. Builds your rating fast — unlocks premium missions.</div>
</div>
<div class="pricing-card">
<div class="pricing-level">Pro</div>
<div class="pricing-amount">Maximum income</div>
<div class="pricing-freq">15+ missions per week</div>
<div class="pricing-desc">Experienced Zoomers with high ratings get priority access to premium missions and bonuses Europe-wide.</div>
</div>
</div>
<details class="payment-details">
<summary>Payment &amp; tax — how does it work?</summary>
<div class="payment-details-body">
<ul>
<li>Paid via Stripe Connect after each approved mission</li>
<li>No hidden fees. The amount shown in the app is what you receive.</li>
<li>GDPR-compliant data handling — your data stays in the EU.</li>
<li>You are responsible for your own tax reporting according to applicable rules in your country.</li>
<li><a href="#faq">Frequently asked questions →</a></li>
</ul>
</div>
</details>
<div style="margin-top:36px">
<a class="btn-primary" href="https://app.quixzoom.com/join">Become a Zoomer →</a>
</div>
</div>
</section>
<section id="faq" aria-labelledby="faq-h2">
<div class="container">
<p class="section-label">FAQ</p>
<h2 id="faq-h2" class="section-title">Common questions</h2>
<div class="faq-list">
<details>
<summary>Is quiXzoom available in my European country?</summary>
<div class="faq-answer-body">Yes. quiXzoom is available across Europe — all countries are welcome at launch on August 1, 2026. Sign up now to get early access in your region.</div>
</details>
<details>
<summary>Is quiXzoom GDPR-compliant?</summary>
<div class="faq-answer-body">Yes. quiXzoom is designed to be GDPR-compliant from the ground up. Your personal data is processed according to EU data protection rules.</div>
</details>
<details>
<summary>Do I need a professional camera?</summary>
<div class="faq-answer-body">No. Your smartphone is all you need. We accept photos from iPhone 12+ and Android phones with 12MP+.</div>
</details>
<details>
<summary>How and when do I get paid?</summary>
<div class="faq-answer-body">Payment is processed after each approved mission via Stripe Connect directly to your bank account. You need to verify your identity once. Takes about 2 minutes. Works from any country.</div>
</details>
<details>
<summary>Is this taxable income?</summary>
<div class="faq-answer-body">Yes. Income from quiXzoom is taxable. You are responsible for your own tax reporting according to the applicable rules in your country.</div>
</details>
</div>
<p class="faq-contact">Still have questions? Contact us: <a href="mailto:hello@quixzoom.com">hello@quixzoom.com</a></p>
</div>
</section>
<section id="app-cta" aria-labelledby="cta-h2">
<div class="container" style="padding-top:88px;padding-bottom:88px">
<h2 id="cta-h2" class="section-title">Ready to document Europe?</h2>
<p class="app-sub">Join Zoomers across Europe. Free to sign up. No commitment. GDPR-compliant.</p>
<div class="app-buttons">
<a class="app-btn" href="https://app.quixzoom.com/join">
<span class="app-btn-icon">🚀</span>
<span class="app-btn-text"><small>Sign up at</small>app.quixzoom.com</span>
</a>
</div>
<div class="app-trust">
<span>Free to join</span>
<span>All European countries welcome</span>
<span>GDPR-compliant</span>
</div>
</div>
</section>
</main>
<footer>
<div class="footer-inner">
<div class="footer-cols">
<div class="footer-brand">
<div class="brand-logo">quiX<span class="x">zoom</span></div>
<p class="tagline">Document Europe. Get paid.</p>
<div class="footer-lang">
<a href="https://quixzoom.eu/" hreflang="en-eu" class="active">🇪🇺 EU</a>
<a href="https://www.quixzoom.com/" hreflang="en">🌍 EN</a>
<a href="https://quixzoom.de/" hreflang="de">🇩🇪 DE</a>
<a href="https://quixzoom.fr/" hreflang="fr">🇫🇷 FR</a>
<a href="https://quixzoom.co.uk/" hreflang="en-gb">🇬🇧 UK</a>
</div>
</div>
<div class="footer-col">
<h4>Zoomers</h4>
<ul>
<li><a href="#how-it-works">How it works</a></li>
<li><a href="#missions">Mission types</a></li>
<li><a href="#earnings">Earnings</a></li>
<li><a href="https://app.quixzoom.com/join">Sign up free</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Legal</h4>
<ul>
<li><a href="https://quixzoom.com/privacy">Privacy Policy</a></li>
<li><a href="https://quixzoom.com/terms">Terms of Service</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Company</h4>
<ul>
<li><a href="mailto:enterprise@quixzoom.com">Enterprise</a></li>
<li><a href="mailto:hello@quixzoom.com">hello@quixzoom.com</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p class="footer-copy">© 2026 quiXzoom AB. All rights reserved.</p>
<p class="footer-aamos">Contact: <a href="mailto:ops@quixzoom.com">ops@quixzoom.com</a></p>
</div>
</div>
</footer>
</body>
</html>