Skip to main content
Industry Solutions

Custom Software for Public Sector & Government

Secure, flexible, and compliant architecture tailored for the unique challenges of the Public Sector & Government sector.

Founder & Lead Architect, ERPStack

Quick Answer

In short: a government ERP is a fund-accounting problem before it is a software problem. ERPStack builds custom public-sector systems on GASB funds with encumbrances, NIST SP 800-53 Rev. 5 controls, WCAG 2.1 AA ahead of the 26 April 2027 ADA Title II date, NARA-style records schedules, and FOIA workflows that redact by field.

Why Custom ERP for Public Sector & Government?

Operating in the Public Sector & Government sector requires a systems architecture designed for high scalability, operational flexibility, and strict regulatory compliance. Standard off-the-shelf software forces your teams to reshape their workflows to fit rigid software packages. A custom ERP for the Public Sector & Government industry maps directly to your exact business logic. Deployed to your secure cloud infrastructure (AWS or Azure), the system isolates database schemas, automates redundant reporting tasks, and scales without user seat licensing fees. This ensures your corporate data remains under your absolute control, eliminates vendor lock-in, and lowers long-term operational technology costs by up to 70% over a 3-year period.

Industry Pain Points

  • Commercial ERP ledgers have no encumbrance state, so government appropriation control ends up in a spreadsheet beside SAP S/4HANA or Oracle NetSuite
  • GASB 54 reports fund balance five ways — nonspendable, restricted, committed, assigned, unassigned — and the ERP stores one free-text field
  • Section 508 pins federal government sites to WCAG 2.0 AA while the ADA Title II rule pins state and local government to WCAG 2.1 AA
  • FOIA determinations fall due in 20 business days and get assembled by hand across email, shared drives and a legacy case system
  • NARA stopped accepting analog transfers on 30 June 2024, and the government retention schedule still lives in a binder
  • CUI on a contractor system with no CMMC UID in SPRS and no evidence trail for DFARS 252.204-7012

Engineering Blueprint

Government does not keep a commercial ledger, and that one fact is why SAP S/4HANA, Oracle NetSuite and Odoo fit public agencies badly. Under GASB’s modified accrual model a governmental fund passes through appropriation, encumbrance, expenditure — three states — so an ERPStack government ERP settles the PostgreSQL Database around budgetary control before a screen is drawn.

The fund ledger, not the payables ledger

Every government posting carries fund, function and object codes, and fund balance reports in the five GASB 54 classes — nonspendable, restricted, committed, assigned, unassigned — with only the General Fund permitted a positive unassigned balance. In a custom ERP that is an enum and a check constraint, not a report filter. ERPStack models it in Drizzle ORM and validates postings with Zod, so a purchase order cuts spending authority the moment it issues. GASB 103, effective for fiscal years beginning after 15 June 2025, changes government presentation, not this data model.

// Drizzle ORM on PostgreSQL — encumbrance is a state, not a flag
      export const balanceClass = pgEnum('balance_class', [
        'nonspendable','restricted','committed','assigned','unassigned',
      ]);
      export const budgetLines = pgTable('budget_lines', {
        fundCode: text('fund_code').notNull(),        // GASB fund
        functionCode: text('function_code').notNull(),
        objectCode: text('object_code').notNull(),
        appropriated: numeric('appropriated', { precision: 18, scale: 2 }),
        encumbered: numeric('encumbered', { precision: 18, scale: 2 }),
        expended: numeric('expended', { precision: 18, scale: 2 }),
        classification: balanceClass('classification').notNull(),
      });

Retention schedules and the FOIA clock

Since 30 June 2024, under OMB and NARA memorandum M-23-07, NARA accepts government records only in electronic form with transfer metadata — so in this ERP a retention schedule is a first-class table driving a disposition job, not a binder. FOIA then runs a 20-business-day clock across nine statutory exemptions under a foreseeable-harm test. ERPStack keeps the responsive record immutable in PostgreSQL and stores redactions as a derived overlay citing the exemption per region — an Immutable Audit Trail that survives a court challenge.

Identity in front, enclave underneath

OMB M-22-09, dated 26 January 2022, requires phishing-resistant MFA for government staff and contractors and as an option for the public, naming PIV, Derived PIV and FIDO2/WebAuthn against CISA’s five zero trust pillars. ERPStack federates Login.gov at IAL2 over OIDC — the same SSO that fronts SAM.gov — and maps assurance to RBAC per fund. The Next.js and Node.js runtime lands in AWS GovCloud us-gov-west-1 or Microsoft Azure Government behind FIPS 140-3 endpoints and a Bastion Host, provisioned by Terraform under Zero-Trust Security.

Retiring the mainframe without a big bang

Most government Technical Debt is a COBOL Monolithic Architecture nobody dares switch off. ERPStack applies the Strangler Fig Migration Pattern: the mainframe stays the system of record while the citizen portal, permitting and grants modules run on React and TypeScript against a replica, reconciled through an idempotent REST API. Modules cut over one appropriation cycle at a time, and the legacy ledger retires only after a year-end close reconciles on both sides.

Our Solutions

  • Appropriation, encumbrance and expenditure written as three linked Drizzle ORM rows, so government budgetary control is a query and not a reconstruction
  • GASB 54 fund balance as a PostgreSQL enum, with fund, function and object codes constrained by Zod on every posting
  • WCAG 2.1 AA React components regression-tested in Playwright, and the VPAT and Accessibility Conformance Report generated from that same run
  • FOIA queue carrying the nine exemption codes, foreseeable-harm notes and page-level redaction under an Immutable Audit Trail
  • Login.gov OIDC at IAL2 and PIV/CAC at the door, FIDO2 WebAuthn elsewhere, mapped to RBAC per fund and program under OMB M-22-09
  • Next.js and PostgreSQL deployed into AWS GovCloud us-gov-west-1 or Microsoft Azure Government behind FIPS 140-3 endpoints and a Bastion Host

Compliance & Security

NIST SP 800-53 Rev. 5 NIST SP 800-37 Rev. 2 RMF NIST SP 800-171 Rev. 3 CJIS Security Policy v6.0 Section 508 / 36 CFR 1194 ADA Title II / 28 CFR 35.200 2 CFR 200 Uniform Guidance

ERPStack holds no FedRAMP authorization, no GovRAMP authorization and no CMMC certification. It builds the government ERP inside your authorization boundary, so the ATO is your agency’s and every control is testable evidence.

  • FedRAMP Security Controls and the seven RMF steps

    NIST SP 800-37 Rev. 2 runs Prepare, Categorize, Select, Implement, Assess, Authorize, Monitor — and Select means the 20 families of NIST SP 800-53 Rev. 5, now at Release 5.2.0 issued 27 August 2025. FedRAMP 20x reached Phase 3 with Class A, Class B (Low) and Class C (Moderate) certifications and machine-readable Key Security Indicators replacing the yearly narrative package. ERPStack ships the control implementation summary, Terraform and CI/CD Deployment Pipelines gated by Semgrep SAST, making FISMA Government Compliance evidence a build artefact.
  • Two accessibility baselines, one React library

    Section 508 pins federal government ICT to WCAG 2.0 Level A and AA at 36 CFR part 1194 (82 FR 5832, compliance 18 January 2018). The DOJ ADA Title II rule at 28 CFR 35.200 pins state and local government to WCAG 2.1 Level AA; its interim final rule of 20 April 2026 moved the dates to 26 April 2027 above 50,000 population and 26 April 2028 below. ERPStack builds one React and Tailwind CSS component set to 2.1 AA, regression-tests it in Playwright inside GitHub Actions, and generates from that run the VPAT government procurement asks for.
  • CUI, CJIS and the state RAMPs

    DFARS 252.204-7012 demands NIST SP 800-171 protection of CUI, 72-hour DIBNet reporting, 90-day media preservation and FedRAMP Moderate equivalence from any cloud provider, while 252.204-7021 puts a 10-character CMMC UID and an annual affirmation into SPRS. Rev. 3 of May 2024 restructures those requirements into 17 families. CJIS Security Policy v6.0, of 27 December 2024, maps criminal-justice controls onto SP 800-53 Rev. 5 with P1–P4 priorities and a 30 September 2027 deadline. StateRAMP rebranded to GovRAMP on 14 February 2025, testing 300+ controls at its Authorized tier; TX-RAMP gates Texas government contracts separately.
  • Award money has to leave an audit trail

    2 CFR 200.501 triggers a Single Audit at $1,000,000 of federal awards expended, so every government transaction carries its Assistance Listing number, FAIN and period of performance; 200.332 adds subrecipient UEI plus a SAM.gov exclusion check, and 200.334 fixes three-year retention. On the contract side FAR 52.216-7 requires an adequate final indirect cost rate proposal within 6 months of fiscal year end, which makes G&A and overhead pools, allocation bases and Certified Timesheet Tracking ERP schema decisions, not spreadsheets rebuilt each spring.

Standards we engineer to

  • NIST SP 800-53 Rev. 5
  • NIST SP 800-37 Rev. 2 RMF
  • NIST SP 800-171 Rev. 3
  • CJIS Security Policy v6.0
  • Section 508 / 36 CFR 1194
  • ADA Title II / 28 CFR 35.200
  • 2 CFR 200 Uniform Guidance

Get the Blueprint

Download our comprehensive Systems Architecture Blueprint to see how we architect compliant solutions.

Download Blueprint

Metrics & Integrations

Illustrative engineering targets for this sector — the SLAs and capacities we design and build toward, not a live service dashboard.

Encumbrance-to-expenditure post

< 200 ms

WCAG 2.1 AA blocking violations

0 at build

FOIA packet assembly

< 4 hours

Award evidence export window

3 years

Integration: Login.gov OIDC

Category: Identity

Integration: PIV / CAC smart cards

Category: Authentication

Integration: AWS GovCloud

Category: Cloud enclave

Integration: SAM.gov UEI

Category: Entity registry

Integration: Grants.gov

Category: Federal awards

Integration: NARA transfer packages

Category: Records

Implementation Process

Phase 1

Authorization boundary map

A system security plan scoped to the 20 NIST SP 800-53 Rev. 5 families and the RMF Categorize step.

Phase 2

Fund and appropriation schema

Drizzle ORM tables for funds, appropriations, encumbrances and the five GASB 54 balance classes.

Phase 3

Accessibility conformance

A WCAG 2.1 AA React component library with the VPAT produced from a Playwright run, not a questionnaire.

Phase 4

Records and disclosure

Retention schedules, NARA transfer metadata and a FOIA queue with exemption and redaction tracking.

Phase 5

Identity federation

Login.gov OIDC, PIV/CAC and FIDO2 WebAuthn wired to RBAC per government fund and program.

Phase 6

Strangler Fig cutover

Citizen-facing modules move first; the COBOL mainframe stays authoritative until a year-end close reconciles.

Proven in Public Sector & Government

Field Operations & Compliance Portal

Unified operational portal for field tracking and compliance

Read Case Study

Public-Health Data Dashboard

Health data dashboards for public administration

Read Case Study

Frequently Asked Questions

No — ERPStack holds no FedRAMP authorization, no GovRAMP authorization and no CMMC certification. ERPStack builds the government ERP inside your authorization boundary, so the ATO belongs to your agency and FedRAMP Security Controls are inherited from your own AWS GovCloud or Microsoft Azure Government enclave. The deliverable is a NIST SP 800-53 Rev. 5 control implementation summary your assessor can test.

Because in government the purchase order itself reduces spending authority. Under GASB’s modified accrual model a fund records an appropriation, then an encumbrance when the order issues, then an expenditure on receipt — three states, not one. SAP S/4HANA, Oracle NetSuite and Odoo model commit-to-pay, not appropriate-to-encumber, so agencies bolt on a shadow ledger. ERPStack posts all three as linked PostgreSQL rows.

Both, depending on who you are. The Revised Section 508 Standards at 36 CFR part 1194, published 18 January 2017 with a compliance date of 18 January 2018, incorporate WCAG 2.0 Level A and AA for federal government ICT. The DOJ ADA Title II rule at 28 CFR 35.200 requires WCAG 2.1 Level AA of state and local government. One React component library built to 2.1 AA satisfies both.

26 April 2027. DOJ published an interim final rule on 20 April 2026 extending the original dates by one year: government entities serving 50,000 or more people have until 26 April 2027, and entities under 50,000 plus every special district government until 26 April 2028. The rule exempts archived content, pre-existing PDFs and third-party posts — which are database predicates in a government CMS, not footnotes.

Often yes, and ERPStack says so. Tyler Technologies is the largest public-sector-only software company, and its Munis lineage covers GASB financials, payroll, purchasing, fixed assets and utility billing that no custom government ERP should rebuild. Custom work earns its place at the edges those products price badly: a permitting workflow, a legislature-specific budget book, a CJIS-scoped case system, or an unlimited-user citizen portal where per-seat SaaS licensing kills the business case.

Yes. AWS GovCloud (US) is two isolated Regions — us-gov-west-1 and us-gov-east-1 — administered only by AWS staff who are US citizens, with FIPS 140-3 endpoints, FedRAMP High, DoD SRG Impact Levels 4 and 5, CJIS and all CUI categories. What changes for a government build is practical: fewer AWS services, separate credentials, no Vercel edge inside the boundary, and every third-party API needing its own authorization story.

Level 1 and Level 2 self-assessments still apply to government contracts. The Department of War memorandum of 13 July 2026 suspended CMMC Phase 2, due to start 10 November 2026, pending a 60-day CMMC Reform Task Force review. Phase 1 and DFARS 252.204-7012 are untouched: NIST SP 800-171 protection of CUI, 72-hour incident reporting to DIBNet, 90-day media preservation, and a CMMC UID with annual affirmation in SPRS.

Redaction is a derived artefact, never an edit. ERPStack keeps the responsive government record immutable in PostgreSQL, attaches a redaction set citing one of the nine statutory FOIA exemptions per region, records the foreseeable-harm reasoning, and renders the released copy on demand. The 20-business-day clock, tolling for clarification and the appeal record sit in the same schema, so a court challenge is answered from data.

It keeps running, and stays authoritative longer than anyone likes. ERPStack applies the Strangler Fig Migration Pattern: the government system of record stays on the mainframe while the citizen portal, permitting and grants modules are built in Next.js, TypeScript and PostgreSQL against a replica. Modules cut over one appropriation cycle at a time, and the Monolithic Architecture retires only after a full year-end close reconciles on both sides.

A Single Audit, and therefore a schema. Under 2 CFR 200.501 any entity expending $1,000,000 or more in federal awards in a fiscal year needs a single or program-specific audit, so every government transaction carries its Assistance Listing number, FAIN and period of performance. 2 CFR 200.332 adds subrecipient UEI and SAM.gov exclusion checks; 200.334 sets three-year retention from the final financial report.

You own it outright, and for government buyers that is usually the deciding argument. ERPStack delivers the full TypeScript, Next.js and Drizzle ORM repository, the Terraform that provisions the enclave and the GitHub Actions pipelines, under your agency’s ownership with escrow where procurement requires it. A citizen-facing government portal has an unbounded user count that per-seat SaaS pricing cannot survive.

Sectors with overlapping obligations

Related reading

Explore Custom ERP Solutions by Location, Industry, and Alternatives

Global Architectures