Skip to content
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

jonathan-vella/bmit-2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

APEX & Pastizzi at The Perspectives 2026

APEX live demo banner

APEX is the Agentic Platform Engineering eXperience for Azure. This repository is the live demo workspace for Jonathan Vella's session at The Perspectives 2026.

Event Docs Demo Copilot License: MIT

Why This Matters Today

The event theme is practical cloud leadership: reducing complexity, improving resilience, and making better infrastructure decisions under compliance and cost pressure.

APEX is built for exactly that problem space. It turns a plain-language infrastructure ask into a structured delivery flow with AI agents doing the preparation work and humans keeping control over approvals, trade-offs, and deployment decisions.

What APEX Does

  1. Captures business and technical requirements from natural-language prompts.
  2. Assesses target architecture against Azure Well-Architected guidance.
  3. Discovers governance and policy constraints before code generation.
  4. Produces Bicep or Terraform using Azure Verified Modules where possible.
  5. Validates outputs and assembles deployment-ready and as-built documentation.

The Demo: Il-Pastizzeria ta' Mario πŸ‡²πŸ‡Ή

The live demo builds an online ordering app for a fictional Maltese catering outlet that sells pastizzi, Cisk, and Kinnie. Because apparently the best way to showcase enterprise Azure infrastructure is with €0.50 pastries and a delivery driver named Mario.

The app features:

  • πŸ₯Ÿ 11 menu items across 4 categories (Pastizzi, Birra, Xorb, Ikla OΔ§ra)
  • πŸ›’ A cart that judges your life choices ("Kemm tridu?! Having a festa or what?")
  • πŸ’Ά Cash on delivery only. Like your nanna taught you.
  • πŸ›΅ Delivery estimates powered by Mario's coffee schedule
  • ⚠️ Side effects may include: spontaneous Maltese pride, carb comas, and saying "mela" in every sentence

Live site: https://app-malta-catering-dev.azurewebsites.net

Il-Pastizzeria ta' Mario β€” Landing Page
"X'trid tordna llum?" β€” What would you like to order today?

Menu items β€” Birra section
Cisk Lager: "Malta's finest. Pairs with everything. Especially more Cisk."

πŸ€– About That Coca-Cola in the Kinnie Section...

You might notice a few things are slightly off. A stock photo of Coca-Cola where Kinnie should be. A generic beer where Cisk belongs. That's not a bug β€” it's a feature of working with AI.

GitHub Copilot is a copilot, not an autopilot. It wrote the React components, the Express server, the Dockerfile, the sarcastic copy, and the CSS β€” in minutes, not days. But it sourced images from Unsplash and Wikimedia using generic search terms, and it doesn't know what a Kinnie bottle looks like. To be fair, most people outside Malta don't either.

This is the point: AI accelerates the 90% so you can focus on the 10% that requires human judgment β€” like knowing that Kinnie is definitely not Coca-Cola, that Cisk Excel comes in a green can, or that pastizzi should never, under any circumstances, be microwaved.

The entire app β€” UI, server, container, deployment β€” was built and shipped to Azure App Service in a single Copilot Chat session. The images? Those need a Maltese person. Mela.

Clone & Deploy

Prerequisites

  • An Azure subscription (with credits β€” the demo uses a P0v3 App Service Plan, so bring your wallet. Or your employer's wallet. We don't judge.)
  • VS Code with the Dev Containers extension
  • That's it. The devcontainer handles everything else. Mela.

Quick Start

1. Clone & open in Dev Container:

git clone https://github.com/jonathan-vella/bmit-2026.git
cd bmit-2026
code .
# F1 β†’ "Dev Containers: Reopen in Container"

2. Log in to Azure:

az login
azd auth login

3. Deploy infrastructure (Bicep via azd):

cd infra/bicep/malta-catering
azd init -e dev
azd provision

This deploys App Service (P0v3), ACR (Premium + private endpoint), VNet, Key Vault, Table Storage, Log Analytics, App Insights, and a budget alert. All AVM-based. All Entra ID. No admin credentials. Like a proper adult.

4. Build & push the app container:

ACR is locked behind a private endpoint, so you need to temporarily open the door, shove the container in, and lock it again. Very Maltese.

# Get your ACR name from azd outputs (it includes a unique suffix)
ACR_NAME=$(az acr list -g rg-malta-catering-dev --query "[0].name" -o tsv)

# Open the door
az acr update --name $ACR_NAME --public-network-enabled true --default-action Allow

# Cloud-build (no local Docker needed β€” the devcontainer doesn't have it anyway)
cd app/malta-catering
az acr build --registry $ACR_NAME --image malta-catering-app:latest --file Dockerfile .

# Lock it back up
az acr update --name $ACR_NAME --public-network-enabled false --default-action Deny

5. Configure & start:

APP_NAME=$(az webapp list -g rg-malta-catering-dev --query "[0].name" -o tsv)
az webapp config appsettings set -g rg-malta-catering-dev -n $APP_NAME --settings WEBSITES_PORT=8080
az webapp stop -g rg-malta-catering-dev -n $APP_NAME
az webapp start -g rg-malta-catering-dev -n $APP_NAME

6. Open https://$APP_NAME.azurewebsites.net

If the pastizzi are cold, it's because you took too long to open the door.

What Gets Deployed

Resource Purpose SKU
App Service Plan Hosts the containerized React + Express app P0v3
Web App + Staging Slot The actual app (managed identity, VNet-integrated) β€”
Container Registry Stores the Docker image (private endpoint only) Premium
Virtual Network 2 subnets: app-service + private-endpoints /24
Private DNS Zones ACR, Key Vault, Storage (3 zones) β€”
Key Vault App Insights connection string, future secrets Standard
Storage Account Table Storage for order persistence (future) Standard LRS
Log Analytics + App Insights Monitoring and diagnostics Free tier
Budget €500/month alert β€”

All resources use Entra ID / managed identity for authentication. No admin credentials, no shared keys, no "I'll Revolut you later."

What I Am Showing in the Live Demo

  • A real multi-step agent workflow from prompt to Azure delivery artifacts.
  • Human approval gates instead of blind automation.
  • Architecture, pricing, governance, and implementation decisions in one flow.

Starter Prompt

Open GitHub Copilot Chat, select the Orchestrator agent, and paste:

Context: This is a live 30min demo, so we have to keep things short. At max 1 adversarial review during requirements & architect phases.

What I want to build: The owner of a catering outlet based in Malta (Europe) wants to host an online ordering app in Azure. The app is a simple containerized application with React. We can use table storage for persistence. Unless you can think of something better. The app will process online orders for pastizzi, Cisk, and Kinnie. Payment is strictly on delivery. Expectation is 1 transaction per sec.

Follow Along

Experience Link What you will find
Main site APEX documentation Product overview, workflow, and getting started guidance
Demo walkthrough Nordic Fresh Foods demo Real generated outputs across the full pipeline
How it works Workflow overview The agent pipeline, reviews, and approval model
Prompt examples Prompt guide Reusable prompts for agents and common scenarios
Source repo GitHub repository The maintained upstream APEX codebase

Repository Map

app/                # The malta-catering React + Express application
  malta-catering/   #   Source, Dockerfile, server, product images
.github/            # Agents, skills, instructions, prompts, hooks, and workflows
agent-output/       # Generated artifacts for each scenario or project
infra/              # Infrastructure-as-Code
  bicep/
    malta-catering/ #   10 AVM Bicep modules, phased deployment, azd manifest
mcp/                # MCP servers used by the workflow
scripts/            # Validation, sync, and demo support scripts
tests/              # Validation fixtures, prompts, and E2E inputs

After the Session

If you want to keep exploring APEX after the event, start here:

License

MIT