1import { r as reactExports, j as jsxRuntimeExports } from "./vendor-react-em1ljm69.js"; 2import { a as useInternetIdentity } from "./vendor-ic-CYrLubFP.js"; 3import { c as useNavigate, L as Link } from "./vendor-router-YtkA8fm7.js"; 4import { b as blogPosts, B as BlogCard } from "./blogPosts-Dr5QBf23.js"; 5import { d as useSubscription, ab as useSEO, ae as SiteFooter } from "./index-Bp0STQHC.js"; 6import { T as TrendingUp, by as Rss, aM as ChevronRight, b8 as BookOpen } from "./vendor-DoRlLPMq.js"; 7const blogPageSchema = JSON.stringify({ 8 "@context": "https://schema.org", 9 "@type": "Blog", 10 name: "Tele-Blast Blog", 11 description: "Expert guides on SMS automation, lead follow-up, appointment reminders, and business communication tools for small businesses.", 12 url: "https://www.tele-blast.com/blog", 13 publisher: { 14 "@type": "Organization", 15 name: "Tele-Blast", 16 url: "https://www.tele-blast.com", 17 logo: { 18 "@type": "ImageObject", 19 url: "https://www.tele-blast.com/icons/icon-192.svg" 20 } 21 }, 22 blogPost: blogPosts.map((p) => ({ 23 "@type": "BlogPosting", 24 headline: p.title, 25 url: `https://www.tele-blast.com/blog/${p.slug}`, 26 datePublished: p.datePublished, 27 author: { "@type": "Organization", name: p.author } 28 })) 29}); 30const FEATURED_RESOURCES = [ 31 { 32 label: "View Pricing â $15/mo", 33 href: "/pricing", 34 accent: true, 35 isLink: true 36 }, 37 { 38 label: "Explore Features", 39 href: "/#features", 40 accent: false, 41 isLink: false 42 }, 43 { label: "Support Center", href: "/support", accent: false, isLink: true }, 44 { 45 label: "Affiliate Program", 46 href: "/affiliate-signup", 47 accent: false, 48 isLink: true 49 } 50]; 51function BlogPage() { 52 const navigate = useNavigate(); 53 const { login } = useInternetIdentity(); 54 const { subscriptionTier, isLoading: subLoading } = useSubscription(); 55 const [authInProgress, setAuthInProgress] = reactExports.useState(false); 56 const loginCalledRef = reactExports.useRef(false); 57 async function handleAuth() { 58 if (loginCalledRef.current || authInProgress) return; 59 loginCalledRef.current = true; 60 setAuthInProgress(true); 61 try { 62 await login(); 63 try { 64 sessionStorage.setItem("tele_blast_just_logged_in", "true"); 65 } catch { 66 } 67 if (!subLoading && subscriptionTier && subscriptionTier !== "none") { 68 navigate({ to: "/dashboard" }); 69 } else { 70 navigate({ to: "/pre-signup" }); 71 } 72 } catch { 73 } finally { 74 loginCalledRef.current = false; 75 setAuthInProgress(false); 76 } 77 } 78 useSEO({ 79 title: "Tele-Blast Blog | Cell Phone CRM, SMS Blast & Power Dialer Tips",
80 description: "Tele-Blast utilizes your cell phone & turns into your own personal business CRM. Expert guides on SMS broadcast, power dialer, and lead management.", 81 canonical: "https://www.tele-blast.com/blog", 82 ogTitle: "Tele-Blast Blog â Business Communication & SMS Automation Tips", 83 ogDescription: "Discover how SMS automation, automated follow-ups, and appointment reminders can save your business time and money.", 84 ogUrl: "https://www.tele-blast.com/blog", 85 ogType: "website", 86 ogImage: "https://www.tele-blast.com/og-image.png", 87 jsonLd: blogPageSchema 88 }); 89 return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-h-screen bg-background", children: [ 90 /* @__PURE__ */ jsxRuntimeExports.jsx( 91 "header", 92 { 93 className: "sticky top-0 z-40 border-b shadow-sm", 94 style: { 95 background: "oklch(0.22 0.12 264)", 96 borderColor: "oklch(0.28 0.12 264)" 97 }, 98 children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto px-4 sm:px-6 h-14 flex items-center justify-between gap-4", children: [
99 /* @__PURE__ */ jsxRuntimeExports.jsxs( 100 Link, 101 { 102 to: "/", 103 "data-ocid": "blog.nav.home_link", 104 className: "flex items-center gap-2 shrink-0", 105 children: [ 106 /* @__PURE__ */ jsxRuntimeExports.jsx( 107 "div", 108 { 109 className: "w-7 h-7 rounded flex items-center justify-center", 110 style: { background: "oklch(0.56 0.16 44)" }, 111 children: /* @__PURE__ */ jsxRuntimeExports.jsx(TrendingUp, { className: "w-4 h-4 text-white" }) 112 } 113 ), 114 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-base tracking-tight", children: "Tele-Blast" }) 115 ] 116 } 117 ), 118 /* @__PURE__ */ jsxRuntimeExports.jsxs("nav", { className: "hidden sm:flex items-center gap-6 text-sm font-medium flex-1 ml-8", children: [ 119 /* @__PURE__ */ jsxRuntimeExports.jsx( 120 Link, 121 { 122 to: "/", 123 className: "text-white/70 hover:text-white transition-colors duration-200", 124 children: "Home" 125 } 126 ),
127 /* @__PURE__ */ jsxRuntimeExports.jsx( 128 Link, 129 { 130 to: "/blog", 131 className: "text-white font-semibold", 132 style: { color: "oklch(0.75 0.16 44)" }, 133 children: "Blog" 134 } 135 ), 136 /* @__PURE__ */ jsxRuntimeExports.jsx( 137 Link, 138 { 139 to: "/pricing", 140 className: "text-white/70 hover:text-white transition-colors duration-200", 141 children: "Pricing" 142 } 143 ), 144 /* @__PURE__ */ jsxRuntimeExports.jsx( 145 Link, 146 { 147 to: "/support", 148 className: "text-white/70 hover:text-white transition-colors duration-200", 149 children: "Support" 150 } 151 ), 152 /* @__PURE__ */ jsxRuntimeExports.jsx( 153 Link, 154 { 155 to: "/affiliate-signup", 156 className: "text-white/70 hover:text-white transition-colors duration-200", 157 children: "Affiliate" 158 } 159 ) 160 ] }),
161 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [ 162 /* @__PURE__ */ jsxRuntimeExports.jsx( 163 "button", 164 { 165 type: "button", 166 onClick: handleAuth, 167 disabled: authInProgress, 168 "data-ocid": "blog.nav.login_button", 169 className: "text-sm font-medium text-white/70 hover:text-white px-3 py-2 transition-colors duration-200 min-h-[40px] disabled:opacity-60", 170 children: authInProgress ? "Openingâ¦" : "Log In" 171 } 172 ), 173 /* @__PURE__ */ jsxRuntimeExports.jsx( 174 "button", 175 { 176 type: "button", 177 onClick: () => navigate({ to: "/pre-signup" }), 178 "data-ocid": "blog.nav.cta_button", 179 className: "px-4 py-2 rounded-lg text-white text-sm font-semibold min-h-[40px] transition-all duration-200 hover:opacity-90 active:scale-95", 180 style: { background: "oklch(0.56 0.16 44)" }, 181 children: "Get Started" 182 } 183 ) 184 ] }) 185 ] }) 186 } 187 ), 188 /* @__PURE__ */ jsxRuntimeExports.jsx( 189 "section", 190 { 191 className: "py-16 sm:py-20 text-white", 192 style: { 193 background: "linear-gradient(160deg, oklch(0.22 0.12 264) 0%, oklch(0.18 0.14 264) 100%)" 194 }, 195 children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto px-4 sm:px-6 text-center", children: [
196 /* @__PURE__ */ jsxRuntimeExports.jsxs( 197 "div", 198 { 199 className: "inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-xs font-medium mb-6 border", 200 style: { 201 background: "oklch(0.56 0.16 44 / 0.18)", 202 border: "1px solid oklch(0.56 0.16 44 / 0.3)", 203 color: "oklch(0.82 0.14 44)" 204 }, 205 children: [ 206 /* @__PURE__ */ jsxRuntimeExports.jsx(Rss, { className: "w-3.5 h-3.5" }), 207 "Small Business Resources" 208 ] 209 } 210 ), 211 /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-4xl sm:text-5xl font-extrabold tracking-tight mb-5 leading-tight", children: "Tele-Blast Blog â Cell Phone CRM & SMS Blast Platform" }), 212 /* @__PURE__ */ jsxRuntimeExports.jsxs( 213 "p", 214 { 215 className: "text-lg sm:text-xl max-w-2xl mx-auto leading-relaxed", 216 style: { color: "oklch(0.98 0 0 / 0.65)" }, 217 children: [ 218 "Expert guides on", 219 " ",
220 /* @__PURE__ */ jsxRuntimeExports.jsx( 221 "a", 222 { 223 href: "/blog/sms-broadcast-automation", 224 className: "underline underline-offset-2 hover:opacity-80 transition-opacity", 225 style: { color: "oklch(0.82 0.14 44)" }, 226 children: "SMS automation" 227 } 228 ), 229 ", lead follow-ups, and business communication tools that actually work for sales teams." 230 ] 231 } 232 ) 233 ] }) 234 } 235 ), 236 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-muted/40 border-b border-border", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-6xl mx-auto px-4 sm:px-6 py-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs( 237 "nav", 238 { 239 className: "flex items-center gap-1 text-sm text-muted-foreground", 240 "aria-label": "Breadcrumb", 241 children: [ 242 /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/", className: "hover:text-foreground transition-colors", children: "Home" }),
243 /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "w-3.5 h-3.5" }), 244 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-foreground font-medium", children: "Blog" }) 245 ] 246 } 247 ) }) }), 248 /* @__PURE__ */ jsxRuntimeExports.jsxs("main", { className: "max-w-6xl mx-auto px-4 sm:px-6 py-12 sm:py-16", children: [ 249 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 mb-10", children: [ 250 /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpen, { className: "w-5 h-5 text-accent" }), 251 /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-2xl font-bold text-foreground", children: "Latest Articles" }), 252 /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-auto text-sm text-muted-foreground", children: [ 253 blogPosts.length, 254 " articles" 255 ] }) 256 ] }), 257 /* @__PURE__ */ jsxRuntimeExports.jsx( 258 "div", 259 { 260 "data-ocid": "blog.list", 261 className: "grid grid-cols-1 sm:grid-cols-2 gap-6", 262 children: blogPosts.map((post, i) => /* @__PURE__ */ jsxRuntimeExports.jsx( 263 BlogCard, 264 { 265 title: post.title, 266 excerpt: post.excerpt, 267 slug: post.slug, 268 date: post.datePublished, 269 readTime: post.readTime, 270 author: post.author, 271 index: i 272 }, 273 post.id 274 )) 275 } 276 ),
277 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-12 grid grid-cols-1 sm:grid-cols-2 gap-6", children: [ 278 /* @__PURE__ */ jsxRuntimeExports.jsxs("figure", { className: "rounded-2xl overflow-hidden shadow-md", children: [ 279 /* @__PURE__ */ jsxRuntimeExports.jsx( 280 "img", 281 { 282 src: "/assets/generated/sales-agent-cell-phone-crm.dim_800x600.jpg", 283 alt: "Sales agent using cell phone CRM to manage leads and SMS blast campaigns", 284 className: "w-full h-48 object-cover object-center", 285 loading: "lazy", 286 width: "800", 287 height: "300" 288 } 289 ), 290 /* @__PURE__ */ jsxRuntimeExports.jsx("figcaption", { className: "sr-only", children: "Sales agent using Tele-Blast cell phone CRM" }) 291 ] }), 292 /* @__PURE__ */ jsxRuntimeExports.jsxs("figure", { className: "rounded-2xl overflow-hidden shadow-md", children: [ 293 /* @__PURE__ */ jsxRuntimeExports.jsx( 294 "img", 295 { 296 src: "/assets/generated/sales-rep-mobile-crm-calls.dim_800x600.jpg", 297 alt: "Professional sales representative using mobile CRM on smartphone for power dialer and lead management", 298 className: "w-full h-48 object-cover object-center", 299 loading: "lazy", 300 width: "800", 301 height: "300" 302 } 303 ),
304 /* @__PURE__ */ jsxRuntimeExports.jsx("figcaption", { className: "sr-only", children: "Sales representative using Tele-Blast mobile CRM" }) 305 ] }) 306 ] }), 307 /* @__PURE__ */ jsxRuntimeExports.jsxs( 308 "div", 309 { 310 className: "mt-8 rounded-2xl p-8 border", 311 style: { 312 background: "oklch(0.22 0.12 264 / 0.04)", 313 borderColor: "oklch(0.22 0.12 264 / 0.1)" 314 }, 315 "data-ocid": "blog.featured_resources", 316 children: [ 317 /* @__PURE__ */ jsxRuntimeExports.jsx( 318 "h2", 319 { 320 className: "text-lg font-bold mb-2", 321 style: { color: "oklch(0.22 0.12 264)" }, 322 children: "Explore Tele-Blast" 323 } 324 ), 325 /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground mb-6", children: "Power Dialer, SMS Blast & CRM for sales teams â starting at $15/mo." }), 326 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-3", children: FEATURED_RESOURCES.map( 327 ({ label, href, accent, isLink }) => isLink ? /* @__PURE__ */ jsxRuntimeExports.jsx( 328 Link, 329 { 330 to: href, 331 className: "inline-flex items-center px-4 py-2 rounded-lg text-sm font-semibold transition-all duration-200 hover:opacity-90 active:scale-95", 332 style: accent ? { background: "oklch(0.56 0.16 44)", color: "white" } : { 333 background: "oklch(0.22 0.12 264 / 0.08)", 334 color: "oklch(0.22 0.12 264)", 335 border: "1px solid oklch(0.22 0.12 264 / 0.15)" 336 }, 337 "data-ocid": `blog.resources.${label.toLowerCase().replace(/[^a-z0-9]+/g, "_")}`, 338 children: label 339 }, 340 label 341 ) : /* @__PURE__ */ jsxRuntimeExports.jsx( 342 "a", 343 { 344 href, 345 className: "inline-flex items-center px-4 py-2 rounded-lg text-sm font-semibold transition-all duration-200 hover:opacity-90 active:scale-95", 346 style: { 347 background: "oklch(0.22 0.12 264 / 0.08)", 348 color: "oklch(0.22 0.12 264)", 349 border: "1px solid oklch(0.22 0.12 264 / 0.15)" 350 }, 351 "data-ocid": `blog.resources.${label.toLowerCase().replace(/[^a-z0-9]+/g, "_")}`, 352 children: label 353 }, 354 label 355 ) 356 ) }) 357 ] 358 } 359 ) 360 ] }), 361 /* @__PURE__ */ jsxRuntimeExports.jsx( 362 "section", 363 { 364 className: "py-14", 365 style: { 366 background: "linear-gradient(160deg, oklch(0.22 0.12 264) 0%, oklch(0.18 0.14 264) 100%)" 367 }, 368 children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-2xl mx-auto px-4 sm:px-6 text-center", children: [
369 /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-2xl sm:text-3xl font-bold text-white mb-4", children: "Ready to Automate Your Business Communication?" }), 370 /* @__PURE__ */ jsxRuntimeExports.jsx( 371 "p", 372 { 373 className: "mb-8 leading-relaxed", 374 style: { color: "oklch(0.98 0 0 / 0.65)" }, 375 children: "Join sales teams saving 5â10 hours every week with Tele-Blast power dialer, SMS blast, and CRM pipeline." 376 } 377 ), 378 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col sm:flex-row items-center justify-center gap-3", children: [ 379 /* @__PURE__ */ jsxRuntimeExports.jsx( 380 "button", 381 { 382 type: "button", 383 onClick: () => navigate({ to: "/pre-signup" }), 384 "data-ocid": "blog.cta.primary_button", 385 className: "inline-flex items-center gap-2 px-6 py-3 rounded-xl text-white font-semibold hover:opacity-90 transition-colors text-base", 386 style: { background: "oklch(0.56 0.16 44)" }, 387 children: "Get Started â $15/mo" 388 } 389 ),
390 /* @__PURE__ */ jsxRuntimeExports.jsx( 391 Link, 392 { 393 to: "/pricing", 394 className: "inline-flex items-center gap-2 px-6 py-3 rounded-xl font-semibold text-base transition-colors hover:bg-white/15", 395 style: { 396 color: "oklch(0.98 0 0 / 0.8)", 397 border: "1.5px solid oklch(0.98 0 0 / 0.25)" 398 }, 399 children: "View Pricing" 400 } 401 ) 402 ] }) 403 ] }) 404 } 405 ), 406 /* @__PURE__ */ jsxRuntimeExports.jsx(SiteFooter, {}) 407 ] }); 408} 409export { 410 BlogPage as default 411};
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.