This is an automated email from the ASF dual-hosted git repository.

rzo1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/storm-site.git

commit fe626ce6f6bed414b63903b0b96ec5ac36004aca
Author: Richard Zowalla <[email protected]>
AuthorDate: Wed May 6 21:29:30 2026 +0200

    Add homepage hero, fork-me ribbon, and restructure header nav
    
    Homepage: replace the bare topology image with a gradient hero band
    that has a tagline, a primary "Download <version>" CTA reading the
    current release from site.data.releases, and a "Get Started" link to
    the tutorial. The diagram sits on a white card so it stays legible
    against the gradient.
    
    Header: drop the standalone green Download button (the hero owns the
    download CTA on the homepage; every other page reaches Downloads via
    the new Download nav item or the footer). Restructure the nav from
    8 mostly-flat items to 7 with cleaner grouping:
    
      - "Project Information" -> "About" dropdown that lists all 8 about/
        pages directly, instead of a single link to a page that hides them
        in a sidebar
      - "Getting Help" and "Talks and Slideshows" moved under Community
      - "Security", "News", and a new "Download" link kept top-level
    
    Add a CSS-only "Fork me on GitHub" ribbon (no images, hidden on small
    screens) mounted in _layouts/default.html so it appears site-wide.
    
    README: update the javadoc guidance to match the javadoc.io migration
    and note that downloads.html no longer needs manual edits per release.
    
    Also gitignore .jekyll-cache/ and .jekyll-metadata (incremental build
    artefacts that should not be tracked).
---
 .gitignore            |   2 +
 README.md             |  22 ++++------
 _includes/header.html |  34 +++++++++++-----
 _layouts/default.html |   1 +
 css/style.css         | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++
 index.html            |  45 +++++++++++++--------
 6 files changed, 170 insertions(+), 43 deletions(-)

diff --git a/.gitignore b/.gitignore
index b44dbbec4a..e6bf420336 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
 _site
 Gemfile.lock
 .sass-cache/
+.jekyll-cache/
+.jekyll-metadata
 tmp
 .DS_Store
 .bundle
\ No newline at end of file
diff --git a/README.md b/README.md
index b326348b87..569abc707d 100644
--- a/README.md
+++ b/README.md
@@ -41,14 +41,7 @@ By default, jekyll will generate the site in a `_site` 
directory.
 # Adding a new release to the website
 In order to add a new release, you must have committer access to the 
storm-site repository at https://github.com/apache/storm-site.
 
-You must first generate Javadoc for the new release. Check out the Storm 
repository from https://github.com/apache/storm, and check out the version of 
the code you are releasing.
-
-You must have already installed the storm-shaded-deps module, so please run 
`mvn clean install -pl storm-shaded-deps -am` if you haven't built Storm 
already.
-
-In the Storm project root run
-```
-mvn javadoc:aggregate -DreportOutputDirectory=./docs/ -DdestDir=javadocs 
-Dnotimestamp=true -pl '!storm-shaded-deps'
-```
+Javadocs are no longer kept in this repository — they are served on demand by 
[javadoc.io](https://javadoc.io/doc/org.apache.storm/storm-client) directly 
from the artifacts published to Maven Central. There is nothing to generate or 
copy for javadocs when cutting a new release.
 
 In the storm-site project, release documentation is placed under the releases 
directory named after the release version. See 
[below](#how-release-specific-docs-work) for details about release specific 
documentation.
 
@@ -56,10 +49,9 @@ To add documentation for a new release, run the following 
from the Storm project
 
 ```
 mkdir ${path_to_storm_site}/releases/${release_name}
-#Copy everything over, and compare checksums, except for things that are part 
of the site,
-# and are not release specific like the _* directories that are jekyll specific
-# assets/ css/ and README.md
-rsync -ac --delete --exclude _\* --exclude assets --exclude css --exclude 
README.md ./docs/ ${path_to_storm_site}/releases/${release_name}
+# Copy everything over except things that are part of the site (and not
+# release-specific) and javadocs (which now live on javadoc.io).
+rsync -ac --delete --exclude _\* --exclude assets --exclude css --exclude 
README.md --exclude javadocs ./docs/ 
${path_to_storm_site}/releases/${release_name}
 cd ${path_to_storm_site}
 git add releases/${release_name}
 git commit
@@ -73,7 +65,7 @@ ln -f -n -s ${release_name} current
 
 Compose a new blog post announcement for the new release on the `_posts` 
folder. You can use the `RELEASE_NOTES.html` file generated on `storm` project 
to retrieve the specific HTML for this version.
 
-Update the downloads page on `downloads.html` to point to the new version's 
links. 
+`downloads.html` is templated and reads the latest version from 
`site.data.releases` automatically — no manual edits are needed for new 
releases.
 
 ## How release specific docs work
 
@@ -115,10 +107,10 @@ If you wanted to create a maven string to tell people 
what dependency to use you
 </dependency>
 ```
 
-If you want to refer to a javadoc for the current release use a relative path. 
 It will be in the javadocs subdirectory.
+If you want to link to a javadoc page from a release doc, use an absolute URL 
pointing at javadoc.io. The version segment should match `{{page.version}}` so 
the link stays correct as docs are reused across releases.
 
 ```
-[TopologyBuilder](javadocs/org/apache/storm/topology/TopologyBuilder.html)
+[TopologyBuilder](https://javadoc.io/doc/org.apache.storm/storm-client/{{page.version}}/org/apache/storm/topology/TopologyBuilder.html)
 ```
 
 # Deployment
diff --git a/_includes/header.html b/_includes/header.html
index 73557b8d2e..c48f9bd32c 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -1,17 +1,14 @@
 <header>
     <div class="container-fluid">
         <div class="row">
-            <div class="col-md-5">
+            <div class="col-md-8">
                 <a href="/index.html"><img src="/images/logo.png" 
class="logo"/></a>
             </div>
-            <div class="col-md-5">
+            <div class="col-md-4">
                 {% if page.version %}
                 <h1>Version: {{page.version}}</h1>
                 {% endif %}
             </div>
-            <div class="col-md-2">
-                <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-            </div>
         </div>
     </div>
 </header>
@@ -29,9 +26,6 @@
         <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
             <ul class="nav navbar-nav">
                 <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/security-model.html" 
id="security-model">Security</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
                 <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b
                             class="caret"></b></a>
@@ -47,18 +41,36 @@
                         <li><a href="/older-releases.html">Older 
Versions</a></li>
                     </ul>
                 </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
                 <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="about">About <b
                             class="caret"></b></a>
                     <ul class="dropdown-menu">
+                        <li><a 
href="/about/integrates.html">Integrates</a></li>
+                        <li><a href="/about/simple-api.html">Simple 
API</a></li>
+                        <li><a href="/about/scalable.html">Scalable</a></li>
+                        <li><a href="/about/fault-tolerant.html">Fault 
tolerant</a></li>
+                        <li><a 
href="/about/guarantees-data-processing.html">Guarantees data 
processing</a></li>
+                        <li><a href="/about/multi-language.html">Use with any 
language</a></li>
+                        <li><a href="/about/deployment.html">Easy to deploy 
and operate</a></li>
+                        <li><a href="/about/free-and-open-source.html">Free 
and open source</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="community">Community <b
+                            class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/getting-help.html">Getting Help</a></li>
                         <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
                         <li><a href="/contribute/People.html">People</a></li>
                         <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                        <li><a href="/Powered-By.html">PoweredBy</a></li>
+                        <li><a href="/Powered-By.html">Powered By</a></li>
+                        <li role="separator" class="divider"></li>
+                        <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
                     </ul>
                 </li>
                 <li><a href="/news.html" id="news">News</a></li>
+                <li><a href="/security-model.html" 
id="security-model">Security</a></li>
+                <li><a href="/downloads.html" id="download">Download</a></li>
             </ul>
         </nav>
     </div>
diff --git a/_layouts/default.html b/_layouts/default.html
index 9f909df94e..cdb87abe07 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -2,6 +2,7 @@
 <html>
   {% include head.html %}
   <body>
+    <a class="github-fork-ribbon" href="https://github.com/apache/storm"; 
target="_blank" rel="noopener" aria-label="Fork Apache Storm on GitHub">Fork me 
on GitHub</a>
     {% include header.html %}
     <div class="container-fluid">
     {% unless page.url == "/" or page.url == "/index.html" %}
diff --git a/css/style.css b/css/style.css
index 1abd69415f..511ae34032 100644
--- a/css/style.css
+++ b/css/style.css
@@ -721,6 +721,115 @@ footer hr {
        background-color: #f6f8fa;
 }
 
+/* Hero (homepage) */
+.hero {
+       background: linear-gradient(135deg, #235693 0%, #328fbf 100%);
+       color: #fff;
+       padding: 60px 0 70px;
+       margin-bottom: 30px;
+}
+.hero-text {
+       padding-top: 20px;
+}
+.hero-title {
+       font-size: 42px;
+       font-weight: 700;
+       line-height: 1.15;
+       margin: 0 0 15px;
+       color: #fff;
+}
+.hero-tagline {
+       font-size: 19px;
+       line-height: 1.45;
+       margin: 0 0 28px;
+       opacity: 0.92;
+       max-width: 540px;
+}
+.hero-cta {
+       margin: 0;
+}
+.hero-image img {
+       max-width: 100%;
+       height: auto;
+       background: #fff;
+       padding: 18px;
+       border-radius: 8px;
+       box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
+}
+.btn-hero {
+       display: inline-block;
+       padding: 12px 26px;
+       margin-right: 10px;
+       font-size: 16px;
+       font-weight: 700;
+       text-decoration: none;
+       border-radius: 4px;
+       transition: background-color 0.15s ease, color 0.15s ease, border-color 
0.15s ease;
+       border: 2px solid transparent;
+}
+.btn-hero-primary {
+       background-color: #32bf61;
+       color: #fff;
+}
+.btn-hero-primary:hover,
+.btn-hero-primary:focus {
+       background-color: #239329;
+       color: #fff;
+       text-decoration: none;
+}
+.btn-hero-secondary {
+       background-color: transparent;
+       color: #fff;
+       border-color: #fff;
+}
+.btn-hero-secondary:hover,
+.btn-hero-secondary:focus {
+       background-color: #fff;
+       color: #235693;
+       text-decoration: none;
+}
+@media (max-width: 991px) {
+       .hero { padding: 40px 0 50px; }
+       .hero-title { font-size: 32px; }
+       .hero-tagline { font-size: 17px; }
+       .hero-image { margin-top: 30px; }
+}
+@media (max-width: 480px) {
+       .btn-hero { display: block; margin: 0 0 10px; text-align: center; }
+}
+
+/* "Fork me on GitHub" ribbon — pure CSS, no images */
+.github-fork-ribbon {
+       position: fixed;
+       top: 38px;
+       right: -54px;
+       width: 220px;
+       padding: 7px 0;
+       background: #235693;
+       color: #fff;
+       font-family: 'Lato', sans-serif;
+       font-size: 13px;
+       font-weight: 700;
+       text-align: center;
+       letter-spacing: 0.4px;
+       text-transform: uppercase;
+       text-decoration: none;
+       transform: rotate(45deg);
+       box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
+       border-top: 1px solid rgba(255, 255, 255, 0.35);
+       border-bottom: 1px solid rgba(0, 0, 0, 0.25);
+       z-index: 1000;
+}
+.github-fork-ribbon:hover,
+.github-fork-ribbon:focus {
+       background: #328fbf;
+       color: #fff;
+       text-decoration: none;
+}
+@media (max-width: 768px) {
+       .github-fork-ribbon { display: none; }
+}
+
 
 
 
diff --git a/index.html b/index.html
index 72d2e7f41b..4853b41dcc 100644
--- a/index.html
+++ b/index.html
@@ -2,36 +2,47 @@
 layout: default
 title: Apache Storm
 ---
+{% assign current = site.data.releases | where: "has-download", true | first %}
+<div class="hero">
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-7 hero-text">
+                <h2 class="hero-title">Distributed real-time computation</h2>
+                <p class="hero-tagline">Distributed real-time computation. 
Free and open source. Process unbounded streams of data &mdash; fast, 
fault-tolerant, and reliable.</p>
+                <p class="hero-cta">
+                    <a href="/downloads.html" class="btn-hero 
btn-hero-primary">Download {{ current.name }}</a>
+                    <a href="/releases/current/Tutorial.html" class="btn-hero 
btn-hero-secondary">Get Started</a>
+                </p>
+            </div>
+            <div class="col-md-5 hero-image">
+                <img src="images/storm-flow.png" class="img-responsive" 
alt="An Apache Storm topology with its spouts and bolts" />
+            </div>
+        </div>
+    </div>
+</div>
 
 <div class="content">
-  <div class="container-fluid">
-      <div class="row">
-          <div class="col-md-8">
-              <img src="images/storm-flow.png" class="img-responsive" alt="An 
Apache Storm topology with its spouts and bolts" style="padding-left: 50px;" />
+    <div class="container-fluid">
+        <div class="row">
+            <div class="col-md-8">
+                <div class="box-primary">
+                    <h4>Why use Apache Storm?</h4>
+                    <p>Apache Storm is a free and open source distributed 
realtime computation system. Apache Storm makes it easy to reliably process 
unbounded streams of data, doing for realtime processing what Hadoop did for 
batch processing. Apache Storm is simple, can be used with any programming 
language, and is a lot of fun to use!</p>
+                    <p>Apache Storm has many use cases: realtime analytics, 
online machine learning, continuous computation, distributed RPC, ETL, and 
more. Apache Storm is fast: a benchmark clocked it at over <strong>a million 
tuples processed per second per node</strong>. It is scalable, fault-tolerant, 
guarantees your data will be processed, and is easy to set up and operate.</p>
+                    <p>Apache Storm integrates with the queueing and database 
technologies you already use. An Apache Storm topology consumes streams of data 
and processes those streams in arbitrarily complex ways, repartitioning the 
streams between each stage of the computation however needed. Read more in the 
<a href="/releases/current/Tutorial.html">tutorial</a>.</p>
                 </div>
+            </div>
             <div class="col-md-4">
                 <div class="box-warning">
                     <h4>Latest News</h4>
-                    <!-- test git pubsub -->
                     <ul class="latest-news">
                         {% for post in site.posts limit:3 %}
                         <li><a href="{{ post.url }}">{{ post.title 
}}</a>&nbsp;<span class="small">({{ post.date | date_to_string }}) </span></li>
                         {% endfor %}
-                    </ul> 
+                    </ul>
                     <p align="right"><a href="/news.html" class="btn-std">More 
News</a></p>
                 </div>
             </div>
         </div>
-        <div class="row">
-          <div class="col-md-12">
-              <div class="box-primary">
-                    <h4>Why use Apache Storm?</h4>
-                  <p>Apache Storm is a free and open source distributed 
realtime computation system. Apache Storm makes it easy to reliably process 
unbounded streams of data, doing for realtime processing what Hadoop did for 
batch processing. Apache Storm is simple, can be used with any programming 
language, and is a lot of fun to use!</p>
-                    <p>Apache Storm has many use cases: realtime analytics, 
online machine learning, continuous computation, distributed RPC, ETL, and 
more. Apache Storm is fast: a benchmark clocked it at over <strong>a million 
tuples processed per second per node</strong>. It is scalable, fault-tolerant, 
guarantees your data will be processed, and is easy to set up and operate.</p>
-                    <p>Apache Storm integrates with the queueing and database 
technologies you already use. An Apache Storm topology consumes streams of data 
and processes those streams in arbitrarily complex ways, repartitioning the 
streams between each stage of the computation however needed. Read more in the 
tutorial.</p>
-                </div>
-            </div>
-        </div>
     </div>
 </div>
-

Reply via email to