<!doctype html>

<html lang="en-CA">

<head>

  <meta charset="utf-8" />

  <meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>MobiWiki — Software & Services</title>

  <meta name="description" content="MobiWiki builds reliable software: mobile apps, web platforms, APIs, and cloud solutions. Based in Canada. Let’s ship." />

  <meta name="theme-color" content="#0b1220" />


  <!-- Open Graph -->

  <meta property="og:title" content="MobiWiki — Software & Services" />

  <meta property="og:description" content="We build reliable software: mobile apps, web platforms, APIs, and cloud solutions." />

  <meta property="og:type" content="website" />

  <meta property="og:url" content="https://mobiwiki.ca" />


  <style>

    :root{

      --bg:#0b1220;

      --panel:#0f1a32;

      --card:#101c36;

      --text:#e8eefc;

      --muted:#b6c2e3;

      --line:rgba(232,238,252,.12);

      --brand:#6ea8ff;

      --brand2:#7cf0d1;

      --shadow: 0 10px 30px rgba(0,0,0,.35);

      --radius: 18px;

      --max: 1100px;

      --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";

    }

    *{box-sizing:border-box}

    html,body{height:100%}

    body{

      margin:0;

      font-family:var(--font);

      color:var(--text);

      background:

        radial-gradient(900px 600px at 10% 0%, rgba(110,168,255,.18), transparent 60%),

        radial-gradient(800px 500px at 90% 10%, rgba(124,240,209,.14), transparent 60%),

        radial-gradient(700px 500px at 50% 95%, rgba(110,168,255,.10), transparent 60%),

        var(--bg);

      line-height:1.5;

    }

    a{color:inherit; text-decoration:none}

    .wrap{max-width:var(--max); margin:0 auto; padding:0 20px}

    .topbar{

      position:sticky; top:0; z-index:50;

      backdrop-filter: blur(10px);

      background: rgba(11,18,32,.65);

      border-bottom: 1px solid var(--line);

    }

    .nav{

      display:flex; align-items:center; justify-content:space-between;

      padding:14px 0;

      gap:16px;

    }

    .brand{

      display:flex; align-items:center; gap:10px; font-weight:800;

      letter-spacing:.2px;

    }

    .logo{

      width:34px; height:34px; border-radius:10px;

      background: linear-gradient(135deg, var(--brand), var(--brand2));

      box-shadow: 0 8px 20px rgba(110,168,255,.18);

      display:grid; place-items:center;

      color:#081020; font-weight:900;

    }

    .navlinks{

      display:flex; gap:18px; align-items:center;

      color:var(--muted);

      font-weight:600;

      flex-wrap:wrap;

    }

    .navlinks a{padding:8px 10px; border-radius:10px}

    .navlinks a:hover{background: rgba(232,238,252,.06); color: var(--text)}

    .cta{

      display:flex; align-items:center; gap:10px;

    }

    .btn{

      border:1px solid var(--line);

      background: rgba(232,238,252,.06);

      padding:10px 14px;

      border-radius: 12px;

      font-weight:700;

      color:var(--text);

      cursor:pointer;

      transition: transform .12s ease, background .12s ease, border-color .12s ease;

      display:inline-flex; align-items:center; gap:8px;

      white-space:nowrap;

    }

    .btn:hover{transform: translateY(-1px); background: rgba(232,238,252,.09); border-color: rgba(232,238,252,.18)}

    .btn.primary{

      background: linear-gradient(135deg, rgba(110,168,255,.95), rgba(124,240,209,.75));

      color:#061023;

      border: none;

    }

    .btn.primary:hover{filter:brightness(1.02)}

    .hero{

      padding:54px 0 20px;

    }

    .hero-grid{

      display:grid;

      grid-template-columns: 1.2fr .8fr;

      gap: 22px;

      align-items:stretch;

    }

    @media (max-width: 920px){

      .hero-grid{grid-template-columns: 1fr; }

    }

    .h-card{

      border:1px solid var(--line);

      background: linear-gradient(180deg, rgba(16,28,54,.88), rgba(16,28,54,.62));

      border-radius: var(--radius);

      box-shadow: var(--shadow);

      padding: 26px;

    }

    h1{

      margin:0 0 10px;

      font-size: clamp(30px, 4.3vw, 48px);

      line-height: 1.08;

      letter-spacing: -0.8px;

    }

    .sub{

      margin:0 0 18px;

      color: var(--muted);

      font-size: 16.5px;

      max-width: 62ch;

    }

    .badges{

      display:flex; flex-wrap:wrap; gap:10px;

      margin: 18px 0 0;

    }

    .badge{

      border:1px solid var(--line);

      background: rgba(232,238,252,.05);

      padding:8px 10px;

      border-radius: 999px;

      font-weight:700;

      color: var(--muted);

      font-size: 13px;

    }

    .kpis{

      display:grid; grid-template-columns: 1fr 1fr;

      gap: 12px; margin-top:16px;

    }

    .kpi{

      border:1px solid var(--line);

      background: rgba(232,238,252,.04);

      border-radius: 14px;

      padding: 14px 14px;

    }

    .kpi strong{display:block; font-size:18px}

    .kpi span{color:var(--muted); font-weight:600; font-size:13.5px}

    .mini{

      display:flex; flex-direction:column; gap:12px;

    }

    .mini .tile{

      border:1px solid var(--line);

      background: rgba(232,238,252,.04);

      border-radius: var(--radius);

      padding: 18px;

      box-shadow: 0 10px 22px rgba(0,0,0,.22);

    }

    .tile h3{margin:0 0 6px; font-size:16px}

    .tile p{margin:0; color:var(--muted); font-weight:600; font-size:14px}

    .section{

      padding: 34px 0;

    }

    .section h2{

      margin: 0 0 10px;

      font-size: 24px;

      letter-spacing: -0.3px;

    }

    .section .lead{

      margin:0 0 18px;

      color: var(--muted);

      max-width: 75ch;

      font-weight:600;

    }

    .grid3{

      display:grid;

      grid-template-columns: repeat(3, 1fr);

      gap: 14px;

    }

    @media (max-width: 920px){

      .grid3{grid-template-columns: 1fr}

    }

    .card{

      border:1px solid var(--line);

      background: rgba(16,28,54,.58);

      border-radius: var(--radius);

      padding: 18px;

    }

    .card h3{margin: 0 0 6px; font-size:16px}

    .card p{margin:0; color:var(--muted); font-weight:600; font-size:14px}

    .list{

      margin: 10px 0 0; padding-left: 18px;

      color: var(--muted);

      font-weight:600;

      font-size: 14px;

    }

    .split{

      display:grid;

      grid-template-columns: 1fr 1fr;

      gap: 14px;

      align-items:stretch;

    }

    @media (max-width: 920px){

      .split{grid-template-columns: 1fr}

    }

    .work{

      display:grid;

      grid-template-columns: 1.2fr .8fr;

      gap: 14px;

    }

    @media (max-width: 920px){

      .work{grid-template-columns: 1fr}

    }

    .pill{

      display:inline-flex;

      align-items:center;

      gap:8px;

      padding:8px 10px;

      border-radius:999px;

      border:1px solid var(--line);

      background: rgba(232,238,252,.05);

      color: var(--muted);

      font-weight:800;

      font-size:12.5px;

      margin-right: 8px;

      margin-bottom: 8px;

    }

    .contact{

      display:grid;

      grid-template-columns: 1fr 1fr;

      gap: 14px;

    }

    @media (max-width: 920px){

      .contact{grid-template-columns: 1fr}

    }

    label{display:block; font-weight:800; font-size:13px; margin:10px 0 6px}

    input, textarea{

      width:100%;

      padding: 12px 12px;

      border-radius: 12px;

      border:1px solid var(--line);

      background: rgba(11,18,32,.55);

      color: var(--text);

      outline: none;

      font: inherit;

    }

    textarea{min-height: 120px; resize: vertical}

    input:focus, textarea:focus{border-color: rgba(110,168,255,.55)}

    .muted{color: var(--muted); font-weight:600}

    .foot{

      border-top: 1px solid var(--line);

      padding: 20px 0;

      color: var(--muted);

      font-weight:600;

      font-size: 13.5px;

    }

    .foot a{color: var(--text)}

    .toast{

      position: fixed;

      left: 50%;

      bottom: 18px;

      transform: translateX(-50%);

      background: rgba(16,28,54,.92);

      border: 1px solid rgba(232,238,252,.18);

      border-radius: 14px;

      padding: 10px 12px;

      box-shadow: var(--shadow);

      color: var(--text);

      font-weight:700;

      display:none;

      max-width: min(520px, calc(100vw - 24px));

    }

    .toast small{display:block; color: var(--muted); font-weight:600; margin-top:2px}

  </style>

</head>


<body>

  <header class="topbar">

    <div class="wrap">

      <div class="nav">

        <a class="brand" href="#top" aria-label="MobiWiki Home">

          <div class="logo">MW</div>

          <div>MobiWiki</div>

        </a>


        <nav class="navlinks" aria-label="Primary navigation">

          <a href="#services">Services</a>

          <a href="#work">Work</a>

          <a href="#about">About</a>

          <a href="#contact">Contact</a>

        </nav>


        <div class="cta">

          <a class="btn" href="mailto:hello@mobiwiki.ca?subject=Project%20Inquiry%20(MobiWiki)">Email</a>

          <a class="btn primary" href="#contact">Get a Quote</a>

        </div>

      </div>

    </div>

  </header>


  <main id="top">

    <!-- HERO -->

    <section class="hero">

      <div class="wrap">

        <div class="hero-grid">

          <div class="h-card">

            <h1>We build software that ships — and stays reliable.</h1>

            <p class="sub">

              MobiWiki is a Canada-based software/services studio. We deliver mobile apps, web platforms,

              backend APIs, and cloud infrastructure with a focus on clean architecture, security, and speed.

            </p>


            <div style="display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;">

              <a class="btn primary" href="#contact">Start a project</a>

              <a class="btn" href="#services">View services</a>

            </div>


            <div class="badges" aria-label="Highlights">

              <div class="badge">Mobile: iOS • Android</div>

              <div class="badge">Web: Next.js • React</div>

              <div class="badge">Backend: FastAPI • Node</div>

              <div class="badge">Cloud: GCP • AWS</div>

              <div class="badge">CI/CD • Monitoring</div>

            </div>


            <div class="kpis" aria-label="Key outcomes">

              <div class="kpi">

                <strong>Speed</strong>

                <span>From idea → MVP in weeks</span>

              </div>

              <div class="kpi">

                <strong>Quality</strong>

                <span>Testing, reviews, observability</span>

              </div>

              <div class="kpi">

                <strong>Security</strong>

                <span>Auth, data protection, best practices</span>

              </div>

              <div class="kpi">

                <strong>Ownership</strong>

                <span>Clear docs & handoff</span>

              </div>

            </div>

          </div>


          <div class="mini" aria-label="Right column highlights">

            <div class="tile">

              <h3>What we’re best at</h3>

              <p>End-to-end product delivery: UI/UX → build → launch → iterate.</p>

            </div>

            <div class="tile">

              <h3>Engagements</h3>

              <p>Fixed-scope projects, monthly retainers, or embedded team support.</p>

            </div>

            <div class="tile">

              <h3>Communication</h3>

              <p>Weekly updates, transparent estimates, clear milestones.</p>

            </div>

          </div>

        </div>

      </div>

    </section>


    <!-- SERVICES -->

    <section id="services" class="section">

      <div class="wrap">

        <h2>Services</h2>

        <p class="lead">Pick a lane or combine them. Most clients start with a discovery sprint, then execution.</p>


        <div class="grid3">

          <div class="card">

            <h3>Mobile Apps</h3>

            <p>Production-grade iOS and Android apps with performance and polish.</p>

            <ul class="list">

              <li>SwiftUI / UIKit, Jetpack Compose</li>

              <li>Auth, payments, push notifications</li>

              <li>Analytics, crash reporting, releases</li>

            </ul>

          </div>


          <div class="card">

            <h3>Web Platforms</h3>

            <p>Modern, SEO-friendly web apps and marketing sites that convert.</p>

            <ul class="list">

              <li>Next.js / React</li>

              <li>CMS integration (optional)</li>

              <li>Accessibility and performance</li>

            </ul>

          </div>


          <div class="card">

            <h3>Backend & APIs</h3>

            <p>Secure, scalable services with clean interfaces and great docs.</p>

            <ul class="list">

              <li>REST/GraphQL, webhooks</li>

              <li>Databases, caching, queues</li>

              <li>Observability: logs/metrics/traces</li>

            </ul>

          </div>


          <div class="card">

            <h3>Cloud & DevOps</h3>

            <p>Infrastructure you can operate confidently.</p>

            <ul class="list">

              <li>CI/CD pipelines</li>

              <li>Docker, Kubernetes (as needed)</li>

              <li>Infrastructure as Code</li>

            </ul>

          </div>


          <div class="card">

            <h3>Product Delivery</h3>

            <p>Scope, milestones, and execution that keep you on track.</p>

            <ul class="list">

              <li>Discovery & technical planning</li>

              <li>Architecture & code standards</li>

              <li>Release readiness</li>

            </ul>

          </div>


          <div class="card">

            <h3>Maintenance & Support</h3>

            <p>Keep things stable, monitored, and improving.</p>

            <ul class="list">

              <li>Bug fixes and enhancements</li>

              <li>Performance tuning</li>

              <li>Security updates</li>

            </ul>

          </div>

        </div>

      </div>

    </section>


    <!-- WORK -->

    <section id="work" class="section">

      <div class="wrap">

        <h2>Work</h2>

        <p class="lead">A simple pattern: build something useful, ship fast, measure, iterate.</p>


        <div class="work">

          <div class="card">

            <h3>How we deliver</h3>

            <p class="muted">A lightweight process that keeps momentum.</p>

            <div style="margin-top:12px;">

              <span class="pill">1) Discovery</span>

              <span class="pill">2) Prototype</span>

              <span class="pill">3) Build</span>

              <span class="pill">4) QA</span>

              <span class="pill">5) Launch</span>

              <span class="pill">6) Iterate</span>

            </div>

            <p style="margin-top:12px;" class="muted">

              You get weekly updates, a clear backlog, and predictable milestones.

            </p>

          </div>


          <div class="card">

            <h3>Example engagements</h3>

            <p class="muted">Replace these with your actual case studies later.</p>

            <ul class="list">

              <li>Mobile MVP + backend API + admin dashboard</li>

              <li>Migration: legacy app → modern architecture</li>

              <li>Auth + payments + subscriptions integration</li>

              <li>Performance and stability hardening</li>

            </ul>

          </div>

        </div>

      </div>

    </section>


    <!-- ABOUT -->

    <section id="about" class="section">

      <div class="wrap">

        <h2>About</h2>

        <div class="split">

          <div class="card">

            <h3>Who we are</h3>

            <p>

              MobiWiki is a software/services company focused on building dependable products.

              We prefer pragmatic engineering: clean code, clear communication, and measurable outcomes.

            </p>

          </div>

          <div class="card">

            <h3>What you can expect</h3>

            <ul class="list">

              <li>Clear scope, transparent estimates</li>

              <li>Code quality and documentation</li>

              <li>Security-first mindset</li>

              <li>Long-term maintainability</li>

            </ul>

          </div>

        </div>

      </div>

    </section>


    <!-- CONTACT -->

    <section id="contact" class="section">

      <div class="wrap">

        <h2>Contact</h2>

        <p class="lead">Tell us what you’re building. We’ll reply with next steps and a timeline.</p>


        <div class="contact">

          <div class="card">

            <h3>Send a message</h3>

            <p class="muted">This form opens your email client (no backend needed).</p>


            <form id="contactForm">

              <label for="name">Name</label>

              <input id="name" name="name" placeholder="Your name" autocomplete="name" required />


              <label for="email">Email</label>

              <input id="email" name="email" type="email" placeholder="you@company.com" autocomplete="email" required />


              <label for="message">Project details</label>

              <textarea id="message" name="message" placeholder="What do you need built? Timeline? Budget range?" required></textarea>


              <div style="display:flex; gap:10px; flex-wrap:wrap; margin-top:12px;">

                <button class="btn primary" type="submit">Compose Email</button>

                <button class="btn" type="button" id="copyBtn">Copy message</button>

              </div>

            </form>

          </div>


          <div class="card">

            <h3>Direct</h3>

            <p class="muted">

              Prefer email? Reach us here:

              <br />

              <a href="mailto:hello@mobiwiki.ca?subject=Project%20Inquiry%20(MobiWiki)"><strong>hello@mobiwiki.ca</strong></a>

            </p>


            <div style="margin-top:14px;">

              <h3 style="margin:0 0 8px; font-size:16px;">What to include</h3>

              <ul class="list">

                <li>What you’re building</li>

                <li>Target platforms (iOS/Android/Web)</li>

                <li>Timeline and constraints</li>

                <li>Links/wireframes (if any)</li>

              </ul>

            </div>


            <div style="margin-top:14px;">

              <h3 style="margin:0 0 8px; font-size:16px;">Location</h3>

              <p class="muted">Canada (remote-friendly)</p>

            </div>

          </div>

        </div>

      </div>

    </section>


    <footer class="foot">

      <div class="wrap">

        <div style="display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center;">

          <div>© <span id="year"></span> MobiWiki. All rights reserved.</div>

          <div>

            <a href="mailto:hello@mobiwiki.ca?subject=Project%20Inquiry%20(MobiWiki)">Contact</a>

            <span style="opacity:.5; padding:0 10px;">•</span>

            <a href="#top">Back to top</a>

          </div>

        </div>

      </div>

    </footer>


    <div class="toast" id="toast"></div>

  </main>


  <script>

    const toast = (title, detail) => {

      const t = document.getElementById('toast');

      t.innerHTML = `${title}${detail ? `<small>${detail}</small>` : ''}`;

      t.style.display = 'block';

      clearTimeout(window.__toastTimer);

      window.__toastTimer = setTimeout(() => t.style.display = 'none', 2400);

    };


    document.getElementById('year').textContent = new Date().getFullYear();


    // Mailto form (no backend)

    document.getElementById('contactForm').addEventListener('submit', (e) => {

      e.preventDefault();


      const name = document.getElementById('name').value.trim();

      const email = document.getElementById('email').value.trim();

      const message = document.getElementById('message').value.trim();


      const subject = encodeURIComponent(`Project Inquiry (MobiWiki) — ${name}`);

      const body = encodeURIComponent(

`Name: ${name}

Email: ${email}


Project Details:

${message}


--- 

Sent from mobiwiki.ca`

      );


      // Opens user's email client

      window.location.href = `mailto:hello@mobiwiki.ca?subject=${subject}&body=${body}`;

      toast("Opening your email client…", "If nothing happens, check default mail app settings.");

    });


    // Copy message to clipboard

    document.getElementById('copyBtn').addEventListener('click', async () => {

      const name = document.getElementById('name').value.trim();

      const email = document.getElementById('email').value.trim();

      const message = document.getElementById('message').value.trim();


      const text =

`Name: ${name}

Email: ${email}


Project Details:

${message}`;


      try{

        await navigator.clipboard.writeText(text);

        toast("Copied to clipboard", "You can paste it into any email or chat.");

      } catch {

        toast("Copy failed", "Your browser may block clipboard access.");

      }

    });

  </script>

</body>

</html>