Spaces:
Sleeping
Sleeping
import streamlit as st | |
import base64 | |
import os | |
st.set_page_config( | |
page_title="InsightLoop", | |
page_icon="🔁", | |
layout="wide", | |
initial_sidebar_state="collapsed" | |
) | |
# Set dark theme programmatically | |
st.markdown( | |
""" | |
<style> | |
body, .main, .stApp { | |
background: #14151A !important; | |
color: #fff !important; | |
} | |
</style> | |
""", | |
unsafe_allow_html=True | |
) | |
# --- LOGO --- | |
def get_logo_base64(logo_path): | |
if not os.path.exists(logo_path): | |
return None | |
with open(logo_path, "rb") as img_file: | |
b64 = base64.b64encode(img_file.read()).decode("utf-8") | |
return b64 | |
logo_path = "src/logo.png" | |
logo_b64 = get_logo_base64(logo_path) | |
if logo_b64: | |
st.markdown( | |
f""" | |
<div style='display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:0.2em;'> | |
<img src="data:image/png;base64,{logo_b64}" alt="Logo" style="width:260px;height:260px;object-fit:contain;filter:drop-shadow(0 0 26px #00fff7cc);"/> | |
</div> | |
""", | |
unsafe_allow_html=True | |
) | |
else: | |
st.markdown( | |
""" | |
<div style='display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:0.2em;'> | |
<span style='font-size:2.9rem;font-weight:900;color:#00fff7;letter-spacing:-2px;margin-top:0;'>InsightLoop</span> | |
</div> | |
""", unsafe_allow_html=True | |
) | |
# --- GLASSY INTRO BOX --- | |
st.markdown(""" | |
<div style=" | |
background: rgba(32,40,52,0.96); | |
border: 2.3px solid #00fff7cc; | |
border-radius: 24px; | |
margin: 1.3em auto 2.1em auto; | |
max-width: 1060px; | |
min-width: 420px; | |
padding: 38px 36px 20px 36px; | |
box-shadow:0 14px 68px #00fff799; | |
color: #fff; | |
font-size: 1.03rem; | |
line-height:1.63; | |
font-family: 'Montserrat', sans-serif;"> | |
<span style="font-size:1.38rem;font-weight:900;background:linear-gradient(90deg,#00fff7,#F72585 92%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;"> | |
Stop guessing. Start knowing—every persona, every opinion, every launch. | |
</span> | |
<br><br> | |
<b>InsightLoop</b> isn’t just another dashboard. It’s your on-demand product research team—powered by AI, fueled by every kind of customer feedback. | |
<br><br> | |
<div style="display:grid;grid-template-columns:38px 1fr;gap:10px 13px;align-items:start;"> | |
<div style="font-size:1.6rem;">🔀</div> | |
<div> | |
<b style="color:#00fff7;">Multimodal Magic</b><br> | |
Bring your reviews, screenshots, or even audio rants—InsightLoop reads, listens, and <i>sees</i> to give you the whole customer picture. | |
No more missing context, no more “one channel” blind spots. | |
</div> | |
<div style="font-size:1.6rem;">🧬</div> | |
<div> | |
<b style="color:#7CFC00;">Persona Discovery</b><br> | |
Our AI auto-sorts your users into real-world groups—think loyalists, price hawks, fitness geeks, skeptics, and more. | |
It finds them by their words, their tone, their buying patterns—even if you’ve never tagged or labeled a thing. | |
</div> | |
<div style="font-size:1.6rem;">⚡</div> | |
<div> | |
<b style="color:#F72585;">Instant, Actionable Insights</b><br> | |
Get beautiful, interactive dashboards for <i>every</i> persona: see what excites them, what drives them nuts, and what’ll keep them coming back (or send them running). All charted, all explained—no stats degree needed. | |
</div> | |
<div style="font-size:1.6rem;">🚀</div> | |
<div> | |
<b style="color:#FFB347;">Launch Simulation Superpower</b><br> | |
Curious about a new product or feature? Instantly predict how each persona will react—with auto-generated marketing hooks and push notifications written <i>for them</i>, by AI. | |
Turn “blind launch” into “bullseye launch.” | |
</div> | |
</div> | |
<br> | |
<span style="color:#AC7CFF;font-weight:700;"> | |
Fully automated. Zero spreadsheets.<br> | |
Just drop your data, and let InsightLoop surface the real market signals you’ve been missing. | |
</span> | |
<br><br> | |
<span style="color:#fff;font-weight:500;font-size:1.01em;"> | |
<b>Why does this matter?</b> Most brands guess. The best brands <i>know</i>. InsightLoop makes it effortless to know. | |
</span> | |
</div> | |
""", unsafe_allow_html=True) | |
# --- GLOW BUTTON (Streamlit native for navigation) --- | |
st.markdown(""" | |
<style> | |
div.stButton > button.insight-glow-btn { | |
font-family: 'Montserrat',sans-serif; | |
font-size: 1.19em; | |
font-weight: 900; | |
color: #181830; | |
background: linear-gradient(90deg,#00fff7 10%,#7CFC00 90%); | |
padding: 15px 46px 13px 46px; | |
border: 2px solid #00fff7; | |
border-radius: 16px; | |
box-shadow: 0 0 18px #00fff799, 0 0 36px #7CFC0055; | |
cursor: pointer; | |
transition: all 0.11s cubic-bezier(.31,1.3,.7,1); | |
letter-spacing: 0.01em; | |
margin: 0 auto; | |
outline: none; | |
display: block; | |
} | |
div.stButton > button.insight-glow-btn:hover, | |
div.stButton > button.insight-glow-btn:focus { | |
transform: scale(1.045); | |
background: linear-gradient(90deg,#7CFC00 10%,#00fff7 90%); | |
color: #222; | |
box-shadow: 0 0 32px #00fff7cc, 0 0 36px #7CFC00cc; | |
} | |
</style> | |
""", unsafe_allow_html=True) | |
center = """ | |
<div style='display: flex; justify-content: center; align-items: center; margin: 1.7em auto 0.7em auto;'> | |
{content} | |
</div> | |
""" | |
# Place this where you want your big button (centered and as wide as your boxes): | |
st.markdown(""" | |
<style> | |
.custom-glow-btn-main { | |
display: block; | |
width: 100%; | |
max-width: 1060px; | |
min-width: 420px; | |
margin: 2em auto 1.1em auto; | |
font-family: 'Montserrat',sans-serif; | |
font-size: 1.26em; | |
font-weight: 900; | |
color: #181830 !important; | |
background: linear-gradient(90deg,#00fff7 12%,#7CFC00 88%); | |
padding: 21px 0 18px 0; | |
border: 2.5px solid #00fff7cc; | |
border-radius: 17px; | |
box-shadow: 0 0 24px #00fff7b8, 0 0 46px #7CFC0090; | |
text-align: center; | |
text-decoration: none !important; | |
transition: all 0.13s cubic-bezier(.31,1.3,.7,1); | |
cursor: pointer; | |
outline: none; | |
} | |
.custom-glow-btn-main:hover, .custom-glow-btn-main:focus { | |
background: linear-gradient(90deg,#7CFC00 14%,#00fff7 86%); | |
color: #19191f !important; | |
box-shadow: 0 0 38px #00fff7cc, 0 0 56px #7CFC00cc; | |
transform: scale(1.018); | |
} | |
</style> | |
<div style="display:flex;justify-content:center;"> | |
<a href="/prt111" class="custom-glow-btn-main" target="_self">💡 Let’s Start</a> | |
</div> | |
""", unsafe_allow_html=True) | |
# --- HEADS UP & DEMO BOXES (smaller) --- | |
st.markdown(""" | |
<style> | |
.insight-centerbox, .insight-demo { | |
margin: 1.5em auto 0.3em auto; | |
background: rgba(22,26,38,0.97); | |
border-radius: 19px; | |
box-shadow: 0 5px 30px #00fff73c; | |
font-family: 'Montserrat', sans-serif; | |
text-align: center; | |
max-width: 1060px; | |
min-width: 420px; | |
padding: 20px 30px 17px 30px; | |
border: none; | |
} | |
.insight-centerbox h4 { | |
color: #7CFC00; | |
font-size: 1.06em; | |
margin-bottom: 0.45em; | |
font-weight: 900; | |
letter-spacing: 0.02em; | |
} | |
.insight-centerbox p { | |
color: #7CFC00; | |
font-size: 0.99em; | |
font-weight: 600; | |
margin-bottom: 0; | |
} | |
.insight-centerbox i { | |
color: #A0FFB2; | |
font-size: 0.97em; | |
} | |
.insight-demo { | |
background: rgba(0,30,40,0.94); | |
color: #00fff7; | |
box-shadow: 0 4px 18px #00fff75c; | |
border-radius: 19px; | |
margin-top: 1.2em; | |
max-width: 1060px; | |
min-width: 420px; | |
padding: 18px 32px 13px 32px; | |
text-align: center; | |
font-size: 0.97em; | |
} | |
.insight-demo b { | |
color: #7CFC00; | |
font-weight: 900; | |
font-size: 1.06em; | |
} | |
.insight-demo .demo-product { | |
color: #FFB347; | |
font-weight: 700; | |
} | |
</style> | |
<div class="insight-centerbox"> | |
<h4>🤖 Heads up: InsightLoop is working hard behind the scenes!</h4> | |
<p> | |
Analyzing images and audio takes a few seconds—so just sit back, relax, and let the AI do the heavy lifting.<br> | |
<i>You’ll have deeper insights in less time than it takes to reheat your coffee. ☕🦾</i> | |
</p> | |
</div> | |
<div class="insight-demo"> | |
<b>🚀 Demo mode:</b> <span class="demo-product">This dashboard is running on real chocolate protein powder reviews—just to show what’s possible.</span><br> | |
InsightLoop adapts to <b>any</b> product or dataset. When you’re ready, upload your own and watch the magic happen. | |
</div> | |
""", unsafe_allow_html=True) | |