🧠 What Inspired Me My wife works in mainframe operations, and seeing her navigate green-screen interfaces and decode cryptic job failures sparked a curiosity in me. Why hasn’t mainframe tooling evolved like the rest of tech? Why are operators still working in emulators with no AI, poor visualization, and slow feedback loops?

That curiosity became a mission: to modernize mainframe operations using a web-native, AI-powered platform — and that’s how MZAP was born.

🚧 What I Built MZAP is a modular, zero-agent platform for IBM Z systems. It includes:

JCL Designer – Validate and explain JCL scripts instantly using AI.

Abend Explainer – Decode ABEND errors and link directly to IBM docs.

Watchdog – Monitor CPU, memory, and job usage with real-time graphs.

Job Tracker – Visualize job statuses, timelines, and retry flows.

Command Center – Run mainframe-like commands with modern UI feedback.

Cost Analyzer – Estimate resource consumption over time.

Alerts & Escalation Center – Manage alerts by severity with built-in action handling.

User Preferences & Access Control – Theme, roles, and modular visibility.

All this is delivered via a clean, dark-mode-friendly React frontend — with no agent needed on the host mainframe.

🛠️ How I Built It Frontend: React + Tailwind CSS + TypeScript

UI Generation: Bolt.new (low-code AI assistant)

Auth & Backend: Supabase

Deployment: Netlify

I used Bolt.new extensively to scaffold UI components and reduce boilerplate, while writing custom logic for routing, validation, and state handling.

💡 What I Learned How to simulate and parse mainframe-specific data like JCL and ABEND codes

How to use GPT for highly contextual validation and explanations

How to use Bolt.new effectively — prompt management, token budgeting, and when to write manual code

That a little modern UX can go a long way in making legacy systems more usable

🧱 Challenges I Faced Routing & Navigation Bugs: Bolt sometimes added navigation logic without ensuring the app was inside a , causing runtime errors.

Dark Mode Issues: Several components would break theme styling and needed manual CSS overrides.

Token Limits: Bolt tokens were limited, so I had to batch fixes into single prompts and be extremely efficient.

Incomplete Component Logic: UI was sometimes generated without full interaction support — e.g., buttons without handlers or filters that didn’t update charts.

Learning the Domain: Understanding JCL structure and ABEND codes required a deep dive into legacy mainframe syntax.

MZAP began with a simple question — why is mainframe still stuck in the past? — and became a complete platform that bridges the gap between legacy systems and modern, intelligent operations.

Built With

Share this project:

Updates