top of page

Your story
deserves more
than a
 generic shirt.

Get Started Today!

SCHOOLS ✦ AUTOMOTIVE ✦ AVIATION ✦ CONSTRUCTION & EQUIPMENT ✦ FIRE DEPARTMENTS ✦ LAW ENFORCEMENT ✦ MOTORCYCLE ✦ MUSEUMS ✦ RACING & PERFORMANCE ✦ TOWING ✦ TRACTOR PULLING ✦ TRUCKING ✦ WATERCRAFT ✦

charcoal-hoodie-concrete-pumping-crew-group-09dad2.png

is your team ready for fall/winter?

The Right Hoodie for Everybody.

Different people need different layers. Build one order using lightweight, midweight and heavyweight hoodies, eligible full-zips, tees and long-sleeve tees.

Order Today!
ChatGPT Image Jun 17, 2026, 11_53_30 AM.png

BY EXCEL SPORTSWEAR

Concept Studio AI

Create a design in minutes using AI, or work with one of our Design Specialists to bring your vision to life.

Learn More!

— 01 / The Truth

Why some shirts get worn — and others get tossed away.

A cheap shirt gets handed out at the door. A meaningful shirt is put on day one, the year after, and the decade after — because it carries a story people are proud to wear.

​

We don't just print apparel. We translate identity. Pride. Belonging. The thing your people already feel — made wearable, usable, visible, and shareable.

— The Story of You

— 02 / The Process

From sketch to
TELLING YOUR STORY.

Real artists. Real refinement. Real apparel that lives a life of its own once it leaves our hands. The Story of YOU.

step-01.png

Discover

We learn about your business, team, event, or brand and gather inspiration, reference photos, and design ideas.

step-02.png

Design

Our in-house artists create custom artwork and mockups while collaborating with you through revisions and approvals.

step-03.png

Produce

Once approved, your apparel moves into production using the printing method that best fits your project.

step-04.png

Deliver

Your finished apparel arrives ready to wear, promote, sell, or represent your organization with pride.

Drawn by hand. Worn With Pride.

Custom illustrations

Truck graphics

Logo refinement​

Mascot art

Hand-drawn concepts

Patches & badges

From AI Concept to Artist-Crafted Design

Concept Studio AI by Excel Sportswear helps you explore the first idea. Then Excel's in-house artists take that idea further — hand-drawing the artwork, cleaning up details, improving the composition, and preparing it for print production. Our experienced designers know how to create artwork that looks better, tells a stronger story, and prints for higher quality.

​

The image on the left is a starting point. The artwork on the right is what happens when human creativity takes over.

Start Your AI Concept

— 03 / The Pride

“It was a fast, easy process from idea to product in the store. Professional people with a great product.”

— Bobby Schneider, Mercedes-Benz of New Rochelle

04 / OUR Invitation

See what your story
could look like.

Try Concept Studio AI
bottom of page
. * It never loads a Meta Pixel; it calls the site's existing native pixel only after advertising consent. * Live topology (verified from the site's public page config): an Embed HTML element in URL mode whose * iframe src is exactly https://excel-widgets.lovable.app/embed/contact, a direct child frame of this page. */ (function (root) { "use strict"; var CONFIG = { parentHost: "www.excelsportswear.com", contactPaths: ["/contact", "/contact/"], iframeOrigin: "https://excel-widgets.lovable.app", iframePath: "/embed/contact", pixelId: "975271178541890", utmKeys: ["utm_source", "utm_medium", "utm_campaign", "utm_content", "utm_term"], }; var EVENT_ID = /^cl_[a-f0-9]{32}$/; var SAFE = /^[\w\-.+ %|:]{1,200}$/; var KEY = "__excelContactBridgeV1"; function onContactPage(win) { return win.location.hostname === CONFIG.parentHost && CONFIG.contactPaths.indexOf(win.location.pathname) !== -1; } function install(win) { if (win[KEY]) return win[KEY]; // idempotent: duplicate embeds / SPA re-runs reuse one listener if (win.location.hostname !== CONFIG.parentHost) return { active: false, reason: "host" }; if (!onContactPage(win)) return { active: false, reason: "path" }; var doc = win.document; var params = new URLSearchParams(win.location.search); try { if (params.get("excel_tracking") === "off") win.localStorage.setItem("excel_tracking_off", "1"); if (params.get("excel_tracking") === "on") win.localStorage.removeItem("excel_tracking_off"); } catch (e) {} var suppressed = function () { try { return win.localStorage.getItem("excel_tracking_off") === "1"; } catch (e) { return true; } }; // Fail closed. Wix exposes window.consentPolicyManager on live sites (verified on this site). // getCurrentConsentPolicy() returns the visitor's saved policy, or the site default when // defaultPolicy === true; either way policy.advertising is the effective decision. Anything else = no. function advertisingAllowed() { var mgr = win.consentPolicyManager; if (!mgr || typeof mgr.getCurrentConsentPolicy !== "function") return false; try { var current = mgr.getCurrentConsentPolicy(); if (!current || typeof current.defaultPolicy !== "boolean" || !current.policy) return false; return current.policy.advertising === true; } catch (e) { return false; } } // First-touch, non-PII attribution: allowlisted UTMs and paths only, never full URLs or other query keys. var stored = {}; try { stored = JSON.parse(win.sessionStorage.getItem("excel_contact_attr") || "{}") || {}; } catch (e) { stored = {}; } CONFIG.utmKeys.forEach(function (k) { var v = (params.get(k) || "").trim().slice(0, 200); if (!stored[k] && v && SAFE.test(v) && v.indexOf("@") === -1) stored[k] = v; }); if (!stored.landing_path) stored.landing_path = win.location.pathname; try { win.sessionStorage.setItem("excel_contact_attr", JSON.stringify(stored)); } catch (e) {} function isContactFrame(f) { try { var u = new URL(f.src, win.location.href); return u.origin === CONFIG.iframeOrigin && u.pathname === CONFIG.iframePath; } catch (e) { return false; } } function contactFrames() { var out = [], frames = doc.getElementsByTagName("iframe"); for (var i = 0; i < frames.length; i++) if (isContactFrame(frames[i])) out.push(frames[i]); return out; } function findIframe(source) { var frames = contactFrames(); for (var i = 0; i < frames.length; i++) if (frames[i].contentWindow === source) return frames[i]; return null; } function sendContext(frame) { if (!onContactPage(win) || !frame.contentWindow || !isContactFrame(frame)) return; var attribution = { source_path: win.location.pathname }; for (var k in stored) if (Object.prototype.hasOwnProperty.call(stored, k)) attribution[k] = stored[k]; // Exact target origin: if the frame is not (yet) the contact app, the browser drops the message. try { frame.contentWindow.postMessage({ type: "excel-contact-context", v: 1, attribution: attribution }, CONFIG.iframeOrigin); } catch (e) {} } // Proactively push context on install and on every iframe load (Wix renders the embed lazily). var watched = typeof WeakSet === "function" ? new WeakSet() : null; function watch() { contactFrames().forEach(function (f) { if (watched && !watched.has(f) && typeof f.addEventListener === "function") { watched.add(f); f.addEventListener("load", function () { sendContext(f); }); } sendContext(f); }); } var observer = null; if (typeof win.MutationObserver === "function" && doc.documentElement) { observer = new win.MutationObserver(function () { if (onContactPage(win)) watch(); }); observer.observe(doc.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ["src"] }); } var sent = {}; function onMessage(e) { if (!onContactPage(win)) return; // re-checked per event: SPA navigation away disables the bridge if (e.origin !== CONFIG.iframeOrigin || !e.source) return; var frame = findIframe(e.source); var d = e.data; if (!frame || !d || typeof d !== "object" || d.v !== 1) return; if (d.type === "excel-contact-ready") { sendContext(frame); return; } if (d.type !== "excel-contact" || d.event !== "lead" || !EVENT_ID.test(d.eventId)) return; // Consent is re-read now; blocked Leads are dropped, never queued or replayed. if (suppressed() || !advertisingAllowed()) return; if (typeof win.fbq !== "function") return; var key = "excel_lead_" + d.eventId; try { if (sent[key] || win.sessionStorage.getItem(key)) return; } catch (e2) { if (sent[key]) return; } sent[key] = true; try { win.sessionStorage.setItem(key, "1"); } catch (e3) {} win.fbq("trackSingle", CONFIG.pixelId, "Lead", { content_category: "project_inquiry" }, { eventID: d.eventId }); } win.addEventListener("message", onMessage); var state = { active: true, handler: onMessage, observer: observer }; win[KEY] = state; watch(); return state; } if (typeof module !== "undefined" && module.exports) module.exports = { install: install, CONFIG: CONFIG }; else if (root && root.document) install(root); })(typeof window !== "undefined" ? window : undefined);