{"id":1189,"date":"2026-04-22T15:49:43","date_gmt":"2026-04-22T15:49:43","guid":{"rendered":"https:\/\/downtownforwardstl.org\/?page_id=1189"},"modified":"2026-04-29T16:04:28","modified_gmt":"2026-04-29T16:04:28","slug":"dashboard","status":"publish","type":"page","link":"https:\/\/downtownforwardstl.org\/index.php\/dashboard\/","title":{"rendered":"Dashboard"},"content":{"rendered":"\n<!-- Downtown Forward STL Dashboard -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;600;700&#038;family=Jost:wght@600;700&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Jost:wght@400;600;700&family=DM+Sans:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap');\n\n#dtf-wrap *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}\n#dtf-wrap{font-family:'DM Sans',sans-serif;max-width:1400px;margin:0 auto;padding:0 0 60px}\n#dtf-wrap .dtf-sec{padding:0}\n\n\/* App Header *\/\n#dtf-wrap .dtf-app-header{background:#131931;padding:32px 40px 28px;margin:0;border-radius:10px 10px 0 0;border-bottom:1px solid rgba(255,255,255,.1)}\n#dtf-wrap .dtf-app-title{font-family:'Jost',sans-serif !important;font-size:2.8rem !important;font-weight:700 !important;color:#fff !important;margin:0 0 8px !important;text-align:center !important;line-height:1.2 !important}\n#dtf-wrap .dtf-app-sub{font-size:.9rem !important;color:rgba(255,255,255,.6) !important;text-align:center !important;margin:0 !important;line-height:1.5 !important}\n\n\/* Nav *\/\n#dtf-wrap .dtf-nav-wrap{position:relative}\n#dtf-wrap .dtf-nav{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:0 !important;margin:0 !important;background:#131931 !important;border-radius:0 !important;overflow:hidden !important}\n#dtf-wrap .dtf-card{padding:20px 24px !important;cursor:pointer !important;border-right:1px solid rgba(255,255,255,.08) !important;transition:background .2s !important;position:relative !important}\n#dtf-wrap .dtf-card:last-child{border-right:none !important}\n#dtf-wrap .dtf-card::after{content:\"\" !important;position:absolute !important;bottom:0 !important;left:0 !important;right:0 !important;height:3px !important;background:transparent !important;transition:background .2s !important}\n#dtf-wrap .dtf-card.on::after{background:#D91F3A !important}\n#dtf-wrap .dtf-card.on{background:rgba(255,255,255,.06) !important}\n#dtf-wrap .dtf-clabel{font-family:'Jost',sans-serif !important;font-size:.95rem !important;font-weight:700 !important;color:#fff !important;margin:0 0 4px !important}\n#dtf-wrap .dtf-cdesc{font-size:.78rem !important;color:rgba(255,255,255,.5) !important;margin:0 !important}\n\n\/* Hero *\/\n#dtf-wrap .dtf-hero{display:block !important;position:relative !important;width:100% !important;height:420px !important;background-size:cover !important;background-color:#131931 !important;margin:0 0 36px !important}\n#dtf-wrap .dtf-hero::before{content:\"\" !important;position:absolute !important;inset:0 !important;background:linear-gradient(to bottom,rgba(19,25,49,0) 30%,rgba(19,25,49,.7) 100%) !important}\n#dtf-wrap .dtf-hero-inner{position:absolute !important;bottom:0 !important;left:0 !important;padding:28px 36px !important}\n#dtf-wrap .dtf-hero-title{font-family:'Jost',sans-serif !important;font-size:clamp(1.6rem,3vw,2.2rem) !important;font-weight:700 !important;color:#fff !important;margin:0 0 6px !important}\n#dtf-wrap .dtf-hero-sub{font-size:.9rem !important;color:rgba(255,255,255,.75) !important;margin:0 !important}\n\n\/* Sections *\/\n#dtf-wrap .dtf-sec{display:none}\n#dtf-wrap .dtf-sec{opacity:0;transition:opacity .4s ease !important}\n#dtf-wrap .dtf-sec.dtf-visible{opacity:1 !important}\n\n\/* Filter buttons *\/\n#dtf-wrap .dtf-filters{display:flex !important;flex-wrap:wrap !important;gap:10px !important;margin:0 0 28px !important}\n#dtf-wrap .dtf-fb{border:2px solid #131931 !important;border-radius:100px !important;padding:7px 18px !important;font-size:.78rem !important;font-weight:700 !important;letter-spacing:.06em !important;text-transform:uppercase !important;cursor:pointer !important;background:#fff !important;color:#131931 !important;transition:all .2s !important}\n#dtf-wrap .dtf-fb.on{background:#D91F3A !important;border-color:#D91F3A !important;color:#fff !important}\n\n\/* Places grid *\/\n#dtf-wrap .dtf-grid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(240px,1fr)) !important;gap:22px !important}\n#dtf-wrap .dtf-pc{background:#fff !important;border-radius:8px !important;overflow:hidden !important;box-shadow:0 2px 12px rgba(19,25,49,.07) !important;transition:transform .18s,box-shadow .18s !important;text-decoration:none !important;color:inherit !important;display:block !important}\n#dtf-wrap .dtf-pc:hover{transform:translateY(-3px) !important;box-shadow:0 10px 28px rgba(19,25,49,.12) !important}\n#dtf-wrap .dtf-pc img{width:100% !important;height:200px !important;object-fit:cover !important;display:block !important}\n#dtf-wrap .dtf-noph{width:100% !important;height:200px !important;background:linear-gradient(135deg,#1a2f6e,#131931) !important}\n#dtf-wrap .dtf-pb{padding:14px 16px 16px !important}\n#dtf-wrap .dtf-pt{font-size:.65rem !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.1em !important;color:#888 !important;margin:0 0 5px !important}\n#dtf-wrap .dtf-pn{font-size:.95rem !important;font-weight:700 !important;color:#131931 !important;margin:0 0 5px !important;line-height:1.3 !important}\n#dtf-wrap .dtf-pa{font-size:.78rem !important;color:#aaa !important;margin:0 0 8px !important}\n#dtf-wrap .dtf-pr{font-size:.82rem !important;color:#555 !important;margin:0 0 5px !important}\n#dtf-wrap .dtf-pr .st{color:#f4a623 !important;margin-right:4px !important}\n#dtf-wrap .dtf-ps{font-size:.78rem !important;font-weight:600 !important;margin:0 0 8px !important}\n#dtf-wrap .dtf-ps.op{color:#2a9d56 !important}\n#dtf-wrap .dtf-ps.cl{color:#e63946 !important}\n#dtf-wrap .dtf-pl{font-size:.75rem !important;font-weight:700 !important;color:#D91F3A !important;text-transform:uppercase !important;letter-spacing:.06em !important;margin-top:8px !important}\n#dtf-wrap .dtf-msg{color:#131931 !important;padding:60px 20px !important;text-align:center !important;font-size:1.2rem !important;font-weight:600 !important;width:100% !important;font-family:'Jost',sans-serif !important;letter-spacing:.02em !important;grid-column:1\/-1 !important}\n#dtf-wrap .dtf-err{color:#e63946 !important;padding:40px 0 !important;text-align:center !important;width:100% !important}\n\n\/* Dev Tracker *\/\n#dtf-wrap .dtf-dev-stats{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:16px !important;margin:0 0 28px !important}\n#dtf-wrap .dtf-dev-stat{background:#131931 !important;border-radius:8px !important;padding:20px 24px !important;text-align:center !important}\n#dtf-wrap .dtf-dev-stat-num{font-family:'Jost',sans-serif !important;font-size:1.8rem !important;font-weight:700 !important;color:#fff !important;margin:0 0 4px !important}\n#dtf-wrap .dtf-dev-stat-lbl{font-size:.75rem !important;text-transform:uppercase !important;letter-spacing:.08em !important;color:rgba(255,255,255,.6) !important}\n#dtf-wrap .dtf-devgrid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(240px,1fr)) !important;gap:20px !important}\n#dtf-wrap .dtf-dc{background:#fff !important;border:1px solid #e8eaf0 !important;border-radius:8px !important;overflow:hidden !important;box-shadow:0 2px 12px rgba(19,25,49,.07) !important;transition:transform .18s,box-shadow .18s !important;display:flex !important;flex-direction:column !important;text-decoration:none !important;color:inherit !important;cursor:pointer !important}\n#dtf-wrap .dtf-dc:hover{transform:translateY(-3px) !important;box-shadow:0 10px 28px rgba(19,25,49,.12) !important}\n#dtf-wrap .dtf-dc-img{width:100% !important;height:180px !important;object-fit:cover !important;display:block !important;background:#d0d6e4 !important}\n#dtf-wrap .dtf-dev-body{padding:18px 20px 20px !important}\n#dtf-wrap .dtf-dev-top{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:6px !important;margin:0 0 8px !important}\n#dtf-wrap .dtf-dn{font-size:.9rem !important;font-weight:700 !important;color:#131931 !important;line-height:1.3 !important;word-break:normal !important}\n#dtf-wrap .dtf-dev-addr{font-size:.8rem !important;color:#888 !important;margin:0 0 5px !important}\n#dtf-wrap .dtf-dev-type{font-size:.8rem !important;color:#555 !important;margin:0 0 14px !important}\n#dtf-wrap .dtf-dev-bottom{display:flex !important;align-items:center !important;justify-content:space-between !important}\n#dtf-wrap .dtf-dev-cost{font-size:1rem !important;font-weight:700 !important;color:#131931 !important}\n#dtf-wrap .dtf-dev-meta{font-size:.75rem !important;color:#aaa !important}\n#dtf-wrap .dtf-dev-progress{margin:8px 0 0 !important;font-size:.72rem !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.06em !important;color:#2e4a8a !important}\n#dtf-wrap .dtf-badge{font-size:.6rem !important;font-weight:700 !important;padding:3px 6px !important;border-radius:4px !important;white-space:nowrap !important;text-transform:uppercase !important;letter-spacing:.03em !important;flex-shrink:0 !important}\n#dtf-wrap .dtf-badge.under-construction{background:#fff3cd !important;color:#7a5500 !important}\n#dtf-wrap .dtf-badge.proposed{background:#e8f0fe !important;color:#2e4a8a !important}\n#dtf-wrap .dtf-badge.completed{background:#d4edda !important;color:#1a5c2a !important}\n\n\/* Things To Do *\/\n#dtf-wrap .dtf-tgrid{display:flex !important;flex-direction:column !important;gap:20px !important}\n#dtf-wrap .dtf-tc{display:grid !important;grid-template-columns:2fr 3fr !important;border-radius:10px !important;overflow:hidden !important;background:#fff !important;border:1px solid #e8eaf0 !important;box-shadow:0 2px 12px rgba(19,25,49,.07) !important;text-decoration:none !important;color:inherit !important;transition:transform .2s,box-shadow .2s !important;min-height:380px !important}\n#dtf-wrap .dtf-tc:hover{transform:translateY(-3px) !important;box-shadow:0 10px 30px rgba(19,25,49,.14) !important}\n#dtf-wrap .dtf-tc-img{position:relative !important;background-size:cover;background-position:center;min-height:320px !important;height:100% !important}\n#dtf-wrap .dtf-tc-cat{position:absolute !important;top:14px !important;left:14px !important;background:#131931 !important;color:#fff !important;font-size:.68rem !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:.08em !important;padding:4px 10px !important;border-radius:4px !important}\n#dtf-wrap .dtf-tc-body{padding:28px 32px !important;display:flex !important;flex-direction:column !important;justify-content:center !important}\n#dtf-wrap .dtf-tc-name{font-family:'Jost',sans-serif !important;font-size:1.25rem !important;font-weight:700 !important;color:#131931 !important;margin:0 0 10px !important;line-height:1.2 !important}\n#dtf-wrap .dtf-tc-desc{font-size:.88rem !important;color:#555 !important;line-height:1.7 !important;margin:0 0 14px !important}\n#dtf-wrap .dtf-tc-addr{font-size:.78rem !important;color:#aaa !important;margin:0 0 14px !important}\n#dtf-wrap .dtf-tc-link{font-size:.78rem !important;font-weight:700 !important;color:#D91F3A !important;text-transform:uppercase !important;letter-spacing:.06em !important}\n\n\n\/* Hidden mapbox *\/\n#dtf-wrap #dtf-mapbox{display:none !important}\n\n\/* Arrow scroll hint *\/\n\n\/* \u2500\u2500 MOBILE \u2500\u2500 *\/\n@media(max-width:768px){\n  #dtf-wrap{padding:0 0 40px !important;margin-left:-15px !important;margin-right:-15px !important;width:calc(100% + 30px) !important}\n\n  \/* App header *\/\n  #dtf-wrap .dtf-app-header{padding:24px 16px 20px !important;border-radius:10px 10px 0 0 !important}\n  #dtf-wrap .dtf-app-title{font-size:1.8rem !important}\n  #dtf-wrap .dtf-app-sub{font-size:.8rem !important}\n\n  \/* Nav - 4 equal columns *\/\n  #dtf-wrap .dtf-nav{display:grid !important;grid-template-columns:repeat(3,1fr) !important;overflow-x:visible !important;padding:0 !important;gap:0 !important;background:#131931 !important}\n  #dtf-wrap .dtf-card{flex:none !important;padding:12px 3px !important;border-radius:0 !important;border-right:1px solid rgba(255,255,255,.08) !important;background:transparent !important;text-align:center !important;display:flex !important;align-items:center !important;justify-content:center !important;min-height:56px !important}\n  #dtf-wrap .dtf-card.on{background:rgba(255,255,255,.06) !important}\n  #dtf-wrap .dtf-card::after{border-radius:0 !important}\n  #dtf-wrap .dtf-clabel{font-size:.75rem !important;text-align:center !important;white-space:normal !important;line-height:1.3 !important;word-break:normal !important;hyphens:none !important}\n  #dtf-wrap .dtf-cdesc{display:none !important}\n\n\n  \/* Hero - taller, no gap *\/\n  #dtf-wrap .dtf-hero{height:280px !important;margin:0 0 20px !important}\n  #dtf-wrap .dtf-hero-title{font-size:1.4rem !important}\n  #dtf-wrap .dtf-hero-inner{padding:16px !important}\n\n  \/* Section padding *\/\n  \n  \/* Filters - wrap 2 rows *\/\n  #dtf-wrap .dtf-filters{overflow-x:visible !important;flex-wrap:wrap !important;gap:7px !important;margin:0 0 16px !important}\n  #dtf-wrap .dtf-fb{white-space:nowrap !important;padding:6px 12px !important;font-size:.72rem !important}\n\n  \/* Places - 2 col *\/\n  #dtf-wrap .dtf-grid{grid-template-columns:repeat(2,1fr) !important;gap:10px !important}\n  #dtf-wrap .dtf-pc img{height:140px !important}\n  #dtf-wrap .dtf-noph{height:140px !important}\n  #dtf-wrap .dtf-pn{font-size:.88rem !important}\n  #dtf-wrap .dtf-pa{font-size:.72rem !important}\n\n  \/* Dev stats - 3 col tight *\/\n  #dtf-wrap .dtf-dev-stats{gap:6px !important;margin:16px 0 16px !important}\n  #dtf-wrap .dtf-dev-stat{padding:14px 8px !important}\n  #dtf-wrap .dtf-dev-stat-num{font-size:1.3rem !important}\n  #dtf-wrap .dtf-dev-stat-lbl{font-size:.62rem !important;letter-spacing:.03em !important}\n\n  \/* Dev grid - 2 col *\/\n  #dtf-wrap .dtf-devgrid{grid-template-columns:repeat(2,1fr) !important;gap:10px !important}\n  #dtf-wrap .dtf-dc-img{height:120px !important}\n  #dtf-wrap .dtf-dev-body{padding:10px 12px 12px !important}\n  #dtf-wrap .dtf-dev-top{flex-direction:column !important;align-items:flex-start !important;gap:4px !important}\n  #dtf-wrap .dtf-dn{font-size:.82rem !important}\n  #dtf-wrap .dtf-dev-addr{font-size:.68rem !important}\n  #dtf-wrap .dtf-dev-type{font-size:.68rem !important;margin:0 0 8px !important}\n  #dtf-wrap .dtf-dev-cost{font-size:.85rem !important}\n  #dtf-wrap .dtf-dev-meta{font-size:.65rem !important}\n\n  \/* Things To Do - stacked full width *\/\n  #dtf-wrap .dtf-tc{grid-template-columns:1fr !important}\n  #dtf-wrap .dtf-tc-img{min-height:260px !important}\n  #dtf-wrap .dtf-tc-body{padding:16px !important}\n  #dtf-wrap .dtf-tgrid{gap:14px !important}\n  #dtf-wrap .dtf-tc-name{font-size:1.05rem !important}\n  #dtf-wrap .dtf-tc-desc{font-size:.84rem !important}\n\n}\n\n\/* Hero background images - hardcoded in CSS, no JS needed *\/\n#dtf-wrap .dtf-hero[data-tab=\"places\"]{background-image:url(https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Downtown-St.-Louis-Header_Citygarden.jpg);background-position:center 80%}\n#dtf-wrap .dtf-hero[data-tab=\"dev\"]{background-image:url(https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/vecteezy_construction-cranes-in-blue-sky-at-construction-site_5478812-scaled.jpg);background-position:center 45%}\n#dtf-wrap .dtf-hero[data-tab=\"things\"]{background-image:url(https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Ballpark-Village-St.-Louis-Header.jpg);background-position:center 65%}\n\n<\/style>\n\n<div id=\"dtf-wrap\">\n\n  <div class=\"dtf-app-header\">\n    <div class=\"dtf-app-title\">Downtown St. Louis Dashboard<\/div>\n    <div class=\"dtf-app-sub\">A live look at what&#8217;s happening downtown \u2014 places to visit, active development, and neighborhood trends.<\/div>\n  <\/div>\n\n  <div class=\"dtf-nav-wrap\">\n    <div class=\"dtf-nav\" id=\"dtf-nav\">\n      <div class=\"dtf-card on\" data-t=\"places\"><div class=\"dtf-cin\"><div class=\"dtf-clabel\">Explore Downtown<\/div><div class=\"dtf-cdesc\">Restaurants, bars &amp; more<\/div><\/div><\/div>\n      <div class=\"dtf-card\" data-t=\"things\"><div class=\"dtf-cin\"><div class=\"dtf-clabel\">Things To Do<\/div><div class=\"dtf-cdesc\">Attractions, events &amp; more<\/div><\/div><\/div>\n      <div class=\"dtf-card\" data-t=\"dev\"><div class=\"dtf-cin\"><div class=\"dtf-clabel\">Development Tracker<\/div><div class=\"dtf-cdesc\">Active projects downtown<\/div><\/div><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"dtf-hero\" id=\"dtf-hero\" style=\"background-image:url(https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Downtown-St.-Louis-Header_Citygarden.jpg);background-position:center 80%;background-size:cover;height:420px;position:relative;overflow:hidden;margin:0 0 36px 0\">\n    <div class=\"dtf-hero-inner\">\n      <div class=\"dtf-hero-title\" id=\"dtf-hero-title\">Explore Downtown<\/div>\n      <div class=\"dtf-hero-sub\" id=\"dtf-hero-sub\">Restaurants, bars, coffee shops, and more in Downtown St. Louis.<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- PLACES -->\n  <div class=\"dtf-sec\" id=\"dtf-sec-places\" style=\"display:block\">\n    <div class=\"dtf-filters\" id=\"dtf-filters\">\n      <button class=\"dtf-fb on\" data-type=\"restaurant\">Restaurants<\/button>\n      <button class=\"dtf-fb\" data-type=\"cafe\">Coffee<\/button>\n      <button class=\"dtf-fb\" data-type=\"bakery\">Bakery<\/button>\n      <button class=\"dtf-fb\" data-type=\"bar\">Bars<\/button>\n      <button class=\"dtf-fb\" data-type=\"night_club\">Nightlife<\/button>\n      <button class=\"dtf-fb\" data-type=\"lodging\">Hotels<\/button>\n    <\/div>\n    <div class=\"dtf-grid\" id=\"dtf-pgrid\"><div class=\"dtf-msg\">Loading places&#8230;<\/div><\/div>\n  <\/div>\n\n  <!-- THINGS TO DO -->\n  <div class=\"dtf-sec\" id=\"dtf-sec-things\" style=\"display:none\">\n    <div id=\"dtf-tgrid\" class=\"dtf-tgrid\"><\/div>\n  <\/div>\n\n  <!-- DEVELOPMENT -->\n  <div class=\"dtf-sec\" id=\"dtf-sec-dev\" style=\"display:none\">\n    <div class=\"dtf-dev-stats\">\n      <div class=\"dtf-dev-stat\"><div class=\"dtf-dev-stat-num\">$1.0B+<\/div><div class=\"dtf-dev-stat-lbl\">Completed Since 2019<\/div><\/div>\n      <div class=\"dtf-dev-stat\"><div class=\"dtf-dev-stat-num\">$360M+<\/div><div class=\"dtf-dev-stat-lbl\">Under Construction<\/div><\/div>\n      <div class=\"dtf-dev-stat\"><div class=\"dtf-dev-stat-num\">$3.1B+<\/div><div class=\"dtf-dev-stat-lbl\">Proposed<\/div><\/div>\n    <\/div>\n    <div class=\"dtf-filters\" id=\"dtf-dev-filters\">\n      <button class=\"dtf-dev-fb dtf-fb on\" data-status=\"completed\">Completed<\/button>\n      <button class=\"dtf-dev-fb dtf-fb\" data-status=\"under-construction\">Under Construction<\/button>\n      <button class=\"dtf-dev-fb dtf-fb\" data-status=\"proposed\">Proposed<\/button>\n    <\/div>\n    <div id=\"dtf-devgrid\" class=\"dtf-devgrid\"><div class=\"dtf-msg\">Loading projects&#8230;<\/div><\/div>\n  <\/div>\n  <\/div>\n\n  <div id=\"dtf-mapbox\" style=\"display:none;height:1px\"><\/div>\n\n<\/div>\n\n<script>\nvar dtfDevData = [\n  \/\/ COMPLETED\n  {name:\"Ballpark Village Phase 2\",url:\"https:\/\/www.stlballparkvillage.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/bpv-2.png\",address:\"Clark Ave.\",type:\"Residential, Office, Hotel, Retail\",neighborhood:\"Downtown\",size:\"700,000 SF\",cost:260000000,status:\"completed\",year:2020},\n  {name:\"Broadway Tower Renovation\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/0e51c949-7e6d-4cf5-adf7-8cc0eae85e4a_1140x641.jpg\",address:\"100 N. Broadway\",type:\"Office\",neighborhood:\"Downtown\",size:\"510,202 SF\",cost:18000000,status:\"completed\",year:2022},\n  {name:\"Ponce University\",url:\"https:\/\/www.atsu.edu\/missouri-school-of-dentistry-oral-health\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/maxresdefault.jpg\",address:\"2351 Market Street\",type:\"Medical College\",neighborhood:\"Downtown\",size:\"90,000 SF\",cost:17000000,status:\"completed\",year:2022},\n  {name:\"7th St. Revitalization\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/july-2025-final-7th-street-construction-19_1200xx8030-4528-0-826.jpg\",address:\"7th St. - Walnut to Washington\",type:\"Infrastructure\",neighborhood:\"Downtown\",size:\"6 Blocks\",cost:3700000,status:\"completed\",year:2024},\n  {name:\"Post-Dispatch Redevelopment\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Square-HQ-Saint-Louis-2021-Raw-840-copy.jpg\",address:\"900 N. Tucker Blvd.\",type:\"Office\",neighborhood:\"Downtown\",size:\"235,000 SF\",cost:70000000,status:\"completed\",year:2021},\n  {name:\"Peper Lofts\",url:\"https:\/\/www.peperlofts.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Peper01c.jpg\",address:\"701 N. 1st\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"52 Units\",cost:17000000,status:\"completed\",year:2019},\n  {name:\"Front Page Lofts\",url:\"https:\/\/frontpagelofts.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Night-photo-building-exterior-12-22-21-cropped-final-for-website-header-may-be-too-much-idk-scaled-1.jpg\",address:\"300 N. Tucker Blvd.\",type:\"Multifamily\",neighborhood:\"Downtown\",size:\"51 Units\",cost:18500000,status:\"completed\",year:2021},\n  {name:\"100 N Broadway Redevelopment\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/image.jpg\",address:\"100 N. Broadway\",type:\"Office\",neighborhood:\"Downtown\",size:\"510,000 SF\",cost:18000000,status:\"completed\",year:2021},\n  {name:\"Lofts at the Hupp\",url:\"https:\/\/www.loftsatthehupp.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/f5850fee09d85dec9c50bb241defb300-cc_ft_960.jpg\",address:\"1815 Locust St.\",type:\"Multifamily\",neighborhood:\"Downtown West\",size:\"70 Units\",cost:22000000,status:\"completed\",year:2021},\n  {name:\"Paincourt Lofts\",url:\"https:\/\/www.advantesgrp.com\/paincourtlofts\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/image-1.avif\",address:\"813 N. 2nd\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"10 Units\",cost:2500000,status:\"completed\",year:2022},\n  {name:\"Ballpark Heights\",url:\"https:\/\/www.ballparkheights.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/ballpark-heights.jpeg\",address:\"300 S. Broadway\",type:\"Multifamily\",neighborhood:\"Downtown\",size:\"78 Units\",cost:21000000,status:\"completed\",year:2022},\n  {name:\"MLS - CityPark\",url:\"https:\/\/www.stlcitysc.com\/stadium\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/st-louis-citypark-stadium-soccer-2022.jpg\",address:\"2100 Market St.\",type:\"Stadium\",neighborhood:\"Downtown West\",size:\"22,500 Seats\",cost:457800000,status:\"completed\",year:2022},\n  {name:\"Shell Building Hotel\",url:\"https:\/\/www.hilton.com\/en\/hotels\/stlcsht-home2-suites-st-louis-downtown\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Home2Suites-Tru_Shell_Exterior1_Campo-01.webp\",address:\"1221 Locust St.\",type:\"Hotel\",neighborhood:\"Downtown West\",size:\"191 Rooms\",cost:50000000,status:\"completed\",year:2022},\n  {name:\"Greeley Lofts\",url:\"https:\/\/www.advantesgrp.com\/greeleylofts\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/greeley-lofts-saint-louis-mo-primary-photo-1.avif\",address:\"618 N. 2nd\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"36 Units\",cost:15859000,status:\"completed\",year:2023},\n  {name:\"The Victor\",url:\"https:\/\/victorstl.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/0032-Enhanced-NR-Edit-copy-1920x1438-1.jpg\",address:\"1717 Olive St.\",type:\"Multifamily\",neighborhood:\"Downtown West\",size:\"384 Units\",cost:130000000,status:\"completed\",year:2023},\n  {name:\"21C Museum Hotel St. Louis\",url:\"https:\/\/21cmuseumhotels.com\/st-louis\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/21c-stl-home-hero.webp\",address:\"1528 Locust St.\",type:\"Hotel\",neighborhood:\"Downtown West\",size:\"173 Rooms\",cost:61000000,status:\"completed\",year:2023},\n  {name:\"Trader Lofts\",url:\"https:\/\/www.advantesgrp.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/801-N-2nd.png\",address:\"801-804 N. 2nd\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"25 Units\",cost:9500000,status:\"completed\",year:2024},\n  {name:\"Hoffman Lofts\",url:\"https:\/\/www.advantesgrp.com\/hoffmanlofts\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/909588fa6f262c934845aff88a0528c6.webp\",address:\"700 N. 2nd\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"21 Units\",cost:10371000,status:\"completed\",year:2024},\n  {name:\"Lofts at the Mac\",url:\"https:\/\/loftsatthemac.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/image-2.jpg\",address:\"1800 Washington Ave.\",type:\"Multifamily\",neighborhood:\"Downtown West\",size:\"56 Units\",cost:17000000,status:\"completed\",year:2024},\n  {name:\"11th and Spruce Apartments\",url:\"https:\/\/11thandspruceapts.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/IMG_8232-Enhanced-NR-Edit-2500x1667-1.jpg\",address:\"1014 Spruce St.\",type:\"Multifamily\",neighborhood:\"Downtown\",size:\"148 Units\",cost:34000000,status:\"completed\",year:2024},\n  {name:\"Globe Building Redevelopment\",url:\"https:\/\/www.globebuilding.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/maxresdefault-1.jpg\",address:\"710 N. Tucker Blvd.\",type:\"Office\",neighborhood:\"Downtown\",size:\"626,760 SF\",cost:34000000,status:\"completed\",year:2024},\n  {name:\"Six Cord Lofts\",url:\"https:\/\/www.sixcord.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/homepage-pic-2.webp\",address:\"1000 Wash. Ave.\",type:\"Multifamily\",neighborhood:\"Downtown\",size:\"213 Units\",cost:7000000,status:\"completed\",year:2025},\n  {name:\"Union Station Amusement\",url:\"https:\/\/www.stlouisunionstation.com\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/20250826_UnionStationCarnivalRides_0045.webp\",address:\"Union Station\",type:\"Amusement\",neighborhood:\"Downtown West\",size:\"3 Rides\",cost:15000000,status:\"completed\",year:2025},\n  {name:\"Old Judge Building\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",photo:\"https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Judge_Building_SLC_2025.jpg\",address:\"704-710 N. 2nd\",type:\"Multifamily\",neighborhood:\"Laclede Landing\",size:\"20 Units\",cost:13744000,status:\"completed\",year:2025},\n  \/\/ UNDER CONSTRUCTION\n  {name:\"Jefferson Arms\",url:\"https:\/\/www.jeffersonarmsresidences.com\",address:\"415 N. Tucker Blvd.\",type:\"Retail MF and Hotel\",neighborhood:\"Downtown West\",developer:\"Alterra International\",size:\"235 Units; 224 Hotel Rooms; 29K SF Retail\",cost:104000000,status:\"under-construction\"},\n  {name:\"505 Washington\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"505 Washington Ave.\",type:\"Office\",neighborhood:\"Downtown\",developer:\"Dr. Dan Cooke\",size:\"79,998 SF\",cost:4590000,status:\"under-construction\"},\n  {name:\"Food Hall\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"1122 Washington Ave.\",type:\"Food Hall\",neighborhood:\"Downtown\",developer:\"Oliver Properties\",size:\"9,000 SF\",cost:6000000,status:\"under-construction\"},\n  {name:\"Paul Brown Lofts\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"816 Olive\",type:\"Multifamily\",neighborhood:\"Downtown\",developer:\"Frank Zhang\",size:\"222 Units\",cost:10000000,status:\"under-construction\"},\n  {name:\"Bogen Lofts\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"1209 Washington Ave.\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"Oliver Properties\",size:\"125 Units\",cost:5000000,status:\"under-construction\"},\n  {name:\"411 N. 10th\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"1001 Locust Street\",type:\"Multifamily\",neighborhood:\"Downtown\",developer:\"Blackline\",size:\"60 Units\",cost:15500000,status:\"under-construction\"},\n  {name:\"Mansion House\",url:\"https:\/\/www.newandfound.com\/press\/breaking-ground-on-mansion-house-a-new-chapter-for-downtown-st-louis\",address:\"300 N. 4th\",type:\"Multifamily\",neighborhood:\"Downtown\",developer:\"New and Found\",size:\"400+ Units\",cost:195000000,status:\"under-construction\"},\n  {name:\"Rudman on the Park\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"1228 Washington Ave.\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"Oliver Properties\",size:\"72 Units\",cost:12400000,status:\"under-construction\"},\n  {name:\"US Bank Tower Lobby\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"700 Washington\",type:\"Office\",neighborhood:\"Downtown\",developer:\"MAP Prop. Holdings\",size:\"Lobby Refresh\",cost:8700000,status:\"under-construction\"},\n  \/\/ PROPOSED\n  {name:\"Convention Center Renovation Phase 2\",url:\"https:\/\/explorestlouis.com\/americas-center\/\",address:\"701 Convention Plaza\",type:\"Convention Center\",neighborhood:\"Downtown\",developer:\"Explore St. Louis\",size:\"Entryway Renovation\",cost:null,status:\"proposed\",progress:\"Budget Approved\"},\n  {name:\"Millenium Redevelopment\",url:\"https:\/\/www.archpark.org\/impact\/millennium-hotel-redevelopment\",address:\"200 S. 4th St.\",type:\"Office MF Retail\",neighborhood:\"Downtown\",developer:\"Cordish\",size:\"1.3 Million SF\",cost:670000000,status:\"proposed\",progress:\"Demo Underway\"},\n  {name:\"Edison Brothers Building - Hotel Renovation\",url:\"https:\/\/www.stltoday.com\/news\/local\/business\/article_713570b8-4c08-11ee-90b0-e3d11176a639.html\",address:\"400 S. 14th St.\",type:\"Hotel\",neighborhood:\"Downtown West\",developer:\"Midas Enterprises\",size:\"288 Rooms\",cost:50000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"Mark Twain Hotel\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"215 N. 9th\",type:\"Hotel\",neighborhood:\"Downtown\",developer:\"Campo Architects\",size:\"160 Rooms\",cost:null,status:\"proposed\",progress:\"Proposed\"},\n  {name:\"Chemical Building\",url:\"https:\/\/www.stltoday.com\/news\/local\/business\/inside-the-82-million-deal-to-redevelop-st-louis-chemical-building\/article_713570b8-4c08-11ee-90b0-e3d11176a639.html\",address:\"777 Olive St.\",type:\"Hotel, Multifamily\",neighborhood:\"Downtown\",developer:\"Uncertain\",size:\"240 Rooms\",cost:null,status:\"proposed\",progress:\"Under Contract\"},\n  {name:\"Gateway South Redevelopment\",url:\"https:\/\/good-developments.com\/gateway-south-stl\",address:\"812 S. 2nd St.\",type:\"Mixed-Use\",neighborhood:\"Downtown\",developer:\"Good Dev. Group\",size:\"Industrial; Office; Retail; MF\",cost:1200000000,status:\"proposed\",progress:\"Pre-Development\"},\n  {name:\"ATT Tower Redevelopment\",url:\"https:\/\/www.stltoday.com\/news\/local\/business\/article_1eb4d910-dcd9-11ef-a0ed-f391b5037b46.html\",address:\"909 Chestnut St.\",type:\"Mixed-Use\",neighborhood:\"Downtown\",developer:\"Charles Goldman\",size:\"600+ Apartments; Parking\",cost:300000000,status:\"proposed\",progress:\"Seeking Legislation\"},\n  {name:\"Wainwright Building\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"709 Chestnut\",type:\"Uncertain\",neighborhood:\"Downtown\",developer:\"Uncertain\",size:\"Uncertain\",cost:null,status:\"proposed\",progress:\"TBD\"},\n  {name:\"2101 Locust\",url:\"https:\/\/www.stlpr.org\/economy-business\/2024-10-23\/232-million-mixed-use-development-near-citypark-to-break-ground-next-year\",address:\"2101 Locust\",type:\"Office Space\",neighborhood:\"Downtown West\",developer:\"AHM Group\",size:\"30,000 SF\",cost:323000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"2109-2115 Locust\",url:\"https:\/\/www.stlpr.org\/economy-business\/2024-10-23\/232-million-mixed-use-development-near-citypark-to-break-ground-next-year\",address:\"2109-2115 Locust\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"AHM Group\",size:\"40-45 Units\",cost:323000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"Kimpton Hotel\",url:\"https:\/\/www.stltoday.com\/news\/local\/government-politics\/midtown-hotel-project-revived-after-st-louis-aldermen-cut-deal\/article_8b1531d4-f299-11ee-8286-cfad415fdf82.html\",address:\"2601 Market Street\",type:\"Hotel\",neighborhood:\"Downtown\",developer:\"Midas Hospitality\",size:\"175 Rooms\",cost:105000000,status:\"proposed\",progress:\"Fully Permitted\"},\n  {name:\"21st and Washington\",url:\"https:\/\/www.stlpr.org\/economy-business\/2024-10-23\/232-million-mixed-use-development-near-citypark-to-break-ground-next-year\",address:\"21st and Washington\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"AHM Group\",size:\"287 Units\",cost:323000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"2125 Locust\",url:\"https:\/\/www.stlpr.org\/economy-business\/2024-10-23\/232-million-mixed-use-development-near-citypark-to-break-ground-next-year\",address:\"2125 Locust\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"AHM Group\",size:\"60 Units\",cost:323000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"2100 Block of Wash. Ave.\",url:\"https:\/\/www.stlpr.org\/economy-business\/2024-10-23\/232-million-mixed-use-development-near-citypark-to-break-ground-next-year\",address:\"2100 Block of Wash. Ave.\",type:\"Multifamily\",neighborhood:\"Downtown West\",developer:\"AHM Group\",size:\"100 Units\",cost:323000000,status:\"proposed\",progress:\"Subsidy Approved\"},\n  {name:\"Last Hotel Refresh\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"1501 Washington\",type:\"Hotel\",neighborhood:\"Downtown West\",developer:\"Uncertain\",size:\"142 Rooms\",cost:null,status:\"proposed\",progress:\"Sold\"},\n  {name:\"St. Louis Place Lobby\",url:\"https:\/\/nextstl.com\/2022\/03\/downtown-development-roundup\/\",address:\"200 N. Broadway\",type:\"Office\",neighborhood:\"Downtown\",developer:\"Beacon Capital Partners\",size:\"Lobby Refresh\",cost:null,status:\"proposed\",progress:\"Design in Progress\"},\n  {name:\"Brickline Greenway (Downtown Segments)\",url:\"https:\/\/greatriversgreenway.org\/brickline\/\",address:\"Market St.\",type:\"Infrastructure\",neighborhood:\"Downtown\",developer:\"Great Rivers Greenway\",size:\"1.25 Miles\",cost:100000000,status:\"proposed\",progress:\"Design in Progress\"}\n];\n\n<\/script>\n\n<script>\n\/* Downtown Forward STL Dashboard - Clean JS *\/\n\nvar dtfNone = \"none\";\nvar dtfAmp = String.fromCharCode(38);\nvar dtfSVBase = \"https:\/\/maps.googleapis.com\/maps\/api\/streetview?size=600x300\";\nvar dtfSVKey = \"AIzaSyDSm8TH8r2RMoXJTe01u7JZNfvX58J1108\";\n\n\/* \u2500\u2500 Tab switching \u2500\u2500 *\/\ndocument.addEventListener('click', function(e) {\n  var el = e.target;\n  for (var i = 0; i !== 5; i++) {\n    if (!el) { break; }\n    if (el === document) { break; }\n    var tab = el.getAttribute ? el.getAttribute('data-t') : null;\n    if (tab) { e.preventDefault(); dtfShowTab(tab); return; }\n    el = el.parentNode;\n  }\n  var btn = e.target;\n  if (btn) {\n    if (btn.classList) {\n      if (btn.classList.contains('dtf-fb')) {\n        var parentFilters = btn.parentNode; parentFilters.querySelectorAll('.dtf-fb').forEach(function(b){ b.classList.remove('on'); });\n        btn.classList.add('on');\n        dtfLoadPlaces(btn.getAttribute('data-type'));\n      }\n    }\n  }\n}, true);\n\nfunction dtfShowTab(tab) {\n  document.querySelectorAll('#dtf-wrap .dtf-card').forEach(function(c){ c.classList.remove('on'); });\n  var activeCard = document.querySelector('#dtf-wrap .dtf-card[data-t=\"' + tab + '\"]');\n  if (activeCard) { activeCard.classList.add('on'); }\n  var tabs = ['places', 'dev', 'things'];\n  tabs.forEach(function(t) {\n    var sec = document.getElementById('dtf-sec-' + t);\n    if (sec) {\n      if (t === tab) {\n        sec.style.display = 'block';\n        setTimeout(function(){ sec.classList.add('dtf-visible'); }, 20);\n      } else {\n        sec.style.display = dtfNone;\n        sec.classList.remove('dtf-visible');\n      }\n    }\n  });\n  \/\/ When returning to places tab, reload with current type\n  if (tab === 'places') {\n    var activeBtn = document.querySelector('#dtf-wrap .dtf-fb.on');\n    var currentType = activeBtn ? activeBtn.getAttribute('data-type') : 'restaurant';\n    dtfLoadPlaces(currentType);\n  }\n\n  var hero = document.getElementById('dtf-hero');\n  if (hero) {\n    if (dtfHeroData[tab]) {\n      hero.style.backgroundImage = 'url(' + dtfHeroData[tab].img + ')';\n      hero.style.backgroundPosition = dtfHeroData[tab].pos;\n      var heroTitle = document.getElementById('dtf-hero-title');\n      var heroSub = document.getElementById('dtf-hero-sub');\n      if (heroTitle) { heroTitle.textContent = dtfHeroData[tab].title; }\n      if (heroSub) { heroSub.textContent = dtfHeroData[tab].sub; }\n    }\n  }\n}\n\n\/* \u2500\u2500 Hero data \u2500\u2500 *\/\nvar dtfHeroData = {\n  places: {\n    img: 'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Downtown-St.-Louis-Header_Citygarden.jpg',\n    pos: 'center 80%',\n    title: 'Explore Downtown',\n    sub: 'Restaurants, bars, coffee shops, and more in Downtown St. Louis.'\n  },\n  dev: {\n    img: 'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/vecteezy_construction-cranes-in-blue-sky-at-construction-site_5478812-scaled.jpg',\n    pos: 'center 45%',\n    title: 'Development Tracker',\n    sub: 'Current and upcoming development projects in Downtown St. Louis.'\n  },\n  things: {\n    img: 'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Ballpark-Village-St.-Louis-Header.jpg',\n    pos: 'center 60%',\n    title: 'Things To Do Downtown',\n    sub: 'Attractions, museums, and entertainment in Downtown St. Louis.'\n  }\n};\n\n\n\/* \u2500\u2500 Places \u2500\u2500 *\/\nvar DTL = {lat: 38.6245, lng: -90.1970};\nvar DTL_NORTH = {lat: 38.6270, lng: -90.1994};\nvar DTL_SOUTH = {lat: 38.6210, lng: -90.1940};\nvar dtfCache = {};\nvar dtfSvc = null;\nvar dtfCurrentType = null;\n\nvar EXCLUDE = ['McDonalds','Burger King','Wendys','Taco Bell','KFC','Subway','Dominos','Pizza Hut',\n  'Popeyes','Chick-fil-A','Starbucks','Dunkin','Five Guys','Chipotle','Panda Express','Arbys',\n  'Sonic','Hardees','Jack in the Box','Little Caesars','Papa Johns','Wingstop','Churchs Chicken',\n  'Raising Canes','Schnucks','Schucks','Aldi','Walmart','Target','Walgreens','CVS','7-Eleven',\n  'QuikTrip','QT','Dollar General','Dollar Tree','Garment District','Historic District',\n  'White Castle','Jimmy Johns','Panera','Smoothie King','Jamba','Pret a Manger','Potbelly',\n  'Jersey Mikes','Jasons Deli','Corner Bakery','Einstein','Shake Shack','Culvers',\n  'Freddys','Tropical Smoothie','Dairy Queen','McAlisters','Quiznos','Penn Station',\n  'Firehouse','Charleys'];\nvar EXCLUDE_EXACT = ['Ballpark Village','St. Louis Union Station','City Garden','Gateway Arch'];\n\nvar typeMap = {restaurant:'Restaurant',bar:'Bar',cafe:'Coffee',bakery:'Bakery',night_club:'Nightlife',lodging:'Hotel'};\n\nfunction filterPlaces(list, requestedType) {\n  var seen = {};\n  var deduped = [];\n  var di = 0;\n  while (di !== list.length) {\n    if (!seen[list[di].place_id]) {\n      seen[list[di].place_id] = true;\n      deduped.push(list[di]);\n    }\n    di++;\n  }\n  return deduped.filter(function(p) {\n    if (!p.rating) { return false; }\n    if (p.rating - 3 !== Math.abs(p.rating - 3)) { return false; }\n    if (!p.opening_hours) { return false; }\n    if (p.business_status) {\n      if (p.business_status !== 'OPERATIONAL') { return false; }\n    }\n    var n = p.name;\n    var excluded = false;\n    EXCLUDE.forEach(function(ex){ if (n.indexOf(ex) !== -1) { excluded = true; } });\n    EXCLUDE_EXACT.forEach(function(ex){ if (n === ex) { excluded = true; } });\n    if (excluded) { return false; }\n    if (requestedType === 'restaurant') {\n      if (p.types) {\n        if (p.types.length) {\n          if (p.types[0] === 'bar') { return false; }\n          if (p.types[0] === 'night_club') { return false; }\n        }\n      }\n    }\n    if (requestedType === 'bar') {\n      if (p.types) {\n        if (p.types.length) {\n          if (p.types[0] === 'night_club') { return false; }\n        }\n      }\n    }\n    return true;\n  });\n}\n\nwindow.dtfMapsInit = function() {\n  try {\n    var mapEl = document.getElementById('dtf-mapbox');\n    var map = new google.maps.Map(mapEl, {center: DTL, zoom: 15});\n    dtfSvc = new google.maps.places.PlacesService(map);\n    dtfInitDev();\n    dtfInitThings();\n    var placesSec = document.getElementById('dtf-sec-places');\n    if (placesSec) { placesSec.style.display = 'block'; placesSec.style.opacity = '1'; placesSec.classList.add('dtf-visible'); }\n    dtfLoadPlaces('restaurant');\n  } catch(err) {\n    var eDiv = document.createElement('div'); eDiv.className = 'dtf-err'; eDiv.textContent = 'Maps error: ' + err.message; document.getElementById('dtf-pgrid').appendChild(eDiv);\n  }\n};\n\nfunction dtfLoadPlaces(type) {\n  dtfCurrentType = type;\n  if (dtfCache[type]) { dtfRenderPlaces(dtfCache[type]); return; }\n  if (!dtfSvc) { return; }\n  dtfCurrentType = type;\n  var lDiv = document.createElement('div'); lDiv.className = 'dtf-msg'; lDiv.textContent = 'Loading places...'; var pg = document.getElementById('dtf-pgrid'); pg.innerHTML = ''; pg.appendChild(lDiv);\n\n  var allById = {};\n  var pendingSearches = 2;\n\n  function mergeAndFinish() {\n    var merged = [];\n    var ids = Object.keys(allById);\n    var ki = 0;\n    while (ki !== ids.length) { merged.push(allById[ids[ki]]); ki++; }\n    var filtered = filterPlaces(merged, type);\n    dtfCache[type] = filtered;\n    if (dtfCurrentType === type) { dtfRenderPlaces(filtered); }\n    dtfPreload(type);\n  }\n\n  function runSearch(center) {\n    function handlePage(results, status, pagination) {\n      if (dtfCurrentType !== type) { return; }\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        var ri = 0;\n        while (ri !== results.length) { allById[results[ri].place_id] = results[ri]; ri++; }\n        if (pagination) {\n          if (pagination.hasNextPage) {\n            setTimeout(function() {\n              if (dtfCurrentType === type) { pagination.nextPage(); }\n            }, 2000);\n            return;\n          }\n        }\n      }\n      pendingSearches--;\n      if (pendingSearches === 0) { mergeAndFinish(); }\n    }\n    dtfSvc.nearbySearch({location: center, radius: 1000, type: type}, handlePage);\n  }\n\n  runSearch(DTL_NORTH);\n  runSearch(DTL_SOUTH);\n}\n\nfunction dtfScore(p) {\n  var r = p.rating || 0;\n  var n = p.user_ratings_total || 0;\n  return r * Math.log(n + 1);\n}\n\nfunction dtfOpenGroup(p) {\n  if (!p.opening_hours) { return 1; }\n  if (p.opening_hours.open_now === true) { return 0; }\n  if (p.opening_hours.open_now === false) { return 2; }\n  return 1;\n}\n\n\n\/* DOM helpers *\/\nfunction el(tag, cls, txt) {\n  var e = document.createElement(tag);\n  if (cls) { e.className = cls; }\n  if (txt) { e.textContent = txt; }\n  return e;\n}\nfunction ap(parent) {\n  var args = Array.prototype.slice.call(arguments, 1);\n  args.forEach(function(child) { if (child) { parent.appendChild(child); } });\n  return parent;\n}\nfunction setAttr(e, k, v) { e.setAttribute(k, v); return e; }\n\nfunction dtfRenderPlaces(places) {\n  var sorted = places.slice().sort(function(a, b) {\n    var ga = dtfOpenGroup(a);\n    var gb = dtfOpenGroup(b);\n    if (ga !== gb) { return ga - gb; }\n    return dtfScore(b) - dtfScore(a);\n  });\n  var g = document.getElementById('dtf-pgrid');\n  g.innerHTML = '';\n  if (!sorted.length) {\n    g.appendChild(el('div', 'dtf-msg', 'No results found.'));\n    return;\n  }\n  sorted.forEach(function(p) {\n    var mapsUrl = 'https:\/\/www.google.com\/maps\/place\/?q=place_id:' + p.place_id;\n    var card = el('a', 'dtf-pc');\n    card.href = mapsUrl;\n    card.target = '_blank';\n    card.rel = 'noopener';\n\n    if (p.photos) {\n      if (p.photos.length) {\n        var img = el('img');\n        img.src = p.photos[0].getUrl({maxWidth: 800, maxHeight: 560});\n        img.alt = '';\n        img.loading = 'lazy';\n        card.appendChild(img);\n      } else {\n        card.appendChild(el('div', 'dtf-noph'));\n      }\n    } else {\n      card.appendChild(el('div', 'dtf-noph'));\n    }\n\n    var body = el('div', 'dtf-pb');\n    var lbl = typeMap[dtfCurrentType] || '';\n    if (lbl) { body.appendChild(el('div', 'dtf-pt', lbl)); }\n    body.appendChild(el('div', 'dtf-pn', p.name));\n    if (p.vicinity) { body.appendChild(el('div', 'dtf-pa', p.vicinity)); }\n\n    if (p.rating) {\n      var rDiv = el('div', 'dtf-pr');\n      var stars = Math.round(p.rating);\n      var starSpan = el('span', 'st');\n      var si = 0;\n      while (si !== stars) { starSpan.textContent += '\\u2605'; si++; }\n      while (si !== 5) { starSpan.textContent += '\\u2606'; si++; }\n      rDiv.appendChild(starSpan);\n      rDiv.appendChild(document.createTextNode(p.rating.toFixed(1) + ' (' + (p.user_ratings_total || 0) + ')'));\n      body.appendChild(rDiv);\n    }\n\n    if (p.opening_hours) {\n      if (p.opening_hours.open_now === true) {\n        body.appendChild(el('div', 'dtf-ps op', 'Open now'));\n      }\n      if (p.opening_hours.open_now === false) {\n        body.appendChild(el('div', 'dtf-ps cl', 'Closed'));\n      }\n    }\n\n    body.appendChild(el('div', 'dtf-pl', 'View on Maps'));\n    card.appendChild(body);\n    g.appendChild(card);\n  });\n}\n\nfunction dtfRenderDev() {\n  var g = document.getElementById('dtf-devgrid');\n  var statusLabels = {completed: 'Completed', 'under-construction': 'Under Construction', proposed: 'Proposed'};\n  var filtered = dtfDevData.filter(function(p){ return p.status === dtfDevFilter; });\n  g.innerHTML = '';\n  if (!filtered.length) {\n    g.appendChild(el('div', 'dtf-msg', 'No projects in this category.'));\n    return;\n  }\n  filtered.forEach(function(p) {\n    var card;\n    if (p.url) {\n      card = el('a', 'dtf-dc');\n      card.href = p.url;\n      card.target = '_blank';\n      card.rel = 'noopener';\n    } else {\n      card = el('div', 'dtf-dc');\n    }\n    var cardImg = el('img', 'dtf-dc-img');\n    if (p.photo) {\n      cardImg.src = p.photo;\n    } else {\n      cardImg.src = dtfSVBase + dtfAmp + 'location=' + encodeURIComponent(p.address + ', St. Louis, MO') + dtfAmp + 'key=' + dtfSVKey + dtfAmp + 'fov=90' + dtfAmp + 'pitch=5' + dtfAmp + 'source=outdoor';\n    }\n    cardImg.alt = '';\n    cardImg.loading = 'lazy';\n    card.appendChild(cardImg);\n    var body = el('div', 'dtf-dev-body');\n    var top = el('div', 'dtf-dev-top');\n    top.appendChild(el('div', 'dtf-dn', p.name));\n    top.appendChild(el('span', 'dtf-badge ' + p.status, statusLabels[p.status]));\n    body.appendChild(top);\n    body.appendChild(el('div', 'dtf-dev-addr', p.address + ' \\u2014 ' + p.neighborhood));\n    body.appendChild(el('div', 'dtf-dev-type', p.type + ' \\u2022 ' + p.size));\n    var bottom = el('div', 'dtf-dev-bottom');\n    bottom.appendChild(el('span', 'dtf-dev-cost', dtfFormatCost(p.cost)));\n    var meta = p.year ? 'Completed ' + p.year : (p.developer || '');\n    if (meta) { bottom.appendChild(el('span', 'dtf-dev-meta', meta)); }\n    body.appendChild(bottom);\n    if (p.progress) { body.appendChild(el('div', 'dtf-dev-progress', p.progress)); }\n\n    card.appendChild(body);\n    g.appendChild(card);\n  });\n}\n\nfunction dtfRenderThings() {\n  var g = document.getElementById('dtf-tgrid');\n  g.innerHTML = '';\n  dtfThingsData.forEach(function(p) {\n    var card = el('a', 'dtf-tc');\n    card.href = p.url;\n    card.target = '_blank';\n    card.rel = 'noopener';\n\n    var imgDiv = el('div', 'dtf-tc-img');\n    if (p.photo) {\n      imgDiv.style.backgroundImage = 'url(' + p.photo + ')';\n      imgDiv.style.backgroundSize = p.size || 'cover';\n      imgDiv.style.backgroundPosition = p.pos || 'center';\n    }\n    imgDiv.appendChild(el('span', 'dtf-tc-cat', p.category));\n    card.appendChild(imgDiv);\n\n    var body = el('div', 'dtf-tc-body');\n    body.appendChild(el('div', 'dtf-tc-name', p.name));\n    body.appendChild(el('div', 'dtf-tc-desc', p.desc));\n    body.appendChild(el('div', 'dtf-tc-addr', p.addr));\n    body.appendChild(el('div', 'dtf-tc-link', 'Learn More \\u2192'));\n    card.appendChild(body);\n    g.appendChild(card);\n  });\n}\n\n\/* \u2500\u2500 Background preload \u2500\u2500 *\/\nvar dtfAllTypes = ['restaurant','cafe','bakery','bar','night_club','lodging'];\nfunction dtfPreload(justLoaded) {\n  var queue = [];\n  var qi = 0;\n  while (qi !== dtfAllTypes.length) {\n    if (dtfAllTypes[qi] !== justLoaded) {\n      if (!dtfCache[dtfAllTypes[qi]]) {\n        queue.push(dtfAllTypes[qi]);\n      }\n    }\n    qi++;\n  }\n  var idx = 0;\n  function next() {\n    if (idx - queue.length === Math.abs(idx - queue.length)) { return; }\n    var t = queue[idx];\n    idx++;\n    var allById = {};\n    var pending = 2;\n    function handlePage(results, status, pagination) {\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        var ri = 0;\n        while (ri !== results.length) { allById[results[ri].place_id] = results[ri]; ri++; }\n        if (pagination) {\n          if (pagination.hasNextPage) {\n            setTimeout(function(){ pagination.nextPage(); }, 2000);\n            return;\n          }\n        }\n      }\n      pending--;\n      if (pending === 0) {\n        var merged = [];\n        var ids = Object.keys(allById);\n        var ki = 0;\n        while (ki !== ids.length) { merged.push(allById[ids[ki]]); ki++; }\n        dtfCache[t] = filterPlaces(merged, t);\n        setTimeout(next, 300);\n      }\n    }\n    dtfSvc.nearbySearch({location: DTL_NORTH, radius: 1000, type: t}, handlePage);\n    dtfSvc.nearbySearch({location: DTL_SOUTH, radius: 1000, type: t}, handlePage);\n  }\n  setTimeout(next, 2000);\n}\n\n\/* \u2500\u2500 Dev Tracker \u2500\u2500 *\/\nfunction dtfFormatCost(cost) {\n  if (!cost) { return 'TBD'; }\n  if (cost - 999999999 === Math.abs(cost - 999999999)) { return '$' + (cost \/ 1000000000).toFixed(1) + 'B'; }\n  if (cost - 999999 === Math.abs(cost - 999999)) { return '$' + Math.round(cost \/ 1000000) + 'M'; }\n  return '$' + cost.toLocaleString();\n}\n\nvar dtfDevFilter = 'completed';\n\nfunction dtfInitDev() {\n  var btns = document.querySelectorAll('#dtf-dev-filters .dtf-dev-fb');\n  btns.forEach(function(b) {\n    b.addEventListener('click', function() {\n      btns.forEach(function(x){ x.classList.remove('on'); });\n      b.classList.add('on');\n      dtfDevFilter = b.getAttribute('data-status');\n      dtfRenderDev();\n    });\n  });\n  dtfRenderDev();\n}\n\n\n\/* \u2500\u2500 Things To Do \u2500\u2500 *\/\nvar dtfThingsData = [\n  {name:'Gateway Arch National Park',category:'Landmark',desc:'The iconic 630-foot stainless steel arch is the nations tallest monument, offering tram rides to the top with sweeping views of St. Louis and the Mississippi River.',addr:'11 N 4th St, St. Louis',url:'https:\/\/www.nps.gov\/jeff\/index.htm',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/MO_StLouis_GatewayArch_byBarrettDoherty_2022_118_sig.jpg'},\n  {name:'City Museum',category:'Museum',desc:'A wildly creative repurposing of a 10-story shoe factory into a playground for all ages \u2014 featuring caves, slides, a rooftop Ferris wheel, and surreal architecture you have to see to believe.',addr:'750 N 16th St, St. Louis',url:'https:\/\/citymuseum.org',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/City-Museum-01.jpg'},\n  {name:'Ballpark Village',category:'Entertainment',desc:'The ultimate Cardinals fan destination \u2014 a multi-block entertainment complex adjacent to Busch Stadium packed with bars, restaurants, live music, and game-day energy 365 days a year.',addr:'601 Clark Ave, St. Louis',url:'https:\/\/www.stlballparkvillage.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Ballpark-Village-01.jpg'},\n  {name:'Busch Stadium',category:'Sports',desc:'Home of the St. Louis Cardinals since 2006, Busch Stadium is one of baseballs best ballparks \u2014 with views of the Arch beyond the outfield wall and a passionate fanbase that shows up in numbers.',addr:'700 Clark Ave, St. Louis',url:'https:\/\/www.mlb.com\/cardinals\/ballpark',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/busch-stadium17951.jpg'},\n  {name:'St. Louis Union Station',category:'Entertainment',desc:'A stunning 1894 Romanesque train station transformed into a one-of-a-kind attraction featuring a ferris wheel, mini golf, aquarium, escape rooms, and a hotel \u2014 all inside a National Historic Landmark.',addr:'1820 Market St, St. Louis',url:'https:\/\/www.stlouisunionstation.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/unionstation.jpg'},\n  {name:'Energizer Park - St. Louis City SC',category:'Sports',desc:'Brand new 22,500-seat soccer stadium opened in 2022, home to St. Louis City SC. One of the most architecturally striking sports venues in the country, built in the heart of Downtown West.',addr:'2100 Market St, St. Louis',url:'https:\/\/www.stlcitysc.com\/stadium\/',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/st-louis-citypark-stadium-soccer-2022.jpg'},\n  {name:'National Blues Museum',category:'Museum',desc:'The only museum in the world dedicated exclusively to the blues \u2014 tracing the genre from its African roots through the Mississippi Delta to its global influence, with interactive exhibits and live performances.',addr:'615 Washington Ave, St. Louis',url:'https:\/\/www.nationalbluesmuseum.org',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Home_Exhibits_1.webp'},\n  {name:'Old Courthouse',category:'Landmark',desc:'The historic courthouse where Dred Scott sued for his freedom in 1847. Now a free museum operated by the National Park Service, with rotating exhibits on St. Louis history and stunning cast-iron dome.',addr:'11 N 4th St, St. Louis',url:'https:\/\/www.nps.gov\/jeff\/planyourvisit\/old-courthouse.htm',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/old-courthouse-scaled.jpg'},\n  {name:'Citygarden',category:'Park',desc:'A free outdoor sculpture garden in the heart of downtown featuring 24 world-class sculptures, splash pads, and native plantings. One of the best free attractions in the entire city.',addr:'801 Market St, St. Louis',url:'https:\/\/citygardenstl.org',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Citygarden-02.jpg'},\n  {name:'The Dome at Americas Center',category:'Entertainment',desc:'Recently renovated home of the XFL St. Louis Battlehawks and major concerts, conventions, and events. One of the largest convention facilities in the Midwest.',addr:'701 Convention Plaza, St. Louis',url:'https:\/\/explorestlouis.com\/americas-center\/',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/ratio3x2_1920.jpg'},\n\n  {name:'The Gateway Arch Riverboats',category:'Experience',pos:'center 55%',desc:'Step aboard a replica 19th-century riverboat for a cruise along the Mississippi River with views of the Arch and the St. Louis skyline \u2014 a uniquely American experience right in the heart of downtown.',addr:'50 S Leonor K Sullivan Blvd, St. Louis',url:'https:\/\/www.gatewayarchriverboats.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/gateway-arch-riverboats-1.jpg'},\n  {name:'Enterprise Center',category:'Sports',desc:'Home of the St. Louis Blues NHL franchise and one of the premier concert venues in the Midwest, hosting over 150 events a year in the heart of downtown.',addr:'1401 Clark Ave, St. Louis',url:'https:\/\/www.enterprisecenter.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/rsz_st-louis-blues-and-enterprise-enter-into-building-naming-rights-agreement-renaming-the-home-of-the-blues-enterprise-center.jpg'},\n  {name:'Stifel Theatre',category:'Entertainment',desc:'A stunning 1934 landmark and one of the most beautiful concert halls in the country, hosting Broadway tours, comedy, concerts, and world-class performances year-round.',addr:'1400 Market St, St. Louis',url:'https:\/\/www.stifeltheatre.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/Stifel_Theatre_Market_Street_St._Louis_MO-scaled.jpg'},\n  {name:'St. Louis Aquarium at Union Station',category:'Attraction',desc:'A 120,000-gallon aquarium inside the historic Union Station complex, featuring sharks, otters, stingrays, and hundreds of aquatic species \u2014 perfect for families.',addr:'201 S 18th St, St. Louis',url:'https:\/\/www.stlouisaquarium.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/006-STL-Aquarium-Lobby-Large-1.jpg'},\n  {name:'The Fabulous Fox Theatre',category:'Entertainment',desc:'One of the most ornate and beloved theatres in America, the Fox has been dazzling St. Louis audiences since 1929 with Broadway shows, concerts, and special events in a breathtaking Siamese Byzantine interior.',addr:'527 N Grand Blvd, St. Louis',url:'https:\/\/www.fabulousfox.com',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/480532104_947036717540749_9027531516803505065_n-scaled.jpg'},\n  {name:'Kiener Plaza',category:'Park',desc:'A beautifully renovated 1.9-acre public park at the heart of downtown, featuring fountains, a splash pad, a children playground, sweeping views of the Gateway Arch and Old Courthouse, and a lawn that hosts hundreds of free events each year.',addr:'500 Chestnut St, St. Louis',url:'https:\/\/www.stlouis-mo.gov\/parks\/parks\/browse-parks\/view-park.cfm?parkID=50',photo:'https:\/\/downtownforwardstl.org\/wp-content\/uploads\/2026\/04\/MO_StLouis_KienerPlaza_byBarrettDoherty_2022_006_Hero-1.jpg'}\n];\n\nfunction dtfInitThings() {\n  dtfRenderThings();\n}\n\n\n\n<\/script>\n\n\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  var headers = document.querySelectorAll('.entry-header,.page-header,.wp-block-post-title,.entry-title,.page-title');\n  headers.forEach(function(h){ h.style.display='none'; });\n  var wrap = document.getElementById('dtf-wrap');\n  if (!wrap) { return; }\n  var container = wrap.parentNode;\n  if (!container) { return; }\n  Array.prototype.forEach.call(container.childNodes, function(n) {\n    if (n.nodeType === 1) { if (n.id !== 'dtf-wrap') { n.style.display = dtfNone; } }\n  });\n});\n<\/script>\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDSm8TH8r2RMoXJTe01u7JZNfvX58J1108&#038;libraries=places&#038;callback=dtfMapsInit\" defer><\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Downtown St. Louis Dashboard A live look at what&#8217;s happening downtown \u2014 places to visit, active development, and neighborhood trends. Explore Downtown Restaurants, bars &amp; more Things To Do Attractions, events &amp; more Development Tracker Active projects downtown Explore Downtown Restaurants, bars, coffee shops, and more in Downtown St. Louis. Restaurants Coffee Bakery Bars Nightlife&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1189","page","type-page","status-publish","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/pages\/1189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/comments?post=1189"}],"version-history":[{"count":5,"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/pages\/1189\/revisions"}],"predecessor-version":[{"id":1405,"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/pages\/1189\/revisions\/1405"}],"wp:attachment":[{"href":"https:\/\/downtownforwardstl.org\/index.php\/wp-json\/wp\/v2\/media?parent=1189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}