YOU'RE not alone

Together We
Are Stronger!

Building a stronger trans community through technology, connecting people with safe spaces, trusted information, and one another.


trans visibility & safety map

Features

Features designed to help us find safety, connection, and visibility in our everyday lives.

Spaces & Services

Trans-community-verified spaces and services that offer safety, respect, and acceptance in everyday life.

Walk Together

Find community members who can accompany and support you during appointments, errands, walks, or other daily activities.

Emergency Button

In case of danger, activate an alert that instantly notifies the community and your selected contacts, sharing your live location until the alert is deactivated.

Help us bring all these features to life.


Who we are

Our VisionWe believe technology has the power to transform how communities connect, organize, and care for one another.You're Not Alone is building a community ecosystem where every trans person can access trusted information, meaningful connections, practical support, and opportunities to grow, regardless of where they live.The Trans Visibility & Safety Map is our first step. Our long-term vision is to create a network of tools, knowledge, education, mentorship, and partnerships that help trans communities become stronger, more connected, and more resilient together.

Nadia Rose

Founder

Member of



Nadia Rose is a Greek-Italian trans woman, technology entrepreneur, and systems builder working at the intersection of technology, strategy, and social impact.For more than 20 years, she has leveraged her background in Information Technology, digital strategy, and communications to create initiatives focused on connection, opportunity, and community building beyond geographical and social boundaries.She believes technology reaches its highest purpose when it helps people build stronger communities and a better future together, not simply by making existing processes faster, but by creating new ways for people to connect, organize, and unlock their collective potential.She has served on the Advisory Board of the Metaverse Fashion Council, has been internationally recognized as a Top 50 Thought Leader in the Avatar Economy, and founded an award-winning fashion-tech startup that was ranked among the world's most innovative technology companies.She has spoken at events including TEDx, Delphi Economic Forum, and Entrepreneurship European Summit, while her work has been featured in publications including Forbes, Vogue, and Esquire.In 2023, she created a VR platform that provided access to work opportunities, knowledge, and visibility for women living in countries where such opportunities were restricted or inaccessible in physical spaces.You're Not Alone was born from Nadia's own experience during gender transition, when she recognized the gap between having access to information and having access to a real community of support.The initiative's mission is to create practical tools that strengthen the safety, visibility, and connection of trans people through technology and collective action.It begins with the Trans Visibility & Safety Map and evolves toward a broader ecosystem of support, networking, education, and empowerment.Because when visibility and connection exist, safety is no longer a privilege, it becomes a shared experience.Because together we are stronger.


setTimeout(function(){ const button = document.getElementById("searchBtn"); button.addEventListener("click", function(){ const category = document.getElementById("poiSelect").value; const area = document.getElementById("regionSelect").value; const sheetURL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTLDK1U7PY5-4jB0FoTpMsagAb4hpJrg6xraf2oLr8eOI-Yg4YsrBUfQtTKvS3B53lXLv6HXQNh0gug/pub?gid=0&single=true&output=csv"; fetch(sheetURL) .then(response => response.text()) .then(data => { let rows = data.split("\n"); let headers = rows[0].split(","); let places = rows.slice(1).map(row => { let values = row.split(","); let place = {}; headers.forEach((header,index)=>{ place[header.trim()] = values[index]; }); return place; }); let results = places.filter(place => { return ( (category === "" || place.Category?.trim().toLowerCase() === category.trim().toLowerCase()) && (area === "" || place.Area?.trim().toLowerCase() === area.trim().toLowerCase()) ); }); const container = document.getElementById("results"); console.log(container); container.innerHTML = ""; if(results.length === 0){ container.innerHTML = "

No places found.

"; } else { let visibleCount = 9; function renderPlaces(){ container.innerHTML = ""; results.slice(0, visibleCount).forEach(place => { const card = document.createElement("div"); card.className = "place-card"; /* PHOTO */ if(place["Photo URL"] && place["Photo URL"].trim() !== "") { const img = document.createElement("img"); let fileID = place["Photo URL"].trim(); let photoURL = `https://drive.google.com/thumbnail?id=${fileID}&sz=w1000`; img.src = photoURL; img.alt = place.Name; img.style.width = "100%"; img.style.height = "220px"; img.style.objectFit = "cover"; img.style.display = "block"; img.onload = () => { }; img.onerror = () => { }; card.appendChild(img); } /* NAME */ const title = document.createElement("h3"); title.textContent = place.Name; card.appendChild(title); /* DESCRIPTION + AREA */ const info = document.createElement("p"); info.className = "description-area"; info.textContent = (place.Description || "") + " 📍 " + (place.Area || ""); card.appendChild(info); /* VERIFIED */ if(place.Verified && place.Verified.trim() !== "") { const verified = document.createElement("p"); verified.className = "verification"; verified.textContent = "✅ Verified"; card.appendChild(verified); } /* RATING */ const rating = document.createElement("p"); rating.className = "rating";; rating.textContent = place["Reviews Rank"]?.trim() || "No reviews"; card.appendChild(rating); /* SOCIAL + MAP LINKS */ const links = document.createElement("div"); links.className = "social-links"; function addIcon(url, image, name) { if(url && url.trim() !== "") { const a = document.createElement("a"); a.href = url; a.target = "_blank"; a.title = name; const icon = document.createElement("img"); icon.src = image; icon.alt = name; a.appendChild(icon); links.appendChild(a); } } /* INSTAGRAM */ addIcon( place.Instagram, "https://yourenotalone.eu/assets/images/image13.png?v=72c634ff", "Instagram" ); /* FACEBOOK */ addIcon( place.Facebook, "https://yourenotalone.eu/assets/images/image14.png?v=0a4fa03d", "Facebook" ); /* TIKTOK */ addIcon( place.TikTok, "https://yourenotalone.eu/assets/images/image15.png?v=223c8dad", "TikTok" ); /* EMAIL */ if(place.email && place.email.trim() !== "") { const a = document.createElement("a"); a.href = "mailto:" + place.email.trim(); a.title = "Email"; const icon = document.createElement("img"); icon.src = "https://yourenotalone.eu/assets/images/image16.png?v=d3aba7b5"; icon.alt = "Email"; a.appendChild(icon); links.appendChild(a); } /* MAP */ addIcon( place["Map URL"], "https://yourenotalone.eu/assets/images/image03.png?v=0a4fa03d", "Map" ); card.appendChild(links); /* SEE REVIEWS */ const reviewsButton = document.createElement("a"); reviewsButton.textContent = "See Reviews"; reviewsButton.href = "#"; reviewsButton.className = "details-btn"; reviewsButton.addEventListener("click", function(e){ e.preventDefault(); const reviewSheetURL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vTh0gxsRSbvHYPy415n7-fUAAcKJG_p6O3-40tErHxXh1mPwOEcwyKtfDPFJPjhWUek4nEwa1QVZgqQ/pub?output=csv"; fetch(reviewSheetURL) .then(response => response.text()) .then(data => { const parsed = Papa.parse(data, { header: true, skipEmptyLines: true }); if(parsed.errors.length > 0){ console.error(parsed.errors); return; } let reviews = parsed.data; let placeReviews = reviews.filter(review => { return review["Place ID"]?.trim() === place.ID?.trim(); }); let averageRating = 0; if(placeReviews.length > 0){ let total = 0; placeReviews.forEach(review => { total += Number(review["Rating:"] || 0); console.log(review); }); averageRating = (total / placeReviews.length).toFixed(1); } const modal = document.getElementById("placeModal"); const modalBody = document.getElementById("modalBody"); modalBody.innerHTML = ""; /* TITLE */ const reviewTitle = document.createElement("h2"); reviewTitle.textContent = place.Name; modalBody.appendChild(reviewTitle); /* SUMMARY */ const summary = document.createElement("div"); summary.style.padding = "15px"; summary.style.background = "#F5A9B8"; summary.style.borderRadius = "12px"; summary.style.marginBottom = "25px"; summary.style.textAlign = "center"; const avg = Number(averageRating); const stars = '★'.repeat(Math.floor(avg)) + (avg % 1 >= 0.5 ? '⯨' : '') + '☆'.repeat(5 - Math.ceil(avg)); summary.innerHTML = `
${'★'.repeat(Math.floor(avg))} ${'★'.repeat(5 - Math.floor(avg))}
${averageRating} (${placeReviews.length} reviews)
`; console.log(summary.outerHTML); modalBody.appendChild(summary); if(placeReviews.length === 0){ const noReviews = document.createElement("p"); noReviews.textContent = "No reviews yet."; modalBody.appendChild(noReviews); } else { placeReviews.forEach(review => { const reviewCard = document.createElement("div"); reviewCard.className = "review-item"; const ratingValue = Number(review["Rating:"] || 0); const rating = document.createElement("div"); rating.className = "review-rating"; rating.innerHTML = `${'★'.repeat(ratingValue)} ${'☆'.repeat(5 - ratingValue)} ${ratingValue}`; const text = document.createElement("div"); text.className = "review-text"; text.innerHTML = `${review["Share your experience"] || ""}`; const meta = document.createElement("div"); meta.className = "review-meta"; meta.textContent = `${(review["Your Name - (optional – only if you want to help with verification)"] || "Anonymous").replace(/\r/g,"")}, Visited: ${review["When did you visit this place?"] || "-"}`; reviewCard.appendChild(rating); reviewCard.appendChild(text); reviewCard.appendChild(meta); modalBody.appendChild(reviewCard); }); } modal.style.display = "block"; document.getElementById("closeModal").style.display = "block"; document.body.style.overflow = "hidden"; }); }); card.appendChild(reviewsButton); /* SUBMIT REVIEW */ const reviewButton = document.createElement("a"); reviewButton.textContent = "Submit Review"; reviewButton.href = "#"; reviewButton.addEventListener("click", function(e){ e.preventDefault(); const formURL = `https://docs.google.com/forms/d/e/1FAIpQLSeMrD3Job145yO2VC-tWOwhQLh47nwNzvMan0leb9Tq88zNYA/viewform?usp=pp_url&entry.1078193477=${encodeURIComponent(place.ID)}`; document.querySelector("#reviewModal iframe").src = formURL; document.getElementById("reviewModal").style.display = "block"; }); reviewButton.className = "details-btn"; card.appendChild(reviewButton); /* ADD CARD */ container.appendChild(card); }); if(visibleCount < results.length){ const loadMoreBtn = document.createElement("button"); loadMoreBtn.id = "loadMoreBtn"; loadMoreBtn.textContent = "Load More"; loadMoreBtn.addEventListener("click", function(){ visibleCount += 9; renderPlaces(); }); container.appendChild(loadMoreBtn); } } renderPlaces(); } }); }); }); document.addEventListener("click", function(e){ if(e.target.id === "closeModal"){ document.getElementById("placeModal").style.display = "none"; document.body.style.overflow = ""; } if(e.target.id === "placeModal"){ document.getElementById("placeModal").style.display = "none"; document.body.style.overflow = ""; } if(e.target.id === "closeReviewModal"){ document.getElementById("reviewModal").style.display = "none"; document.body.style.overflow = ""; } });