{"id":1130,"date":"2026-04-01T15:33:41","date_gmt":"2026-04-01T10:33:41","guid":{"rendered":"http:\/\/13.229.219.216\/?page_id=1130"},"modified":"2026-04-01T16:02:39","modified_gmt":"2026-04-01T11:02:39","slug":"ride-hailing-platform-development","status":"publish","type":"page","link":"https:\/\/nextgeninnovations.co\/en\/ride-hailing-platform-development\/","title":{"rendered":""},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1130\" class=\"elementor elementor-1130\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68c797a0 e-flex e-con-boxed e-con e-parent\" data-id=\"68c797a0\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2501b432 elementor-widget elementor-widget-text-editor\" data-id=\"2501b432\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<!-- ==============================================\n   OH! RIDE \u2014 WordPress Gutenberg Block Code v2\n   Paste: Page Editor \u2192 \u22ee \u2192 Code Editor \u2192 Replace All \u2192 Update\n   No header \u00b7 No footer \u00b7 Light theme \u00b7 Improved\n   ============================================== -->\n<p>\u00a0<\/p>\n\n<p><style>\n\/* \u2500\u2500 TOKENS \u2500\u2500 *\/\n:root{\n  --ac:#2563EB;--ac2:#1D4ED8;--ac-lt:#EFF4FF;\n  --nv:#0F2B5B;--nv2:#1B3D72;--nv3:#071d3e;\n  --grn:#059669;--grn-lt:#ECFDF5;\n  --pur:#7C3AED;--pur-lt:#F3EFFE;\n  --amb:#D97706;--amb-lt:#FFFBEB;\n  --tl:#0891B2;--tl-lt:#ECFEFF;\n  --pk:#DB2777;--pk-lt:#FDF2F8;\n  --or:#FF5722;--or2:#FF8A65;--or-lt:#FFF3EF;\n  --w:#fff;\n  --g50:#F8FAFC;--g100:#F1F5F9;--g200:#E2E8F0;--g300:#CBD5E1;\n  --g400:#94A3B8;--g500:#64748B;--g700:#334155;--g900:#0F172A;\n  --r:12px;--r-lg:20px;--r-xl:28px;\n  --sh:0 1px 3px rgba(15,43,91,.06),0 4px 16px rgba(15,43,91,.06);\n  --sh-md:0 4px 24px rgba(15,43,91,.10);\n  --sh-lg:0 12px 48px rgba(15,43,91,.13);\n  --sh-xl:0 20px 72px rgba(15,43,91,.17);\n}\n\/* \u2500\u2500 RESET \u2500\u2500 *\/\n.ngcs *{box-sizing:border-box;margin:0;padding:0}\n.ngcs{font-family:'Inter',sans-serif;font-size:16px;line-height:1.6;color:var(--g900);background:var(--w);overflow-x:hidden}\n.ngcs a{text-decoration:none}\n.ngcs img{display:block;max-width:100%}\n\/* \u2500\u2500 LAYOUT \u2500\u2500 *\/\n.ngcs .sec{padding:80px 0}\n.ngcs .sec-alt{background:var(--g50)}\n.ngcs .cnt{max-width:1180px;margin:0 auto;padding:0 40px}\n.ngcs .dvd{height:1px;background:var(--g200);margin:0}\n.ngcs .two-col{display:grid;grid-template-columns:300px 1fr;gap:64px;align-items:start}\n\/* \u2500\u2500 TYPE \u2500\u2500 *\/\n.ngcs .ey{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ac);margin-bottom:10px;display:flex;align-items:center;gap:8px}\n.ngcs .ey::before{content:'';width:14px;height:2px;background:var(--ac);border-radius:2px}\n.ngcs .st{font-family:'Manrope',sans-serif;font-size:clamp(22px,2.8vw,30px);font-weight:800;line-height:1.15;letter-spacing:-0.025em;color:var(--g900);margin-bottom:12px}\n.ngcs .st em{color:var(--nv);font-style:italic}\n.ngcs .ss{font-size:14px;color:var(--g500);line-height:1.68}\n\/* \u2500\u2500 PROSE \u2500\u2500 *\/\n.ngcs .prose p{color:var(--g500);font-size:15px;margin-bottom:14px;line-height:1.8}\n.ngcs .prose p:last-child{margin-bottom:0}\n.ngcs .prose strong{color:var(--g900);font-weight:600}\n\/* \u2500\u2500 CALLOUT \u2500\u2500 *\/\n.ngcs .callout{background:var(--ac-lt);border:1px solid rgba(37,99,235,.15);border-left:3px solid var(--ac);border-radius:10px;padding:15px 18px;margin-top:20px}\n.ngcs .callout p{color:var(--nv);font-weight:500;font-size:14px;margin:0!important;line-height:1.65}\n\/* \u2500\u2500 CHIPS \u2500\u2500 *\/\n.ngcs .chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}\n.ngcs .chip{padding:3px 9px;background:var(--g100);border:1px solid var(--g200);border-radius:20px;font-size:11px;color:var(--g500);font-weight:600}\n\/* \u2500\u2500 BUTTONS \u2500\u2500 *\/\n.ngcs .btn-pri{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;background:var(--nv);color:#fff;border-radius:9px;font-size:14px;font-weight:700;transition:background .2s,transform .15s;box-shadow:0 4px 14px rgba(15,43,91,.25)}\n.ngcs .btn-pri:hover{background:var(--nv2);transform:translateY(-2px);color:#fff}\n.ngcs .btn-sec{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;background:var(--w);color:var(--nv);border:1.5px solid var(--g300);border-radius:9px;font-size:14px;font-weight:600;transition:border-color .2s,background .2s}\n.ngcs .btn-sec:hover{border-color:var(--nv);background:var(--ac-lt);color:var(--nv)}\n.ngcs .cta-grp{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}\n\/* \u2500\u2500 STATS BAR \u2500\u2500 *\/\n.ngcs .stats-bar{background:var(--nv3);position:relative;overflow:hidden}\n.ngcs .stats-bar::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,87,34,.09) 0%,transparent 55%,rgba(37,99,235,.06) 100%);pointer-events:none}\n.ngcs .stats-inner{max-width:1180px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:1}\n.ngcs .sc{padding:26px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.09)}\n.ngcs .sc:last-child{border-right:none}\n.ngcs .sc-num{font-family:'Manrope',sans-serif;font-size:32px;font-weight:900;color:#fff;display:block;line-height:1;letter-spacing:-0.02em}\n.ngcs .sc-num sup{font-size:15px;opacity:.8}\n.ngcs .sc-lbl{font-size:11px;color:rgba(255,255,255,.42);margin-top:5px;letter-spacing:.04em;display:block}\n.ngcs .sc-acc{color:#FF8A65!important}\n\/* \u2500\u2500 CHALLENGE CARDS \u2500\u2500 *\/\n.ngcs .ch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.ngcs .ch-card{background:var(--w);border:1px solid var(--g200);border-radius:var(--r);padding:20px;transition:box-shadow .22s,transform .22s;position:relative;overflow:hidden}\n.ngcs .ch-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}\n.ngcs .ch-bar{position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r) var(--r) 0 0}\n.ngcs .ch-ico{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:10px}\n.ngcs .ch-card h4{font-family:'Manrope',sans-serif;font-size:13px;font-weight:800;color:var(--g900);margin-bottom:6px}\n.ngcs .ch-card p{font-size:12.5px;color:var(--g500);line-height:1.62}\n\/* \u2500\u2500 SOLUTION CARDS \u2500\u2500 *\/\n.ngcs .sol-list{display:flex;flex-direction:column;gap:12px}\n.ngcs .sol-card{background:var(--w);border:1px solid var(--g200);border-radius:var(--r);padding:22px;display:grid;grid-template-columns:44px 1fr;gap:14px;transition:box-shadow .22s,border-color .22s}\n.ngcs .sol-card:hover{box-shadow:var(--sh-md);border-color:var(--g300)}\n.ngcs .sol-num{width:38px;height:38px;border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:11px;font-weight:800;flex-shrink:0}\n.ngcs .sol-card h4{font-family:'Manrope',sans-serif;font-size:13.5px;font-weight:800;color:var(--g900);margin-bottom:6px}\n.ngcs .sol-card p{font-size:13px;color:var(--g500);line-height:1.7}\n\/* \u2500\u2500 TECH STACK \u2500\u2500 *\/\n.ngcs .tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}\n.ngcs .tc{background:var(--w);border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);transition:box-shadow .25s,transform .25s}\n.ngcs .tc:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}\n.ngcs .tc-hd{padding:14px 16px;display:flex;align-items:center;gap:9px}\n.ngcs .tc-hd-ico{width:30px;height:30px;border-radius:7px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:9px;font-weight:800;color:#fff;flex-shrink:0}\n.ngcs .tc-hd-lbl{font-family:'Manrope',sans-serif;font-size:11.5px;font-weight:800;color:#fff;letter-spacing:.03em}\n.ngcs .tc-bd{padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}\n.ngcs .tc-item{display:flex;align-items:flex-start;gap:8px}\n.ngcs .tc-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px}\n.ngcs .tc-text strong{display:block;font-size:11.5px;font-weight:700;color:var(--g900);margin-bottom:2px}\n.ngcs .tc-text p{font-size:11px;color:var(--g500);line-height:1.5;margin:0}\n\/* \u2500\u2500 TEAM \u2500\u2500 *\/\n.ngcs .team-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n.ngcs .team-card{background:var(--w);border:1px solid var(--g200);border-radius:var(--r);padding:16px;display:flex;align-items:flex-start;gap:11px;transition:box-shadow .2s,transform .2s}\n.ngcs .team-card:hover{box-shadow:var(--sh);transform:translateY(-1px)}\n.ngcs .team-av{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:9px;font-weight:800;color:#fff;flex-shrink:0;letter-spacing:.04em}\n.ngcs .team-card strong{display:block;font-size:12.5px;font-weight:700;color:var(--g900);margin-bottom:3px}\n.ngcs .team-card p{font-size:11.5px;color:var(--g500);line-height:1.5;margin:0}\n\/* \u2500\u2500 IMPACT \u2500\u2500 *\/\n.ngcs .impact-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}\n.ngcs .in-card{background:var(--w);border:1px solid var(--g200);border-radius:var(--r-lg);padding:26px 18px;text-align:center;box-shadow:var(--sh);transition:box-shadow .22s,transform .22s;position:relative;overflow:hidden}\n.ngcs .in-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}\n.ngcs .in-n{font-family:'Manrope',sans-serif;font-size:34px;font-weight:900;line-height:1;display:block;margin-bottom:7px;letter-spacing:-0.02em}\n.ngcs .in-card p{font-size:11.5px;color:var(--g500);line-height:1.5;margin:0}\n.ngcs .in-bar{position:absolute;bottom:0;left:0;right:0;height:3px}\n\/* \u2500\u2500 IMPACT ROWS \u2500\u2500 *\/\n.ngcs .impact-rows{display:flex;flex-direction:column}\n.ngcs .ir{display:flex;align-items:flex-start;gap:13px;padding:16px 0;border-bottom:1px solid var(--g100)}\n.ngcs .ir:last-child{border-bottom:none}\n.ngcs .ir-chk{width:20px;height:20px;min-width:20px;background:var(--grn-lt);border:1.5px solid rgba(5,150,105,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:3px}\n.ngcs .ir-chk svg{width:9px;stroke:var(--grn);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}\n.ngcs .ir strong{display:block;font-size:13.5px;font-weight:700;color:var(--g900);margin-bottom:4px}\n.ngcs .ir p{font-size:13px;color:var(--g500);line-height:1.65;margin:0}\n\/* \u2500\u2500 TESTIMONIAL \u2500\u2500 *\/\n.ngcs .testi{background:var(--nv3);border-radius:var(--r-xl);padding:52px 56px;position:relative;overflow:hidden}\n.ngcs .testi::before{content:'';position:absolute;top:-60px;right:-60px;width:280px;height:280px;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 70%);pointer-events:none}\n.ngcs .q-mark{font-family:'Manrope',sans-serif;font-size:90px;line-height:.4;color:rgba(255,255,255,.07);font-weight:900;position:absolute;top:40px;left:48px}\n.ngcs .tq{font-family:'Manrope',sans-serif;font-size:clamp(16px,2vw,20px);font-style:italic;line-height:1.64;color:rgba(255,255,255,.9);max-width:640px;position:relative;z-index:1;margin-bottom:28px}\n.ngcs .ta{display:flex;align-items:center;gap:13px;position:relative;z-index:1}\n.ngcs .ta-av{width:42px;height:42px;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.2);border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:800;font-size:14px;color:#fff;flex-shrink:0}\n.ngcs .ta-av img{width:100%;height:100%;object-fit:cover}\n.ngcs .ta-name{font-weight:700;color:#fff;font-size:14px;display:block;margin-bottom:1px}\n.ngcs .ta-role{font-size:12px;color:rgba(255,255,255,.45)}\n\/* \u2500\u2500 ARCHITECTURE DIAGRAM \u2500\u2500 *\/\n.ngcs .arch-wrap{background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-lg);padding:22px 20px;margin-top:24px}\n.ngcs .arch-title{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g400);text-align:center;margin-bottom:18px;display:flex;align-items:center;gap:8px;justify-content:center}\n.ngcs .arch-title::before,.ngcs .arch-title::after{content:'';flex:1;height:1px;background:var(--g200);max-width:48px}\n.ngcs .arch-rows{display:flex;flex-direction:column;gap:0}\n.ngcs .arch-row{display:grid;grid-template-columns:58px 1fr;align-items:start;gap:8px}\n.ngcs .arch-lbl{font-size:8.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--g300);text-align:right;line-height:1.3;padding-top:12px}\n.ngcs .arch-nodes{display:flex;gap:5px;flex-wrap:wrap;padding:7px 0}\n.ngcs .anode{display:inline-flex;align-items:center;padding:5px 9px;border-radius:7px;font-size:9.5px;font-weight:700;letter-spacing:.02em}\n.ngcs .an-blue{background:var(--ac-lt);color:var(--ac);border:1px solid rgba(37,99,235,.2)}\n.ngcs .an-navy{background:rgba(15,43,91,.07);color:var(--nv);border:1px solid rgba(15,43,91,.14)}\n.ngcs .an-orange{background:var(--or-lt);color:var(--or);border:1px solid rgba(255,87,34,.2)}\n.ngcs .an-green{background:var(--grn-lt);color:var(--grn);border:1px solid rgba(5,150,105,.2)}\n.ngcs .an-purple{background:var(--pur-lt);color:var(--pur);border:1px solid rgba(124,58,237,.2)}\n.ngcs .an-amber{background:var(--amb-lt);color:var(--amb);border:1px solid rgba(217,119,6,.2)}\n.ngcs .an-teal{background:var(--tl-lt);color:var(--tl);border:1px solid rgba(8,145,178,.2)}\n.ngcs .an-wide{width:100%;justify-content:center;text-align:center}\n.ngcs .arch-conn{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:8px;padding:2px 0}\n.ngcs .arch-conn-line{display:flex;align-items:center;gap:5px}\n.ngcs .arch-conn-line::before,.ngcs .arch-conn-line::after{content:'';flex:1;height:1px;background:var(--g200)}\n.ngcs .arch-conn-lbl{font-size:9px;font-weight:600;letter-spacing:.03em;color:var(--g400);white-space:nowrap}\n\/* \u2500\u2500 RELATED PROJECTS \u2500\u2500 *\/\n.ngcs .proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}\n.ngcs .proj-card{background:var(--w);border:1px solid var(--g200);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow .25s,transform .25s}\n.ngcs .proj-card:hover{box-shadow:var(--sh-xl);transform:translateY(-4px)}\n.ngcs .proj-img{height:160px;overflow:hidden;background:var(--g100)}\n.ngcs .proj-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s;display:block}\n.ngcs .proj-card:hover .proj-img img{transform:scale(1.06)}\n.ngcs .proj-body{padding:18px}\n.ngcs .proj-body h4{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;color:var(--g900);margin-bottom:7px;line-height:1.3}\n.ngcs .proj-body p{font-size:12.5px;color:var(--g500);line-height:1.62;margin-bottom:12px}\n.ngcs .proj-body a{font-size:12.5px;font-weight:700;color:var(--ac);display:inline-flex;align-items:center;gap:5px;transition:gap .18s}\n.ngcs .proj-body a:hover{gap:9px}\n\/* \u2500\u2500 PRE-FOOTER CTA \u2500\u2500 *\/\n.ngcs .pf{background:var(--nv3);padding:72px 0;position:relative;overflow:hidden}\n.ngcs .pf::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 110% at 100% 50%,rgba(37,99,235,.14),transparent 65%),radial-gradient(ellipse 45% 90% at 0% 50%,rgba(255,87,34,.08),transparent 65%);pointer-events:none}\n.ngcs .pf-inner{max-width:1180px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:40px;position:relative;z-index:1}\n.ngcs .pf-text h2{font-family:'Manrope',sans-serif;font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.1;letter-spacing:-0.03em;color:#fff;margin-bottom:10px}\n.ngcs .pf-text h2 em{font-style:italic;background:linear-gradient(90deg,#60A5FA,#93C5FD);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\n.ngcs .pf-text p{font-size:15px;color:rgba(255,255,255,.48);max-width:440px;line-height:1.65;margin:0}\n.ngcs .pf-acts{display:flex;gap:12px;flex-shrink:0}\n.ngcs .btn-pf1{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:#fff;color:var(--nv);border-radius:10px;font-size:14px;font-weight:800;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.25);transition:transform .18s,box-shadow .18s}\n.ngcs .btn-pf1:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(0,0,0,.35);color:var(--nv)}\n.ngcs .btn-pf2{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);border:1.5px solid rgba(255,255,255,.18);border-radius:10px;font-size:14px;font-weight:600;white-space:nowrap;transition:all .2s}\n.ngcs .btn-pf2:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);color:#fff}\n\/* \u2500\u2500 SECTION CENTRE \u2500\u2500 *\/\n.ngcs .sec-ctr{text-align:center;margin-bottom:40px}\n.ngcs .sec-ctr .ey{justify-content:center}\n.ngcs .sec-ctr .ey::before{display:none}\n\/* \u2500\u2500 META PANEL \u2500\u2500 *\/\n.ngcs .meta-panel{background:var(--w);border:1px solid var(--g200);border-radius:var(--r-xl);padding:24px;box-shadow:var(--sh-md)}\n.ngcs .meta-img{width:100%;height:190px;border-radius:var(--r-lg);overflow:hidden;margin-bottom:20px;background:var(--g100)}\n.ngcs .meta-img img{width:100%;height:100%;object-fit:cover;display:block}\n.ngcs .meta-row{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--g100)}\n.ngcs .meta-row:last-child{border-bottom:none}\n.ngcs .meta-lbl{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g400)}\n.ngcs .meta-val{font-size:13px;font-weight:600;color:var(--g900);text-align:right}\n.ngcs .meta-live{display:inline-flex;align-items:center;gap:5px;color:var(--grn);font-weight:700;font-size:13px}\n\/* \u2500\u2500 HERO \u2500\u2500 *\/\n.ngcs .hero{background:var(--w);padding:72px 0 56px;position:relative;overflow:hidden}\n.ngcs .hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,#d1dff5 1px,transparent 1px);background-size:28px 28px;opacity:.45;pointer-events:none}\n.ngcs .hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 50%,#fff 100%);pointer-events:none}\n.ngcs .hero-inner{max-width:1180px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:start;position:relative;z-index:1}\n.ngcs .tag{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;background:var(--ac-lt);border:1px solid rgba(37,99,235,.2);border-radius:40px;font-size:11.5px;font-weight:700;color:var(--ac);letter-spacing:.04em;margin-bottom:20px}\n.ngcs .tag-dot{background:var(--ac);color:#fff;font-size:9.5px;font-weight:800;padding:3px 7px;border-radius:18px;letter-spacing:.06em}\n.ngcs .hero-h1{font-family:'Manrope',sans-serif;font-size:clamp(38px,5vw,62px);font-weight:900;line-height:1.05;letter-spacing:-0.04em;color:var(--g900);margin-bottom:18px}\n.ngcs .hero-h1 .grad{background:linear-gradient(135deg,var(--nv) 0%,var(--ac) 55%,var(--or) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}\n.ngcs .hero-h1 .sub{display:block;color:var(--g400);font-size:.52em;font-weight:600;letter-spacing:-0.01em;margin-top:5px;-webkit-text-fill-color:var(--g400)}\n.ngcs .hero-desc{font-size:15.5px;color:var(--g500);line-height:1.76;max-width:500px;margin-bottom:28px}\n.ngcs .hero-desc strong{color:var(--g900);font-weight:700}\n.ngcs .hero-btns{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:32px}\n.ngcs .hero-proof{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.ngcs .hero-proof-item{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--g500)}\n.ngcs .hero-proof-item strong{color:var(--g900);font-weight:700}\n.ngcs .hero-proof-sep{width:1px;height:18px;background:var(--g200)}\n\/* \u2500\u2500 LIVE DOT \u2500\u2500 *\/\n@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}\n.ngcs .live-dot{width:7px;height:7px;border-radius:50%;background:var(--grn);box-shadow:0 0 0 2px rgba(5,150,105,.2);animation:blink 2s infinite;display:inline-block;margin-right:5px}\n\/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n@media(max-width:1024px){\n  .ngcs .two-col{grid-template-columns:1fr;gap:36px}\n  .ngcs .hero-inner{grid-template-columns:1fr;gap:32px}\n  .ngcs .tech-grid{grid-template-columns:1fr 1fr}\n  .ngcs .proj-grid{grid-template-columns:1fr 1fr}\n}\n@media(max-width:768px){\n  .ngcs .cnt,.ngcs .stats-inner,.ngcs .hero-inner,.ngcs .pf-inner{padding:0 20px}\n  .ngcs .sec{padding:56px 0}\n  .ngcs .hero{padding:48px 0 40px}\n  .ngcs .stats-inner{grid-template-columns:1fr 1fr}\n  .ngcs .sc:nth-child(2){border-right:none}\n  .ngcs .sc:nth-child(3){border-top:1px solid rgba(255,255,255,.09)}\n  .ngcs .ch-grid{grid-template-columns:1fr}\n  .ngcs .team-grid{grid-template-columns:1fr}\n  .ngcs .impact-nums{grid-template-columns:1fr 1fr}\n  .ngcs .tech-grid{grid-template-columns:1fr}\n  .ngcs .proj-grid{grid-template-columns:1fr}\n  .ngcs .pf-inner{flex-direction:column;align-items:flex-start;gap:24px}\n  .ngcs .pf-acts{flex-direction:column;width:100%}\n  .ngcs .btn-pf1,.ngcs .btn-pf2{width:100%;justify-content:center}\n  .ngcs .hero-btns{flex-direction:column}\n  .ngcs .btn-pri,.ngcs .btn-sec{width:100%;justify-content:center}\n  .ngcs .testi{padding:32px 24px}\n  .ngcs .pf{padding:52px 0}\n}\n@media(max-width:480px){\n  .ngcs .impact-nums{grid-template-columns:1fr}\n  .ngcs .hero-h1{font-size:34px}\n  .ngcs .tech-grid{grid-template-columns:1fr}\n}\n<\/style><\/p>\n\n<div class=\"ngcs\"><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     HERO\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"hero\" aria-label=\"Oh! Ride case study hero\">\n<div class=\"hero-inner\"><!-- Left: Copy -->\n<div>\n<div class=\"tag\"><span class=\"tag-dot\">CASE STUDY<\/span> Transportation \u00b7 SaaS \u00b7 Sri Lanka \u00b7 2023<\/div>\n<h1 class=\"hero-h1\"><span class=\"grad\">Oh! Ride<\/span> <span class=\"sub\">Sri Lanka&#8217;s First SaaS Ride-Hailing Platform<\/span><\/h1>\n<p class=\"hero-desc\">Drivers pay a flat monthly fee and keep <strong>100% of every fare.<\/strong> Built from zero \u2014 8 microservices, React Native, Spring Boot, Node.js, Python ML, Apache Kafka \u2014 live for 2+ years with zero major outages.<\/p>\n<div class=\"hero-btns\"><a class=\"btn-pri\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ohride&amp;hl=en\" target=\"_blank\" rel=\"noopener\"> Try Oh! Ride App \u2192 <\/a> <a class=\"btn-sec\" href=\"https:\/\/cal.com\/pranavan\/30min\" target=\"_blank\" rel=\"noopener\"> Build Something Like This \u2192 <\/a><\/div>\n<div class=\"hero-proof\">\n<div class=\"hero-proof-item\"><span style=\"color: #fbbf24; letter-spacing: 1px;\">\u2605\u2605\u2605\u2605\u2605<\/span> \u00a0<strong>5.0<\/strong>\u00a0on Clutch &amp; Google<\/div>\n<div class=\"hero-proof-sep\">\u00a0<\/div>\n<div class=\"hero-proof-item\"><strong>Live<\/strong>\u00a02+ years, zero major outages<\/div>\n<\/div>\n<\/div>\n<!-- Right: Meta panel -->\n<div class=\"meta-panel\">\n<div class=\"meta-img\"><img decoding=\"async\" src=\"https:\/\/nextgeninnovations.co\/wp-content\/uploads\/2025\/05\/6759a49b94adfb41f47629b1_6759a4741dcf7244c3ef538e_oh20taxi.webp\" alt=\"Oh! Ride app \u2014 Sri Lanka's first SaaS ride-hailing platform\" \/><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Year<\/span><span class=\"meta-val\">2023<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Client<\/span><span class=\"meta-val\">OXHorn<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Industry<\/span><span class=\"meta-val\">Transportation<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Platform<\/span><span class=\"meta-val\">iOS + Android + Web<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Timeline<\/span><span class=\"meta-val\">12 Months<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Team Size<\/span><span class=\"meta-val\">11 Specialists<\/span><\/div>\n<div class=\"meta-row\"><span class=\"meta-lbl\">Status<\/span> <span class=\"meta-val\"> <span class=\"meta-live\">Live<\/span> <\/span><\/div>\n<\/div>\n<\/div>\n<\/section>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     STATS BAR\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"stats-bar\" role=\"list\" aria-label=\"Key metrics\">\n<div class=\"stats-inner\">\n<div class=\"sc\" role=\"listitem\"><span class=\"sc-num sc-acc\">100<sup>%<\/sup><\/span> <span class=\"sc-lbl\">Driver Fare Retention<\/span><\/div>\n<div class=\"sc\" role=\"listitem\"><span class=\"sc-num\">2yr<sup>+<\/sup><\/span> <span class=\"sc-lbl\">Uninterrupted Uptime<\/span><\/div>\n<div class=\"sc\" role=\"listitem\"><span class=\"sc-num sc-acc\">&lt;200<sup>ms<\/sup><\/span> <span class=\"sc-lbl\">Real-Time GPS Latency<\/span><\/div>\n<div class=\"sc\" role=\"listitem\"><span class=\"sc-num\">8<\/span> <span class=\"sc-lbl\">Microservices in Production<\/span><\/div>\n<\/div>\n<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     OVERVIEW\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec\">\n<div class=\"cnt\">\n<div class=\"two-col\"><!-- Left -->\n<div>\n<div class=\"ey\">Project Overview<\/div>\n<h2 class=\"st\">Reimagining ride hailing with a <em>fairer model.<\/em><\/h2>\n<p class=\"ss\">A complete platform ecosystem built from zero \u2014 every service designed, built, and deployed within a single 12-month sprint.<\/p>\n<!-- Architecture diagram -->\n<div class=\"arch-wrap\">\n<div class=\"arch-title\">Platform Architecture<\/div>\n<div class=\"arch-rows\">\n<div class=\"arch-row\"><span class=\"arch-lbl\">Client Apps<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-blue\">Rider App<\/span> <span class=\"anode an-navy\">Driver App<\/span> <span class=\"anode an-purple\">Admin Portal<\/span><\/div>\n<\/div>\n<div class=\"arch-conn\">\n<div class=\"arch-conn-line\"><span class=\"arch-conn-lbl\">HTTPS + WebSocket<\/span><\/div>\n<\/div>\n<div class=\"arch-row\"><span class=\"arch-lbl\">Gateway<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-orange an-wide\">API Gateway + WebSocket Layer \u2014 Node.js Fastify<\/span><\/div>\n<\/div>\n<div class=\"arch-conn\">\n<div class=\"arch-conn-line\"><span class=\"arch-conn-lbl\">gRPC + REST Service Calls<\/span><\/div>\n<\/div>\n<div class=\"arch-row\"><span class=\"arch-lbl\">Services<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-green\">Auth<\/span> <span class=\"anode an-green\">Trips<\/span> <span class=\"anode an-green\">Location<\/span> <span class=\"anode an-green\">Billing<\/span> <span class=\"anode an-green\">KYC<\/span> <span class=\"anode an-purple\">ML Pricing<\/span><\/div>\n<\/div>\n<div class=\"arch-conn\">\n<div class=\"arch-conn-line\"><span class=\"arch-conn-lbl\">Async Domain Events<\/span><\/div>\n<\/div>\n<div class=\"arch-row\"><span class=\"arch-lbl\">Event Bus<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-amber an-wide\">Apache Kafka on AWS MSK \u2014 Async Event Streaming<\/span><\/div>\n<\/div>\n<div class=\"arch-conn\">\n<div class=\"arch-conn-line\"><span class=\"arch-conn-lbl\">Reads and Writes<\/span><\/div>\n<\/div>\n<div class=\"arch-row\"><span class=\"arch-lbl\">Data<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-purple\">PostgreSQL<\/span> <span class=\"anode an-purple\">MongoDB<\/span> <span class=\"anode an-teal\">Redis GEO<\/span> <span class=\"anode an-navy\">AWS S3<\/span><\/div>\n<\/div>\n<div class=\"arch-conn\">\n<div class=\"arch-conn-line\"><span class=\"arch-conn-lbl\">Container Orchestration<\/span><\/div>\n<\/div>\n<div class=\"arch-row\"><span class=\"arch-lbl\">Infra<\/span>\n<div class=\"arch-nodes\"><span class=\"anode an-blue\">AWS EKS<\/span> <span class=\"anode an-blue\">Docker<\/span> <span class=\"anode an-teal\">CloudWatch<\/span> <span class=\"anode an-blue\">GitHub Actions<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- Right: Prose -->\n<div class=\"prose\">\n<p>Oh! Ride is a full-scale ride-hailing platform built by NextGen Innovations for OXHorn \u2014 designed to fundamentally change how ride-hailing works in Sri Lanka. Unlike existing platforms that charge drivers a 15\u201330% commission on every trip, Oh! Ride introduced a <strong>SaaS subscription model<\/strong>: drivers pay a flat monthly fee and keep <strong>100% of every fare they earn.<\/strong><\/p>\n<p>The platform was engineered from the ground up \u2014 8 independent microservices, 6 independently deployed frontend modules, real-time GPS tracking via WebSocket and Redis GEO, ML-powered dynamic pricing using XGBoost, automated driver verification combining OpenCV face liveness and Tesseract OCR, and a fully white-label operator admin portal built with React 18 Module Federation.<\/p>\n<p>Every layer was designed to scale to thousands of concurrent drivers and rides without performance degradation. The project spanned 12 months and required 11 specialists working in parallel across backend, mobile, ML, frontend, and infrastructure.<\/p>\n<div class=\"callout\">\n<p><strong>Oh! Ride has been live in production for over 2 years<\/strong> \u2014 zero major outages, zero downtime deployments. That is the standard we hold on every project we take on.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CHALLENGES\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec sec-alt\">\n<div class=\"cnt\">\n<div class=\"two-col\">\n<div>\n<div class=\"ey\">Challenges<\/div>\n<h2 class=\"st\">Building an entire <em>ecosystem<\/em> from zero.<\/h2>\n<p class=\"ss\">No prior codebase. No legacy system to extend. Every service designed and integrated in parallel within a single 12-month window.<\/p>\n<\/div>\n<div class=\"ch-grid\">\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#FF5722,#FF8A65);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #FFF3EF; color: #ff5722;\">\u25d0<\/div>\n<h4>Building from Absolute Zero<\/h4>\n<p>Every service \u2014 auth, trips, real-time location, billing, ML pricing, and driver verification \u2014 had to be designed and integrated in parallel with no legacy fallback and zero existing infrastructure.<\/p>\n<\/div>\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#2563EB,#60A5FA);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #EFF4FF; color: #2563eb;\">\u25d5<\/div>\n<h4>Real-Time GPS at Scale<\/h4>\n<p>Sub-second position updates for hundreds of concurrent rides. Standard REST polling creates server overload. The platform needed persistent WebSocket connections with Redis GEO for thousands of simultaneous driver positions.<\/p>\n<\/div>\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#D97706,#FCD34D);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #FFFBEB; color: #d97706;\">\u25c6<\/div>\n<h4>Dynamic Pricing Without Bias<\/h4>\n<p>Flat-rate fares are unfair at peak demand. The platform needed an intelligent pricing engine adjusting fares on real-time signals without any manual operator intervention.<\/p>\n<\/div>\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#059669,#34D399);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #ECFDF5; color: #059669;\">\u25a0<\/div>\n<h4>Driver Identity Verification<\/h4>\n<p>Onboarding unverified drivers is a safety and legal risk. The system needed face liveness detection, NIC and licence OCR, and cross-reference validation \u2014 all without manual review per applicant.<\/p>\n<\/div>\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#7C3AED,#A78BFA);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #F3EFFE; color: #7c3aed;\">\u25c7<\/div>\n<h4>Microservices Independence<\/h4>\n<p>A monolith would not scale to the needed load. Each domain needed independent deployability, its own failure isolation, and strict API contracts enforced from day one.<\/p>\n<\/div>\n<div class=\"ch-card\">\n<div class=\"ch-bar\" style=\"background: linear-gradient(90deg,#DB2777,#F472B6);\">\u00a0<\/div>\n<div class=\"ch-ico\" style=\"background: #FDF2F8; color: #db2777;\">\u25a1<\/div>\n<h4>Multi-Team Admin Portal<\/h4>\n<p>Six functional areas needed separate team ownership and deployment cycles without risking the entire operator portal \u2014 fleet, billing, analytics, driver approvals, support, and configuration.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SOLUTIONS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec\">\n<div class=\"cnt\">\n<div class=\"two-col\">\n<div>\n<div class=\"ey\">Our Solution<\/div>\n<h2 class=\"st\">Production-grade engineering for <em>real-world scale.<\/em><\/h2>\n<p class=\"ss\">Cloud-native. Event-driven. Every engineering decision made for long-term stability and operational independence.<\/p>\n<\/div>\n<div class=\"sol-list\">\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #0891B2;\">01<\/div>\n<div>\n<h4>Real-Time Location Engine<\/h4>\n<p>Node.js Fastify manages persistent WebSocket connections streaming driver positions every 2 seconds. Redis GEO commands execute radius-based nearest-driver queries in under 5ms. A single node handles 2,000+ concurrent driver connections \u2014 the Kubernetes cluster scales horizontally for full fleet load.<\/p>\n<div class=\"chips\"><span class=\"chip\">Node.js Fastify<\/span> <span class=\"chip\">WebSocket<\/span> <span class=\"chip\">Redis GEO<\/span> <span class=\"chip\">AWS ElastiCache<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #7C3AED;\">02<\/div>\n<div>\n<h4>ML Dynamic Pricing with XGBoost<\/h4>\n<p>A standalone Python FastAPI microservice runs an XGBoost model trained on historical trip data, demand patterns, weather signals, and time-of-day inputs. The model retrains weekly on fresh production data to stay accurate as demand patterns evolve.<\/p>\n<div class=\"chips\"><span class=\"chip\">Python<\/span> <span class=\"chip\">XGBoost<\/span> <span class=\"chip\">FastAPI<\/span> <span class=\"chip\">Scikit-learn<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #059669;\">03<\/div>\n<div>\n<h4>Computer Vision Driver Verification<\/h4>\n<p>A Python service combines OpenCV face liveness detection with Tesseract OCR for ID document parsing. The system performs facial match, extracts document data, validates licence expiry, and auto-approves in under 90 seconds \u2014 enabling rapid expansion without ops headcount growth.<\/p>\n<div class=\"chips\"><span class=\"chip\">OpenCV<\/span> <span class=\"chip\">Tesseract OCR<\/span> <span class=\"chip\">Python<\/span> <span class=\"chip\">FastAPI<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #D97706;\">04<\/div>\n<div>\n<h4>Automated Subscription Billing Engine<\/h4>\n<p>Spring Boot manages monthly billing cycles with automated retry flows, configurable grace periods, and driver account suspension and reinstatement logic. The operator never manually manages billing across hundreds of active driver accounts.<\/p>\n<div class=\"chips\"><span class=\"chip\">Java Spring Boot<\/span> <span class=\"chip\">PayHere API<\/span> <span class=\"chip\">Automated Recovery<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #FF5722;\">05<\/div>\n<div>\n<h4>Event-Driven Microservices via Apache Kafka<\/h4>\n<p>Kafka on AWS MSK serves as the inter-service event bus. Services publish domain events \u2014 trip.created, payment.confirmed, driver.verified \u2014 without direct coupling to any consumer. The platform remains fully operational even while individual services are redeploying.<\/p>\n<div class=\"chips\"><span class=\"chip\">Apache Kafka<\/span> <span class=\"chip\">AWS MSK<\/span> <span class=\"chip\">Event Sourcing<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"sol-card\">\n<div class=\"sol-num\" style=\"background: #0F2B5B;\">06<\/div>\n<div>\n<h4>Independent Frontend Modules via Module Federation<\/h4>\n<p>React 18 with Webpack 5 Module Federation delivers 6 independently deployable admin portal modules. Performance-critical mobile features are implemented in native Android Kotlin and iOS Swift modules bridged into React Native.<\/p>\n<div class=\"chips\"><span class=\"chip\">React 18<\/span> <span class=\"chip\">React Native<\/span> <span class=\"chip\">Android Kotlin<\/span> <span class=\"chip\">iOS Swift<\/span> <span class=\"chip\">Module Federation<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     TECH STACK\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec sec-alt\">\n<div class=\"cnt\">\n<div class=\"sec-ctr\">\n<div class=\"ey\">Technology Stack<\/div>\n<h2 class=\"st\" style=\"max-width: 480px; margin: 0 auto 10px;\">Every tool chosen with a <em>clear reason.<\/em><\/h2>\n<p class=\"ss\" style=\"max-width: 520px; margin: 0 auto;\">No trend-chasing. Six technology domains, each with the right tool for the job \u2014 chosen for performance, team expertise, and long-term maintainability.<\/p>\n<\/div>\n<div class=\"tech-grid\"><!-- Mobile -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #0F2B5B;\">\n<div class=\"tc-hd-ico\">MOB<\/div>\n<span class=\"tc-hd-lbl\">Mobile Applications<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #0F2B5B;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>React Native<\/strong>\n<p>Shared codebase for Rider and Driver apps on iOS and Android. One team, one release cycle, near-native performance.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #2563EB;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Native Modules \u2014 Android Kotlin &amp; iOS Swift<\/strong>\n<p>Background GPS, push notifications, biometric authentication, and KYC camera access implemented natively and bridged into React Native.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #0891B2;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Google Maps SDK<\/strong>\n<p>Live driver tracking, ETA calculation, route rendering, and pickup point selection integrated directly in both apps.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- Backend -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #2563EB;\">\n<div class=\"tc-hd-ico\">API<\/div>\n<span class=\"tc-hd-lbl\">Backend Services<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #2563EB;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Java Spring Boot<\/strong>\n<p>Core business logic microservices \u2014 Trips, Auth, Billing, Driver Profiles, and KYC orchestration. Enterprise-grade reliability for complex transactional workloads.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #059669;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Node.js with Fastify<\/strong>\n<p>Real-time communication gateway and WebSocket management. Handles 2,000+ concurrent connections efficiently at the concurrency level required.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #7C3AED;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Python with FastAPI<\/strong>\n<p>ML Pricing service and Computer Vision KYC pipeline. Python&#8217;s data science ecosystem made it the only sensible choice for intelligent processing.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- Real-time -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #0891B2;\">\n<div class=\"tc-hd-ico\">RT<\/div>\n<span class=\"tc-hd-lbl\">Real-Time &amp; Events<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #0891B2;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>WebSocket<\/strong>\n<p>Persistent two-way connections stream driver positions every 2 seconds and power in-app chat. HTTP polling latency eliminated entirely.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #059669;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Redis GEO via AWS ElastiCache<\/strong>\n<p>In-memory geospatial indexing for nearest-driver queries. GEO radius commands run 10\u00d7 faster than database-level geographic queries at this concurrency.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #FF5722;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Apache Kafka via AWS MSK<\/strong>\n<p>Distributed event streaming for all inter-service communication. Guarantees delivery, supports full event replay, and decouples every microservice.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- Data -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #7C3AED;\">\n<div class=\"tc-hd-ico\">DB<\/div>\n<span class=\"tc-hd-lbl\">Data &amp; Storage<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #7C3AED;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>PostgreSQL via AWS Aurora<\/strong>\n<p>Core relational store for trips, billing records, and user accounts. Aurora provides managed high-availability with automatic failover.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #059669;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>MongoDB<\/strong>\n<p>Flexible document storage for driver profiles and operational logs where schema flexibility is needed across varying regional document types.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #0F2B5B;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>AWS S3<\/strong>\n<p>Secure, durable object storage for driver licence images, selfie captures, and all document uploads from the KYC verification pipeline.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- ML -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #FF5722;\">\n<div class=\"tc-hd-ico\">ML<\/div>\n<span class=\"tc-hd-lbl\">ML &amp; Computer Vision<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #FF5722;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>XGBoost<\/strong>\n<p>Dynamic pricing engine trained on historical trip data, demand patterns, weather signals, and time-of-day inputs. Retrains weekly on fresh production data.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #DB2777;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>OpenCV<\/strong>\n<p>Face liveness detection for driver KYC. Rejects spoofed or static photos before document verification proceeds \u2014 a critical security gate in the onboarding flow.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #D97706;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Tesseract OCR<\/strong>\n<p>Parses NIC and driving licence photos automatically \u2014 extracting name, number, and expiry. Enables hands-free driver onboarding in under 90 seconds.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<!-- Infra -->\n<div class=\"tc\">\n<div class=\"tc-hd\" style=\"background: #D97706;\">\n<div class=\"tc-hd-ico\">OPS<\/div>\n<span class=\"tc-hd-lbl\">Cloud &amp; Infrastructure<\/span><\/div>\n<div class=\"tc-bd\">\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #D97706;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>AWS EKS &amp; Kubernetes<\/strong>\n<p>Container orchestration across all 8 microservices. Auto-scaling, rolling deployments, health checks, and liveness probes ensure zero-downtime releases.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #0891B2;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>Docker<\/strong>\n<p>Every service containerised for identical dev-to-production environments, rapid developer onboarding, and reproducible deployments across the full cluster.<\/p>\n<\/div>\n<\/div>\n<div class=\"tc-item\">\n<div class=\"tc-dot\" style=\"background: #2563EB;\">\u00a0<\/div>\n<div class=\"tc-text\"><strong>GitHub Actions CI\/CD<\/strong>\n<p>Independent automated pipelines per microservice \u2014 build, test, and deploy. Teams release their own services without any coordination bottleneck.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     TEAM\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec\">\n<div class=\"cnt\">\n<div class=\"two-col\">\n<div>\n<div class=\"ey\">Team<\/div>\n<h2 class=\"st\">11 specialists. <em>One vision.<\/em><\/h2>\n<p class=\"ss\">Every role was purpose-filled. No generalists learning on the client&#8217;s time \u2014 each person owned their domain from day one.<\/p>\n<\/div>\n<div class=\"team-grid\">\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #0F2B5B;\">PM<\/div>\n<div><strong>Project Manager<\/strong>\n<p>Scrum delivery, stakeholder management, sprint planning, risk mitigation, and weekly client demos across the full 12-month build.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #2563EB;\">UX<\/div>\n<div><strong>UI\/UX Designers \u00d72<\/strong>\n<p>Figma prototypes, user journey mapping, mobile-first design systems for the Rider app, Driver app, and operator admin portal.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #059669;\">BE<\/div>\n<div><strong>Senior Backend Engineers \u00d72<\/strong>\n<p>Java Spring Boot microservices, API contract design, event-driven patterns with Kafka, and all service-to-service communication standards.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #7C3AED;\">ML<\/div>\n<div><strong>ML Engineer<\/strong>\n<p>Python, XGBoost dynamic pricing model, OpenCV face liveness, Tesseract OCR pipeline, and FastAPI inference service architecture.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #FF5722;\">MOB<\/div>\n<div><strong>Mobile Engineers \u00d72<\/strong>\n<p>React Native shared codebase, native Android Kotlin and iOS Swift bridge modules, Google Maps SDK integration, and offline resilience patterns.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #0891B2;\">FE<\/div>\n<div><strong>Frontend Engineer<\/strong>\n<p>React 18 admin portal, Webpack 5 Module Federation architecture for 6 independent modules, API integration, and frontend performance profiling.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #D97706;\">QA<\/div>\n<div><strong>Senior QA Engineers \u00d72<\/strong>\n<p>Functional and regression testing, load testing under simulated peak traffic, mobile device matrix coverage, and UAT coordination.<\/p>\n<\/div>\n<\/div>\n<div class=\"team-card\">\n<div class=\"team-av\" style=\"background: #1B3D72;\">OPS<\/div>\n<div><strong>DevOps Engineer<\/strong>\n<p>AWS EKS cluster management, Kubernetes configuration, Docker containerisation, GitHub Actions pipelines, and CloudWatch monitoring.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     IMPACT\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec sec-alt\">\n<div class=\"cnt\">\n<div style=\"margin-bottom: 32px;\">\n<div class=\"ey\">Impact<\/div>\n<h2 class=\"st\" style=\"max-width: 400px;\">Numbers that prove <em>delivery.<\/em><\/h2>\n<p class=\"ss\">Every requirement met. Every expectation exceeded. Every metric tracked since go-live.<\/p>\n<\/div>\n<!-- Impact numbers grid -->\n<div class=\"impact-nums\">\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#FF5722,#FF8A65);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #ff5722;\">100%<\/span>\n<p>Driver fare retention via flat SaaS subscription<\/p>\n<\/div>\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#0F2B5B,#2563EB);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #0f2b5b;\">2yr+<\/span>\n<p>Uninterrupted production uptime since launch<\/p>\n<\/div>\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#0891B2,#22D3EE);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #0891b2;\">&lt;200ms<\/span>\n<p>Driver location broadcast latency to matched riders<\/p>\n<\/div>\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#059669,#34D399);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #059669;\">90s<\/span>\n<p>Automated driver KYC \u2014 face match, OCR, licence check<\/p>\n<\/div>\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#7C3AED,#A78BFA);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #7c3aed;\">80%<\/span>\n<p>Reduction in manual dispatch coordination time<\/p>\n<\/div>\n<div class=\"in-card\">\n<div class=\"in-bar\" style=\"background: linear-gradient(90deg,#D97706,#FCD34D);\">\u00a0<\/div>\n<span class=\"in-n\" style=\"color: #d97706;\">2000+<\/span>\n<p>Concurrent WebSocket connections per single node<\/p>\n<\/div>\n<\/div>\n<!-- Impact rows -->\n<div class=\"impact-rows\">\n<div class=\"ir\">\n<div class=\"ir-chk\">\u00a0<\/div>\n<div><strong>Zero Commission Model \u2014 Live and Scaling<\/strong>\n<p>Drivers pay a predictable monthly fee and keep 100% of their earnings. This fundamentally fairer model drove strong driver adoption and retention from the first week of public launch in Sri Lanka.<\/p>\n<\/div>\n<\/div>\n<div class=\"ir\">\n<div class=\"ir-chk\">\u00a0<\/div>\n<div><strong>80% Reduction in Dispatch Coordination Time<\/strong>\n<p>Automated real-time ride matching through the Trip Service eliminated manual dispatcher coordination entirely. What once needed a human operator is now handled end-to-end in under one second.<\/p>\n<\/div>\n<\/div>\n<div class=\"ir\">\n<div class=\"ir-chk\">\u00a0<\/div>\n<div><strong>2+ Years of Uninterrupted Production Uptime<\/strong>\n<p>Kubernetes auto-healing, multi-AZ deployment on AWS, and circuit-breaker patterns have delivered continuous availability since launch. Zero major outages recorded to this date.<\/p>\n<\/div>\n<\/div>\n<div class=\"ir\">\n<div class=\"ir-chk\">\u00a0<\/div>\n<div><strong>Automated Driver Onboarding Under 2 Minutes<\/strong>\n<p>The computer vision KYC pipeline processes standard applications without any manual review \u2014 face match, document OCR, and licence validation complete in 90 seconds, enabling city-by-city expansion without adding operations headcount.<\/p>\n<\/div>\n<\/div>\n<div class=\"ir\">\n<div class=\"ir-chk\">\u00a0<\/div>\n<div><strong>Sub-200ms Real-Time Location Updates<\/strong>\n<p>WebSocket and Redis GEO architecture delivers driver position updates to riders in under 200ms. Dispatch confirmation completes in under one second \u2014 performance comparable to global-scale platforms at a fraction of the infrastructure cost.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     TESTIMONIAL\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec\" style=\"padding-bottom: 0;\">\n<div class=\"cnt\">\n<div class=\"testi\">\n<div class=\"q-mark\">\u201c<\/div>\n<p class=\"tq\">\u201cNextGen Innovations delivered beyond our expectations. Their team understood our vision, and the Oh! Ride app is a hit with users. Professional, efficient, and committed to success!\u201d<\/p>\n<div class=\"ta\">\n<div class=\"ta-av\"><img decoding=\"async\" src=\"https:\/\/nextgeninnovations.co\/wp-content\/uploads\/2025\/04\/image-1.png\" alt=\"Siva Vakeesan \u2014 CEO, OXHorn\" \/><\/div>\n<div><span class=\"ta-name\">Siva Vakeesan<\/span> <span class=\"ta-role\">CEO, OXHorn<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CONCLUSION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec\">\n<div class=\"cnt\">\n<div class=\"two-col\">\n<div>\n<div class=\"ey\">Conclusion<\/div>\n<h2 class=\"st\">This is just <em>the beginning.<\/em><\/h2>\n<\/div>\n<div>\n<p style=\"font-size: 15px; color: #64748b; line-height: 1.82; margin-bottom: 14px;\">Oh! Ride is more than a ride-hailing app. It is a complete rethink of who ride-hailing platforms are built for \u2014 placing drivers at the centre of the business model and replacing commission extraction with a transparent SaaS subscription structure that OXHorn now scales across Sri Lanka.<\/p>\n<p style=\"font-size: 15px; color: #64748b; line-height: 1.82; margin-bottom: 14px;\">We delivered the entire technology stack \u2014 8 microservices, 3 client applications, ML-powered dynamic pricing, computer vision driver verification, and independently deployed frontend modules \u2014 within 12 months. The product has been live for over 2 years without a major outage.<\/p>\n<div class=\"cta-grp\"><a class=\"btn-pri\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.ohride&amp;hl=en\" target=\"_blank\" rel=\"noopener\"> Try Oh! Ride on Google Play \u2197 <\/a> <a class=\"btn-sec\" href=\"https:\/\/cal.com\/pranavan\/30min\" target=\"_blank\" rel=\"noopener\"> Work With NextGen Innovations \u2192 <\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dvd\">\u00a0<\/div>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     MORE PROJECTS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"sec sec-alt\">\n<div class=\"cnt\">\n<div class=\"sec-ctr\">\n<div class=\"ey\">Case Studies<\/div>\n<h2 class=\"st\" style=\"font-size: clamp(24px,3.5vw,36px); margin: 0 auto 8px;\">More <em>Work<\/em> We Are Proud Of<\/h2>\n<\/div>\n<div class=\"proj-grid\">\n<div class=\"proj-card\">\n<div class=\"proj-img\"><img decoding=\"async\" src=\"https:\/\/nextgeninnovations.co\/wp-content\/uploads\/2025\/05\/675d8fcac02f9846ab7b6ecb_675d8f392f799cf7e4220a87_mave202-2.png\" alt=\"Mave \u2014 B2B Chat and Cashflow Platform\" \/><\/div>\n<div class=\"proj-body\">\n<h4>Mave \u2014 B2B Chat &amp; Cashflow Platform<\/h4>\n<p>Real-time business communication merged with automatic cashflow intelligence. Delivered in 2 months with NLP transaction detection from natural language.<\/p>\n<a href=\"https:\/\/nextgeninnovations.co\/b2b-chat-cash-flow-detection-mave-case-study\/\">Read Case Study \u2192<\/a><\/div>\n<\/div>\n<div class=\"proj-card\">\n<div class=\"proj-img\"><img decoding=\"async\" src=\"https:\/\/nextgeninnovations.co\/wp-content\/uploads\/2025\/04\/6759a8ee2cda03425ffa4cfb_6759a8c5d4f44cbbd685374f_service20mate.png\" alt=\"Servicemate \u2014 On-Demand Service Finder\" \/><\/div>\n<div class=\"proj-body\">\n<h4>Servicemate \u2014 On-Demand Service Finder<\/h4>\n<p>Mobile-first service marketplace \u2014 iOS, Android, and web admin \u2014 with real-time booking, live job tracking, and provider verification. Built in 3 months.<\/p>\n<a href=\"https:\/\/nextgeninnovations.co\/b2b-service-management-platform\/\">Read Case Study \u2192<\/a><\/div>\n<\/div>\n<div class=\"proj-card\">\n<div class=\"proj-img\"><img decoding=\"async\" src=\"https:\/\/nextgeninnovations.co\/wp-content\/uploads\/2025\/05\/6759aae5f59806a8c71de722_6759aad87a55837fe5c6f8c6_T26K.webp\" alt=\"T&amp;K \u2014 Cross-Platform E-Commerce\" \/><\/div>\n<div class=\"proj-body\">\n<h4>T &amp; K \u2014 E-Commerce Platform<\/h4>\n<p>Cross-platform e-commerce solution built for scalability \u2014 web and mobile, inventory management, secure payments, and real-time analytics.<\/p>\n<a href=\"https:\/\/nextgeninnovations.co\/cross-platform-e-commerce-solution\/\">Read Case Study \u2192<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     PRE-FOOTER CTA\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"pf\">\n<div class=\"pf-inner\">\n<div class=\"pf-text\">\n<h2>Ready to build something <em>exceptional?<\/em><\/h2>\n<p>Every project we take on is treated as if it were our own business. If you have an idea, a problem, or a deadline \u2014 let\u2019s talk.<\/p>\n<\/div>\n<div class=\"pf-acts\"><a class=\"btn-pf1\" href=\"https:\/\/cal.com\/pranavan\/30min\" target=\"_blank\" rel=\"noopener\"> Book a Free Discovery Call \u2192 <\/a> <a class=\"btn-pf2\" href=\"https:\/\/cal.com\/pranavan\/partner-discovery-call-nextgen-innovations\"> Partner With Us <\/a><\/div>\n<\/div>\n<\/section>\n<\/div>\n<!-- \/ngcs -->\t\t\t\t\t\t\t\t<\/div>\n\t\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>\u00a0 CASE STUDY Transportation \u00b7 SaaS \u00b7 Sri Lanka \u00b7 2023 Oh! Ride Sri Lanka&#8217;s First SaaS Ride-Hailing Platform Drivers pay a flat monthly fee and keep 100% of every fare. Built from zero \u2014 8 microservices, React Native, Spring Boot, Node.js, Python ML, Apache Kafka \u2014 live for 2+ years with zero major outages. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1130","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/pages\/1130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/comments?post=1130"}],"version-history":[{"count":11,"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/pages\/1130\/revisions"}],"predecessor-version":[{"id":1154,"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/pages\/1130\/revisions\/1154"}],"wp:attachment":[{"href":"https:\/\/nextgeninnovations.co\/en\/wp-json\/wp\/v2\/media?parent=1130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}