= doctype html
html lang={{.Site.LanguageCode}}
  head
    {{partial "meta.html" .}}
    {{partial "index/index-meta.html" .}}
    title {{.Site.Title}}
    {{partial "css.includes.html" .}}
  body
    .hn-main
      {{partial "navbar.html" .}}
      .container-fluid
        .row
          .hn-jumbotron.jumbotron.text-center
            .row
              img.hn-jumbotron-logo.center-block src={{.Site.Params.assets.textlogo}}
            .row
              p.hn-tagline {{.Site.Params.tagline}}
            .hn-button-row.row
              a.btn.btn-default href=docs/getting-started Get Started
              a.btn.btn-default href=docs/migrate-storm-to-heron Migrate From Storm
        section.main-page-lower-section.container
          .col-xs-12.col-sm-9.col-md-9.col-lg-9
            .landing-feature-2.text-left
              h2.text-center Why Heron?
              br
              .row
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Speed and Performance
                    .panel-body Heron is built with a wide array of architectural improvements that contribute to high efficiency gains.
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Proven at Twitter Scale
                    .panel-body Heron has powered all realtime analytics with varied use cases at Twitter since 2014. Incident reports dropped by an order of magnitude demonstrating proven reliability and scalability
              .row
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Compatibility with Storm
                    .panel-body Heron is API compatible with <a href="http://storm.apache.org">Apache Storm</a> and hence no code change is required for migration.
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Ease of Development and Troubleshooting
                    .panel-body Easily debug and identify the issues in <a href="/docs/concepts/topologies">topologies</a>, allowing faster iteration during development.
              .row
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Simplified and Responsive UI
                    .panel-body Heron UI gives a visual overview of each topology to visualize hot spot locations and detailed counters for tracking progress and troubleshooting.
                .col-sm-6
                  .panel.panel-primary
                    .panel-heading Scalability and Reliability
                    .panel-body Heron is highly scalable both in the ability to execute large number of components for each topology and the ability to launch and track large numbers of topologies.
            hr
            .landing-feature-2.text-left
              h2 Get Started
              .row
                .col-sm-6
                  h4 Run Topologies using pre-compiled Heron binaries
                  a.btn.btn-default href=docs/getting-started Get Started
                .col-sm-6
                  h4 Migrate Existing Storm Topologies
                  a.btn.btn-default href=docs/migrate-storm-to-heron Migrate Storm topologies

          .hn-twitter-feed.hidden-xs.col-sm-3.col-md-3.col-lg-3
            {{partial "index/feed.html" .}}

      {{partial "footer.html" .}}
      {{partial "index/twitter-timeline.html" .}}
      {{partial "index/google-analytics.html" .}}

      script src=https://code.jquery.com/jquery-2.2.1.min.js
