<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><title>Joiyin - Real Connections, Simplified</title><meta name=viewport content="width=device-width,minimum-scale=1"><meta name=description content="Meet people without dating apps: Joiyin is a social app for spontaneous local activities — no profile photos, show up and do something together."><meta name=keywords content="social app without profiles,meet people without dating apps,spontaneous activities,real-world connections,alternative to Meetup,no profile photos"><meta name=author content="The Joiyin Team"><meta name=robots content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><link rel=canonical href=https://joiyin.com/><link rel=alternate hreflang=es href=https://joiyin.com/es/><link rel=alternate hreflang=fr href=https://joiyin.com/fr/><link rel=alternate hreflang=nl href=https://joiyin.com/nl/><link rel=alternate hreflang=pt href=https://joiyin.com/pt/><link rel=alternate hreflang=pt-br href=https://joiyin.com/pt-br/><link rel=alternate hreflang=uk href=https://joiyin.com/uk/><link rel=alternate hreflang=en href=https://joiyin.com/><meta property=og:title content="Joiyin - Real Connections, Simplified | Joiyin - Real Connections, Simplified"><meta property=og:description content="Meet people without dating apps: Joiyin is a social app for spontaneous local activities — no profile photos, show up and do something together."><meta property=og:type content=website><meta property=og:url content="https://joiyin.com/"><meta property=og:site_name content="Joiyin - Real Connections, Simplified"><meta property=og:locale content=en-us><meta property=og:image content="https://joiyin.com//images/hero-background.svg"><meta property=og:image:width content=1200><meta property=og:image:height content=630><meta property=og:image:alt content="Joiyin - Real Connections, Simplified - Joiyin - Real Connections, Simplified"><meta name=twitter:card content=summary_large_image><meta name=twitter:title content="Joiyin - Real Connections, Simplified | Joiyin - Real Connections, Simplified"><meta name=twitter:description content="Meet people without dating apps: Joiyin is a social app for spontaneous local activities — no profile photos, show up and do something together."><meta name=twitter:image content="https://joiyin.com//images/hero-background.svg"><meta name=twitter:image:alt content="Joiyin - Real Connections, Simplified - Joiyin - Real Connections, Simplified"><meta name=twitter:creator content="@joiyinapp"><meta name=twitter:site content="@joiyinapp"><meta property=linkedin:title content="Joiyin - Real Connections, Simplified | Joiyin - Real Connections, Simplified"><meta property=linkedin:description content="Meet people without dating apps: Joiyin is a social app for spontaneous local activities — no profile photos, show up and do something together."><meta property=linkedin:image content="https://joiyin.com//images/hero-background.svg"><meta name=theme-color content="#667eea"><meta name=msapplication-navbutton-color content="#667eea"><meta name=apple-mobile-web-app-status-bar-style content=default><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=preconnect href=https://www.googletagmanager.com crossorigin><link rel=alternate type=application/rss+xml href=https://joiyin.com/index.xml title="Joiyin - Real Connections, Simplified"><link rel=sitemap type=application/xml href=https://joiyin.com/sitemap.xml><meta name=generator content="Hugo 0.162.1"><link rel=icon type=image/png href=images/xjoiyin-logo.png.pagespeed.ic.Cfzq-c5KO4.png><link rel=manifest href=/manifest.json><meta name=theme-color content="#667eea"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=default><meta name=apple-mobile-web-app-title content=Joiyin><link rel=apple-touch-icon href=images/xjoiyin-logo.png.pagespeed.ic.Cfzq-c5KO4.png><link rel=alternate type=application/rss+xml title="Joiyin - Real Connections, Simplified" href=/index.xml><link rel=stylesheet href=css/custom.min.b94ec48edb960e6793f65df0f9c0eafcb3926a13b24f2e828222557b5b6acb20.css><script async src="https://www.googletagmanager.com/gtag/js?id=G-XGDHZ3J355"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-XGDHZ3J355"),document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll('[href*="/download"], [data-track="download"]');e.forEach(e=>{e.addEventListener("click",function(){gtag("event","download_click",{event_category:"engagement",event_label:this.textContent.trim()})})});const t=document.querySelectorAll('[href*="apps.apple.com"], [href*="play.google.com"]');t.forEach(e=>{e.addEventListener("click",function(){const e=this.href.includes("apps.apple.com")?"App Store":"Google Play";gtag("event","app_store_click",{event_category:"conversion",event_label:e})})})})</script><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication","name":"Joiyin","description":"Meet people naturally through spontaneous local activities with Joiyin - a social app that brings people together in the real world without profiles, photos, or endless texting.","url":"https:\/\/joiyin.com\/","applicationCategory":"SocialNetworkingApplication","operatingSystem":["iOS","Android","Web"],"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"publisher":{"@type":"Organization","@id":"https:\/\/joiyin.com\/#organization"}},{"@type":"Organization","@id":"https:\/\/joiyin.com\/#organization","name":"Joiyin","url":"https:\/\/joiyin.com\/","logo":{"@type":"ImageObject","url":"https:\/\/joiyin.com\//images/JoiyinHoriz.png"}},{"@type":"WebSite","name":"Joiyin - Real Connections, Simplified","url":"https:\/\/joiyin.com\/","description":"Meet people naturally through spontaneous local activities with Joiyin - a social app that brings people together in the real world without profiles, photos, or endless texting.","publisher":{"@type":"Organization","@id":"https:\/\/joiyin.com\/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/joiyin.com\//blog/?s={search_term_string}"},"query-input":"required name=search_term_string"}}]}</script></head><body class="avenir bg-near-white"><script>(function(){var e,t,n,s=window.location.pathname||"";if(s.indexOf("/app")===0)return;if(e=window.location.search||"",!e||e.indexOf("code=")===-1)return;try{t=new URLSearchParams(e.charAt(0)==="?"?e.slice(1):e)}catch{return}if(!t.has("code"))return;n=window.location.hash||"",window.location.replace(window.location.origin+"/app/"+e+n)})()</script><script>(function(){var e,n,s,o,i,t=(window.location.hash||"").replace(/^#/,"");if(!t||t.indexOf("error=")===-1)return;try{n=new URLSearchParams(t)}catch{return}if(s=n.get("error_code")||"",e=(n.get("error_description")||"").toLowerCase(),o=e.indexOf("email")!==-1&&e.indexOf("link")!==-1||e.indexOf("otp")!==-1,i=s==="otp_expired"||o&&(e.indexOf("expired")!==-1||e.indexOf("invalid")!==-1),!i)return;window.location.replace(window.location.origin+"/app/email-verification?authError=link_expired")})()</script><a href=#main-content class=skip-to-content>Skip to main content</a><header class=site-header><nav class=nav-container aria-label="Main navigation"><div class=nav-brand><a href=/ class=logo-link aria-label="Joiyin homepage"><img src=images/JoiyinHoriz.png alt="Joiyin - Real Connections, Simplified" class=logo-img width=1008 height=428></a></div><button type=button class=mobile-menu-toggle aria-label="Toggle navigation menu" aria-expanded=false>
<span class=hamburger-line></span>
<span class=hamburger-line></span>
<span class=hamburger-line></span></button><div class=nav-menu id=nav-menu><ul class=nav-list role=menubar><li class=nav-item role=none><a href=/ class=nav-link role=menuitem id=nav-home aria-current=page>Home</a></li><li class=nav-item role=none><a href=/#features class=nav-link role=menuitem id=nav-features>Features</a></li><li class=nav-item role=none><a href=/#how-it-works class=nav-link role=menuitem id=nav-how-it-works>How It Works</a></li><li class=nav-item role=none><a href=about/ class=nav-link role=menuitem id=nav-about>About</a></li><li class=nav-item role=none><a href=faq/ class=nav-link role=menuitem id=nav-faq>FAQ</a></li><li class=nav-item role=none><a href=blog/ class=nav-link role=menuitem id=nav-blog>Blog</a></li><li class=nav-item role=none><a href=download/ class=nav-link role=menuitem id=nav-download>Download</a></li><li class=nav-item role=none><a href=app class=nav-link role=menuitem id=nav-webapp>Web App (Beta)</a></li><li class=nav-item role=none><button type=button class=theme-toggle aria-label="Toggle theme" title="Toggle theme">
<span class="theme-icon system-icon" aria-hidden=true>🖥️</span>
<span class="theme-icon light-icon" aria-hidden=true>☀️</span>
<span class="theme-icon dark-icon" aria-hidden=true>🌙</span></button></li></ul></div><div class=mobile-nav id=mobile-nav><ul class=mobile-nav-list role=menubar><li class=mobile-nav-item role=none><a href=/ class=mobile-nav-link role=menuitem aria-current=page>Home</a></li><li class=mobile-nav-item role=none><a href=/#features class=mobile-nav-link role=menuitem>Features</a></li><li class=mobile-nav-item role=none><a href=/#how-it-works class=mobile-nav-link role=menuitem>How It Works</a></li><li class=mobile-nav-item role=none><a href=about/ class=mobile-nav-link role=menuitem>About</a></li><li class=mobile-nav-item role=none><a href=faq/ class=mobile-nav-link role=menuitem>FAQ</a></li><li class=mobile-nav-item role=none><a href=blog/ class=mobile-nav-link role=menuitem>Blog</a></li><li class=mobile-nav-item role=none><a href=app class=mobile-nav-link role=menuitem>Web App (Beta)</a></li><li class=mobile-nav-item role=none><button type=button class=mobile-theme-toggle aria-label="Toggle theme">
<span class=theme-text>Toggle Theme</span>
<span class="theme-icon system-icon" aria-hidden=true>🖥️</span>
<span class="theme-icon light-icon" aria-hidden=true>☀️</span>
<span class="theme-icon dark-icon" aria-hidden=true>🌙</span></button></li><li class=mobile-nav-item role=none><a href=download/ class=mobile-nav-cta role=menuitem>Download App</a></li></ul></div></nav></header><div class=header-spacer aria-hidden=true></div><script>document.addEventListener("DOMContentLoaded",function(){const t=document.querySelector(".mobile-menu-toggle"),e=document.querySelector(".mobile-nav");if(t&&e){t.addEventListener("click",function(){const n=t.getAttribute("aria-expanded")==="true";t.setAttribute("aria-expanded",!n),e.classList.toggle("show")});const n=e.querySelectorAll(".mobile-nav-link");n.forEach(n=>{n.addEventListener("click",function(){e.classList.remove("show"),t.setAttribute("aria-expanded","false")})})}const n=document.querySelectorAll('a[href^="#"]');n.forEach(n=>{n.addEventListener("click",function(n){const s=this.getAttribute("href");if(s==="#")return;const o=document.querySelector(s);o&&(n.preventDefault(),o.scrollIntoView({behavior:"smooth",block:"start"}),e&&e.classList.contains("show")&&(e.classList.remove("show"),t.setAttribute("aria-expanded","false")))})})});const themeToggle=document.querySelector(".theme-toggle"),mobileThemeToggle=document.querySelector(".mobile-theme-toggle"),THEMES=["system","light","dark"];function getCurrentTheme(){const e=localStorage.getItem("theme");return e&&THEMES.includes(e)?e:"system"}function updateThemeIcons(e){const t=document.querySelectorAll(".system-icon"),n=document.querySelectorAll(".light-icon"),s=document.querySelectorAll(".dark-icon");t.forEach(e=>e.style.display="none"),n.forEach(e=>e.style.display="none"),s.forEach(e=>e.style.display="none"),e==="system"?t.forEach(e=>e.style.display="inline"):e==="light"?n.forEach(e=>e.style.display="inline"):e==="dark"&&s.forEach(e=>e.style.display="inline")}function applyTheme(e){e==="system"?document.documentElement.removeAttribute("data-theme"):document.documentElement.setAttribute("data-theme",e),updateThemeIcons(e)}function toggleTheme(){const t=getCurrentTheme(),n=THEMES.indexOf(t),s=(n+1)%THEMES.length,e=THEMES[s];applyTheme(e),localStorage.setItem("theme",e)}const currentTheme=getCurrentTheme();applyTheme(currentTheme),themeToggle&&themeToggle.addEventListener("click",toggleTheme),mobileThemeToggle&&mobileThemeToggle.addEventListener("click",toggleTheme),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){const t=getCurrentTheme();t==="system"&&applyTheme("system")})</script><main id=main-content><section class=hero-section id=hero aria-labelledby=hero-title><div class=hero-background></div><div class=hero-content><div class="beta-badge-hero fade-in" style="display:inline-block;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:.5rem 1.2rem;border-radius:50px;font-weight:600;font-size:.9rem;margin-bottom:1rem;box-shadow:0 4px 15px rgba(102,126,234,.4);animation:pulse-glow 2s ease-in-out infinite">🚀 Web App Now in Open Beta - Join Early!</div><h1 id=hero-title class="hero-title fade-in">Joiyin</h1><p class="hero-quote fade-in-delay-1">"Your life is a story, add some characters"</p><h2 class="hero-tagline fade-in-delay-2">Real Connections, Simplified</h2><p class="hero-description fade-in-delay-3">Joiyin shows you spontaneous activities near you right now. Join one, post your own, and meet people by doing
something together instead of swiping or small-talking for weeks. Friends, activity partners, or something
more — it usually starts with showing up.
<strong>Learn how to meet people without dating apps</strong> through real-world activities.</p><div class="hero-cta fade-in-delay-4"><a href=download/ class=cta-button aria-label="Get Joiyin app" data-track=download data-location=hero>Get the App
</a><a href=app/#/exploreActivities class="cta-button cta-button-secondary" aria-label="Browse activities without signing up" data-track=browse-activities data-location=hero target=_blank rel="noopener noreferrer">👀 Browse Activities
</a><a href=app/#/something-for-today class="cta-button cta-button-secondary" aria-label="Open Something for today in the app" data-track=something-for-today data-location=hero target=_blank rel="noopener noreferrer">✨ Something for today</a></div></div></section><section id=about class=about-section aria-labelledby=about-title><div class=about-container><h2 id=about-title class=section-title>How to Meet People Without Dating Apps</h2><div class=about-grid><div class=about-item><div class=about-card><div class=about-icon aria-hidden=true>👤</div><h3>No Profiles, No Pressure</h3><p>You don't need a polished bio or a photo gallery. Joiyin is built around activities: what
someone wants to do, when, and where. You learn who they are by doing something together, not
by scrolling their profile.</p></div></div><div class=about-item><div class=about-card><div class=about-icon aria-hidden=true>⚡</div><h3>Spontaneous & Safe</h3><p>See what's happening around you now or soon. Join to get the location and chat with others
going. Most activities are public and low-commitment. Meet today instead of trading messages
for a month first.</p></div></div></div><p class=about-positioning><strong>Joiyin is not a dating app.</strong> It's built for activities first — walks, coffee, pickup
sports, study sessions, whatever you'd actually want to do. You meet people in that context. Something
more can grow from shared doing; the app doesn't optimize for it either way.</p></div></section><section id=features class=features-section aria-labelledby=features-title><div class=features-container><h2 id=features-title class=section-title>Key Features</h2><div class=features-grid><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>📍</div><h3>Smart Discovery</h3><p>Browse activities near you by distance and time. Coffee, park walks, pickup sports, study
sessions — whatever people are actually doing today.</p></div></div><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>✨</div><h3>Join & Connect</h3><p>Tap join to see location, timing, and who's interested. A community trust system rewards
people who show up reliably. No big planning phase required.</p></div></div><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>🚫</div><h3>No Profile Photos</h3><p>Everyone uses auto-generated avatars. Joiyin is a social app without profiles in the usual
sense — you connect through what you're doing, not how you look on camera.</p></div></div><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>💬</div><h3>Simple Communication</h3><p>Each activity has a short-lived chat. Messages stick around for 24 hours after the event, then
disappear. Enough room to coordinate; not a permanent DM thread.</p></div></div><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>🔒</div><h3>Privacy First</h3><p>Your personal details stay private. <strong>We don't sell your data.</strong> No targeted
ads, no ad profiles built from what you do in the app. Trust scores keep hosts accountable —
that's the main signal we track.</p></div></div><div class=feature-item><div class=feature-card><div class=feature-icon aria-hidden=true>🌱</div><h3>Community & Local Partnership</h3><p>We work with parks, cafés, and community spaces that welcome small groups. Good neighbors make
good meetup spots.</p></div></div></div></div></section><section id=why-it-works class=why-it-works-section><div class=features-container><h2 class=section-title>Why It Works Differently</h2><div class=why-it-works-intro><p><strong>Joiyin is not a dating app.</strong> It's built so you meet in person, doing something, and
find out quickly whether you click. Less swiping. Less performative messaging. More showing up.</p><div class=why-it-works-grid><div class=why-it-works-card><div class=why-it-works-icon>📸</div><h3>No Photo Judgment</h3><p>Shared interests and shared plans come before appearances. You see someone in context, not
through a curated gallery.</p></div><div class=why-it-works-card><div class=why-it-works-icon>⚡</div><h3>Meet Today, Not Next Month</h3><p>Activities are posted for now or soon. If you're free this afternoon, there's probably
something nearby.</p></div><div class=why-it-works-card><div class=why-it-works-icon>💬</div><h3>No Endless Texting</h3><p>Chat exists to get you to the meetup. When the activity ends, the thread goes with it.</p></div></div></div></div></section><section id=how-it-works class=how-it-works-section aria-labelledby=how-it-works-title><div class=how-it-works-container><h2 id=how-it-works-title class=section-title>How Does Joiyin Work? Three Simple Steps</h2><div class=steps-grid><div class=step-item><div class=step-card><div class=step-number>1</div><h3>Discover Activities Near You</h3><p>Open the app and see what's happening nearby. Coffee, hiking, study groups, pickup sports —
posted by people in your area, usually for today or the next few days.</p></div></div><div class=step-item><div class=step-card><div class=step-number>2</div><h3>Connect Through Shared Activities</h3><p>Join something that looks good or post your own. This is a social app without profiles: you
get full details after joining. It's also a spontaneous alternative to Meetup for people who
want less RSVP overhead.</p></div></div><div class=step-item><div class=step-card><div class=step-number>3</div><h3>Experience Real-World Connections</h3><p>Show up, do the thing, see who you meet. Friends, partners, or just a good afternoon — how
to meet people through activities is mostly: pick something you'd enjoy anyway, and go.</p></div></div></div></div></section><section id=homepage-faq class=faq-section-homepage><div class=features-container><h2 class=section-title>Common Questions About Meeting People Through Activities</h2><div class=faq-homepage-container><details class=faq-homepage-item><summary>How do I meet people without dating apps?</summary><p>Use Joiyin to find spontaneous local activities near you — coffee, hiking, study groups, pickup
sports, and more. Join one, show up, and talk to people who already want to do the same thing.
It's a social app without profile photos or endless texting; the activity is the introduction.</p></details><details class=faq-homepage-item><summary>Is Joiyin an alternative to Meetup?</summary><p>Yes, for people who want what's happening now. Meetup often means RSVPs and events planned weeks
out. Joiyin leans spontaneous: browse what's near you today, join with low commitment, and meet
without building a profile first.</p></details><details class=faq-homepage-item><summary>How do I find spontaneous activities near me?</summary><p>Open Joiyin and browse by distance, time, or category. You'll see what's on now or in the next
few hours. If nothing fits, post an activity yourself — someone else might be looking for the
same thing.</p></details><details class=faq-homepage-item><summary>What is a social app without profiles?</summary><p>Joiyin doesn't use profile photos or long bios. Auto-generated avatars, activity details, and
in-person meetups do the work. You connect through what you're doing, not through a feed built
around pictures.</p></details><details class=faq-homepage-item><summary>What is "Something for today"?</summary><p>Something for today is a lightweight prompt in Joiyin with one gentle idea for your day, helpful
when you want to reflect or ease in before joining an activity.
<a href=faq/#faq-something-for-today>Read more in the FAQ</a>.</p></details><div class=faq-homepage-link-container><a href=faq/ class=faq-homepage-link>View All FAQs →</a></div></div></div></section><section class=cta-section aria-labelledby=cta-title><div class=cta-container><h2 id=cta-title>Ready to Connect?</h2><p>Browse what's near you, or download Joiyin and post something you'd actually want to do this week.</p><div class=download-badges><a href=download/ class=cta-button aria-label="Get Joiyin app">Get the App
</a><a href=app/#/exploreActivities class="cta-button cta-button-secondary" aria-label="Browse activities without signing up" target=_blank rel="noopener noreferrer">👀 Browse Activities
</a><a href=app class=cta-button aria-label="Try Joiyin Web App Beta">🌐 Try Web App (Beta)</a></div></div></section><script type=application/ld+json>{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How do I meet people without dating apps?","acceptedAnswer":{"@type":"Answer","text":"Use Joiyin to find spontaneous local activities near you — coffee, hiking, study groups, pickup sports, and more. Join one, show up, and talk to people who already want to do the same thing. It's a social app without profile photos or endless texting; the activity is the introduction."}},{"@type":"Question","name":"Is Joiyin an alternative to Meetup?","acceptedAnswer":{"@type":"Answer","text":"Yes, for people who want what's happening now. Meetup often means RSVPs and events planned weeks out. Joiyin leans spontaneous: browse what's near you today, join with low commitment, and meet without building a profile first."}},{"@type":"Question","name":"How do I find spontaneous activities near me?","acceptedAnswer":{"@type":"Answer","text":"Open Joiyin and browse by distance, time, or category. You'll see what's on now or in the next few hours. If nothing fits, post an activity yourself — someone else might be looking for the same thing."}},{"@type":"Question","name":"What is a social app without profiles?","acceptedAnswer":{"@type":"Answer","text":"Joiyin doesn't use profile photos or long bios. Auto-generated avatars, activity details, and in-person meetups do the work. You connect through what you're doing, not through a feed built around pictures."}},{"@type":"Question","name":"What is \"Something for today\"?","acceptedAnswer":{"@type":"Answer","text":"Something for today is a lightweight prompt in Joiyin with one gentle idea for your day, helpful when you want to reflect or ease in before joining an activity."}}]}</script></main><footer class=site-footer><div class=footer-container><div class=footer-grid><div class=footer-column><h3 class=footer-title>Joiyin</h3><p class=footer-description>Real connections, simplified. Discover spontaneous activities and connect with others in your
community without the stress of profiles, photos, or RSVPs.</p><div class=social-links><a href=https://www.instagram.com/joiyin_com/ class=social-link aria-label="Follow us on Instagram" rel="noopener noreferrer" target=_blank data-track=social data-social=instagram><span aria-hidden=true>📷</span>
</a><a href=https://www.tiktok.com/@joiyin_app class=social-link aria-label="Follow us on TikTok" rel="noopener noreferrer" target=_blank data-track=social data-social=tiktok><span aria-hidden=true>🎵</span>
</a><a href=https://www.youtube.com/@Joiyin class=social-link aria-label="Follow us on YouTube" rel="noopener noreferrer" target=_blank data-track=social data-social=youtube><span aria-hidden=true>▶️</span>
</a><a href=https://www.reddit.com/r/JoiyinStories/ class=social-link aria-label="Follow us on Reddit" rel="noopener noreferrer" target=_blank data-track=social data-social=reddit><span aria-hidden=true>👽</span></a></div></div><div class=footer-column><h3 class=footer-title>Navigation</h3><ul class=footer-nav><li class=footer-nav-item><a href=/ class=footer-nav-link>Home</a></li><li class=footer-nav-item><a href=/#features class=footer-nav-link>Features</a></li><li class=footer-nav-item><a href=/#how-it-works class=footer-nav-link>How It Works</a></li><li class=footer-nav-item><a href=about/ class=footer-nav-link>About</a></li><li class=footer-nav-item><a href=faq/ class=footer-nav-link>FAQ</a></li><li class=footer-nav-item><a href=blog/ class=footer-nav-link>Blog</a></li><li class=footer-nav-item><a href=download/ class=footer-nav-link>Download</a></li><li class=footer-nav-item><a href=app class=footer-nav-link>Web App (Beta)</a></li></ul></div><div class=footer-column><h3 class=footer-title>Legal & Support</h3><ul class=footer-legal><li class=footer-legal-item><a href=privacy/ class=footer-legal-link>Privacy Policy</a></li><li class=footer-legal-item><a href=terms/ class=footer-legal-link>Terms of Service</a></li><li class=footer-legal-item><a href=faq/ class=footer-legal-link>FAQ</a></li><li class=footer-legal-item><a href=contact/ class=footer-legal-link>Contact Us</a></li><li class=footer-legal-item><a href=support/ class=footer-legal-link>Support</a></li><li class=footer-legal-item><a href=newsroom/ class=footer-legal-link>Newsroom</a></li><li class=footer-legal-item><a href=admin/status class=footer-legal-link target=_blank rel="noopener noreferrer">System Status</a></li></ul></div></div><div class=footer-bottom><p class=footer-copyright>&copy; 2026 Joiyin. All rights reserved.
<span class=footer-tagline>Built with care to bring people together.</span></p></div></div></footer><button type=button class=scroll-to-top-btn aria-label="Back to top" title="Back to top">
<span aria-hidden=true>↑</span>
</button>
<script>document.addEventListener("DOMContentLoaded",function(){const e=document.querySelector(".scroll-to-top-btn");e&&(window.addEventListener("scroll",function(){window.pageYOffset>300?e.classList.add("show"):e.classList.remove("show")}),e.addEventListener("click",function(){window.scrollTo({top:0,behavior:"smooth"})}))})</script><script>(function(){const t=new URLSearchParams(window.location.search),e=t.get("colorMode");if(e&&["system","light","dark"].includes(e)){e==="system"?(document.documentElement.removeAttribute("data-theme"),localStorage.removeItem("theme"),localStorage.removeItem("joiyin-theme")):(document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)),t.delete("colorMode");const n=window.location.pathname+window.location.hash+(t.toString()?"?"+t.toString():"");window.history.replaceState({},"",n)}})()</script><script>(function(){function t(){const e=localStorage.getItem("theme")||localStorage.getItem("joiyin-theme");return e==="dark"||e==="light"?e:"system"}function e(){const e=t(),n=document.querySelectorAll('a[href*="joiyin.com/app"]');n.forEach(t=>{const n=t.getAttribute("href");if(n)try{const s=new URL(n);s.searchParams.set("colorMode",e),t.setAttribute("href",s.toString())}catch{if(n.includes("colorMode="))t.setAttribute("href",n.replace(/([?&])colorMode=[^&]*/,`$1colorMode=${e}`));else{const s=n.includes("?")?"&":"?";t.setAttribute("href",`${n}${s}colorMode=${e}`)}}})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e(),window.addEventListener("storage",function(t){(t.key==="theme"||t.key==="joiyin-theme")&&e()});const s=new MutationObserver(function(t){t.forEach(function(t){t.type==="attributes"&&t.attributeName==="data-theme"&&setTimeout(e,0)})});document.documentElement&&s.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),window.addEventListener("themechange",function(){e()});let n=t();setInterval(function(){const s=t();s!==n&&(n=s,e())},500),document.addEventListener("click",function(e){const n=e.target.closest('a[href*="joiyin.com/app"]');if(n){const e=n.getAttribute("href");if(e){const s=t();try{const t=new URL(e);t.searchParams.set("colorMode",s),n.setAttribute("href",t.toString())}catch{if(e.includes("colorMode="))n.setAttribute("href",e.replace(/([?&])colorMode=[^&]*/,`$1colorMode=${s}`));else{const t=e.includes("?")?"&":"?";n.setAttribute("href",`${e}${t}colorMode=${s}`)}}}}},!0)})()</script><script>(function(){function e(){const e=window.innerWidth>=769&&window.innerWidth<=1023&&window.innerHeight<=500;if(e){document.documentElement.style.setProperty("--landscape-header-height","45px"),document.documentElement.style.setProperty("--landscape-nav-height","45px"),document.documentElement.style.setProperty("--landscape-header-padding","0"),document.documentElement.style.setProperty("--landscape-nav-padding","0.2rem 1rem"),document.documentElement.style.setProperty("--landscape-logo-size","1.2rem"),document.documentElement.style.setProperty("--landscape-nav-size","0.8rem"),document.documentElement.setAttribute("data-landscape-fix","true");const n=document.querySelector(".site-header"),e=document.querySelector(".nav-container"),o=document.querySelector(".header-spacer");n&&(n.style.setProperty("min-height","45px","important"),n.style.setProperty("height","45px","important"),n.style.setProperty("padding","0","important")),e&&(e.style.setProperty("min-height","45px","important"),e.style.setProperty("height","45px","important"),e.style.setProperty("padding","0.2rem 1rem","important"),e.style.setProperty("line-height","1","important")),o&&o.style.setProperty("height","55px","important");const t=document.querySelector(".logo-link"),s=document.querySelector(".logo-img"),i=document.querySelectorAll(".nav-link");t&&(t.style.setProperty("font-size","1.2rem","important"),t.style.setProperty("line-height","1","important"),t.style.setProperty("padding","0","important"),t.style.setProperty("margin","0","important")),s&&(s.style.setProperty("height","2.5rem","important"),s.style.setProperty("width","auto","important")),i.forEach(e=>{e.style.setProperty("font-size","0.8rem","important"),e.style.setProperty("line-height","1","important"),e.style.setProperty("padding","0.1rem 0","important")}),console.log("Landscape tablet header fix applied")}else document.documentElement.removeAttribute("data-landscape-fix"),document.documentElement.style.removeProperty("--landscape-header-height"),document.documentElement.style.removeProperty("--landscape-nav-height"),document.documentElement.style.removeProperty("--landscape-header-padding"),document.documentElement.style.removeProperty("--landscape-nav-padding"),document.documentElement.style.removeProperty("--landscape-logo-size"),document.documentElement.style.removeProperty("--landscape-nav-size")}window.addEventListener("load",e),window.addEventListener("resize",e),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()})()</script></body></html>