webdevpuneet.com

Bootstrap Deployment Status Panel — Free HTML CSS JS Snippet

Bootstrap Deployment Status Panel · Dashboards · Plain HTML, CSS & JS · Live preview

CategoryDashboards

Copy & paste

Source Code

<div class="container py-5 d-flex justify-content-center">
  <div class="card bsdeploy-card">
    <div class="card-body p-3">
      <div class="d-flex justify-content-between align-items-center mb-3">
        <h6 class="fw-bold mb-0">Deploy #482</h6>
        <button type="button" class="btn btn-sm btn-outline-secondary" id="bsdeployRestart">Restart demo</button>
      </div>
      <div class="bsdeploy-stages" id="bsdeployStages"></div>
      <p class="small mt-3 mb-0" id="bsdeployStatus">&nbsp;</p>
    </div>
  </div>
</div>

Extend with AI

Take This Snippet Further With AI

The AI prompt for this one is for Patreon supporters ($3 a month, 7 days free), along with a site with no ads. Supporters enter the passcode once and it is remembered in this browser.

· Become a supporter

What's included

Features

One stageStatus array is the single source of truth for every stage's dot, color, and icon
The first attempt is guaranteed to fail at a specific stage, so the failure and retry path is always visible
Retry restarts the entire pipeline from the first stage, matching real CI/CD retry behavior
Only one stage is ever shown as actively running, and stages always progress strictly in order
A pulsing animation clearly distinguishes the currently active stage from completed or pending ones

About this UI Snippet

Bootstrap Deployment Status Panel — HTML, CSS & JavaScript

Screenshot of the Bootstrap Deployment Status Panel snippet rendered live

Every stage's status lives in one stageStatus array, one entry per pipeline stage, each holding 'pending', 'active', 'done', or 'failed' — render() is the single function mapping that array to markup, so the dots, colors, and checkmarks/x-marks are always a direct reflection of the array's current contents rather than separately toggled classes that could drift.

This demo scripts the first attempt to fail specifically at the Staging stage (FAIL_AT, checked against attempt === 1) so the failure state and its Retry action are actually reachable without needing a lucky outcome, matching the same guaranteed-first-failure technique used in bootstrap-data-table-error-state. Retry calls run(attempt + 1), the exact same function the initial deploy uses, which is what resets every stage back to pending and replays the whole pipeline from Build — a real CI/CD retry rarely resumes from the exact point of failure, it restarts the pipeline.

Only one stage is ever 'active' at a time, and stages complete strictly in order — the interval driving the pipeline only advances to the next stage's index after marking the current one 'done', so there's no way for, say, Staging to show as active while Test still shows pending.

Step by step

How to Use

  1. 1
    Load the snippetThe pipeline starts automatically — Build shows an animated, pulsing amber dot as the active stage.
  2. 2
    Watch it progressBuild and Test complete in order, each turning to a solid green checkmark before the next stage activates.
  3. 3
    Watch it fail at StagingThe Staging dot turns red with an X, and the status line offers a "Retry deploy" action.
  4. 4
    Click "Retry deploy"Every stage resets to pending and the whole pipeline replays from Build — this time completing successfully all the way through Production.
  5. 5
    Click "Restart demo"The pipeline runs again from the very first attempt, failing at Staging exactly as before.

Real-world uses

Common Use Cases

DEV
Internal deployment dashboards and CI/CD tooling
Pairs with bootstrap-feature-flag-toggle-panel for a fuller release-management admin view.
Status pages showing a release rolling out
Give visibility into exactly which stage a deploy is currently in, not just a single spinner.
Team dashboards embedded in Slack or an internal wiki
A compact visual summary of pipeline health worth glancing at without opening the full CI system.

Got questions?

Frequently Asked Questions

So the failure state and Retry button are guaranteed to be visible in this preview, rather than depending on chance; a real implementation should reflect each stage's actual CI/CD job outcome instead of a scripted failure.

It restarts the entire pipeline from Build — this mirrors how most real CI/CD systems handle a retry, since a failed stage often means the environment or artifacts from earlier stages may also need to be regenerated.

No — the interval driving the pipeline only ever marks the next stage active after the current one finishes, so exactly one stage (or zero, once the pipeline finishes or fails) is ever in the active state at a time.

Yes. Keep stageStatus as an array in component state, update it via your framework's state-setting pattern on each interval tick, and derive each stage's dot color/icon from its current value in the render function.