---
// Custom ERP Development — keyword-focused service landing page.
// Reuses the shared section components (GuaranteeBand, InlineLeadForm,
// ServiceFaq) and feeds Service + FAQ schema into SEO.astro.
//
// All company stats mirror the canonical site-wide set used in
// ProofNumbers.astro, /portfolio, and SEO.astro — 20+ projects · 11+ districts ·
// 50,000+ records · 99.9% uptime · 8+ years. Case-study numbers are taken
// verbatim from the IIT Patna and Bihar government case studies on /portfolio.
import BaseLayout from '../../layouts/BaseLayout.astro';
import SEO from '../../components/SEO.astro';
import GuaranteeBand from '../../components/GuaranteeBand.astro';
import InlineLeadForm from '../../components/InlineLeadForm.astro';
import ServiceFaq from '../../components/ServiceFaq.astro';

const pageTitle = 'Custom ERP Development Services';
const pageDescription =
  'Custom ERP development by WorkRoot — bespoke enterprise systems on Spring Boot, Angular & Next.js. Already running for IIT Patna and across 11 government districts. Get a free scope.';

const serviceName = 'Custom ERP Development';
const serviceDescription =
  'Bespoke ERP and enterprise resource planning systems built around your real workflows — modules for operations, personnel, finance, inventory, reporting and role-based access. Delivered with Spring Boot, Angular, and Next.js, and proven in university and multi-district government deployments.';

// Capabilities — what a WorkRoot custom ERP build typically covers.
const modules = [
  { title: 'Operations & workflow', body: 'Model your real approval chains, hand-offs, and SLAs instead of bending the business to a rigid template.' },
  { title: 'Role-based access control', body: 'Granular permissions per role, department, and district — the same RBAC layer running in our government deployments.' },
  { title: 'Personnel & HR', body: 'Staff records, duty rosters, leave, and audit trails — the backbone of our 15,000+ officer police deployment.' },
  { title: 'Inventory & assets', body: 'Stock, procurement, and asset lifecycle tracking with reconciliation and low-stock alerting.' },
  { title: 'Dashboards & reporting', body: 'Real-time operational dashboards and scheduled exports for leadership oversight and compliance.' },
  { title: 'Integrations & APIs', body: 'Clean REST APIs so your ERP talks to payment gateways, SMS/email, and existing legacy systems.' },
];

// Comparison table — off-the-shelf ERP vs a WorkRoot custom build.
const comparison = [
  { dimension: 'Fit to your workflow', offShelf: 'You adapt your process to the software', custom: 'The software is built around your process' },
  { dimension: 'Per-seat licensing', offShelf: 'Recurring per-user fees that scale with headcount', custom: 'You own the source — no per-seat tax' },
  { dimension: 'Source-code ownership', offShelf: 'Vendor-locked, closed source', custom: 'Full IP transfer on delivery' },
  { dimension: 'Customisation', offShelf: 'Limited to vendor-exposed settings', custom: 'Any module, any rule, any report' },
  { dimension: 'Data residency', offShelf: 'Often the vendor’s cloud / region', custom: 'Your servers, your region, your control' },
  { dimension: 'Hosting model', offShelf: 'SaaS only', custom: 'On-prem, your VPC, or managed by us' },
];

const stats = [
  { value: '5+', label: 'ERP & enterprise deployments' },
  { value: '20,000+', label: 'Users across systems' },
  { value: '11+', label: 'Districts running our platforms' },
  { value: '99.9%', label: 'Uptime on critical systems' },
];

const faqs = [
  {
    question: 'How much does a custom ERP cost?',
    answer:
      'Custom ERP engagements typically run ₹2,00,000–₹15,00,000 depending on the number of modules, user roles, and integrations. We offer fixed-price quotes for well-defined scopes and time-and-materials for evolving ones. Every estimate is free and itemised.',
  },
  {
    question: 'How long does it take to build a custom ERP?',
    answer:
      'Most ERP builds ship a usable first module in 6–8 weeks and reach full rollout in 3–6 months. We work in 2-week sprints with a live staging environment from day one, so you see and steer working software early rather than waiting for a big-bang launch.',
  },
  {
    question: 'Do we own the source code?',
    answer:
      'Yes. Full IP transfer is included — you receive the repositories, deployment access, and documentation on delivery. There are no per-seat licence fees, and you are free to host, extend, or hand the system to another team at any time.',
  },
  {
    question: 'Can you integrate with our existing systems?',
    answer:
      'Yes. We build clean REST APIs and have integrated ERPs with payment gateways, SMS and email providers, government identity systems, and legacy MySQL/PostgreSQL databases. If your current tool can export data, we can migrate and connect to it.',
  },
  {
    question: 'Is a custom ERP secure enough for sensitive data?',
    answer:
      'Security is built into every layer: role-based access control, encrypted data at rest and in transit, full audit logging, and OWASP-aligned reviews. The same architecture currently runs a Bihar government police platform across 11 districts under strict security compliance.',
  },
  {
    question: 'What technology stack do you use for ERP?',
    answer:
      'We build on Spring Boot for the backend, Angular or Next.js for the admin and user interfaces, and PostgreSQL or MySQL for the data layer — the same stack behind the IIT Patna University Management System and our multi-district government deployments.',
  },
];
---

<BaseLayout title={pageTitle} description={pageDescription}>
  <SEO
    slot="head"
    type="Service"
    breadcrumbs={[
      { name: 'Home', url: '/' },
      { name: 'Services', url: '/services' },
      { name: 'Custom ERP Development', url: '/services/custom-erp-development' },
    ]}
    service={{ name: serviceName, description: serviceDescription }}
    faq={faqs}
  />

  <!-- Hero -->
  <section class="relative bg-gradient-to-br from-secondary-900 via-secondary-800 to-secondary-900 py-20 lg:py-28 overflow-hidden">
    <div class="absolute inset-0 overflow-hidden pointer-events-none" aria-hidden="true">
      <div class="absolute top-1/4 left-0 w-80 h-80 bg-primary-500/10 rounded-full blur-3xl animate-pulse-slower"></div>
      <div class="absolute bottom-0 right-1/4 w-96 h-96 bg-purple-500/10 rounded-full blur-3xl animate-pulse-slow"></div>
      <div class="absolute inset-0 opacity-5" style="background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 60px 60px;"></div>
    </div>
    <div class="container-wrapper relative">
      <div class="max-w-3xl">
        <nav aria-label="Breadcrumb" class="mb-6">
          <ol class="flex flex-wrap items-center gap-2 text-sm text-secondary-400">
            <li><a href="/" class="hover:text-primary-300">Home</a></li>
            <li aria-hidden="true">/</li>
            <li><a href="/services" class="hover:text-primary-300">Services</a></li>
            <li aria-hidden="true">/</li>
            <li class="text-secondary-200" aria-current="page">Custom ERP Development</li>
          </ol>
        </nav>
        <span class="inline-flex items-center gap-2 px-4 py-1.5 mb-6 text-sm font-semibold text-primary-300 bg-primary-500/10 rounded-full border border-primary-500/20">
          <span class="w-1.5 h-1.5 rounded-full bg-primary-400 animate-pulse" aria-hidden="true"></span>
          ERP &amp; Enterprise Systems
        </span>
        <h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight">
          Custom ERP development that fits
          <span class="text-transparent bg-clip-text bg-gradient-to-r from-primary-400 via-primary-300 to-accent-400"> your workflow, not a template.</span>
        </h1>
        <p class="text-lg sm:text-xl text-secondary-300 max-w-2xl mb-8 leading-relaxed">
          Replace scattered spreadsheets and disconnected tools with one bespoke system your team actually trusts —
          built on Spring Boot, Angular, and Next.js, and already running for IIT Patna and across 11 government districts.
        </p>
        <div class="flex flex-col sm:flex-row gap-4">
          <a href="#inline-lead-form" data-cta="erp-hero-primary" class="inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-primary-500 to-primary-600 px-8 py-4 text-base font-bold text-white shadow-lg hover:shadow-xl hover:scale-105 transition-all focus:outline-none focus:ring-2 focus:ring-primary-400 focus:ring-offset-2 focus:ring-offset-secondary-900">
            Get my free ERP scope
            <svg class="ml-2 w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M17 8l4 4m0 0l-4 4m4-4H3" /></svg>
          </a>
          <a href="tel:+919561417403" data-cta="erp-hero-call" class="inline-flex items-center justify-center rounded-xl border-2 border-white/30 bg-white/5 px-8 py-4 text-base font-bold text-white hover:bg-white/10 transition-all focus:outline-none focus:ring-2 focus:ring-white/50">
            Talk to an engineer
          </a>
        </div>
      </div>

      <!-- Stat block -->
      <div class="mt-14 grid grid-cols-2 sm:grid-cols-4 gap-4 lg:gap-6">
        {stats.map((stat) => (
          <div class="bg-white/5 backdrop-blur-sm rounded-xl p-4 lg:p-5 text-center border border-white/10">
            <p class="text-2xl lg:text-3xl font-bold text-white">{stat.value}</p>
            <p class="text-secondary-400 text-sm mt-1">{stat.label}</p>
          </div>
        ))}
      </div>
    </div>
  </section>

  <!-- Overview / prose -->
  <section class="py-16 lg:py-24 bg-white dark:bg-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-3xl mx-auto">
        <span class="text-primary-500 dark:text-primary-400 font-semibold text-sm uppercase tracking-wider">What we build</span>
        <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mt-2 mb-6">Enterprise software shaped around how you actually operate</h2>
        <div class="space-y-5 text-lg text-secondary-700 dark:text-secondary-300 leading-relaxed">
          <p>
            An off-the-shelf ERP forces every organisation into the same boxes. That works until your approval chain, your
            district structure, or your compliance rules don’t fit the template — and then you are paying per seat for software
            your team quietly works around in spreadsheets. A custom ERP flips that relationship: the system is built around the
            way you already run, so adoption is high and the workarounds disappear.
          </p>
          <p>
            WorkRoot has been delivering bespoke enterprise systems since 2022, and the engineers on our team carry 8+ years of
            experience building software that has to stay up. We have shipped enterprise platforms for an IIT, for a state
            government across 11 districts, and for private operators handling tens of thousands of users. Across those systems
            we manage <strong>50,000+ records</strong> and hold <strong>99.9% uptime</strong> on the deployments that cannot
            afford to go dark.
          </p>
          <p>
            Every engagement starts with your workflow, not our codebase. We map the real process — who requests what, who
            approves it, where it gets stuck — and then build modules that remove the friction: operations and workflow,
            role-based access, personnel and HR, inventory and assets, finance, and the dashboards leadership needs to see it
            all. The result is one system of record instead of five disconnected tools, and a single source of truth your
            auditors will thank you for.
          </p>
          <p>
            Because the system is yours, there are no per-seat licence fees and no vendor lock-in. We hand over the full source
            code, the repositories, the deployment pipeline, and the documentation. You can host it on-premise, in your own
            cloud account, or let us run it for you under a maintenance retainer — the choice stays with you.
          </p>
        </div>
      </div>
    </div>
  </section>

  <!-- Modules grid -->
  <section class="py-16 lg:py-24 bg-secondary-50 dark:bg-secondary-800/50">
    <div class="container-wrapper">
      <div class="text-center max-w-2xl mx-auto mb-12">
        <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mb-4">Modules we build into custom ERPs</h2>
        <p class="text-secondary-600 dark:text-secondary-400 text-lg">Mix and match the pieces your operation needs — each one production-proven in a live deployment.</p>
      </div>
      <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
        {modules.map((m) => (
          <div class="bg-white dark:bg-secondary-800 rounded-2xl p-7 border border-secondary-100 dark:border-secondary-700 shadow-sm hover:shadow-lg transition-shadow">
            <div class="w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/30 text-primary-600 dark:text-primary-300 flex items-center justify-center mb-4" aria-hidden="true">
              <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
            </div>
            <h3 class="text-lg font-bold text-secondary-900 dark:text-secondary-100 mb-2">{m.title}</h3>
            <p class="text-secondary-600 dark:text-secondary-400 text-sm leading-relaxed">{m.body}</p>
          </div>
        ))}
      </div>
    </div>
  </section>

  <!-- Comparison table -->
  <section class="py-16 lg:py-24 bg-white dark:bg-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-4xl mx-auto">
        <div class="text-center mb-10">
          <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mb-4">Off-the-shelf ERP vs a custom build</h2>
          <p class="text-secondary-600 dark:text-secondary-400 text-lg">Where a bespoke system pays you back.</p>
        </div>
        <div class="overflow-x-auto rounded-2xl border border-secondary-200 dark:border-secondary-700 shadow-sm">
          <table class="w-full text-left border-collapse min-w-[640px]">
            <caption class="sr-only">Comparison of off-the-shelf ERP software versus a custom ERP built by WorkRoot</caption>
            <thead>
              <tr class="bg-secondary-50 dark:bg-secondary-800">
                <th scope="col" class="px-5 py-4 text-sm font-bold text-secondary-700 dark:text-secondary-200">Dimension</th>
                <th scope="col" class="px-5 py-4 text-sm font-bold text-secondary-500 dark:text-secondary-400">Off-the-shelf ERP</th>
                <th scope="col" class="px-5 py-4 text-sm font-bold text-primary-700 dark:text-primary-300">Custom ERP (WorkRoot)</th>
              </tr>
            </thead>
            <tbody>
              {comparison.map((row, i) => (
                <tr class={i % 2 === 0 ? 'bg-white dark:bg-secondary-900' : 'bg-secondary-50/50 dark:bg-secondary-800/40'}>
                  <th scope="row" class="px-5 py-4 text-sm font-semibold text-secondary-900 dark:text-secondary-100 align-top">{row.dimension}</th>
                  <td class="px-5 py-4 text-sm text-secondary-600 dark:text-secondary-400 align-top">{row.offShelf}</td>
                  <td class="px-5 py-4 text-sm text-secondary-700 dark:text-secondary-200 align-top font-medium">
                    <span class="inline-flex items-start gap-2">
                      <svg class="w-4 h-4 mt-0.5 flex-shrink-0 text-emerald-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
                      {row.custom}
                    </span>
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </section>

  <!-- Case study -->
  <section class="py-16 lg:py-24 bg-gradient-to-br from-secondary-900 via-secondary-800 to-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-4xl mx-auto">
        <span class="inline-flex items-center gap-2 px-4 py-1.5 mb-5 text-sm font-semibold text-purple-300 bg-purple-500/10 rounded-full border border-purple-500/20">Case study · Enterprise ERP</span>
        <h2 class="text-3xl sm:text-4xl font-bold text-white mb-4">University Management System — IIT Patna</h2>
        <p class="text-lg text-secondary-300 leading-relaxed mb-8">
          IIT Patna needed a single platform to replace fragmented legacy systems across admissions, course registration,
          examination scheduling, grade management, and faculty administration. We built an end-to-end ERP on a
          <strong class="text-white"> Next.js</strong> front end with a <strong class="text-white">Spring Boot</strong> backend
          and a <strong class="text-white">MySQL</strong> data layer — designed for scalability and high availability across the
          entire academic community.
        </p>
        <div class="grid grid-cols-3 gap-4 mb-8">
          {[{ v: '3,000+', l: 'Students served' }, { v: '500+', l: 'Courses managed' }, { v: '200+', l: 'Faculty onboarded' }].map((s) => (
            <div class="bg-white/5 border border-white/10 rounded-xl p-5 text-center">
              <p class="text-2xl sm:text-3xl font-bold text-white">{s.v}</p>
              <p class="text-secondary-400 text-xs sm:text-sm mt-1">{s.l}</p>
            </div>
          ))}
        </div>
        <blockquote class="border-l-4 border-primary-500 pl-5 text-secondary-200 italic leading-relaxed">
          “WorkRoot delivered our University Management System for IIT Patna on time and within budget. The Next.js + Spring Boot
          architecture is robust and scalable. They are a reliable technology partner for complex enterprise projects.”
          <footer class="mt-3 not-italic text-sm text-secondary-400">— Dilip Raj, Director, MOC Soft Technologies Pvt Ltd</footer>
        </blockquote>
        <div class="mt-8 flex flex-wrap gap-4">
          <a href="/portfolio#university-management-iitp" class="inline-flex items-center gap-2 text-primary-300 font-semibold hover:text-primary-200">
            Read the full case study
            <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3" /></svg>
          </a>
          <a href="/services/university-erp" class="inline-flex items-center gap-2 text-secondary-300 font-semibold hover:text-white">
            Explore our University ERP page
            <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7" /></svg>
          </a>
        </div>
      </div>
    </div>
  </section>

  <!-- More deployments strip -->
  <section class="py-12 bg-secondary-50 dark:bg-secondary-800/50 border-y border-secondary-100 dark:border-secondary-800">
    <div class="container-wrapper">
      <p class="text-center text-sm font-semibold uppercase tracking-wider text-secondary-500 dark:text-secondary-400 mb-6">More enterprise systems we’ve shipped</p>
      <div class="flex flex-wrap items-center justify-center gap-3">
        <a href="/services/police-management-system" class="px-4 py-2 rounded-full bg-white dark:bg-secondary-800 border border-secondary-200 dark:border-secondary-700 text-sm font-medium text-secondary-700 dark:text-secondary-300 hover:border-primary-300 transition-colors">Police Management System · 11 districts</a>
        <a href="/services/government-it-solutions-gem-vendor" class="px-4 py-2 rounded-full bg-white dark:bg-secondary-800 border border-secondary-200 dark:border-secondary-700 text-sm font-medium text-secondary-700 dark:text-secondary-300 hover:border-primary-300 transition-colors">SCMS for PSCL, Bihar Govt · 50,000+ records</a>
        <a href="/portfolio#plnr-financing" class="px-4 py-2 rounded-full bg-white dark:bg-secondary-800 border border-secondary-200 dark:border-secondary-700 text-sm font-medium text-secondary-700 dark:text-secondary-300 hover:border-primary-300 transition-colors">PLNR Financing · 5,000+ users</a>
      </div>
    </div>
  </section>

  <ServiceFaq
    faqs={faqs}
    heading="Custom ERP — your questions answered"
    subheading="Cost, timelines, ownership, integrations, and security for a bespoke ERP build."
  />

  <GuaranteeBand />
  <InlineLeadForm />
</BaseLayout>
