PageSourceSearch

https://www.mylabourbase.co.uk/assets/Broadcasts-Vl9mpH9R.js

js mylabourbase.co.uk collected 2026-10-02 02:09:54 UTC 11,298 bytes, 16 lines download raw bytes

1import{i as d,r as w,u as b,j as e,H as f,Q as g,m as n,B as x,k as p,S as i,a as o,l as c,G as l,n as v,P as N,R as k,o as S,T as C,w as A,f as B,v as I}from"./index-BQaWcl4b.js";import{b as P}from"./broadcasts-read-receipts-EF9M3TuA.js";import{U as m}from"./users-DEvELi02.js";import{E as u}from"./eye-N1eL-I_9.js";import{B as R}from"./bell-C_uTew4h.js";import{T as M}from"./triangle-alert-CRqzJ59S.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const y=d("CheckCheck",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]);/**
7 * @license lucide-react v0.462.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const W=d("CloudRain",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v6",key:"1j4efv"}],["path",{d:"M8 14v6",key:"17c4r9"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]);/**
12 * @license lucide-react v0.462.0 - ISC
13 *
14 * This source code is licensed under the ISC license.
15 * See the LICENSE file in the root directory of this source tree.
16 */const j=d("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),T="/assets/broadcasts-compose-hOf1NLZ-.webp",O=[{number:"01",title:"Open Broadcasts From Your Project",description:"Tap Broadcasts on the project home and you're looking at a live audience — every worker signed into the project in the last 14 days. Past broadcasts sit underneath with a read percentage so you can see what's landed and what hasn't.",bullets:[{icon:m,text:"Live audience pulled from the last 14 days of attendance"},{icon:u,text:"Read percentage on every past broadcast"},{icon:g,text:"One tap to start a new broadcast"}],image:k},{number:"02",title:"Compose Your Message",description:"Type a title and a short message. Hit Continue and it goes out as a push notification and an in-app alert at the same time — no group chats, no WhatsApp threads, no missed messages.",bullets:[{icon:R,text:"Push notification straight to every worker's phone"},{icon:j,text:"In-app alert pinned on their home screen"},{icon:S,text:"AI assist to clean up your wording in one tap"}],image:T},{number:"03",title:"Track Who's Read It",description:"Every worker has to tap 'I've read this' before they can keep using the app — so a read receipt actually means read. Open the report to see exactly who has and who hasn't, with names, trades and timestamps.",bullets:[{icon:y,text:"Per-worker read receipts with name, trade and timestamp"},{icon:C,text:"Workers locked out of the app until they acknowledge"},{icon:u,text:"Read / Unread tabs so you know exactly who to chase"}],image:P}],E=[{icon:A,title:"Chase Daily Project Images",description:"One tap to remind everyone on site to upload today's progress photos before they sign out."},{icon:W,title:"Weather & Site Closures",description:"Site shut tomorrow? Tell every worker booked on the job in seconds — and prove they got the message."},{icon:B,title:"Start-Time Changes",description:"Pushing the start back to 8am or moving the gate? Hits every active worker before they leave the house."},{icon:M,title:"Urgent Safety Reminder",description:"Saw something on site that needs flagging? Send a same-day reminder with mandatory acknowledgement."}],L=[{icon:m,title:"Audience Always Current",description:"Only workers signed into the project in the last 14 days get the message — never the lads who left a month ago."},{icon:y,title:"Mandatory Acknowledgement",description:"Workers can't keep using the app until they tap 'I've read this'. A read receipt means read, not delivered."},{icon:I,title:"Proof Of Communication",description:"Every broadcast is timestamped and stored against the project — your audit trail when something goes wrong."},{icon:j,title:"Zero WhatsApp Chaos",description:"No group chats with old numbers. No missed updates. O
16ne channel, every worker, every time."}],z=({step:s,index:r})=>{const t=r%2===1;return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-10 lg:gap-16 items-center",children:[e.jsxs("div",{className:`min-w-0 ${t?"md:order-last":""}`,children:[e.jsx("span",{className:"text-6xl md:text-7xl font-black text-primary/10 leading-none",children:s.number}),e.jsx("h3",{className:"text-xl sm:text-2xl md:text-3xl font-bold mt-2 mb-4",children:s.title}),e.jsx("p",{className:"text-base sm:text-lg text-muted-foreground mb-6 max-w-lg",children:s.description}),e.jsx("ul",{className:"space-y-3",children:s.bullets.map(({icon:a,text:h})=>e.jsxs("li",{className:"flex items-center gap-3 text-sm sm:text-base text-foreground",children:[e.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(a,{className:"h-4 w-4 text-primary"})}),h]},h))})]}),e.jsx(n.div,{initial:{opacity:0,x:t?-30:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:`relative flex justify-center ${t?"md:justify-start":"md:justify-end"} min-w-0`,children:e.jsxs("div",{className:"relative w-full max-w-xs sm:max-w-sm min-w-0",children:[e.jsx("img",{src:s.image,alt:s.title,className:"w-full h-auto drop-shadow-2xl rounded-2xl",loading:"lazy"}),e.jsx("div",{className:"absolute -z-10 bg-gradient-to-br from-primary/20 via-transparent to-primary/10 rounded-3xl blur-2xl top-0 left-0 right-0 bottom-0"})]})})]})},Y=()=>{const[s,r]=w.useState(!1);return b({title:"Broadcasts — Reach Every Worker On Site In Seconds | LabourBase",description:"Send a one-tap broadcast to every worker signed into your project in the last 2 weeks. Push notification, in-app alert and mandatory read receipt — built into LabourBase.",canonical:"https://www.mylabourbase.co.uk/broadcasts"}),e.jsxs("div",{className:"min-h-screen bg-background overflow-x-hidden",children:[e.jsx(f,{}),e.jsxs("main",{className:"pt-14 md:pt-16",children:[e.jsxs("section",{id:"broadcasts-hero",className:"relative bg-background px-4 sm:px-6 lg:px-12 py-20 sm:py-28 lg:py-36 overflow-hidden",children:[e.jsx("div",{className:"absolute z-0 bg-gradient-to-br from-primary/5 via-transparent to-transparent top-0 left-0 right-0 bottom-0"}),e.jsxs("div",{className:"relative z-10 max-w-7xl mx-auto text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-semibold mb-6 uppercase tracking-wider",children:[e.jsx(g,{className:"w-3.5 h-3.5"}),"Project Comms"]}),e.jsxs("h1",{className:"text-5xl sm:text-6xl lg:text-7xl font-bold tracking-tight mb-6",children:["Reach every worker on site,"," ",e.jsx("span",{className:"gradient-text",children:"in seconds"})]}),e.jsx("p",{className:"text-xl sm:text-2xl font-light text-muted-foreground max-w-3xl mx-auto mb-4",children:"One-tap broadcasts to every worker signed into the project in the last 2 weeks. Push notification, in-app alert, mandatory read receipt."}),e.jsx("p",{className:"text-base sm:text-lg text-muted-foreground/80 max-w-2xl mx-auto mb-10",children:'No group chats. No old numbers. No "I never got that message".'}),e.jsx(n.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},children:e.jsxs(x,{size:"lg",onClick:()=>r(!0),children:["Get Started Free",e.jsx(p,{className:"w-4 h-4 ml-1"})]})})]})]}),e.jsxs(i,{id:"broadcasts-how",children:[e.jsxs("div",{className:"text-center mb-10 md:mb-16",children:[e.jsxs(o,{className:"text-center",children:["How A ",e.jsx("span",{className:"gradient-text",children:"Broadcast"})," Works"]}),e.jsx(c,{children:"From compose to confirmed read — three steps, under thirty seconds."})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:O.map((t,a)=>e.jsx(z,{step:t,index:a},t.number))})]}),e.jsx(i,{id:"broadcasts-audience",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs(l,{className:"text-center p-8 md:p-12",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-14 h-14 rounded-2xl bg-primary/10 text-primary mb-5",children:e.jsx(m,{className:"w-7 h-7"})}),e.jsxs("h2",{className:"text-2xl md:text-4xl font-bold mb-4",children:["The audience is ",e.jsx("span",{className:"gradient-text",children:"always current"})]}),e.jsxs("p",{className:"text-base sm:text-lg text-muted-foreground max-w-2xl mx-auto",children:["Every broadcast goes to workers with attendance on the project in the last",e.jsx("span",{className:"text-foreground font-semibold",children:" 14 days"})," — today's crew, yesterday's crew, and the lads who were on last week. Nobody who finished a month ago, nobody you have to manually add. The list looks after itself."]})]})})}),e.jsxs(i,{id:"broadcasts-use-cases",children:[e.jsxs("div",{className:"text-center mb-8 md:mb-12",children:[e.jsxs(o,{className:"text-center",children:["Built For ",e.jsx("span",{className:"gradient-text",children:"Real Site Days"})]}),e.jsx(c,{children:"The messages site managers send every week — without the WhatsApp chaos."})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6",children:E.map((t,a)=>e.jsx(n.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:.1+a*.08},children:e.jsxs(l,{hover:!0,className:"h-full text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-xl bg-primary/10 text-primary mb-4",children:e.jsx(t.icon,{className:"w-6 h-6"})}),e.jsx("h3",{className:"card-title mb-2",children:t.title}),e.jsx("p",{className:"card-description",children:t.description})]})},t.title))})]}),e.jsxs(i,{id:"broadcasts-benefits",children:[e.jsxs("div",{className:"text-center mb-8 md:mb-12",children:[e.jsxs(o,{className:"text-center",children:["Why It ",e.jsx("span",{className:"gradient-text",children:"Beats WhatsApp"})]}),e.jsx(c,{children:"A real comms channel for your project — with a real audit trail."})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6",children:L.map((t,a)=>e.jsx(n.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:.1+a*.08},children:e.jsxs(l,{hover:!0,className:"h-full text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-xl bg-primary/10 text-primary mb-4",children:e.jsx(t.icon,{className:"w-6 h-6"})}),e.jsx("h3",{className:"card-title mb-2",children:t.title}),e.jsx("p",{className:"card-description",children:t.description})]})},t.title))})]}),e.jsx(i,{id:"broadcasts-cta",className:"text-center",children:e.jsxs(n.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:[e.jsxs(o,{className:"text-center",children:["Send Your First Broadcast ",e.jsx("span",{className:"gradient-text",children:"Today"})]}),e.jsx(c,{className:"mb-8",children:"Join LabourBase and reach every worker on site with one tap."}),e.jsxs(x,{size:"lg",onClick:()=>r(!0),children:["Get Started Free",e.jsx(p,{className:"w-4 h-4 ml-1"})]})]})})]}),e.jsx(v,{}),e.jsx(N,{open:s,onOpenChange:r})]})};export{Y as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.