itsgoin/website/index.html
Scott Reimers a41b11c0b8 v0.3.5: Private blob encryption, blob prefetch, intent-based filtering, crypto refactoring
Private blob encryption:
- Encrypted posts (Friends/Circle/Direct) now encrypt attachment blobs with same CEK
- Public blobs unchanged, CID computed on ciphertext for private
- decrypt_blob_for_post/get_blob_for_post for transparent decryption on retrieval

Blob prefetch:
- Pull cycle and sync_with eagerly fetch missing blobs after post sync
- prefetch_blobs_from_peer scans for missing attachments, fetches via fallback chain
- Runs outside conn_mgr lock at Node level

Crypto refactoring:
- Extracted: encrypt/decrypt_bytes_with_cek, wrap/unwrap_cek_for_recipients
- unwrap_cek_for_recipient, unwrap_group_cek, random_cek
- encrypt_post_with_cek, encrypt_post_for_group_with_cek variants
- All existing functions refactored to delegate, 19 crypto tests pass

Intent-based filtering:
- intent_kind field on PostDto ("public"/"friends"/"circle"/"direct"/"unknown")
- Feed/MyPosts filter on intentKind !== 'direct' instead of visibility
- Messages filter with backward-compatible fallback for pre-intent posts
- get_post_intent storage method

IPC updates:
- resolve_blob_data helper using get_blob_for_post with network fallback
- sanitize_download_filename prevents path traversal
- get_blob_path accepts optional post_id_hex

Website:
- Mobile hamburger nav on all pages
- Mesh/Non-mesh N1 labels in network diagnostics

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:44:07 -04:00

142 lines
8.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>ItsGoin — Social Media That's Yours</title>
<meta name="description" content="Social media with no account, no ads, no algorithm. Your posts, your people, your device. Free forever, open source.">
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav>
<a href="index.html" class="logo">ItsGoin</a>
<button class="menu-toggle" onclick="this.parentElement.querySelector('.links').classList.toggle('open')" aria-label="Menu">&#9776;</button>
<div class="links">
<a href="index.html" class="active">About</a>
<a href="tech.html">How It Works</a>
<a href="design.html">Design</a>
<a href="download.html">Download</a>
<a href="contribute.html">Contribute</a>
<a href="https://discord.gg/pCjMbY9PmN">Discord</a>
</div>
</nav>
<div class="hero">
<p class="tagline" style="margin-bottom: 0.25rem; font-size: 1.1rem; color: var(--text-muted);">"How's it going?"</p>
<h1>It's goin.</h1>
<p class="tagline">Social media that's actually yours. No algorithm deciding what you see. No company deciding what you can say. Just your people, in order, the way it should be.</p>
<div class="cta">
<a href="download.html" class="btn btn-primary">Download</a>
<a href="tech.html" class="btn btn-secondary">How It Works</a>
</div>
</div>
<div class="container">
<section>
<h2>Your feed, your way</h2>
<p>When you open ItsGoin, you see posts from your family and friends &mdash; <strong>newest first</strong>. That's it. No algorithm choosing what to show you, no promoted content, no engagement bait pushed to the top.</p>
<p>Want more? You can browse what your friends recommend, or see what's popular around you. But that's <strong>your choice</strong>, not a default you can't turn off.</p>
<p><strong>Nobody controls what you say. Nobody controls what you see.</strong></p>
</section>
<section>
<h2>No account. No ads. No catch.</h2>
<p>Open the app. Pick a name. You're in. No email address. No phone number. No verification. No sign-up form.</p>
<p>There are no ads &mdash; not because we chose not to run them, but because there's <strong>no company in the middle</strong> to sell them. There never will be.</p>
<p>ItsGoin is free forever. Not "free with limits" or "free for now." It's a gift, open source under the <strong>Apache 2.0 license</strong>. There's nothing to buy.</p>
</section>
<section>
<h2>Why this exists</h2>
<p>Every social platform starts the same way: connect people. Then come the ads, the algorithms, the data harvesting, the content moderation politics, the enshittification.</p>
<p>The root cause is always the same: one company owns the server, so they own you. ItsGoin removes the middleman entirely. <strong>Your data lives on your device.</strong> Your connections are private because of how it's built, not because of a promise someone made. No company can change the rules because there is no company in the middle.</p>
<p>We're not trying to replace every social network. We're building the one that <strong>can't betray you</strong>, even if it wanted to.</p>
</section>
<section>
<h2>What you get</h2>
<div class="features">
<div class="feature">
<div class="icon icon-blue">feed</div>
<h3>Your feed, not an algorithm's</h3>
<p>Family and friends, newest first. See what they recommend if you want. You choose &mdash; always.</p>
</div>
<div class="feature">
<div class="icon icon-green">E2E</div>
<h3>Private messages that are actually private</h3>
<p>Your messages are encrypted so only you and the recipient can read them. Not the network. Not us. Nobody.</p>
</div>
<div class="feature">
<div class="icon icon-amber">eye</div>
<h3>Who you follow is your business</h3>
<p>Your follow list is hidden from everyone. The network works without knowing your social connections. Even your contacts can't see your full list.</p>
</div>
<div class="feature">
<div class="icon icon-green">grp</div>
<h3>Private circles</h3>
<p>Create groups for family, close friends, your team. What's shared in a circle stays in the circle.</p>
</div>
<div class="feature">
<div class="icon icon-amber">file</div>
<h3>Share photos and files</h3>
<p>Attach images and files to posts. They're stored on your device and shared directly with your people.</p>
</div>
<div class="feature">
<div class="icon icon-blue">own</div>
<h3>You own everything</h3>
<p>Your posts, your connections, your identity &mdash; all on your device. No account to delete because there's no account to create.</p>
</div>
<div class="feature">
<div class="icon icon-green">net</div>
<h3>Can't be shut down</h3>
<p>There's no server to unplug. No company to go bankrupt. As long as people run the app, the network exists.</p>
</div>
<div class="feature">
<div class="icon icon-blue">app</div>
<h3>Works on Android and Linux</h3>
<p>Download the app and go. Mobile and desktop, with more platforms coming.</p>
</div>
</div>
</section>
<section>
<h2>Who is this for?</h2>
<p><strong>Families</strong> who want to share photos without a corporation watching.</p>
<p><strong>Friend groups</strong> tired of algorithms burying each other's posts.</p>
<p><strong>Communities</strong> that want private conversation without corporate terms of service.</p>
<p><strong>Anyone</strong> who thinks social media should work for people, not advertisers.</p>
</section>
<section>
<h2>Honest about what we are</h2>
<p>We believe in being upfront:</p>
<div class="card">
<h3>Early and growing</h3>
<p>ItsGoin works today for small groups of friends and communities. Larger audiences are on the roadmap but not there yet.</p>
</div>
<div class="card">
<h3>Your people need to be online</h3>
<p>Posts stay available as long as someone who has them is online. If the author and everyone who saw it go offline, the post goes with them. This is social sharing, not cloud storage.</p>
</div>
<div class="card">
<h3>No global search</h3>
<p>You find people through your connections, not a search engine. This is intentional &mdash; it's how real social networks grow.</p>
</div>
</section>
<section>
<h2>Get involved</h2>
<p>ItsGoin is open source and always will be. Built by a network tech guy vibe-coding beyond his abilities with AI &mdash; and it works. But it could use your help to get even better.</p>
<p style="margin-top: 0.75rem;">
<a href="download.html" class="btn btn-primary" style="margin-right: 0.5rem;">Download the app</a>
<a href="https://discord.gg/pCjMbY9PmN" class="btn btn-secondary" style="margin-right: 0.5rem;">Join the Discord</a>
<a href="https://git.itsgoin.net/Sologretto/itsgoin" class="btn btn-secondary">Browse the code</a>
</p>
</section>
</div>
<footer>
<p>ItsGoin &mdash; Apache 2.0 License &mdash; <a href="https://itsgoin.com">itsgoin.com</a> &middot; <a href="https://discord.gg/pCjMbY9PmN">Discord</a> &middot; <a href="https://git.itsgoin.net/Sologretto/itsgoin">Source Code</a></p>
</footer>
</body>
</html>