{"id":144,"date":"2026-10-25T19:05:20","date_gmt":"2026-10-25T16:05:20","guid":{"rendered":"https:\/\/qcoders.com\/work\/"},"modified":"2026-11-02T09:00:50","modified_gmt":"2026-11-02T07:00:50","slug":"work","status":"publish","type":"page","link":"https:\/\/qcoders.com\/ar\/work\/","title":{"rendered":"\u0623\u0639\u0645\u0627\u0644\u0646\u0627"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"144\" class=\"elementor elementor-144\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a28bef8 e-con-full elementor-hidden-desktop elementor-hidden-tablet e-flex e-con e-parent\" data-id=\"3a28bef8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2deace66 elementor-widget elementor-widget-html\" data-id=\"2deace66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Qcoders phone page: work, direction A \"Equal showcase grid\". Shown on phones only; the desktop sections are hidden there.\n     Generated by website\/v2\/work-a\/build.py. -->\n<style>\n.qcm{--ink:#0A0E17;--step:#131A27;--raise:#161D2C;--fill:#2F3A4F;--line:#232C3D;--paper:#F6F5F0;--soft:#C9CED8;--mute:#A9AEB8;--volt:#C8F53B;\n  --pad:20px;--sec:84px;--sans:\"Readex Pro\",system-ui,sans-serif;--mono:\"JetBrains Mono\",ui-monospace,monospace;--ease:cubic-bezier(.23,1,.32,1)}\n.qcm *{box-sizing:border-box;margin:0;padding:0}\n.qcm{background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:400;line-height:1.45;text-align:left;overflow-x:hidden;overflow-x:clip;\n  -webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}\n.qcm img{display:block;max-width:100%;height:auto;border:0;border-radius:0}\n.qcm svg{display:block;flex:none}\n.qcm a{color:inherit;text-decoration:none}\n.qcm ul{list-style:none}\n.qcm :is(h1,h2,h3,p){font-family:inherit;color:inherit;font-style:normal;text-transform:none}\n.qcm :is(a,button):focus-visible{outline:2px solid var(--volt);outline-offset:3px;box-shadow:none}\n.qcm section[id]{scroll-margin-top:72px}\n.qcm .label{font:500 12px\/1.4 var(--mono);letter-spacing:.02em;color:var(--volt)}\n.qcm .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n\/* hero *\/\n.qcm .wk-hero{padding:28px var(--pad) 0}\n.qcm .wk-hero h1{margin-top:12px;font-size:clamp(44px,13.4vw,56px);font-weight:600;line-height:.95;letter-spacing:-.035em;text-wrap:balance}\n.qcm .wk-caret{display:inline-block;width:.4em;height:.72em;margin-left:.06em;background:var(--volt);vertical-align:-.02em}\n.qcm .wk-lead{margin-top:16px;max-width:350px;font-size:17px;line-height:1.45;color:var(--soft)}\n.qcm .wk-show{margin-top:24px;color:var(--mute)}\n.qcm .wk-flt{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}\n.qcm .wk-flt button{display:inline-flex;align-items:center;height:40px;margin:0;padding:0 14px;border:0;border-radius:99px;background:var(--fill);color:var(--paper);\n  font:500 14px\/1 var(--sans);letter-spacing:0;text-transform:none;cursor:pointer;box-shadow:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease,color .2s ease}\n.qcm .wk-flt button:hover,.qcm .wk-flt button:focus{background:var(--fill);color:var(--paper)}\n.qcm .wk-flt button[aria-pressed=\"true\"],.qcm .wk-flt button[aria-pressed=\"true\"]:hover{background:var(--volt);color:var(--ink)}\n.qcm .wk-status{margin-top:14px;font:500 12px\/1.4 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qcm .wk-status b{font-weight:500;color:var(--volt)}\n.qcm:not(.js) :is(.wk-show,.wk-flt,.wk-status){visibility:hidden}\n\/* project cards: a full-width plate in the product's colour, then the words *\/\n.qcm .wk-list{display:flex;flex-direction:column;gap:44px;margin-top:22px;overflow-anchor:none}\n.qcm .wk-card{position:relative;overflow-anchor:none}\n.qcm .wk-plate{position:relative;container-type:inline-size;aspect-ratio:4\/3;overflow:hidden;background-color:var(--f);\n  background-image:radial-gradient(circle at 1px 1px,var(--dot) 1px,transparent 1.6px);background-size:18px 18px;transition:opacity .45s ease,filter .45s ease}\n.qcm .wk-shots{position:absolute;inset:0}\n.qcm .wk-desk{position:absolute;left:5cqw;top:12cqw;width:80cqw;aspect-ratio:16\/10;overflow:hidden;border-radius:1.3cqw;background:#fff;\n  box-shadow:0 3cqw 6cqw -2cqw rgba(4,7,13,.55),0 0 0 1px rgba(10,14,23,.12)}\n.qcm .wk-desk img{width:100%;height:100%;object-fit:cover;object-position:0 0}\n.qcm .wk-phone{position:absolute;right:5cqw;bottom:5cqw;width:26cqw;padding:1.1cqw;border-radius:4.4cqw;background:#0B0F18;\n  box-shadow:0 3.5cqw 6cqw -1.5cqw rgba(4,7,13,.65),0 0 0 1px rgba(246,245,240,.16)}\n.qcm .wk-phone img{width:100%;aspect-ratio:390\/844;height:auto;object-fit:cover;object-position:50% 0;border-radius:3.4cqw;background:#fff}\n.qcm .wk-tag{position:absolute;left:3.5cqw;top:3.5cqw;z-index:1;padding:4px 8px;border-radius:5px;background:rgba(10,14,23,.86);color:var(--volt);font:500 11px\/1.3 var(--mono)}\n.qcm .wk-body{padding:18px var(--pad) 0;transition:opacity .45s ease,filter .45s ease}\n.qcm .wk-meta{display:flex;gap:7px;font:500 12px\/1.4 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qcm .wk-meta b{font-weight:500;color:var(--volt)}\n.qcm .wk-card h2{margin-top:8px;font-size:26px;font-weight:600;line-height:1.1;letter-spacing:-.02em}\n.qcm .wk-tl{margin-top:8px;font-size:15.5px;line-height:1.45;color:var(--soft)}\n.qcm .wk-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}\n.qcm .wk-tags li{padding:5px 10px;border:1px solid var(--line);border-radius:99px;font-size:12.5px;line-height:1.3;color:var(--soft)}\n.qcm .wk-go{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:16px;font-weight:500}\n.qcm .wk-go i{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--volt);color:var(--ink)}\n.qcm .wk-go i svg{width:19px;height:19px}\n.qcm .wk-go::after{content:\"\";position:absolute;inset:0;z-index:2}\n.qcm .wk-go:focus-visible{outline:0}\n.qcm .wk-card:has(.wk-go:focus-visible){outline:2px solid var(--volt);outline-offset:4px}\n.qcm .wk-card:active .wk-desk{transform:translate3d(0,-1cqw,0)}\n.qcm .wk-card.is-dim .wk-plate{opacity:.45;filter:grayscale(.85)}\n.qcm .wk-card.is-dim .wk-body{opacity:.7}\n\/* industries *\/\n.qcm .wk-sh{padding:var(--sec) var(--pad) 0}\n.qcm .wk-sh h2{margin-top:10px;font-size:36px;font-weight:600;line-height:1.02;letter-spacing:-.03em;text-wrap:balance}\n.qcm .wk-sh .intro{margin-top:14px;max-width:350px;font-size:16px;color:var(--mute)}\n.qcm .wk-ind{margin-top:26px;border-top:1px solid var(--line)}\n.qcm .wk-ind a{display:block;padding:18px var(--pad) 19px;border-bottom:1px solid var(--line)}\n.qcm .wk-ind .top{display:flex;align-items:center;justify-content:space-between;gap:12px}\n.qcm .wk-ind h3{font-size:21px;font-weight:600;line-height:1.15;letter-spacing:-.015em}\n.qcm .wk-ind .n{font:500 11px\/1 var(--mono);color:var(--mute)}\n.qcm .wk-ind p{margin-top:6px;font-size:14.5px;line-height:1.45;color:var(--mute)}\n.qcm .wk-ind .ex{display:flex;align-items:center;gap:8px;margin-top:10px;font:500 12.5px\/1.3 var(--mono);color:var(--volt)}\n.qcm .wk-ind .sw{width:10px;height:10px;background:var(--f);box-shadow:0 0 0 1px rgba(246,245,240,.22)}\n.qcm .wk-ind .ex svg{width:15px;height:15px}\n.qcm .wk-ind a:active{background:var(--step)}\n\/* the Volt band *\/\n.qcm .wk-volt{margin-top:36px;padding:40px var(--pad);background:var(--volt);color:var(--ink)}\n.qcm .wk-volt .label{color:var(--ink);opacity:.75}\n.qcm .wk-volt .big{margin-top:12px;font-size:34px;font-weight:600;line-height:1.02;letter-spacing:-.035em;text-wrap:balance}\n.qcm .wk-volt p{margin-top:12px;max-width:340px;font-size:17px;line-height:1.4}\n.qcm .wk-volt a{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;margin-top:22px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:16px;font-weight:600}\n.qcm .wk-volt a svg{width:20px;height:20px}\n\/* call to action *\/\n.qcm .wk-cta{padding:var(--sec) var(--pad) 48px}\n.qcm .wk-cta h2{margin-top:12px;font-size:clamp(38px,11.4vw,46px);font-weight:600;line-height:.96;letter-spacing:-.04em;text-wrap:balance}\n.qcm .wk-cta .sub{margin-top:16px;max-width:340px;font-size:17px;color:var(--soft)}\n.qcm .wk-cta .ask{margin-top:24px;font:500 12px\/1.4 var(--mono);color:var(--mute)}\n.qcm .wk-needs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}\n.qcm .wk-needs a{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border:1px solid rgba(200,245,59,.45);border-radius:99px;font-size:15px;font-weight:500}\n.qcm .wk-needs a:active{background:var(--volt);color:var(--ink)}\n.qcm .wk-wa{display:flex;align-items:center;gap:14px;margin-top:22px;padding:18px;border-radius:18px;background:var(--volt);color:var(--ink)}\n.qcm .wk-wa .ic{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:14px;background:var(--ink);color:var(--volt)}\n.qcm .wk-wa .ic svg{width:28px;height:28px}\n.qcm .wk-wa b{display:block;font-size:20px;font-weight:600;line-height:1.1;letter-spacing:-.01em}\n.qcm .wk-wa .num{display:block;margin-top:3px;font-size:15px;font-weight:500}\n.qcm .wk-wa .arr{width:22px;height:22px;margin-left:auto}\n.qcm .wk-alt{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:16px 18px;border:1px solid var(--line);border-radius:14px}\n.qcm .wk-alt .label{display:block;color:var(--mute)}\n.qcm .wk-alt b{display:block;margin-top:2px;font-weight:500}\n.qcm .wk-alt svg{width:22px;height:22px;color:var(--volt)}\n.qcm .wk-langs{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}\n.qcm .wk-langs span{padding:7px 12px;border:1px solid var(--line);border-radius:99px;font-size:14px}\n\/* reveal: rise, then the Volt scan renders the screens in *\/\n@media (prefers-reduced-motion:no-preference){\n  .qcm.js .rv{transition:opacity .7s ease,transform .8s var(--ease)}\n  .qcm.js .rv:not(.in){opacity:0;transform:translate3d(0,22px,0)}\n  .qcm.js .wk-card:not(.in) .wk-shots{clip-path:inset(0 100% 0 0)}\n  .qcm.js .wk-card.in:not(.done) .wk-shots{animation:qcm-wipe .95s cubic-bezier(.65,0,.35,1) .1s both}\n  .qcm.js .wk-card.in:not(.done) .wk-plate::after{content:\"\";position:absolute;inset:0;z-index:3;pointer-events:none;\n    background:linear-gradient(to right,transparent calc(100% - 2px),var(--scan) calc(100% - 2px));animation:qcm-scan .95s cubic-bezier(.65,0,.35,1) .1s both}\n  .qcm .wk-caret{animation:qcm-blink 1.1s steps(1) 5}\n}\n@keyframes qcm-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}\n@keyframes qcm-scan{0%{transform:translate3d(-100%,0,0);opacity:1}85%{opacity:1}100%{transform:translate3d(0,0,0);opacity:0}}\n@keyframes qcm-blink{50%{opacity:0}}\n<\/style>\n<div class=\"qcm qcm-work\">\n<section class=\"wk-hero\" id=\"m-projects\">\n  <p class=\"label\"><span aria-hidden=\"true\">\/\/ <\/span>Our work<\/p>\n  <h1>Things we've built<span class=\"wk-caret\" aria-hidden=\"true\"><\/span><\/h1>\n  <p class=\"wk-lead\">Here are the software projects we've built: business systems, online stores, apps and AI tools. Each one starts from how a business really works.<\/p>\n  <p class=\"wk-show label\" id=\"m-show\"><span aria-hidden=\"true\">\/\/ <\/span>Show first<\/p>\n  <div class=\"wk-flt\" role=\"group\" aria-labelledby=\"m-show\"><button type=\"button\" data-f=\"all\" data-name=\"All\" aria-pressed=\"true\">All<\/button> <button type=\"button\" data-f=\"systems\" data-name=\"Systems\" aria-pressed=\"false\">Systems<\/button> <button type=\"button\" data-f=\"stores\" data-name=\"Stores\" aria-pressed=\"false\">Stores<\/button> <button type=\"button\" data-f=\"apps\" data-name=\"Apps\" aria-pressed=\"false\">Apps<\/button> <button type=\"button\" data-f=\"ai\" data-name=\"AI\" aria-pressed=\"false\">AI<\/button><\/div>\n  <p class=\"wk-status\" aria-live=\"polite\"><b>06<\/b> projects<\/p>\n<\/section>\n<ul class=\"wk-list\"><li class=\"wk-card rv\" data-cat=\"systems\" style=\"--f:#2F54E0;--dot:rgba(246,245,240,.10);--scan:#C8F53B\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ sales-crm<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img fetchpriority=\"high\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp 1440w\" sizes=\"80vw\" width=\"1440\" height=\"900\" fetchpriority=\"high\" decoding=\"async\" alt=\"Sales CRM deals pipeline\"><\/div><div class=\"wk-phone\"><img fetchpriority=\"high\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-mobile-today.webp\" width=\"390\" height=\"844\" fetchpriority=\"high\" decoding=\"async\" alt=\"Sales CRM on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>01 \/<\/span><b>Systems<\/b><\/p><h2>Sales CRM<\/h2><p class=\"wk-tl\">A sales CRM with WhatsApp built in, so every lead, call and chat is in one place.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>Deals pipeline<\/li><li>WhatsApp inside the CRM<\/li><li>Follow-ups and reminders<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/sales-crm\/\"><span>View project<span class=\"sr\">: Sales CRM<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><li class=\"wk-card rv\" data-cat=\"systems\" style=\"--f:#114136;--dot:rgba(246,245,240,.10);--scan:#C8F53B\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ inventory-sales<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview.webp 1440w\" sizes=\"auto, 80vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Inventory system stock overview\"><\/div><div class=\"wk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-mobile-stock-lookup.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Inventory system on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>02 \/<\/span><b>Systems<\/b><\/p><h2>Inventory &amp; sales system<\/h2><p class=\"wk-tl\">An inventory management system for every branch, so stock, sales and purchasing live in one place.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>Live stock per location<\/li><li>Point of sale<\/li><li>Transfers between locations<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/inventory-sales\/\"><span>View project<span class=\"sr\">: Inventory &amp; sales system<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><li class=\"wk-card rv\" data-cat=\"systems\" style=\"--f:#52183D;--dot:rgba(246,245,240,.10);--scan:#C8F53B\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ booking-system<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar.webp 1440w\" sizes=\"auto, 80vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Booking system staff calendar\"><\/div><div class=\"wk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-05-mobile-upcoming-visit.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Booking system upcoming visit on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>03 \/<\/span><b>Systems<\/b><\/p><h2>Booking &amp; scheduling system<\/h2><p class=\"wk-tl\">A booking system for clinics and salons, including online booking, a staff calendar and reminders.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>Online booking system<\/li><li>Staff week calendar<\/li><li>WhatsApp and SMS reminders<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/booking-system\/\"><span>View project<span class=\"sr\">: Booking &amp; scheduling system<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><li class=\"wk-card rv\" data-cat=\"stores\" style=\"--f:#E9E2D6;--dot:rgba(10,14,23,.10);--scan:#6E9400\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ online-store<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page.webp 1440w\" sizes=\"auto, 80vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Fashion online store product page\"><\/div><div class=\"wk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-mobile-product.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Fashion online store product page on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>04 \/<\/span><b>Stores<\/b><\/p><h2>Fashion online store<\/h2><p class=\"wk-tl\">A fashion ecommerce website with a short checkout, as well as one admin to ship orders.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>Filters that match real stock<\/li><li>A short checkout on mobile<\/li><li>Many ways to pay<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/online-store\/\"><span>View project<span class=\"sr\">: Fashion online store<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><li class=\"wk-card rv\" data-cat=\"ai\" style=\"--f:#134B55;--dot:rgba(246,245,240,.10);--scan:#C8F53B\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ ai-document-assistant<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat.webp 1440w\" sizes=\"auto, 80vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"AI document assistant answer with sources\"><\/div><div class=\"wk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-mobile-answer.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"AI document assistant on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>05 \/<\/span><b>AI<\/b><\/p><h2>AI document assistant<\/h2><p class=\"wk-tl\">An AI document assistant for your company files. Ask a question, then get the answer with its source.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>AI assistant answers with sources<\/li><li>AI document library<\/li><li>Access by team<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/ai-document-assistant\/\"><span>View project<span class=\"sr\">: AI document assistant<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><li class=\"wk-card rv\" data-cat=\"apps\" style=\"--f:#FF6117;--dot:rgba(10,14,23,.10);--scan:#0A0E17\"><div class=\"wk-plate\"><span class=\"wk-tag\" aria-hidden=\"true\">\/\/ delivery-app<\/span><div class=\"wk-shots\"><div class=\"wk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard.webp 1440w\" sizes=\"auto, 80vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Delivery app dispatch board\"><\/div><div class=\"wk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-route-list.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Delivery driver app on mobile\"><\/div><\/div><\/div><div class=\"wk-body\"><p class=\"wk-meta\"><span>06 \/<\/span><b>Apps<\/b><\/p><h2>Delivery app and dispatch board<\/h2><p class=\"wk-tl\">A delivery driver app for delivery teams, together with a live dispatch map.<\/p><ul class=\"wk-tags\" aria-label=\"Features\"><li>Today's route in the driver app<\/li><li>Proof of delivery in the app<\/li><li>Live dispatch map<\/li><\/ul><a class=\"wk-go\" href=\"\/work\/delivery-app\/\"><span>View project<span class=\"sr\">: Delivery app and dispatch board<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a><\/div><\/li><\/ul>\n<section id=\"m-industries\">\n  <div class=\"wk-sh\"><p class=\"label\"><span aria-hidden=\"true\">\/\/ <\/span>Industries<\/p><h2>Software projects by industry<\/h2><p class=\"intro\">Different industries share the same daily problems: orders, stock, bookings, customers and staff. So find yours below, then open the example closest to it.<\/p><\/div>\n  <ul class=\"wk-ind\"><li class=\"rv\"><a href=\"\/work\/online-store\/\" style=\"--f:#E9E2D6\"><span class=\"top\"><h3>Retail and e-commerce<\/h3><span class=\"n\">01<\/span><\/span><p>An online store that shows real stock and handles payments and shipping.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Fashion online store<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/booking-system\/\" style=\"--f:#52183D\"><span class=\"top\"><h3>Clinics, salons and studios<\/h3><span class=\"n\">02<\/span><\/span><p>Online booking with deposits, one calendar for the whole team, and WhatsApp reminders before every visit.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Booking &amp; scheduling system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/delivery-app\/\" style=\"--f:#FF6117\"><span class=\"top\"><h3>Logistics and delivery<\/h3><span class=\"n\">03<\/span><\/span><p>A driver app with routes, proof of delivery and cash collection, as well as a live map for the office.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Delivery app and dispatch board<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/inventory-sales\/\" style=\"--f:#114136\"><span class=\"top\"><h3>Manufacturing and wholesale<\/h3><span class=\"n\">04<\/span><\/span><p>Stock across warehouses and branches, purchase orders with approval, and profit reports by product.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Inventory &amp; sales system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/ai-document-assistant\/\" style=\"--f:#134B55\"><span class=\"top\"><h3>Professional services<\/h3><span class=\"n\">05<\/span><\/span><p>An assistant that answers from your own contracts and policies, and also shows the page each answer came from.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: AI document assistant<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/sales-crm\/\" style=\"--f:#2F54E0\"><span class=\"top\"><h3>Trading and distribution<\/h3><span class=\"n\">06<\/span><\/span><p>One place for every lead, call and WhatsApp chat, so each deal has a next step and a reminder.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Sales CRM<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/work\/booking-system\/\" style=\"--f:#52183D\"><span class=\"top\"><h3>Hospitality<\/h3><span class=\"n\">07<\/span><\/span><p>Table or room bookings and online orders, as well as one screen for stock and staff shifts.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>Example: Booking &amp; scheduling system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><li class=\"rv\"><a href=\"\/how-we-work\/\" style=\"--f:#C8F53B\"><span class=\"top\"><h3>Startups<\/h3><span class=\"n\">08<\/span><\/span><p>A first version of your product, built in stages, so you can show it to real users early and grow from there.<\/p><span class=\"ex\"><span class=\"sw\" aria-hidden=\"true\"><\/span>See how we work<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a><\/li><\/ul>\n<\/section>\n<section class=\"wk-volt rv\"><p class=\"label\"><span aria-hidden=\"true\">\/\/ <\/span>Your industry<\/p><p class=\"big\">Don't see yours here?<\/p><p>Tell us how your business runs, then we'll suggest what fits.<\/p><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5 5.2-1.36A9.9 9.9 0 1 0 12.04 2Zm0 18.1a8.2 8.2 0 0 1-4.2-1.15l-.3-.18-3.08.8.82-3-.2-.31a8.2 8.2 0 1 1 6.96 3.84Zm4.5-6.14c-.25-.12-1.46-.72-1.69-.8-.23-.08-.39-.12-.55.12-.17.25-.64.8-.78.97-.14.16-.29.18-.53.06a6.7 6.7 0 0 1-3.37-2.94c-.25-.44.25-.41.72-1.36.08-.16.04-.3-.02-.43l-.76-1.83c-.2-.48-.4-.41-.55-.42h-.47a.9.9 0 0 0-.65.3 2.74 2.74 0 0 0-.85 2.04c0 1.2.87 2.37 1 2.53.12.16 1.72 2.63 4.17 3.69 1.55.67 2.16.73 2.93.61.47-.07 1.46-.6 1.66-1.17.2-.58.2-1.07.15-1.17-.07-.1-.23-.16-.47-.28Z\"\/><\/svg>Message us<\/a><\/section>\n<section class=\"wk-cta\" id=\"m-start\">\n  <p class=\"label\"><span aria-hidden=\"true\">\/\/ <\/span>Contact<\/p>\n  <h2>Have something like this in mind?<\/h2>\n  <p class=\"sub\">Pick what you need, then we'll write the first message for you. No tech words needed.<\/p>\n  <p class=\"ask\" id=\"wk-need\">What do you need?<\/p>\n  <ul class=\"wk-needs\" aria-labelledby=\"wk-need\"><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20website.\" target=\"_blank\" rel=\"noopener\">Website<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20an%20online%20store.\" target=\"_blank\" rel=\"noopener\">Online store<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20mobile%20app.\" target=\"_blank\" rel=\"noopener\">App<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20business%20system.\" target=\"_blank\" rel=\"noopener\">Business system<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20an%20AI%20assistant.\" target=\"_blank\" rel=\"noopener\">AI<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20help%20deciding.\" target=\"_blank\" rel=\"noopener\">Not sure yet<\/a><\/li><\/ul>\n  <a class=\"wk-wa\" href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.\" target=\"_blank\" rel=\"noopener\"><span class=\"ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5 5.2-1.36A9.9 9.9 0 1 0 12.04 2Zm0 18.1a8.2 8.2 0 0 1-4.2-1.15l-.3-.18-3.08.8.82-3-.2-.31a8.2 8.2 0 1 1 6.96 3.84Zm4.5-6.14c-.25-.12-1.46-.72-1.69-.8-.23-.08-.39-.12-.55.12-.17.25-.64.8-.78.97-.14.16-.29.18-.53.06a6.7 6.7 0 0 1-3.37-2.94c-.25-.44.25-.41.72-1.36.08-.16.04-.3-.02-.43l-.76-1.83c-.2-.48-.4-.41-.55-.42h-.47a.9.9 0 0 0-.65.3 2.74 2.74 0 0 0-.85 2.04c0 1.2.87 2.37 1 2.53.12.16 1.72 2.63 4.17 3.69 1.55.67 2.16.73 2.93.61.47-.07 1.46-.6 1.66-1.17.2-.58.2-1.07.15-1.17-.07-.1-.23-.16-.47-.28Z\"\/><\/svg><\/span><span><b>Chat on WhatsApp<\/b><span class=\"num\">+966 50 760 0156<\/span><\/span><svg class=\"arr\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a>\n  <a class=\"wk-alt\" href=\"mailto:info@qcoders.com\"><span><span class=\"label\">\/\/ Email<\/span><b>info@qcoders.com<\/b><\/span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a>\n  <div class=\"wk-langs\"><span>English<\/span> <span lang=\"ar\" dir=\"rtl\">\u0627\u0644\u0639\u0631\u0628\u064a\u0629<\/span> <span lang=\"tr\">T\u00fcrk\u00e7e<\/span><\/div>\n<\/section>\n<\/div>\n<script>(function(){document.querySelectorAll('.qcm.qcm-work:not([data-qcm])').forEach(function(r){r.setAttribute('data-qcm','1');r.classList.add('js');\nvar still=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;\nvar els=r.querySelectorAll('.rv');\nfunction fin(t){t.classList.add('in');if(t.classList.contains('wk-card'))setTimeout(function(){t.classList.add('done')},1250);}\nif(still||!('IntersectionObserver' in window)){els.forEach(function(e){e.classList.add('in','done')});}else{\nvar io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){fin(e.target);io.unobserve(e.target);}})},{rootMargin:'0px 0px -8% 0px',threshold:0.1});\nels.forEach(function(e){io.observe(e)});}\nvar list=r.querySelector('.wk-list'),cards=[].slice.call(list.querySelectorAll('.wk-card')),bs=[].slice.call(r.querySelectorAll('.wk-flt button')),st=r.querySelector('.wk-status');\nfunction pad(n){return(n<10?'0':'')+n;}\nbs.forEach(function(b){b.addEventListener('click',function(){var f=b.getAttribute('data-f');\nbs.forEach(function(x){x.setAttribute('aria-pressed',x===b?'true':'false')});\nvar first=cards.map(function(c){return c.getBoundingClientRect()});\nvar on=cards.filter(function(c){return f==='all'||c.getAttribute('data-cat')===f}),off=cards.filter(function(c){return on.indexOf(c)<0});\non.concat(off).forEach(function(c){list.appendChild(c)});\ncards.forEach(function(c){c.classList.toggle('is-dim',off.indexOf(c)>=0);c.classList.add('in','done')});\nif(st)st.innerHTML=f==='all'?'<b>'+pad(cards.length)+'<\/b> projects':'<b>'+pad(on.length)+'<\/b> of '+pad(cards.length)+' &middot; '+b.getAttribute('data-name')+' first';\nif(still)return;\ncards.forEach(function(c,i){var a=first[i],z=c.getBoundingClientRect(),dy=a.top-z.top;if(!dy)return;\nc.style.transition='none';c.style.transform='translate3d(0,'+dy+'px,0)';c.getBoundingClientRect();\nc.style.transition='transform .7s cubic-bezier(.23,1,.32,1)';c.style.transform='';setTimeout(function(){c.style.transition=''},760);});\n});});\n});})();<\/script><script>(function(){if(window.__qcmHash)return;window.__qcmHash=1;function go(){var h=decodeURIComponent(location.hash.slice(1));if(!h)return;\nvar t=document.getElementById(h);if(t&&t.getClientRects().length)return;var m=document.getElementById('m-'+h);if(!m||!m.getClientRects().length)return;\nif(m.tagName==='DETAILS')m.open=true;m.scrollIntoView();}window.addEventListener('hashchange',go);\nif(document.readyState==='complete')go();else window.addEventListener('load',go);})();<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2ca64777 e-con-full elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"2ca64777\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-50c7aa17 elementor-widget elementor-widget-html\" data-id=\"50c7aa17\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Qcoders \/work\/ (direction A, Equal showcase grid), section 1: opener (label, h1, intro with the keyphrase, the filter) and the six projects as equal cards. The filter moves the chosen category to the front and dims the rest: no card is hidden, so nothing jumps.\n     One Elementor HTML widget (container: full width, padding 0, gap 0, no motion effects). Generated by website\/v2\/work-a\/build.py from website\/work\/*\/case.json and website\/elementor\/make_extra.py: edit there, then run the build. -->\n<style>\n.qwk{--ink:#0A0E17;--step:#131A27;--raise:#161D2C;--fill:#2F3A4F;--line:#273044;--paper:#F6F5F0;--soft:#C9CED8;--mute:#9AA3B2;\n  --volt:#C8F53B;--volt-hi:#D6F86B;--m:clamp(1rem,.4rem + 2vw,2rem);--max:100rem;--gut:clamp(.75rem,.4rem + 1.2vw,1.5rem);\n  --sans:\"Readex Pro\",\"Segoe UI\",Tahoma,system-ui,sans-serif;--mono:\"JetBrains Mono\",Consolas,\"Courier New\",monospace;\n  --t-h1:clamp(3rem,1.6rem + 4.6vw,6rem);--t-head:clamp(2rem,1.45rem + 2.3vw,3.5rem);--t-lead:clamp(1.1875rem,1.05rem + .45vw,1.5rem);\n  --t-body:clamp(1rem,.96rem + .12vw,1.0625rem);--sec:clamp(4rem,2.4rem + 3.4vw,5.75rem);--hdr:76px;--ease:cubic-bezier(.23,1,.32,1);\n  display:block;position:relative;margin:0;padding:var(--sec) 0;background:var(--bg,#0A0E17);color:var(--paper);\n  font-family:var(--sans);font-size:var(--t-body);font-weight:400;line-height:1.55;letter-spacing:normal;text-align:left;\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;scroll-margin-top:var(--hdr)}\n@media (max-width:767px){.qwk{--hdr:64px}}\n.qwk *,.qwk *::before,.qwk *::after{box-sizing:border-box}\n.qwk :is(h1,h2,h3,h4,p,ul,ol,li,figure){margin:0;padding:0;font-family:inherit;color:inherit;font-style:normal;text-transform:none;word-spacing:normal}\n.qwk :is(ul,ol){list-style:none}\n.qwk :is(p,li){text-wrap:pretty}\n.qwk img{display:block;max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none}\n.qwk svg{display:block;flex:none}\n.qwk ::selection{background:var(--volt);color:var(--ink)}\n.qwk :is(a,button):focus-visible{outline:3px solid var(--volt);outline-offset:3px;box-shadow:none}\n.qwk .qwk-wrap{width:100%;max-width:calc(var(--max) + 2 * var(--m));margin-inline:auto;padding-inline:var(--m)}\n.qwk .qwk-label{font-family:var(--mono);font-size:.875rem;font-weight:500;line-height:1.4;letter-spacing:.02em;color:var(--volt)}\n.qwk .qwk-h2{margin-top:1rem;font-size:var(--t-head);font-weight:500;line-height:1.04;letter-spacing:-.03em;color:var(--paper);text-wrap:balance}\n.qwk .qwk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n.qwk .qwk-head{display:grid;gap:1.25rem}\n.qwk .qwk-head__intro{max-width:46ch;color:var(--mute);text-wrap:pretty}\n@media (min-width:64rem){\n  .qwk .qwk-head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:end}\n  .qwk .qwk-head > :first-child{grid-column:1\/span 7}\n  .qwk .qwk-head > :last-child{grid-column:9\/-1}\n}\n\n.qwk.qwk-work{--bg:var(--ink);padding-top:clamp(3rem,1.5rem + 3.4vw,5rem)}\n.qwk-work .qwk-h1{margin-top:1rem;font-size:var(--t-h1);font-weight:500;line-height:.98;letter-spacing:-.04em;color:var(--paper);text-wrap:balance;max-width:11ch}\n.qwk-work .qwk-caret{display:inline-block;width:.4em;height:.74em;margin-left:.08em;background:var(--volt);vertical-align:-.02em}\n.qwk-work .qwk-lead{max-width:34ch;font-size:var(--t-lead);line-height:1.4;letter-spacing:-.01em;color:var(--soft);padding-bottom:.35rem}\n\/* the filter bar: chips on the left, what is shown on the right; it reserves its place before the script runs *\/\n.qwk-work .qwk-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;\n  margin-top:clamp(2rem,1.2rem + 2vw,3.25rem);padding-top:1.25rem;border-top:1px solid var(--line)}\n.qwk-work .qwk-filter{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}\n.qwk-work .qwk-filter__lbl{margin-right:.5rem;font:500 .8125rem\/1 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-work button.qwk-chip{display:inline-flex;align-items:center;gap:.55rem;width:auto;min-height:2.75rem;margin:0;padding:0 1.15rem;\n  border:0;border-radius:999px;background:var(--fill);color:var(--paper);font:400 1rem\/1 var(--sans);letter-spacing:0;text-transform:none;\n  white-space:nowrap;cursor:pointer;box-shadow:none;-webkit-tap-highlight-color:transparent;\n  transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .14s var(--ease)}\n.qwk-work button.qwk-chip span{font:500 .75rem\/1 var(--mono);color:var(--mute);transition:color .2s ease}\n.qwk-work button.qwk-chip:hover{background:var(--fill);color:var(--paper);box-shadow:inset 0 0 0 1.5px var(--paper)}\n.qwk-work button.qwk-chip:active{transform:scale(.97)}\n.qwk-work button.qwk-chip[aria-pressed=\"true\"],.qwk-work button.qwk-chip[aria-pressed=\"true\"]:hover{background:var(--volt);color:var(--ink);font-weight:500;box-shadow:none}\n.qwk-work button.qwk-chip[aria-pressed=\"true\"] span{color:rgba(10,14,23,.62)}\n.qwk-work .qwk-status{font:500 .8125rem\/1.4 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-work .qwk-status b{font-weight:500;color:var(--volt)}\n.qwk-work:not(.is-js) .qwk-filter,.qwk-work:not(.is-js) .qwk-status{visibility:hidden}\n\n\/* the grid: equal cards, one column under 56rem, two from there *\/\n.qwk-work .qwk-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:3.5rem var(--gut);margin-top:2rem;overflow-anchor:none}\n@media (min-width:56rem){.qwk-work .qwk-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:clamp(3.5rem,2rem + 2.6vw,5rem)}}\n.qwk-work .qwk-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow-anchor:none}\n\/* the plate: the product's own colour with a faint dot grid (the home hero's blueprint), every plate 3:2. Inside it\n   sizes are in cqw of the plate, so the composition is the same at every width. *\/\n.qwk-work .qwk-plate{position:relative;container-type:inline-size;aspect-ratio:3\/2;overflow:hidden;background-color:var(--f);\n  background-image:radial-gradient(circle at 1px 1px,var(--dot) 1px,transparent 1.6px);background-size:22px 22px;\n  transition:opacity .45s ease,filter .45s ease}\n.qwk-work .qwk-shots{position:absolute;inset:0}\n.qwk-work .qwk-desk{position:absolute;left:6cqw;top:8.6cqw;width:78cqw;aspect-ratio:16\/10;overflow:hidden;border-radius:.9cqw;background:#fff;\n  box-shadow:0 2.6cqw 5.5cqw -1.8cqw rgba(4,7,13,.55),0 0 0 1px rgba(10,14,23,.12);transition:transform .7s var(--ease),box-shadow .7s var(--ease)}\n.qwk-work .qwk-desk img{width:100%;height:100%;object-fit:cover;object-position:0 0}\n.qwk-work .qwk-phone{position:absolute;right:5cqw;bottom:4.6cqw;width:21cqw;padding:.85cqw;border-radius:3.5cqw;background:#0B0F18;\n  box-shadow:0 3cqw 5.5cqw -1.4cqw rgba(4,7,13,.62),0 0 0 1px rgba(246,245,240,.16);transition:transform .7s var(--ease),box-shadow .7s var(--ease)}\n.qwk-work .qwk-phone img{width:100%;aspect-ratio:390\/844;height:auto;object-fit:cover;object-position:50% 0;border-radius:2.7cqw;background:#fff}\n.qwk-work .qwk-tag{position:absolute;left:2.6cqw;top:2.6cqw;z-index:1;padding:.32rem .6rem;border-radius:4px;background:rgba(10,14,23,.86);\n  color:var(--volt);font:500 .75rem\/1.3 var(--mono);letter-spacing:.02em}\n@media (hover:hover) and (pointer:fine){\n  .qwk-work .qwk-card:hover .qwk-desk{transform:translate3d(0,-1.3cqw,0);box-shadow:0 4cqw 7cqw -2cqw rgba(4,7,13,.6),0 0 0 1px rgba(10,14,23,.12)}\n  .qwk-work .qwk-card:hover .qwk-phone{transform:translate3d(0,-2.4cqw,0);box-shadow:0 4.6cqw 7cqw -1.6cqw rgba(4,7,13,.7),0 0 0 1px rgba(246,245,240,.16)}\n}\n.qwk-work .qwk-card:focus-within .qwk-desk{transform:translate3d(0,-1.3cqw,0)}\n.qwk-work .qwk-card:focus-within .qwk-phone{transform:translate3d(0,-2.4cqw,0)}\n\n\/* the words under the plate; \"View project\" sits on the card's foot, so cards in a row line up *\/\n.qwk-work .qwk-body{display:flex;flex-direction:column;flex:1;padding-top:1.4rem;transition:opacity .45s ease,filter .45s ease}\n.qwk-work .qwk-meta{display:flex;gap:.55rem;font:500 .8125rem\/1.4 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-work .qwk-meta b{font-weight:500;color:var(--volt)}\n.qwk-work .qwk-title{margin-top:.55rem;font-size:clamp(1.5rem,1.15rem + .9vw,2rem);font-weight:500;line-height:1.12;letter-spacing:-.025em;color:var(--paper)}\n.qwk-work .qwk-tagline{margin-top:.55rem;max-width:50ch;font-size:1.0625rem;line-height:1.5;color:var(--soft)}\n.qwk-work .qwk-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.05rem}\n.qwk-work .qwk-tags li{padding:.38rem .72rem;border:1px solid var(--line);border-radius:999px;font-size:.8125rem;line-height:1.25;color:var(--soft)}\n.qwk-work a.qwk-go{align-self:flex-start;display:inline-flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:1.35rem;\n  color:var(--paper);font-weight:500;font-size:1.0625rem;line-height:1.2;text-decoration:none}\n.qwk-work a.qwk-go > span:first-child{text-decoration:underline;text-decoration-color:var(--volt);text-decoration-thickness:.08em;text-underline-offset:.3em;transition:text-decoration-thickness .2s ease}\n.qwk-work a.qwk-go i{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--volt);color:var(--ink);transition:transform .4s var(--ease)}\n.qwk-work a.qwk-go i svg{width:1.05rem;height:1.05rem}\n.qwk-work a.qwk-go::after{content:\"\";position:absolute;inset:0;z-index:2}   \/* the whole card is the link's target *\/\n.qwk-work a.qwk-go:focus-visible{outline:0}\n.qwk-work .qwk-card:has(a.qwk-go:focus-visible){outline:3px solid var(--volt);outline-offset:6px}\n.qwk-work a.qwk-go:hover,.qwk-work a.qwk-go:focus{color:var(--paper)}\n@media (hover:hover) and (pointer:fine){\n  .qwk-work .qwk-card:hover a.qwk-go > span:first-child{text-decoration-thickness:.16em}\n  .qwk-work .qwk-card:hover a.qwk-go i{transform:translate3d(4px,0,0)}\n}\n\/* a card outside the chosen category: still there and still a link, but quiet *\/\n.qwk-work .qwk-card.is-dim .qwk-plate{opacity:.45;filter:grayscale(.85)}\n.qwk-work .qwk-card.is-dim .qwk-body{opacity:.7}\n.qwk-work .qwk-card.is-dim:hover :is(.qwk-plate,.qwk-body){opacity:1;filter:none}\n\n\/* the reveal (with the script, no reduced motion): the card rises, then a Volt scan line renders the screens in *\/\n@media (prefers-reduced-motion:no-preference){\n  .qwk-work.is-rv .qwk-card{transition:opacity .6s ease,transform .9s var(--ease)}\n  .qwk-work.is-rv .qwk-card:not(.is-in){opacity:0;transform:translate3d(0,28px,0)}\n  .qwk-work.is-rv .qwk-card:not(.is-in) .qwk-shots{clip-path:inset(0 100% 0 0)}\n  .qwk-work.is-rv .qwk-card.is-in:not(.is-done) .qwk-shots{animation:qwk-wipe .95s cubic-bezier(.65,0,.35,1) .12s both}\n  .qwk-work.is-rv .qwk-card.is-in:not(.is-done) .qwk-plate::after{content:\"\";position:absolute;inset:0;z-index:3;pointer-events:none;\n    background:linear-gradient(to right,transparent calc(100% - 2px),var(--scan) calc(100% - 2px));animation:qwk-scan .95s cubic-bezier(.65,0,.35,1) .12s both}\n  .qwk-work .qwk-caret{animation:qwk-blink 1.1s steps(1) 5}\n}\n@keyframes qwk-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}\n@keyframes qwk-scan{0%{transform:translate3d(-100%,0,0);opacity:1}85%{opacity:1}100%{transform:translate3d(0,0,0);opacity:0}}\n@keyframes qwk-blink{50%{opacity:0}}\n@media (min-width:64rem){\n  .qwk-work .qwk-head > :first-child{grid-column:1\/span 8}\n  .qwk-work .qwk-head > :last-child{grid-column:9\/-1}\n}\n<\/style>\n<section class=\"qwk qwk-work\" id=\"projects\" aria-labelledby=\"qwk-h1\">\n  <div class=\"qwk-wrap\">\n    <div class=\"qwk-head\">\n      <div>\n        <p class=\"qwk-label\"><span aria-hidden=\"true\">\/\/ <\/span>Our work<\/p>\n        <div class=\"qwk-h1\" id=\"qwk-h1\" role=\"heading\" aria-level=\"1\">Things we've built<span class=\"qwk-caret\" aria-hidden=\"true\"><\/span><\/div>\n      <\/div>\n      <p class=\"qwk-lead\">Here are the software projects we've built: business systems, online stores, apps and AI tools. Each one starts from how a business really works.<\/p>\n    <\/div>\n    <div class=\"qwk-bar\">\n      <div class=\"qwk-filter\" role=\"group\" aria-labelledby=\"qwk-show\">\n        <span class=\"qwk-filter__lbl\" id=\"qwk-show\">\/\/ Show first<\/span>\n        <button type=\"button\" class=\"qwk-chip\" data-f=\"all\" data-name=\"All\" aria-pressed=\"true\">All <span>6<\/span><\/button>\n        <button type=\"button\" class=\"qwk-chip\" data-f=\"systems\" data-name=\"Systems\" aria-pressed=\"false\">Systems <span>3<\/span><\/button>\n        <button type=\"button\" class=\"qwk-chip\" data-f=\"stores\" data-name=\"Stores\" aria-pressed=\"false\">Stores <span>1<\/span><\/button>\n        <button type=\"button\" class=\"qwk-chip\" data-f=\"apps\" data-name=\"Apps\" aria-pressed=\"false\">Apps <span>1<\/span><\/button>\n        <button type=\"button\" class=\"qwk-chip\" data-f=\"ai\" data-name=\"AI\" aria-pressed=\"false\">AI <span>1<\/span><\/button>\n      <\/div>\n      <p class=\"qwk-status\" aria-live=\"polite\"><b>06<\/b> projects<\/p>\n    <\/div>\n    <ul class=\"qwk-grid\">\n      <li class=\"qwk-card\" data-cat=\"systems\" style=\"--f:#2F54E0;--dot:rgba(246,245,240,.10);--scan:#C8F53B\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ sales-crm<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img fetchpriority=\"high\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp 1440w\" sizes=\"(min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" fetchpriority=\"high\" decoding=\"async\" alt=\"Sales CRM deals pipeline\"><\/figure>\n            <figure class=\"qwk-phone\"><img src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-mobile-today.webp\" width=\"390\" height=\"844\" decoding=\"async\" alt=\"Sales CRM on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>01 \/<\/span><b>Systems<\/b><\/p>\n          <h2 class=\"qwk-title\">Sales CRM<\/h2>\n          <p class=\"qwk-tagline\">A sales CRM with WhatsApp built in, so every lead, call and chat is in one place.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>Deals pipeline<\/li><li>WhatsApp inside the CRM<\/li><li>Follow-ups and reminders<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/sales-crm\/\"><span>View project<span class=\"qwk-sr\">: Sales CRM<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n      <li class=\"qwk-card\" data-cat=\"systems\" style=\"--f:#114136;--dot:rgba(246,245,240,.10);--scan:#C8F53B\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ inventory-sales<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-stock-overview.webp 1440w\" sizes=\"(min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" decoding=\"async\" alt=\"Inventory system stock overview\"><\/figure>\n            <figure class=\"qwk-phone\"><img src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-inventory-sales-mobile-stock-lookup.webp\" width=\"390\" height=\"844\" decoding=\"async\" alt=\"Inventory system on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>02 \/<\/span><b>Systems<\/b><\/p>\n          <h2 class=\"qwk-title\">Inventory &amp; sales system<\/h2>\n          <p class=\"qwk-tagline\">An inventory management system for every branch, so stock, sales and purchasing live in one place.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>Live stock per location<\/li><li>Point of sale<\/li><li>Transfers between locations<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/inventory-sales\/\"><span>View project<span class=\"qwk-sr\">: Inventory &amp; sales system<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n      <li class=\"qwk-card\" data-cat=\"systems\" style=\"--f:#52183D;--dot:rgba(246,245,240,.10);--scan:#C8F53B\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ booking-system<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-01-staff-calendar.webp 1440w\" sizes=\"auto, (min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Booking system staff calendar\"><\/figure>\n            <figure class=\"qwk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-booking-system-05-mobile-upcoming-visit.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Booking system upcoming visit on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>03 \/<\/span><b>Systems<\/b><\/p>\n          <h2 class=\"qwk-title\">Booking &amp; scheduling system<\/h2>\n          <p class=\"qwk-tagline\">A booking system for clinics and salons, including online booking, a staff calendar and reminders.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>Online booking system<\/li><li>Staff week calendar<\/li><li>WhatsApp and SMS reminders<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/booking-system\/\"><span>View project<span class=\"qwk-sr\">: Booking &amp; scheduling system<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n      <li class=\"qwk-card\" data-cat=\"stores\" style=\"--f:#E9E2D6;--dot:rgba(10,14,23,.10);--scan:#6E9400\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ online-store<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-product-page.webp 1440w\" sizes=\"auto, (min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Fashion online store product page\"><\/figure>\n            <figure class=\"qwk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-online-store-r3-mobile-product.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Fashion online store product page on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>04 \/<\/span><b>Stores<\/b><\/p>\n          <h2 class=\"qwk-title\">Fashion online store<\/h2>\n          <p class=\"qwk-tagline\">A fashion ecommerce website with a short checkout, as well as one admin to ship orders.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>Filters that match real stock<\/li><li>A short checkout on mobile<\/li><li>Many ways to pay<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/online-store\/\"><span>View project<span class=\"qwk-sr\">: Fashion online store<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n      <li class=\"qwk-card\" data-cat=\"ai\" style=\"--f:#134B55;--dot:rgba(246,245,240,.10);--scan:#C8F53B\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ ai-document-assistant<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-chat.webp 1440w\" sizes=\"auto, (min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"AI document assistant answer with sources\"><\/figure>\n            <figure class=\"qwk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-ai-document-assistant-mobile-answer.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"AI document assistant on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>05 \/<\/span><b>AI<\/b><\/p>\n          <h2 class=\"qwk-title\">AI document assistant<\/h2>\n          <p class=\"qwk-tagline\">An AI document assistant for your company files. Ask a question, then get the answer with its source.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>AI assistant answers with sources<\/li><li>AI document library<\/li><li>Access by team<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/ai-document-assistant\/\"><span>View project<span class=\"qwk-sr\">: AI document assistant<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n      <li class=\"qwk-card\" data-cat=\"apps\" style=\"--f:#FF6117;--dot:rgba(10,14,23,.10);--scan:#0A0E17\">\n        <div class=\"qwk-plate\">\n          <span class=\"qwk-tag\" aria-hidden=\"true\">\/\/ delivery-app<\/span>\n          <div class=\"qwk-shots\">\n            <figure class=\"qwk-desk\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard.webp\" srcset=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard-768x480.webp 768w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard-1024x640.webp 1024w, https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-dispatcher-dashboard.webp 1440w\" sizes=\"auto, (min-width: 1640px) 640px, (min-width: 896px) 39vw, 78vw\" width=\"1440\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Delivery app dispatch board\"><\/figure>\n            <figure class=\"qwk-phone\"><img loading=\"lazy\" src=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-delivery-app-route-list.webp\" width=\"390\" height=\"844\" loading=\"lazy\" decoding=\"async\" alt=\"Delivery driver app on mobile\"><\/figure>\n          <\/div>\n        <\/div>\n        <div class=\"qwk-body\">\n          <p class=\"qwk-meta\"><span>06 \/<\/span><b>Apps<\/b><\/p>\n          <h2 class=\"qwk-title\">Delivery app and dispatch board<\/h2>\n          <p class=\"qwk-tagline\">A delivery driver app for delivery teams, together with a live dispatch map.<\/p>\n          <ul class=\"qwk-tags\" aria-label=\"Features\"><li>Today's route in the driver app<\/li><li>Proof of delivery in the app<\/li><li>Live dispatch map<\/li><\/ul>\n          <a class=\"qwk-go\" href=\"\/work\/delivery-app\/\"><span>View project<span class=\"qwk-sr\">: Delivery app and dispatch board<\/span><\/span><i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/a>\n        <\/div>\n      <\/li>\n    <\/ul>\n  <\/div>\n<\/section>\n<script>\n(function () {\n  document.querySelectorAll('.qwk-work:not([data-qwk])').forEach(function (root) {\n    root.setAttribute('data-qwk', '1');\n    root.classList.add('is-js');\n    var grid = root.querySelector('.qwk-grid');\n    var cards = Array.prototype.slice.call(grid.querySelectorAll('.qwk-card'));\n    var chips = Array.prototype.slice.call(root.querySelectorAll('.qwk-chip'));\n    var status = root.querySelector('.qwk-status');\n    var still = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    function done(c) { setTimeout(function () { c.classList.add('is-done'); }, 1250); }\n    if (!still && 'IntersectionObserver' in window) {\n      root.classList.add('is-rv');\n      var io = new IntersectionObserver(function (es) {\n        es.forEach(function (e) {\n          if (!e.isIntersecting) return;\n          e.target.classList.add('is-in'); done(e.target); io.unobserve(e.target);\n        });\n      }, { rootMargin: '0px 0px -6% 0px', threshold: 0.12 });\n      cards.forEach(function (c) { io.observe(c); });\n    }\n    function pad(n) { return (n < 10 ? '0' : '') + n; }\n    chips.forEach(function (chip) {\n      chip.addEventListener('click', function () {\n        var f = chip.getAttribute('data-f');\n        chips.forEach(function (x) { x.setAttribute('aria-pressed', x === chip ? 'true' : 'false'); });\n        var first = cards.map(function (c) { return c.getBoundingClientRect(); });\n        var on = cards.filter(function (c) { return f === 'all' || c.getAttribute('data-cat') === f; });\n        var off = cards.filter(function (c) { return on.indexOf(c) < 0; });\n        on.concat(off).forEach(function (c) { grid.appendChild(c); });\n        cards.forEach(function (c) {\n          c.classList.toggle('is-dim', off.indexOf(c) >= 0);\n          if (!c.classList.contains('is-in')) { c.classList.add('is-in', 'is-done'); }\n        });\n        if (status) {\n          status.innerHTML = f === 'all' ? '<b>' + pad(cards.length) + '<\/b> projects'\n            : '<b>' + pad(on.length) + '<\/b> of ' + pad(cards.length) + ' &middot; ' + chip.getAttribute('data-name') + ' first';\n        }\n        if (still) return;\n        cards.forEach(function (c, i) {\n          var a = first[i], b = c.getBoundingClientRect(), dx = a.left - b.left, dy = a.top - b.top;\n          if (!dx && !dy) return;\n          c.style.transition = 'none';\n          c.style.transform = 'translate3d(' + dx + 'px,' + dy + 'px,0)';\n          c.getBoundingClientRect();\n          c.style.transition = 'transform .7s cubic-bezier(.23,1,.32,1), opacity .6s ease';\n          c.style.transform = '';\n          setTimeout(function () { c.style.transition = ''; }, 760);\n        });\n      });\n    });\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7dc65518 e-con-full elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"7dc65518\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-229553d2 elementor-widget elementor-widget-html\" data-id=\"229553d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Qcoders \/work\/ (direction A, Equal showcase grid), section 2: the industries as eight compact tiles, each linked to its closest example project (data: make_extra.INDUSTRIES, first sentence of each line).\n     One Elementor HTML widget (container: full width, padding 0, gap 0, no motion effects). Generated by website\/v2\/work-a\/build.py from website\/work\/*\/case.json and website\/elementor\/make_extra.py: edit there, then run the build. -->\n<style>\n.qwk{--ink:#0A0E17;--step:#131A27;--raise:#161D2C;--fill:#2F3A4F;--line:#273044;--paper:#F6F5F0;--soft:#C9CED8;--mute:#9AA3B2;\n  --volt:#C8F53B;--volt-hi:#D6F86B;--m:clamp(1rem,.4rem + 2vw,2rem);--max:100rem;--gut:clamp(.75rem,.4rem + 1.2vw,1.5rem);\n  --sans:\"Readex Pro\",\"Segoe UI\",Tahoma,system-ui,sans-serif;--mono:\"JetBrains Mono\",Consolas,\"Courier New\",monospace;\n  --t-h1:clamp(3rem,1.6rem + 4.6vw,6rem);--t-head:clamp(2rem,1.45rem + 2.3vw,3.5rem);--t-lead:clamp(1.1875rem,1.05rem + .45vw,1.5rem);\n  --t-body:clamp(1rem,.96rem + .12vw,1.0625rem);--sec:clamp(4rem,2.4rem + 3.4vw,5.75rem);--hdr:76px;--ease:cubic-bezier(.23,1,.32,1);\n  display:block;position:relative;margin:0;padding:var(--sec) 0;background:var(--bg,#0A0E17);color:var(--paper);\n  font-family:var(--sans);font-size:var(--t-body);font-weight:400;line-height:1.55;letter-spacing:normal;text-align:left;\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;scroll-margin-top:var(--hdr)}\n@media (max-width:767px){.qwk{--hdr:64px}}\n.qwk *,.qwk *::before,.qwk *::after{box-sizing:border-box}\n.qwk :is(h1,h2,h3,h4,p,ul,ol,li,figure){margin:0;padding:0;font-family:inherit;color:inherit;font-style:normal;text-transform:none;word-spacing:normal}\n.qwk :is(ul,ol){list-style:none}\n.qwk :is(p,li){text-wrap:pretty}\n.qwk img{display:block;max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none}\n.qwk svg{display:block;flex:none}\n.qwk ::selection{background:var(--volt);color:var(--ink)}\n.qwk :is(a,button):focus-visible{outline:3px solid var(--volt);outline-offset:3px;box-shadow:none}\n.qwk .qwk-wrap{width:100%;max-width:calc(var(--max) + 2 * var(--m));margin-inline:auto;padding-inline:var(--m)}\n.qwk .qwk-label{font-family:var(--mono);font-size:.875rem;font-weight:500;line-height:1.4;letter-spacing:.02em;color:var(--volt)}\n.qwk .qwk-h2{margin-top:1rem;font-size:var(--t-head);font-weight:500;line-height:1.04;letter-spacing:-.03em;color:var(--paper);text-wrap:balance}\n.qwk .qwk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n.qwk .qwk-head{display:grid;gap:1.25rem}\n.qwk .qwk-head__intro{max-width:46ch;color:var(--mute);text-wrap:pretty}\n@media (min-width:64rem){\n  .qwk .qwk-head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:end}\n  .qwk .qwk-head > :first-child{grid-column:1\/span 7}\n  .qwk .qwk-head > :last-child{grid-column:9\/-1}\n}\n\n.qwk.qwk-ind{--bg:var(--step)}\n.qwk-ind .qwk-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gut);margin-top:clamp(2.5rem,1.8rem + 1.6vw,3.5rem)}\n@media (min-width:75rem){.qwk-ind .qwk-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}\n.qwk-ind .qwk-tiles > li{display:flex}\n.qwk-ind a.qwk-tile{position:relative;display:flex;flex-direction:column;width:100%;padding:1.5rem 1.5rem 1.4rem;\n  background:var(--ink);border:1px solid var(--line);color:var(--paper);text-decoration:none;\n  transition:border-color .2s ease,transform .5s var(--ease),background-color .2s ease}\n.qwk-ind .qwk-tile__top{display:flex;align-items:center;justify-content:space-between;font:500 .75rem\/1 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-ind .qwk-tile__sw{width:.75rem;height:.75rem;background:var(--f);box-shadow:0 0 0 1px rgba(246,245,240,.2)}\n.qwk-ind .qwk-tile h3{margin-top:1.4rem;font-size:1.3125rem;font-weight:500;line-height:1.2;letter-spacing:-.015em;color:var(--paper);text-wrap:balance}\n.qwk-ind .qwk-tile p{margin-top:.6rem;font-size:.9375rem;line-height:1.5;color:var(--mute)}\n.qwk-ind .qwk-tile__ex{display:block;margin-top:auto;padding-top:1.4rem}\n.qwk-ind .qwk-tile__ex small{display:block;font:500 .75rem\/1.3 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-ind .qwk-tile__ex > span{display:block;margin-top:.3rem;font-size:1rem;font-weight:500;line-height:1.35;color:var(--volt)}\n.qwk-ind .qwk-tile__ex svg{display:inline-block;width:1rem;height:1rem;margin-left:.35rem;vertical-align:-.15em;transition:transform .4s var(--ease)}\n.qwk-ind a.qwk-tile:hover{border-color:var(--volt);color:var(--paper);background:#0D121D;transform:translate3d(0,-4px,0)}\n.qwk-ind a.qwk-tile:hover .qwk-tile__ex svg{transform:translate3d(4px,0,0)}\n.qwk-ind .qwk-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-top:clamp(2rem,1.5rem + 1.2vw,2.75rem);\n  padding-top:1.75rem;border-top:1px solid var(--line)}\n.qwk-ind .qwk-more p{max-width:60ch;font-size:var(--t-lead);line-height:1.4;letter-spacing:-.01em;color:var(--soft)}\n.qwk-ind a.qwk-btn-o{display:inline-flex;align-items:center;gap:.6rem;min-height:3.25rem;padding:0 1.6rem;border:1.5px solid var(--volt);border-radius:999px;\n  color:var(--paper);font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color .2s ease,color .2s ease}\n.qwk-ind a.qwk-btn-o svg{width:1.15em;height:1.15em;color:var(--volt);transition:color .2s ease}\n.qwk-ind a.qwk-btn-o:hover{background:var(--volt);color:var(--ink)}\n.qwk-ind a.qwk-btn-o:hover svg{color:var(--ink)}\n<\/style>\n<section class=\"qwk qwk-ind\" id=\"industries\" aria-labelledby=\"qwk-ind-h\">\n  <div class=\"qwk-wrap\">\n    <div class=\"qwk-head\">\n      <div>\n        <p class=\"qwk-label\"><span aria-hidden=\"true\">\/\/ <\/span>Industries<\/p>\n        <h2 class=\"qwk-h2\" id=\"qwk-ind-h\">Software projects by industry<\/h2>\n      <\/div>\n      <p class=\"qwk-head__intro\">Different industries share the same daily problems: orders, stock, bookings, customers and staff. So find yours below, then open the example closest to it.<\/p>\n    <\/div>\n    <ul class=\"qwk-tiles\">\n      <li><a class=\"qwk-tile\" href=\"\/work\/online-store\/\" style=\"--f:#E9E2D6\">\n        <span class=\"qwk-tile__top\"><span>01<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Retail and e-commerce<\/h3>\n        <p>An online store that shows real stock and handles payments and shipping.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Fashion online store<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/booking-system\/\" style=\"--f:#52183D\">\n        <span class=\"qwk-tile__top\"><span>02<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Clinics, salons and studios<\/h3>\n        <p>Online booking with deposits, one calendar for the whole team, and WhatsApp reminders before every visit.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Booking &amp; scheduling system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/delivery-app\/\" style=\"--f:#FF6117\">\n        <span class=\"qwk-tile__top\"><span>03<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Logistics and delivery<\/h3>\n        <p>A driver app with routes, proof of delivery and cash collection, as well as a live map for the office.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Delivery app and dispatch board<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/inventory-sales\/\" style=\"--f:#114136\">\n        <span class=\"qwk-tile__top\"><span>04<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Manufacturing and wholesale<\/h3>\n        <p>Stock across warehouses and branches, purchase orders with approval, and profit reports by product.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Inventory &amp; sales system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/ai-document-assistant\/\" style=\"--f:#134B55\">\n        <span class=\"qwk-tile__top\"><span>05<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Professional services<\/h3>\n        <p>An assistant that answers from your own contracts and policies, and also shows the page each answer came from.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">AI document assistant<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/sales-crm\/\" style=\"--f:#2F54E0\">\n        <span class=\"qwk-tile__top\"><span>06<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Trading and distribution<\/h3>\n        <p>One place for every lead, call and WhatsApp chat, so each deal has a next step and a reminder.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Sales CRM<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/work\/booking-system\/\" style=\"--f:#52183D\">\n        <span class=\"qwk-tile__top\"><span>07<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Hospitality<\/h3>\n        <p>Table or room bookings and online orders, as well as one screen for stock and staff shifts.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ Example<\/small><span class=\"qwk-tile__name\">Booking &amp; scheduling system<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n      <li><a class=\"qwk-tile\" href=\"\/how-we-work\/\" style=\"--f:#C8F53B\">\n        <span class=\"qwk-tile__top\"><span>08<\/span><span class=\"qwk-tile__sw\" aria-hidden=\"true\"><\/span><\/span>\n        <h3>Startups<\/h3>\n        <p>A first version of your product, built in stages, so you can show it to real users early and grow from there.<\/p>\n        <span class=\"qwk-tile__ex\"><small>\/\/ How we start<\/small><span class=\"qwk-tile__name\">See how we work<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/span>\n      <\/a><\/li>\n    <\/ul>\n    <div class=\"qwk-more\">\n      <p>Don't see your industry? Tell us how your business runs, then we'll suggest what fits.<\/p>\n      <a class=\"qwk-btn-o\" href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5 5.2-1.36A9.9 9.9 0 1 0 12.04 2Zm0 18.1a8.2 8.2 0 0 1-4.2-1.15l-.3-.18-3.08.8.82-3-.2-.31a8.2 8.2 0 1 1 6.96 3.84Zm4.5-6.14c-.25-.12-1.46-.72-1.69-.8-.23-.08-.39-.12-.55.12-.17.25-.64.8-.78.97-.14.16-.29.18-.53.06a6.7 6.7 0 0 1-3.37-2.94c-.25-.44.25-.41.72-1.36.08-.16.04-.3-.02-.43l-.76-1.83c-.2-.48-.4-.41-.55-.42h-.47a.9.9 0 0 0-.65.3 2.74 2.74 0 0 0-.85 2.04c0 1.2.87 2.37 1 2.53.12.16 1.72 2.63 4.17 3.69 1.55.67 2.16.73 2.93.61.47-.07 1.46-.6 1.66-1.17.2-.58.2-1.07.15-1.17-.07-.1-.23-.16-.47-.28Z\"\/><\/svg>Message us on WhatsApp<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-115ce784 e-con-full elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"115ce784\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62f90467 elementor-widget elementor-widget-html\" data-id=\"62f90467\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Qcoders \/work\/ (direction A, Equal showcase grid), section 3: the call to action. Each need is a WhatsApp link with the first message written; the chat card shows that message (a small script swaps it on hover or focus).\n     One Elementor HTML widget (container: full width, padding 0, gap 0, no motion effects). Generated by website\/v2\/work-a\/build.py from website\/work\/*\/case.json and website\/elementor\/make_extra.py: edit there, then run the build. -->\n<style>\n.qwk{--ink:#0A0E17;--step:#131A27;--raise:#161D2C;--fill:#2F3A4F;--line:#273044;--paper:#F6F5F0;--soft:#C9CED8;--mute:#9AA3B2;\n  --volt:#C8F53B;--volt-hi:#D6F86B;--m:clamp(1rem,.4rem + 2vw,2rem);--max:100rem;--gut:clamp(.75rem,.4rem + 1.2vw,1.5rem);\n  --sans:\"Readex Pro\",\"Segoe UI\",Tahoma,system-ui,sans-serif;--mono:\"JetBrains Mono\",Consolas,\"Courier New\",monospace;\n  --t-h1:clamp(3rem,1.6rem + 4.6vw,6rem);--t-head:clamp(2rem,1.45rem + 2.3vw,3.5rem);--t-lead:clamp(1.1875rem,1.05rem + .45vw,1.5rem);\n  --t-body:clamp(1rem,.96rem + .12vw,1.0625rem);--sec:clamp(4rem,2.4rem + 3.4vw,5.75rem);--hdr:76px;--ease:cubic-bezier(.23,1,.32,1);\n  display:block;position:relative;margin:0;padding:var(--sec) 0;background:var(--bg,#0A0E17);color:var(--paper);\n  font-family:var(--sans);font-size:var(--t-body);font-weight:400;line-height:1.55;letter-spacing:normal;text-align:left;\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;scroll-margin-top:var(--hdr)}\n@media (max-width:767px){.qwk{--hdr:64px}}\n.qwk *,.qwk *::before,.qwk *::after{box-sizing:border-box}\n.qwk :is(h1,h2,h3,h4,p,ul,ol,li,figure){margin:0;padding:0;font-family:inherit;color:inherit;font-style:normal;text-transform:none;word-spacing:normal}\n.qwk :is(ul,ol){list-style:none}\n.qwk :is(p,li){text-wrap:pretty}\n.qwk img{display:block;max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none}\n.qwk svg{display:block;flex:none}\n.qwk ::selection{background:var(--volt);color:var(--ink)}\n.qwk :is(a,button):focus-visible{outline:3px solid var(--volt);outline-offset:3px;box-shadow:none}\n.qwk .qwk-wrap{width:100%;max-width:calc(var(--max) + 2 * var(--m));margin-inline:auto;padding-inline:var(--m)}\n.qwk .qwk-label{font-family:var(--mono);font-size:.875rem;font-weight:500;line-height:1.4;letter-spacing:.02em;color:var(--volt)}\n.qwk .qwk-h2{margin-top:1rem;font-size:var(--t-head);font-weight:500;line-height:1.04;letter-spacing:-.03em;color:var(--paper);text-wrap:balance}\n.qwk .qwk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}\n.qwk .qwk-head{display:grid;gap:1.25rem}\n.qwk .qwk-head__intro{max-width:46ch;color:var(--mute);text-wrap:pretty}\n@media (min-width:64rem){\n  .qwk .qwk-head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:end}\n  .qwk .qwk-head > :first-child{grid-column:1\/span 7}\n  .qwk .qwk-head > :last-child{grid-column:9\/-1}\n}\n\n.qwk.qwk-start{--bg:var(--ink)}\n.qwk-start .qwk-start__grid{display:grid;gap:3rem}\n.qwk-start .qwk-start__sub{margin-top:1.25rem;max-width:34ch;font-size:var(--t-lead);line-height:1.4;letter-spacing:-.01em;color:var(--soft)}\n.qwk-start .qwk-start__ask{margin-top:2rem;font:500 .8125rem\/1.4 var(--mono);letter-spacing:.02em;color:var(--mute)}\n.qwk-start .qwk-needs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}\n.qwk-start .qwk-needs a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1.1rem;border:1px solid rgba(200,245,59,.45);border-radius:999px;\n  color:var(--paper);font-size:1rem;font-weight:400;line-height:1;text-decoration:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease}\n.qwk-start .qwk-needs a:is(:hover,:focus-visible){background:var(--volt);border-color:var(--volt);color:var(--ink)}\n.qwk-start .qwk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:2rem}\n.qwk-start a.qwk-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:3.25rem;padding:0 1.75rem;border:0;border-radius:999px;\n  background:var(--volt);color:var(--ink);font:500 var(--t-body)\/1 var(--sans);letter-spacing:-.005em;text-decoration:none;white-space:nowrap;\n  transition:background-color .2s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}\n.qwk-start a.qwk-btn svg{width:1.2em;height:1.2em}\n.qwk-start a.qwk-btn:hover{background:var(--volt-hi);color:var(--ink)}\n.qwk-start a.qwk-btn:active{transform:scale(.97)}\n.qwk-start a.qwk-link{color:var(--volt);font-weight:400;text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.22em}\n.qwk-start a.qwk-link:hover{color:var(--volt);text-decoration-thickness:.14em}\n.qwk-start .qwk-start__meta{margin-top:1.5rem;font:500 .8125rem\/1.5 var(--mono);letter-spacing:.02em;color:var(--mute)}\n\/* the chat card: the first message the visitor will send, as WhatsApp shows it *\/\n.qwk-start .qwk-chat{width:100%;max-width:30rem;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--step)}\n.qwk-start .qwk-chat__bar{display:flex;align-items:center;gap:.8rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}\n.qwk-start .qwk-chat__av{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--paper)}\n.qwk-start .qwk-chat__av svg{width:1.5rem;height:auto}\n.qwk-start .qwk-chat__who b{display:block;font-weight:500;line-height:1.2}\n.qwk-start .qwk-chat__who span{display:block;margin-top:.2rem;font:500 .75rem\/1.2 var(--mono);color:var(--mute)}\n.qwk-start .qwk-chat__day{align-self:center;margin-bottom:auto;padding:.3rem .7rem;border-radius:999px;background:var(--raise);font:500 .6875rem\/1.2 var(--mono);color:var(--mute)}\n.qwk-start .qwk-chat__body{display:flex;flex-direction:column;justify-content:flex-end;gap:.85rem;min-height:13.5rem;padding:1.25rem 1.25rem 1.5rem;\n  background-image:radial-gradient(circle at 1px 1px,rgba(246,245,240,.07) 1px,transparent 1.6px);background-size:20px 20px}\n.qwk-start .qwk-bubble{align-self:flex-end;max-width:86%;padding:.85rem 1rem .7rem;border-radius:18px 18px 4px 18px;background:var(--volt);color:var(--ink);\n  font-size:1.0625rem;line-height:1.45}\n.qwk-start .qwk-bubble small{display:block;margin-top:.35rem;text-align:right;font:500 .6875rem\/1 var(--mono);color:rgba(10,14,23,.55)}\n.qwk-start .qwk-chat__note{align-self:flex-start;font:500 .75rem\/1.4 var(--mono);color:var(--mute)}\n.qwk-start .qwk-chat__compose{display:flex;align-items:center;gap:.75rem;margin:0 1rem 1rem;padding:.55rem .55rem .55rem 1.1rem;border-radius:999px;background:var(--ink);color:var(--mute);font-size:.9375rem}\n.qwk-start .qwk-chat__compose i{display:grid;place-items:center;width:2.25rem;height:2.25rem;margin-left:auto;border-radius:50%;background:var(--volt);color:var(--ink)}\n.qwk-start .qwk-chat__compose svg{width:1rem;height:1rem}\n@media (min-width:60rem){\n  .qwk-start .qwk-start__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:center}\n  .qwk-start .qwk-start__main{grid-column:1\/span 7}\n  .qwk-start .qwk-chat{grid-column:8\/-1;justify-self:end}\n}\n<\/style>\n<section class=\"qwk qwk-start\" id=\"start\" aria-labelledby=\"qwk-start-h\">\n  <div class=\"qwk-wrap qwk-start__grid\">\n    <div class=\"qwk-start__main\">\n      <p class=\"qwk-label\"><span aria-hidden=\"true\">\/\/ <\/span>Contact<\/p>\n      <h2 class=\"qwk-h2\" id=\"qwk-start-h\">Have something like this in mind?<\/h2>\n      <p class=\"qwk-start__sub\">Pick what you need, then we'll write the first message for you. No tech words needed.<\/p>\n      <p class=\"qwk-start__ask\" id=\"qwk-need\">What do you need?<\/p>\n      <ul class=\"qwk-needs\" aria-labelledby=\"qwk-need\"><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20website.\" data-msg=\"Hi Qcoders, I found you on your website. I need a website.\" target=\"_blank\" rel=\"noopener\">Website<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20an%20online%20store.\" data-msg=\"Hi Qcoders, I found you on your website. I need an online store.\" target=\"_blank\" rel=\"noopener\">Online store<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20mobile%20app.\" data-msg=\"Hi Qcoders, I found you on your website. I need a mobile app.\" target=\"_blank\" rel=\"noopener\">App<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20a%20business%20system.\" data-msg=\"Hi Qcoders, I found you on your website. I need a business system.\" target=\"_blank\" rel=\"noopener\">Business system<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20an%20AI%20assistant.\" data-msg=\"Hi Qcoders, I found you on your website. I need an AI assistant.\" target=\"_blank\" rel=\"noopener\">AI<\/a><\/li><li><a href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.%20I%20need%20help%20deciding.\" data-msg=\"Hi Qcoders, I found you on your website. I need help deciding.\" target=\"_blank\" rel=\"noopener\">Not sure yet<\/a><\/li><\/ul>\n      <div class=\"qwk-actions\">\n        <a class=\"qwk-btn\" data-qwk-wa href=\"https:\/\/wa.me\/966507600156?text=Hi%20Qcoders%2C%20I%20found%20you%20on%20your%20website.\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5 5.2-1.36A9.9 9.9 0 1 0 12.04 2Zm0 18.1a8.2 8.2 0 0 1-4.2-1.15l-.3-.18-3.08.8.82-3-.2-.31a8.2 8.2 0 1 1 6.96 3.84Zm4.5-6.14c-.25-.12-1.46-.72-1.69-.8-.23-.08-.39-.12-.55.12-.17.25-.64.8-.78.97-.14.16-.29.18-.53.06a6.7 6.7 0 0 1-3.37-2.94c-.25-.44.25-.41.72-1.36.08-.16.04-.3-.02-.43l-.76-1.83c-.2-.48-.4-.41-.55-.42h-.47a.9.9 0 0 0-.65.3 2.74 2.74 0 0 0-.85 2.04c0 1.2.87 2.37 1 2.53.12.16 1.72 2.63 4.17 3.69 1.55.67 2.16.73 2.93.61.47-.07 1.46-.6 1.66-1.17.2-.58.2-1.07.15-1.17-.07-.1-.23-.16-.47-.28Z\"\/><\/svg>Message us on WhatsApp<\/a>\n        <a class=\"qwk-link\" href=\"mailto:info@qcoders.com\">info@qcoders.com<\/a>\n      <\/div>\n      <p class=\"qwk-start__meta\">Available 24\/7 \u00b7 English \u00b7 <span lang=\"ar\" dir=\"rtl\">\u0627\u0644\u0639\u0631\u0628\u064a\u0629<\/span> \u00b7 <span lang=\"tr\">T\u00fcrk\u00e7e<\/span><\/p>\n    <\/div>\n    <div class=\"qwk-chat\" aria-hidden=\"true\">\n      <div class=\"qwk-chat__bar\"><span class=\"qwk-chat__av\"><svg viewBox=\"7 16 115 97\" aria-hidden=\"true\"><g fill=\"none\" stroke-width=\"12\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M51 28 L19 60 L51 92\" stroke=\"#0A0E17\"\/><path d=\"M69 28 L101 60 L69 92\" stroke=\"#0A0E17\"\/><path d=\"M97 88 L110 101\" stroke=\"#6E9400\"\/><\/g><\/svg><\/span><span class=\"qwk-chat__who\"><b>Qcoders<\/b><span>available 24\/7<\/span><\/span><\/div>\n      <div class=\"qwk-chat__body\">\n        <p class=\"qwk-chat__day\">today<\/p>\n        <p class=\"qwk-bubble\"><span data-qwk-msg>Hi Qcoders, I found you on your website.<\/span><small>now<\/small><\/p>\n        <p class=\"qwk-chat__note\">\/\/ we reply with a few questions<\/p>\n      <\/div>\n      <div class=\"qwk-chat__compose\">Message<i><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/i><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n<script>\n(function () {\n  document.querySelectorAll('.qwk-start:not([data-qwk])').forEach(function (root) {\n    root.setAttribute('data-qwk', '1');\n    var out = root.querySelector('[data-qwk-msg]'), btn = root.querySelector('[data-qwk-wa]');\n    if (!out) return;\n    root.querySelectorAll('.qwk-needs a').forEach(function (a) {\n      function show() { out.textContent = a.getAttribute('data-msg'); if (btn) btn.href = a.href; }\n      a.addEventListener('mouseenter', show);\n      a.addEventListener('focus', show);\n    });\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\/\/ Our work Things we&#8217;ve built Here are the software projects we&#8217;ve built: business systems, online stores, apps and AI tools. Each one starts from how a business really works. \/\/ Show first All Systems Stores Apps AI 06 projects \/\/ sales-crm 01 \/Systems Sales CRM A sales CRM with WhatsApp built in, so every [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-144","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Software development portfolio: what we&#039;ve built | Qcoders<\/title>\n<meta name=\"description\" content=\"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/qcoders.com\/ar\/work\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software development portfolio: what we&#039;ve built | Qcoders\" \/>\n<meta property=\"og:description\" content=\"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/qcoders.com\/ar\/work\/\" \/>\n<meta property=\"og:site_name\" content=\"Qcoders\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-02T07:00:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 \u062f\u0642\u064a\u0642\u0629\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/\",\"url\":\"https:\\\/\\\/qcoders.com\\\/work\\\/\",\"name\":\"Software development portfolio: what we've built | Qcoders\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/qcoders.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/qc-work-sales-crm-pipeline.webp\",\"datePublished\":\"2026-10-25T16:05:20+00:00\",\"dateModified\":\"2026-11-02T07:00:50+00:00\",\"description\":\"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/qcoders.com\\\/work\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/#primaryimage\",\"url\":\"https:\\\/\\\/qcoders.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/qc-work-sales-crm-pipeline.webp\",\"contentUrl\":\"https:\\\/\\\/qcoders.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/qc-work-sales-crm-pipeline.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/work\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/qcoders.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Work\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/#website\",\"url\":\"https:\\\/\\\/qcoders.com\\\/\",\"name\":\"Qcoders\",\"description\":\"Code that runs your business.\",\"publisher\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/qcoders.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/#organization\",\"name\":\"Qcoders\",\"url\":\"https:\\\/\\\/qcoders.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/qcoders.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/qcoders.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/qcoders-logo-qcoders-2026.png\",\"contentUrl\":\"https:\\\/\\\/qcoders.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/qcoders-logo-qcoders-2026.png\",\"width\":2000,\"height\":398,\"caption\":\"Qcoders\"},\"image\":{\"@id\":\"https:\\\/\\\/qcoders.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software development portfolio: what we've built | Qcoders","description":"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/qcoders.com\/ar\/work\/","og_locale":"ar_AR","og_type":"article","og_title":"Software development portfolio: what we've built | Qcoders","og_description":"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.","og_url":"https:\/\/qcoders.com\/ar\/work\/","og_site_name":"Qcoders","article_modified_time":"2026-11-02T07:00:50+00:00","og_image":[{"url":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"11 \u062f\u0642\u064a\u0642\u0629"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/qcoders.com\/work\/","url":"https:\/\/qcoders.com\/work\/","name":"Software development portfolio: what we've built | Qcoders","isPartOf":{"@id":"https:\/\/qcoders.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/qcoders.com\/work\/#primaryimage"},"image":{"@id":"https:\/\/qcoders.com\/work\/#primaryimage"},"thumbnailUrl":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp","datePublished":"2026-10-25T16:05:20+00:00","dateModified":"2026-11-02T07:00:50+00:00","description":"Our software development portfolio: a sales CRM, an inventory system, a booking system, a delivery app, an online store and an AI document assistant.","breadcrumb":{"@id":"https:\/\/qcoders.com\/work\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/qcoders.com\/work\/"]}]},{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/qcoders.com\/work\/#primaryimage","url":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp","contentUrl":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qc-work-sales-crm-pipeline.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/qcoders.com\/work\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/qcoders.com\/"},{"@type":"ListItem","position":2,"name":"Work"}]},{"@type":"WebSite","@id":"https:\/\/qcoders.com\/#website","url":"https:\/\/qcoders.com\/","name":"Qcoders","description":"\u0628\u0631\u0645\u062c\u064a\u0627\u062a \u062a\u0634\u063a\u0651\u0644 \u0623\u0639\u0645\u0627\u0644\u0643.","publisher":{"@id":"https:\/\/qcoders.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/qcoders.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/qcoders.com\/#organization","name":"Qcoders","url":"https:\/\/qcoders.com\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/qcoders.com\/#\/schema\/logo\/image\/","url":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qcoders-logo-qcoders-2026.png","contentUrl":"https:\/\/qcoders.com\/wp-content\/uploads\/2026\/10\/qcoders-logo-qcoders-2026.png","width":2000,"height":398,"caption":"Qcoders"},"image":{"@id":"https:\/\/qcoders.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/pages\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":25,"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/pages\/144\/revisions"}],"predecessor-version":[{"id":1093,"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/pages\/144\/revisions\/1093"}],"wp:attachment":[{"href":"https:\/\/qcoders.com\/ar\/wp-json\/wp\/v2\/media?parent=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}