sojorn/html_landing/index.html
Patrick Britton 3c4680bdd7 Initial commit: Complete threaded conversation system with inline replies
**Major Features Added:**
- **Inline Reply System**: Replace compose screen with inline reply boxes
- **Thread Navigation**: Parent/child navigation with jump functionality
- **Chain Flow UI**: Reply counts, expand/collapse animations, visual hierarchy
- **Enhanced Animations**: Smooth transitions, hover effects, micro-interactions

 **Frontend Changes:**
- **ThreadedCommentWidget**: Complete rewrite with animations and navigation
- **ThreadNode Model**: Added parent references and descendant counting
- **ThreadedConversationScreen**: Integrated navigation handlers
- **PostDetailScreen**: Replaced with threaded conversation view
- **ComposeScreen**: Added reply indicators and context
- **PostActions**: Fixed visibility checks for chain buttons

 **Backend Changes:**
- **API Route**: Added /posts/:id/thread endpoint
- **Post Repository**: Include allow_chain and visibility fields in feed
- **Thread Handler**: Support for fetching post chains

 **UI/UX Improvements:**
- **Reply Context**: Clear indication when replying to specific posts
- **Character Counting**: 500 character limit with live counter
- **Visual Hierarchy**: Depth-based indentation and styling
- **Smooth Animations**: SizeTransition, FadeTransition, hover states
- **Chain Navigation**: Parent/child buttons with visual feedback

 **Technical Enhancements:**
- **Animation Controllers**: Proper lifecycle management
- **State Management**: Clean separation of concerns
- **Navigation Callbacks**: Reusable navigation system
- **Error Handling**: Graceful fallbacks and user feedback

This creates a Reddit-style threaded conversation experience with smooth
animations, inline replies, and intuitive navigation between posts in a chain.
2026-01-30 07:40:19 -06:00

139 lines
6.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sojorn - The Vibrant Social Network</title>
<script src="https://cdn.tailwindcss.com"></script>
<link
href="https://fonts.googleapis.com/css2?family=Literata:opsz,wght@7..72,400;600;700&family=Outfit:wght@300;400;600;700&display=swap"
rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
egyptianBlue: '#1034A6',
queenPink: '#E8CCD7',
navyText: '#0A2351',
},
fontFamily: {
sans: ['Outfit', 'sans-serif'],
serif: ['Literata', 'serif'],
}
}
}
}
</script>
<style>
body {
font-family: 'Outfit', sans-serif;
}
.glass-card {
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.5);
}
</style>
</head>
<body class="bg-gradient-to-br from-gray-50 to-queenPink min-h-screen text-navyText flex flex-col">
<!-- Navigation -->
<nav class="w-full py-6 px-8 flex justify-between items-center glass-card border-b border-white/20">
<div class="flex items-center gap-3">
<img src="/leaf.png" alt="Sojorn Leaf" class="h-12 w-auto">
<span class="text-5xl font-serif font-bold tracking-tight text-egyptianBlue">sojorn</span>
</div>
<div class="flex items-center gap-6">
<a href="/email" class="text-sm font-semibold hover:text-egyptianBlue transition">Newsletter</a>
<a href="mailto:contact@gosojorn.com"
class="text-sm font-semibold hover:text-egyptianBlue transition">Contact</a>
</div>
</nav>
<!-- Hero Section -->
<main class="flex-grow flex items-center justify-center px-6 py-20 relative overflow-hidden">
<!-- Decorative blobs -->
<div
class="absolute top-0 right-0 w-96 h-96 bg-egyptianBlue/10 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2">
</div>
<div
class="absolute bottom-0 left-0 w-80 h-80 bg-queenPink/60 rounded-full blur-3xl translate-y-1/2 -translate-x-1/3">
</div>
<div class="glass-card max-w-4xl w-full p-12 rounded-3xl shadow-2xl z-10 text-center">
<h1
class="text-5xl md:text-7xl font-bold mb-6 bg-clip-text text-transparent bg-gradient-to-r from-egyptianBlue to-purple-600">
Journey Vibrantly.
</h1>
<p class="text-xl md:text-2xl text-gray-700 mb-10 max-w-2xl mx-auto leading-relaxed">
Connect deeply with a social network built on <strong>Data Minimization</strong>,
<strong>End-to-End Encryption</strong>, and <strong>Authenticity</strong>.
</p>
<!-- Features Grid -->
<div class="grid md:grid-cols-3 gap-8 mb-12 text-left">
<div class="p-6 bg-white/50 rounded-2xl hover:bg-white/80 transition duration-300">
<div class="w-12 h-12 bg-egyptianBlue/10 rounded-xl flex items-center justify-center mb-4 text-2xl">
🛡️</div>
<h3 class="font-bold text-lg mb-2">Data Minimization</h3>
<p class="text-sm text-gray-600">We collect only what is strictly necessary. No tracking pixels, no
shadow profiles, no selling data.</p>
</div>
<div class="p-6 bg-white/50 rounded-2xl hover:bg-white/80 transition duration-300">
<div class="w-12 h-12 bg-egyptianBlue/10 rounded-xl flex items-center justify-center mb-4 text-2xl">
🔒</div>
<h3 class="font-bold text-lg mb-2">Zero-Knowledge E2EE</h3>
<p class="text-sm text-gray-600">Chat with total privacy. Keys are generated on your device; we
cannot read your messages.</p>
</div>
<div class="p-6 bg-white/50 rounded-2xl hover:bg-white/80 transition duration-300">
<div class="w-12 h-12 bg-egyptianBlue/10 rounded-xl flex items-center justify-center mb-4 text-2xl">
📍</div>
<h3 class="font-bold text-lg mb-2">Beacons</h3>
<p class="text-sm text-gray-600">Discover ephemeral local events and connect with your immediate
community.</p>
</div>
</div>
<!-- CTA -->
<div class="inline-block relative group">
<div
class="absolute -inset-1 bg-gradient-to-r from-egyptianBlue to-purple-600 rounded-lg blur opacity-25 group-hover:opacity-100 transition duration-1000 group-hover:duration-200">
</div>
<button
class="relative px-8 py-4 bg-egyptianBlue text-white font-bold rounded-lg shadow-lg hover:bg-blue-800 transition flex items-center gap-2">
<span>Coming Soon to Google Play Store</span>
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd"
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-8.707l-3-3a1 1 0 00-1.414 1.414L10.586 9H7a1 1 0 100 2h3.586l-1.293 1.293a1 1 0 101.414 1.414l3-3a1 1 0 000-1.414z"
clip-rule="evenodd" />
</svg>
</button>
</div>
<p class="mt-6 text-sm text-gray-500">
Join the waitlist by emailing <a href="mailto:waitlist@gosojorn.com"
class="text-egyptianBlue underline">waitlist@gosojorn.com</a>
</p>
</div>
</main>
<footer class="py-6 text-center text-gray-500 text-sm">
<div class="flex justify-center gap-6 mb-2">
<a href="/privacy" class="hover:text-egyptianBlue">Privacy</a>
<a href="/terms" class="hover:text-egyptianBlue">Terms</a>
</div>
&copy; 2026 <a href="https://mp.ls" target="_blank" class="hover:text-egyptianBlue transition">MP.LS LLC</a>.
All rights reserved.
</footer>
</body>
</html>