extend ../_components/base.pug

block pagetitle
    | Powered By 

block css 
    link(rel="stylesheet", href="../css/usecases.css?ver=" + config.version)


block main
    - global.pageHref = "use-cases/provenusecases.html"
    - config.hdrClassName = "hdr__grey hdr__white"
    include ../_components/header.pug


    section.grayhero 
        .container 
            h1.grayhero__h1.h1.
                Apache Ignite Is Chosen
                By&nbsp;Leading Companies
                Across The World
            .grayhero__logos.flexi
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/microsoft.svg", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/netflix.svg", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/apple.png", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/dreamworks.png", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/yahoo.svg", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/bloomberg.svg", alt="")
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/sberbank.svg", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/paypal.svg", alt="") 
                span.grayhero__logo
                    img(src="/public/img/poweredby/logos/banco-do-brasil.svg", alt="")
    // /.grayhero



    section.powered2.container
        h2.h4 Explore Featured Stories
        p.powered2__descr.h5.pt-2 You can find dozens of&nbsp;Apache Ignite case-studies across various industries:
        .powered2__grid.pt-5
            .powered2item eCommerce
            .powered2item Pharma & Healthcare
            .powered2item Financial Services
            .powered2item Banking
            .powered2item Internet of things
            .powered2item Logistics & Transportation
            .powered2item Retail
            .powered2item Leisure & Hospitality
            .powered2item Entertainment
            .powered2item Defense
            .powered2item Gaming
            .powered2item Biotech
            .powered2item Software & SaaS
            .powered2item Telecommunications
    // /.powered2

    section.poweredbanner.container
        .poweredbanner__bg.flexi
            .poweredbanner__left.flexi 
                h3.h4 Do&nbsp;you have an&nbsp;Apache Ignite use-case to&nbsp;share?
                p.pt-1.fz20 Reach&nbsp;us out on&nbsp;the Ignite dev list, and we&rsquo;ll add it&nbsp;to&nbsp;this page
            .poweredbanner__right
                a.button(href="#").poweredbanner__button Lets go
    // /.poweredbanner


    include ../_components/powered-videos.pug




            
