{
  "generatedAt": "2026-09-07T10:26:43.836Z",
  "site": "https://www.geekindata.com",
  "count": 42,
  "posts": [
    {
      "slug": "12-poc-public-vs-mvp-private-agent-apps",
      "title": "POC public vs MVP private: networking as architecture for agent apps",
      "date": "2026-09-04",
      "tags": [
        "Azure",
        "App Service",
        "Networking",
        "Microsoft Foundry",
        "Architecture",
        "Case Studies"
      ],
      "description": "How to stage agent webapps from a public POC to a private MVP without pretending env files are a network design.",
      "url": "https://www.geekindata.com/blog/12-poc-public-vs-mvp-private-agent-apps",
      "path": "/blog/12-poc-public-vs-mvp-private-agent-apps",
      "series": "enterprise-agent-apps"
    },
    {
      "slug": "20-env-isolation-azure-cli",
      "title": "Env files are not environments: isolate with Azure CLI discipline",
      "date": "2026-09-02",
      "tags": [
        "Toolkits",
        "Azure",
        "Azure CLI",
        "DevOps",
        "Configuration",
        "App Service"
      ],
      "description": "Show how collapsing redundant env templates and treating Azure CLI subscriptions/resource groups as the real isolation boundary prevents POC/MVP config drift.",
      "url": "https://www.geekindata.com/blog/20-env-isolation-azure-cli",
      "path": "/blog/20-env-isolation-azure-cli"
    },
    {
      "slug": "44-fabric-workspace-naming-hygiene",
      "title": "Rename the estate once: workspace naming is architecture",
      "date": "2026-09-02",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Naming",
        "Governance",
        "Platform Engineering",
        "Workspaces"
      ],
      "description": "Argue that inconsistent workspace display-name prefixes create operational tax and that a one-time rename with stable catalog names is cheaper than perpetual translation layers.",
      "url": "https://www.geekindata.com/blog/44-fabric-workspace-naming-hygiene",
      "path": "/blog/44-fabric-workspace-naming-hygiene"
    },
    {
      "slug": "36-feature-toggles-agent-shells",
      "title": "Feature toggles beat hard-coded agent IDs",
      "date": "2026-08-21",
      "tags": [
        "Toolkits",
        "Microsoft Foundry",
        "Feature Flags",
        "White Label",
        "Product Architecture",
        "Agents"
      ],
      "description": "Replace hard-coded agent catalogs with product feature flags plus per-agent overlay rows for scope, starters, export prefixes, and access arrays.",
      "url": "https://www.geekindata.com/blog/36-feature-toggles-agent-shells",
      "path": "/blog/36-feature-toggles-agent-shells"
    },
    {
      "slug": "39-native-ci-linters-language-gates",
      "title": "Language gates belong in CI, not in code review folklore",
      "date": "2026-08-21",
      "tags": [
        "Toolkits",
        "CI/CD",
        "Linting",
        "i18n",
        "Quality Gates",
        "DevOps"
      ],
      "description": "Argue for native CI linters and language test gates so white-label and locale regressions fail the build before demos do.",
      "url": "https://www.geekindata.com/blog/39-native-ci-linters-language-gates",
      "path": "/blog/39-native-ci-linters-language-gates"
    },
    {
      "slug": "13-genie-readiness-is-a-modeling-problem",
      "title": "Genie readiness is a modeling problem, not a prompt problem",
      "date": "2026-08-20",
      "tags": [
        "Databricks",
        "Genie",
        "Semantic Layer",
        "Data Modeling",
        "Analytics",
        "Toolkits"
      ],
      "description": "What has to be true in naming, modeling, and catalog descriptions before conversational analytics tools like Genie produce trustworthy answers.",
      "url": "https://www.geekindata.com/blog/13-genie-readiness-is-a-modeling-problem",
      "path": "/blog/13-genie-readiness-is-a-modeling-problem",
      "series": "analytics-readiness"
    },
    {
      "slug": "27-bronze-only-cast-typing",
      "title": "Type each column once, as early as you dare",
      "date": "2026-08-19",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Spark SQL",
        "Data Types",
        "Medallion",
        "Linting"
      ],
      "description": "Argue for typing published columns in bronze (or the earliest stable layer) and banning ritual CAST in silver and gold.",
      "url": "https://www.geekindata.com/blog/27-bronze-only-cast-typing",
      "path": "/blog/27-bronze-only-cast-typing"
    },
    {
      "slug": "5-app-access-vs-agent-access",
      "title": "Signing in is not authorization: app access is not agent access",
      "date": "2026-08-17",
      "tags": [
        "Azure",
        "Entra ID",
        "AI Architecture",
        "Microsoft Foundry",
        "App Security",
        "Authorization",
        "Case Studies"
      ],
      "description": "Why enterprise agent webapps need separate control planes for shell sign-in, agent catalog access, and knowledge corpus entitlements, and how Entra app roles on the API make that enforceable.",
      "url": "https://www.geekindata.com/blog/5-app-access-vs-agent-access",
      "path": "/blog/5-app-access-vs-agent-access",
      "series": "enterprise-agent-apps"
    },
    {
      "slug": "14-canvas-apps-at-platform-scale",
      "title": "Canvas apps at platform scale: push work to Dataverse",
      "date": "2026-08-13",
      "tags": [
        "Power Platform",
        "Power Apps",
        "Dataverse",
        "Architecture",
        "Performance",
        "Case Studies"
      ],
      "description": "How to keep canvas apps maintainable at scale by following Microsoft reference guidance: fewer mega-screens, less chatty data access, more Dataverse-side work.",
      "url": "https://www.geekindata.com/blog/14-canvas-apps-at-platform-scale",
      "path": "/blog/14-canvas-apps-at-platform-scale"
    },
    {
      "slug": "10-legacy-to-lakehouse-semantic-parity",
      "title": "Legacy to lakehouse: semantic parity is the real migration",
      "date": "2026-08-12",
      "tags": [
        "Microsoft Fabric",
        "Migration",
        "Data Quality",
        "Lakehouse",
        "Case Studies"
      ],
      "description": "Why lakehouse migrations fail on NULL versus zero, float pennies, and type rebase settings, and how to treat parity as a contract.",
      "url": "https://www.geekindata.com/blog/10-legacy-to-lakehouse-semantic-parity",
      "path": "/blog/10-legacy-to-lakehouse-semantic-parity",
      "series": "fabric-lakehouse-architecture"
    },
    {
      "slug": "23-ai-import-ux-pattern",
      "title": "AI import UX is governance: default-deny uncertain rows",
      "date": "2026-08-11",
      "tags": [
        "Toolkits",
        "Power Apps",
        "AI Builder",
        "Data Quality",
        "UX",
        "Import"
      ],
      "description": "Generalize section-aware AI import so uncertain matches stay deselected by default and users must opt in to incomplete rows.",
      "url": "https://www.geekindata.com/blog/23-ai-import-ux-pattern",
      "path": "/blog/23-ai-import-ux-pattern"
    },
    {
      "slug": "17-scd2-mlv-device-location-history",
      "title": "SCD2 is a product question: point-in-time deployed state with MLVs",
      "date": "2026-08-10",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "SCD",
        "Materialized Lake Views",
        "IoT",
        "Data Modeling"
      ],
      "description": "Explain why location and classification history for measuring points should be SCD2 Materialized Lake Views before anyone builds devices as of reports.",
      "url": "https://www.geekindata.com/blog/17-scd2-mlv-device-location-history",
      "path": "/blog/17-scd2-mlv-device-location-history"
    },
    {
      "slug": "26-column-level-mlv-validation",
      "title": "Row counts lie: validate MLVs column by column",
      "date": "2026-08-10",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Data Quality",
        "Materialized Lake Views",
        "Testing",
        "Migration"
      ],
      "description": "Push migration checklists to per-column tables and type-aware aggregates so MLV cutovers catch semantic drift early.",
      "url": "https://www.geekindata.com/blog/26-column-level-mlv-validation",
      "path": "/blog/26-column-level-mlv-validation"
    },
    {
      "slug": "11-fabric-cicd-blast-radius",
      "title": "Fabric CI/CD blast radius: when no changes still deploys",
      "date": "2026-08-07",
      "tags": [
        "Microsoft Fabric",
        "CI/CD",
        "DevOps",
        "Data Platform",
        "Toolkits"
      ],
      "description": "Why Fabric deployment tooling can republish unchanged notebooks and how to design for stable identities and smaller blast radius.",
      "url": "https://www.geekindata.com/blog/11-fabric-cicd-blast-radius",
      "path": "/blog/11-fabric-cicd-blast-radius",
      "series": "fabric-lakehouse-architecture"
    },
    {
      "slug": "41-mlv-nee-fallback-truth",
      "title": "Most NEE warnings are noise: measure real MLV wall-clock",
      "date": "2026-08-07",
      "tags": [
        "Experiments",
        "Microsoft Fabric",
        "Materialized Lake Views",
        "Performance",
        "Spark",
        "Diagnostics"
      ],
      "description": "Teach teams to measure where MLV DAG time actually goes and fix only actionable native-execution engine fallbacks.",
      "url": "https://www.geekindata.com/blog/41-mlv-nee-fallback-truth",
      "path": "/blog/41-mlv-nee-fallback-truth"
    },
    {
      "slug": "9-semantic-refresh-and-direct-lake",
      "title": "Semantic refresh architecture: notebooks, pipelines, and Direct Lake",
      "date": "2026-08-06",
      "tags": [
        "Microsoft Fabric",
        "Direct Lake",
        "Power BI",
        "Data Architecture",
        "Pipelines",
        "Toolkits"
      ],
      "description": "How to choose notebook, pipeline, or scheduled refresh for lakehouse semantics, and when Direct Lake beats a SQL endpoint for heavy facts.",
      "url": "https://www.geekindata.com/blog/9-semantic-refresh-and-direct-lake",
      "path": "/blog/9-semantic-refresh-and-direct-lake",
      "series": "fabric-lakehouse-architecture"
    },
    {
      "slug": "8-one-lakehouse-schemas-vs-many",
      "title": "One Fabric lakehouse with schemas vs many lakehouses",
      "date": "2026-08-05",
      "tags": [
        "Microsoft Fabric",
        "Lakehouse",
        "Data Architecture",
        "Medallion",
        "Case Studies"
      ],
      "description": "How to choose between multiple Fabric lakehouses and a schema-enabled lakehouse for bronze, silver, and gold, including CI/CD and naming fallout.",
      "url": "https://www.geekindata.com/blog/8-one-lakehouse-schemas-vs-many",
      "path": "/blog/8-one-lakehouse-schemas-vs-many",
      "series": "fabric-lakehouse-architecture"
    },
    {
      "slug": "6-knowledge-rbac-for-enterprise-agents",
      "title": "Knowledge RBAC for enterprise agents: same gates for chat, browse, and citations",
      "date": "2026-08-04",
      "tags": [
        "Azure",
        "Entra ID",
        "AI Architecture",
        "Knowledge Management",
        "Microsoft Foundry",
        "Toolkits"
      ],
      "description": "How to design folder-scoped knowledge access for enterprise agents so chat, library browse, downloads, and citation PDFs share one entitlement model.",
      "url": "https://www.geekindata.com/blog/6-knowledge-rbac-for-enterprise-agents",
      "path": "/blog/6-knowledge-rbac-for-enterprise-agents",
      "series": "enterprise-agent-apps"
    },
    {
      "slug": "40-fabric-monitor-runbooks",
      "title": "Consolidate Fabric monitoring into one operable skill",
      "date": "2026-08-03",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Monitoring",
        "Runbooks",
        "Platform Engineering",
        "Agents"
      ],
      "description": "Show why scattered Fabric monitor scripts should become one skill/runbook interface for humans and coding agents.",
      "url": "https://www.geekindata.com/blog/40-fabric-monitor-runbooks",
      "path": "/blog/40-fabric-monitor-runbooks"
    },
    {
      "slug": "25-mlv-layer-migration",
      "title": "MLV migration is a program: bronze to silver to gold with gates",
      "date": "2026-07-30",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Materialized Lake Views",
        "Migration",
        "Lakehouse",
        "SQL"
      ],
      "description": "Frame hundreds of T-SQL warehouse views moving to MLVs as a phased program with schema-enabled lakehouses, shortcut layouts, and POC gates before bulk conversion.",
      "url": "https://www.geekindata.com/blog/25-mlv-layer-migration",
      "path": "/blog/25-mlv-layer-migration"
    },
    {
      "slug": "30-bulk-ingest-without-oom",
      "title": "Bulk reload is an orchestration problem, not a bigger VM wish",
      "date": "2026-07-27",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Ingestion",
        "Business Central",
        "Spark",
        "Reliability"
      ],
      "description": "Explain batched parallel page ingest for large ledger entities so full reloads finish without driver OOM.",
      "url": "https://www.geekindata.com/blog/30-bulk-ingest-without-oom",
      "path": "/blog/30-bulk-ingest-without-oom"
    },
    {
      "slug": "19-agent-use-case-pilots",
      "title": "Pilot the use case, not the agent catalog",
      "date": "2026-07-24",
      "tags": [
        "Experiments",
        "Microsoft Foundry",
        "Agents",
        "A2A",
        "Product Architecture",
        "AI Architecture"
      ],
      "description": "Make the case that enterprise agent programs should start from ranked use cases (orchestrator vs single agent vs tools) instead of from a menu of model endpoints.",
      "url": "https://www.geekindata.com/blog/19-agent-use-case-pilots",
      "path": "/blog/19-agent-use-case-pilots"
    },
    {
      "slug": "22-agent-activity-traceability",
      "title": "If you cannot explain the tool calls, you do not have an agent product",
      "date": "2026-07-24",
      "tags": [
        "Toolkits",
        "Microsoft Foundry",
        "Observability",
        "App Insights",
        "Agents",
        "UX"
      ],
      "description": "Argue that activity timelines must reconcile Foundry traces, MCP knowledge searches, and UI tool-call counts, or support will never trust the product.",
      "url": "https://www.geekindata.com/blog/22-agent-activity-traceability",
      "path": "/blog/22-agent-activity-traceability"
    },
    {
      "slug": "7-agent-sessions-vs-the-shell-app",
      "title": "Agent sessions vs the shell app: what should survive refresh",
      "date": "2026-07-24",
      "tags": [
        "Azure",
        "Microsoft Foundry",
        "AI Architecture",
        "Web Apps",
        "Session Management",
        "Experiments"
      ],
      "description": "Where conversation state should live when a browser shell wraps a platform agent, and why refresh and quit behavior is an architecture choice.",
      "url": "https://www.geekindata.com/blog/7-agent-sessions-vs-the-shell-app",
      "path": "/blog/7-agent-sessions-vs-the-shell-app",
      "series": "enterprise-agent-apps"
    },
    {
      "slug": "21-foundry-webapp-deploy-pattern",
      "title": "Foundry webapps deploy as identity and egress, not as Node hostnames",
      "date": "2026-07-21",
      "tags": [
        "Case Studies",
        "Microsoft Foundry",
        "App Service",
        "Managed Identity",
        "Networking",
        "Containers"
      ],
      "description": "Walk through a VNet-integrated container App Service pattern with secretless OBO, managed identity, and private egress to Foundry, Search, and storage.",
      "url": "https://www.geekindata.com/blog/21-foundry-webapp-deploy-pattern",
      "path": "/blog/21-foundry-webapp-deploy-pattern"
    },
    {
      "slug": "42-large-fact-refresh-drift",
      "title": "Refresh drift is a contract break, not a flaky pipeline",
      "date": "2026-07-21",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Refresh",
        "Data Quality",
        "Facts",
        "Pipelines"
      ],
      "description": "Diagnose sales-line style refresh drift as mismatched incremental contracts between notebooks, watermarks, and semantic consumers.",
      "url": "https://www.geekindata.com/blog/42-large-fact-refresh-drift",
      "path": "/blog/42-large-fact-refresh-drift"
    },
    {
      "slug": "38-secure-proxy-ai-shells",
      "title": "The AI shell proxy is a security boundary",
      "date": "2026-06-27",
      "tags": [
        "Toolkits",
        "Azure",
        "App Gateway",
        "Front Door",
        "Security",
        "AI Architecture"
      ],
      "description": "Compare hardening options for browser-to-API proxies in front of agent backends, including runtime mismatch and Front Door failure modes.",
      "url": "https://www.geekindata.com/blog/38-secure-proxy-ai-shells",
      "path": "/blog/38-secure-proxy-ai-shells"
    },
    {
      "slug": "16-fabric-pii-redaction-config",
      "title": "PII redaction belongs in the notebook config, not in tribal knowledge",
      "date": "2026-06-25",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Privacy",
        "Data Quality",
        "Notebooks",
        "Governance"
      ],
      "description": "Show how a reusable notebook-level redaction contract (flags, tokens, regex, known-name UDF) makes free-text exports safe without blanking legitimate addresses and codes.",
      "url": "https://www.geekindata.com/blog/16-fabric-pii-redaction-config",
      "path": "/blog/16-fabric-pii-redaction-config"
    },
    {
      "slug": "35-measurable-controls-flat-facts",
      "title": "Pivot once in gold: measurable controls as a flat fact",
      "date": "2026-06-22",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Direct Lake",
        "PySpark",
        "Checklists",
        "Semantic Model"
      ],
      "description": "Replace OUTER APPLY Import-mode checklist pivots with a pre-pivoted gold fact built in PySpark for Direct Lake.",
      "url": "https://www.geekindata.com/blog/35-measurable-controls-flat-facts",
      "path": "/blog/35-measurable-controls-flat-facts"
    },
    {
      "slug": "15-shortcuts-only-bronze",
      "title": "Shortcuts-only bronze: stop copying what OneLake already holds",
      "date": "2026-06-02",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Lakehouse",
        "OneLake",
        "Medallion",
        "Shortcuts"
      ],
      "description": "Argue that bronze should be a contract of OneLake shortcuts and clean views, not a second physical copy of upstream gold and silver.",
      "url": "https://www.geekindata.com/blog/15-shortcuts-only-bronze",
      "path": "/blog/15-shortcuts-only-bronze"
    },
    {
      "slug": "24-device-events-gold-direct-lake",
      "title": "IoT events are facts: model them like service, not like logs",
      "date": "2026-06-02",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "IoT",
        "Direct Lake",
        "Semantic Model",
        "Gold Layer"
      ],
      "description": "Show why telemetry events belong in gold with contract and service-item enrichment and Direct Lake storage mode for volume.",
      "url": "https://www.geekindata.com/blog/24-device-events-gold-direct-lake",
      "path": "/blog/24-device-events-gold-direct-lake"
    },
    {
      "slug": "33-semantic-mixed-fk-types",
      "title": "Matching relationship types is cheaper than debugging blank visuals",
      "date": "2026-06-02",
      "tags": [
        "Toolkits",
        "Power BI",
        "Semantic Model",
        "TMDL",
        "Data Types",
        "Modeling"
      ],
      "description": "Show how int64 vs string mismatches across role-playing dims silently break relationships and how to align gold SQL with TMDL.",
      "url": "https://www.geekindata.com/blog/33-semantic-mixed-fk-types",
      "path": "/blog/33-semantic-mixed-fk-types"
    },
    {
      "slug": "29-materialize-heavy-warehouse-views",
      "title": "When warehouse views time out, materialize the trunk not the leaves",
      "date": "2026-05-28",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Warehouse",
        "Performance",
        "Materialization",
        "SQL"
      ],
      "description": "Propose a layered performance playbook: drop orphans, cheap rewrites, then materialize the two or three consolidations everything else depends on.",
      "url": "https://www.geekindata.com/blog/29-materialize-heavy-warehouse-views",
      "path": "/blog/29-materialize-heavy-warehouse-views"
    },
    {
      "slug": "31-variable-library-deploy-targets",
      "title": "Variable Library is your environment map, not a sticky note",
      "date": "2026-05-26",
      "tags": [
        "Toolkits",
        "Microsoft Fabric",
        "Variable Library",
        "CI/CD",
        "Git",
        "Deployment"
      ],
      "description": "Use a Git-tracked Fabric Variable Library with per-stage value sets so rebind notebooks and pipelines stop hard-coding workspace IDs.",
      "url": "https://www.geekindata.com/blog/31-variable-library-deploy-targets",
      "path": "/blog/31-variable-library-deploy-targets"
    },
    {
      "slug": "34-direct-lake-onelake-regressions",
      "title": "When Fabric regressions force literal OneLake URLs, document the workaround",
      "date": "2026-05-26",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Direct Lake",
        "OneLake",
        "SemPy",
        "Support"
      ],
      "description": "Reframe literal URL required failures as service regressions with validators, promotion playbooks, and support cases - not as eternal architecture dogma.",
      "url": "https://www.geekindata.com/blog/34-direct-lake-onelake-regressions",
      "path": "/blog/34-direct-lake-onelake-regressions"
    },
    {
      "slug": "28-service-device-fact-remodel",
      "title": "Bridge keys before dashboards: remodel the device fact",
      "date": "2026-05-22",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Data Modeling",
        "Facts",
        "Bridges",
        "Power BI"
      ],
      "description": "Show why service-device relationships need an explicit bridge/fact remodel before report pages can be trusted.",
      "url": "https://www.geekindata.com/blog/28-service-device-fact-remodel",
      "path": "/blog/28-service-device-fact-remodel"
    },
    {
      "slug": "32-pipeline-lineage-explorer",
      "title": "Lineage explorers beat tribal notebooks",
      "date": "2026-05-20",
      "tags": [
        "Experiments",
        "Microsoft Fabric",
        "Lineage",
        "Metadata",
        "Developer Experience",
        "Toolkits"
      ],
      "description": "Argue for a small lineage explorer over ad-hoc pipeline docs so engineers can see dependencies before they break them.",
      "url": "https://www.geekindata.com/blog/32-pipeline-lineage-explorer",
      "path": "/blog/32-pipeline-lineage-explorer"
    },
    {
      "slug": "18-gold-device-semantic-contract",
      "title": "Gold without a semantic contract is just another table",
      "date": "2026-05-11",
      "tags": [
        "Case Studies",
        "Microsoft Fabric",
        "Power BI",
        "Semantic Model",
        "Gold Layer",
        "Data Modeling"
      ],
      "description": "Argue that device gold tables only become platform assets when unmatched keys, captions, and relationships are explicit in the semantic model.",
      "url": "https://www.geekindata.com/blog/18-gold-device-semantic-contract",
      "path": "/blog/18-gold-device-semantic-contract"
    },
    {
      "slug": "1-fabric-airflow",
      "title": "Keep Fabric thin: Airflow orchestrates, Fabric does the work",
      "date": "2026-04-08",
      "tags": [
        "Databricks",
        "Microsoft Fabric",
        "Airflow",
        "Data Engineering",
        "Orchestration",
        "Case Studies"
      ],
      "description": "Why Fabric workloads need an explicit orchestration plane, how to keep Airflow thin while Fabric owns the data work, and which failure modes show up when teams collapse both into one tool.",
      "url": "https://www.geekindata.com/blog/1-fabric-airflow",
      "path": "/blog/1-fabric-airflow"
    },
    {
      "slug": "2-pose-estimation",
      "title": "Pose estimation is a systems problem, not a model bake-off",
      "date": "2026-04-08",
      "tags": [
        "Computer Vision",
        "Pose Estimation",
        "Real-Time AI",
        "Inference",
        "Experiments"
      ],
      "description": "Why real-time pose estimation is a systems problem of capture, inference, and rendering, and how to design for latency, stability, and demos that survive messy video.",
      "url": "https://www.geekindata.com/blog/2-pose-estimation",
      "path": "/blog/2-pose-estimation"
    },
    {
      "slug": "3-azure-image-classification",
      "title": "Classification apps fail on operations, not on the label list",
      "date": "2026-04-08",
      "tags": [
        "Azure AI",
        "Custom Vision",
        "Image Classification",
        "Web App",
        "Experiments"
      ],
      "description": "How to shape an image classification web app on Azure AI Services so the UI stays simple, the backend stays operable, and Custom Vision iteration does not become a demo trap.",
      "url": "https://www.geekindata.com/blog/3-azure-image-classification",
      "path": "/blog/3-azure-image-classification"
    },
    {
      "slug": "4-databricks-genie-powerpoint-webapp",
      "title": "Can Databricks Genie Build My Deck and Deploy My App?",
      "date": "2026-04-08",
      "tags": [
        "Databricks",
        "Genie Code",
        "AI Assistant",
        "Enterprise Data",
        "Automation",
        "Experiments"
      ],
      "description": "What Databricks Genie Code actually changes for deck generation and app deploy when the assistant already sits inside your governed lakehouse context.",
      "url": "https://www.geekindata.com/blog/4-databricks-genie-powerpoint-webapp",
      "path": "/blog/4-databricks-genie-powerpoint-webapp",
      "series": "analytics-readiness"
    }
  ]
}
