<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="376481" data-post-id="376481">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="devaniljr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/devaniljr/120/34453_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  devaniljr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I found your idea fascinating and read the entire thread. I wish you success in your endeavor. I admire how you pursue your ideal without expecting anything in return; I’m sure it transforms the world. At least it inspired me.</p>
<p>If I may offer one suggestion, while I love the idea, I think there’s too much friction in joining Mosslet. I think a public facade can help drive conversions, like Twitter and Bluesky do/did. People access the platform and are ALREADY on the network. They don’t need to register or be convinced.</p>
<p>Another important thing is that a social network builder needs to have a quality similar to that of judges: speaking in court. The very structure of your social network already demonstrates what you want to convey. I believe there are many opinions in the attempt to convince, and while I agree with all of them, I believe it makes “joining” the social network a very difficult decision. It’s not just that I want a nice, safe place for my friends, it’s that I need to align myself with a worldview of political activism, and not everyone wants that. If you were building an activism platform, then I think it would make a lot of sense.</p>
<p>Furthermore, congratulations on your efforts.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376481" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/72">Post #71</a>
	                </div>
	            </div>
              <div id="likers-container-376481" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376481"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #71"></div>
  </section>
</div>
    <div class="postbit" id="376503" data-post-id="376503">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I super appreciate you taking the time to check us out and read through everything, along with your opinions! <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20">  I agree with you that one of the (many) challenges here is the considerable friction. Hopefully, it’s clear that I don’t profess to have any of this “figured out”, but I am actively and continually working on it.</p>
<p>Some of the hardest things I’ve encountered so far that seem to be very big friction points:</p>
<ul>
<li>“in-your-face” payment
<ul>
<li>existing networks obfuscate their costs</li>
<li>I’ve struck, I think, a solid balance in a 1-time relatively inexpensive payment (with options in the US to spread those payments out) — no subscriptions</li>
</ul>
</li>
<li>network effects
<ul>
<li>people want to be where their people already are</li>
<li>the platforms people are currently on are designed to be able to control you and your future behavior (regardless of whether they’re successful or not), in theory I could see how this could present a possible barrier</li>
</ul>
</li>
<li>educating and selling
<ul>
<li>most people I’ve encountered don’t think about these issues/topics and are unaware of the reasons why I would be motivated to make something like MOSSLET</li>
<li>marketing becomes a balancing act between getting the product out there and educating as to why it matters (without getting lost in the technical weeds — Shoshana Zuboff is my go-to favorite reference, she explains things so well, but her book is quite a book and a lot of people don’t feel like they have the time)</li>
</ul>
</li>
<li>market availability and performance/feature set
<ul>
<li>we simply lack the robust amount of features that you might find on an entrenched platform</li>
<li>running on minimal hardware for cost (effects the speed/performance of our service vs others)</li>
<li>we currently don’t have apps in the stores so that limits our availability to a lot of people</li>
</ul>
</li>
</ul>
<p>On a positive note, most people I talk to immediately think MOSSLET is awesome. Now whether they’re just being polite to me or not, I don’t know, but I do think that it’s a pretty common feeling to want to be able to preserve your privacy and dignity online. So, again, I am finding that the network effects is a big friction point alongside the feeling of “isolation” of a small network like MOSSLET.</p>
<p>To your Twitter/Bsky point, I’m actually currently planning on implementing functionality to support the AT Protocol in conjunction with opening our platform to support more public-facing interactions. My thinking is that when I implement this it’ll enable people to share their profiles publicly (and any public posts), and then they’ll be able to optionally sync that with their AT Protocol accounts (so they can either create new ones, sync a new AT protocol account with their MOSSLET account data, or simply manage their two separate accounts — MOSSLET and AT Protocol, bsky mainly) from within their MOSSLET account. This would be optional so people who want to simply use MOSSLET can keep doing so without opening up any federated accounts/data exchanges.</p>
<p>Then, the second stage of this iteration would be to provide the ability to full-on create/host their own domains as well. The thinking here is to give people another option so they can have the privacy of their MOSSLET account and the continuation of these other more public services (and easily take their data with them if they want to leave MOSSLET). This would also be an option to expand to support the ActivityPub protocol as well for services like Mastodon. This is not set in stone, but it is what I’m actively considering/planning.</p>
<p>I would push back a bit on the idea that there is a political viewpoint specific to MOSSLET (unless I misunderstood that part of your message), though I could see how it may be perceived that way. To me, anyone who gets a MOSSLET account is essentially saying that they don’t want their data used against them. I think that’s more of a personal idea rather than political, though I get that it can easily be a political one.</p>
<p>There’s also the aspect that social networks essentially become political if/once the messaging can be made public, when news/media organizations start to quote them for example, and then all the accompanying challenges that that brings with it. I think there’s so much to discuss around these ideas, but for me it starts with moving off of platforms that are designed to addict, manipulate, and control anyone who goes onto them (in terms of economics, the algorithms favor disinformation which I last read to be valued at $1.1 billion) — and so for me my way of feeling like I might be contributing positively to that is to make an alternative that tries to protect against that.</p>
<p>Then, another challenge, is simply the engineering/coding aspect and that it’s currently just me for better or worse <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20">  Thank you again, I’m really hopeful that bringing in support to have your MOSSLET account and/or your federated accounts will help alleviate another friction point to making the switch — along with general improvements to ui/ux and making things easier.</p>
<p>This is what has most recently been updated:</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/locked.png?v=15" title=":locked:" class="emoji" alt=":locked:" loading="lazy" width="20" height="20"> Granular privacy controls - Share with specific groups, individuals, or publicly. Your choice, every time.<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/shield.png?v=15" title=":shield:" class="emoji" alt=":shield:" loading="lazy" width="20" height="20"> Community safety tools - Mute, block, and report people/content that violates your boundaries or our terms.</p>
<p>And currently working on:</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/locked_with_key.png?v=15" title=":locked_with_key:" class="emoji" alt=":locked_with_key:" loading="lazy" width="20" height="20"> Privacy-first presence system (launching soon) - Control who sees when you’re online using double-encryption that even we can’t access. Default: completely private.</p>
<p>————</p>
<p>As I reread your last section again, I think I’m understanding more that the marketing of MOSSLET is another friction point, that its perhaps making it feel like joining MOSSLET is doing something political rather than personal (I’m reminded now of the little “join the privacy revolution” copy on the register page). Am I understanding that?</p>
<p>Thank you again for your time and feedback, it goes into everything I think about <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="376503" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/73">Post #72</a>
	                </div>
	            </div>
              <div id="likers-container-376503" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="376503"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #72"></div>
  </section>
</div>
    <div class="postbit" id="378454" data-post-id="378454">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-378454-url-previews-are-live-1" class="anchor" href="#p-378454-url-previews-are-live-1" aria-label="Heading link" rel="nofollow"></a><strong>URL Previews Are Live</strong> <img src="https://forum.elixirforum.com/images/emoji/apple/tada.png?v=15" title=":tada:" class="emoji" alt=":tada:" loading="lazy" width="20" height="20"></h1>
<p>Today’s update brings <strong>URL previews</strong> to posts—paste a URL and get a rich preview card with title, description, and image. This required solving challenges around encryption, privacy, and security.</p>
<p>Here’s to improving sharing with friends and family on MOSSLET (<a href="https://mosslet.com" rel="noopener nofollow ugc">https://mosslet.com</a>)! <img src="https://forum.elixirforum.com/images/emoji/apple/partying_face.png?v=15" title=":partying_face:" class="emoji" alt=":partying_face:" loading="lazy" width="20" height="20"><img src="https://forum.elixirforum.com/images/emoji/apple/herb.png?v=15" title=":herb:" class="emoji" alt=":herb:" loading="lazy" width="20" height="20"></p>
<h1><a name="p-378454-how-it-works-2" class="anchor" href="#p-378454-how-it-works-2" aria-label="Heading link" rel="nofollow"></a><strong>How It Works</strong></h1>
<p><strong>Validation &amp; Fetching</strong>: When you add a URL, our <code>URLPreviewServer</code> validates it (blocks private IPs, localhost, AWS metadata endpoints), forces HTTPS, then fetches and parses the page with Floki (safe HTML parsing, no JS execution).</p>
<p><strong>Content Sanitization</strong>: Metadata is truncated to 1000 characters max and HTML-escaped automatically by Phoenix/HEEx templates.</p>
<p><strong>Image Processing</strong>: Preview images are fetched, re-processed server-side (strips malicious code), resized, encrypted with the post’s encryption key, and stored in our object storage provider (Tigris).</p>
<p><strong>Encryption</strong>: All preview data (title, description, URLs, images) is encrypted field-by-field with the post’s unique encryption key before database storage. Public posts use the server key; private posts use user-specific keys (follows our asymmetric encryption architecture).</p>
<p><strong>Smart Fetching</strong>: Previews only fetch when URLs change—typing more text with the same URL reuses the existing preview, preventing unnecessary rate limit consumption.</p>
<p><strong>Rate Limiting</strong>: 10 requests/minute, 100/hour per user with clear error messages.</p>
<p><strong>Caching</strong>: ETS cache (keyed by SHA3-512 url_hash) stores encrypted preview data for 24 hours—no re-fetching.</p>
<h1><a name="p-378454-security-3" class="anchor" href="#p-378454-security-3" aria-label="Heading link" rel="nofollow"></a><strong>Security</strong> <img src="https://forum.elixirforum.com/images/emoji/apple/shield.png?v=15" title=":shield:" class="emoji" alt=":shield:" loading="lazy" width="20" height="20"></h1>
<p>Things I looked to take into account:</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>SSRF Prevention</strong>: Blocks private IPs, localhost, link-local addresses; validates schemes/ports<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>XSS Protection</strong>: Phoenix auto-escapes all content<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>Image Security</strong>: Server-side re-processing, encrypted storage<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>Encryption</strong>: Our same privacy and security model<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>Rate Limiting</strong>: Improving protection against spam/DoS attacks<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/white_check_mark.png?v=15" title=":white_check_mark:" class="emoji" alt=":white_check_mark:" loading="lazy" width="20" height="20"> <strong>Safer Links</strong>: <code>rel="noopener noreferrer"</code></p>
<h1><a name="p-378454-privacy-first-cleanup-4" class="anchor" href="#p-378454-privacy-first-cleanup-4" aria-label="Heading link" rel="nofollow"></a><strong>Privacy-First Cleanup</strong></h1>
<p>I care a lot about making sure that when you delete something, it’s actually gone. So, I needed to make sure that that same rule applied to URL previews.</p>
<p>When you delete a post, all encrypted preview images are automatically deleted via background jobs. Only the post UUID is stored in job args—no sensitive data.</p>
<p>The result? <strong>Rich URL previews that respect your privacy</strong> and work seamlessly with our encryption model. <img src="https://forum.elixirforum.com/images/emoji/apple/locked.png?v=15" title=":locked:" class="emoji" alt=":locked:" loading="lazy" width="20" height="20"></p>
<p><a href="https://www.loom.com/share/412ed82e240e4a6981860f057b34f8a4" rel="noopener nofollow ugc"><br>
DuckDuckGo - Timeline <img src="https://forum.elixirforum.com/images/emoji/apple/herb.png?v=15" title=":herb:" class="emoji" alt=":herb:" loading="lazy" width="20" height="20"> MOSSLET - 19 November 2025 - Watch Video<br>
</a><a href="https://www.loom.com/share/412ed82e240e4a6981860f057b34f8a4" rel="noopener nofollow ugc"><img src="https://cdn.loom.com/sessions/thumbnails/412ed82e240e4a6981860f057b34f8a4-b4dfa272e10fc217-full-play.gif#t=0.1" alt="" role="presentation" width="" height=""></a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="378454" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/74">Post #73</a>
	                </div>
	            </div>
              <div id="likers-container-378454" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="378454"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #73"></div>
  </section>
</div>
    <div class="postbit" id="378738" data-post-id="378738">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Quick update that we now have a ~15min video walkthrough of some of our core features (connecting and sharing). I’ve also made updates to our marketing, switching the tone to better reflect our service: more focus on positivity and connecting simply with friends and family (less focus on negativity and the ills of Big Tech/surveillance capitalism). <img src="https://forum.elixirforum.com/images/emoji/apple/blush.png?v=15" title=":blush:" class="emoji" alt=":blush:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"></p>
<p>You can find the link to our demo through either option below:<br>
<a href="https://mosslet.com" rel="noopener nofollow ugc">MOSSLET</a><br>
<a href="https://www.loom.com/share/5fc4498f4ab44f7599bc97e5749aed49" rel="noopener nofollow ugc"><img src="https://forum.elixirforum.com/images/emoji/apple/movie_camera.png?v=15" title=":movie_camera:" class="emoji" alt=":movie_camera:" loading="lazy" width="20" height="20"> ~15 min demo</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="378738" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/75">Post #74</a>
	                </div>
	            </div>
              <div id="likers-container-378738" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="378738"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #74"></div>
  </section>
</div>
    <div class="postbit" id="380543" data-post-id="380543">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey everyone! <img src="https://forum.elixirforum.com/images/emoji/apple/waving_hand.png?v=15" title=":waving_hand:" class="emoji" alt=":waving_hand:" loading="lazy" width="20" height="20"></p>
<p>I wanted to share something we just shipped at <a href="https://mosslet.com/" rel="noopener nofollow ugc">MOSSLET</a> — a referral program that maintains our privacy and encryption architecture.</p>
<p><strong>The privacy-first approach:</strong></p>
<ul>
<li>Referral codes are encrypted asymmetrically and at rest (using Cloak + our enacl-based encryption layer)</li>
<li><strong>No tracking cookies or pixels</strong> — attribution happens via URL parameter (<code>?ref=CODE</code>) stored in the encrypted Phoenix session</li>
<li>The code travels with the user through registration → checkout, all server-side</li>
<li>Commission tracking integrates with Stripe Connect for direct payouts</li>
<li>The whole thing runs through our existing LiveView stack — no separate microservice needed</li>
</ul>
<p><strong>The business side:</strong></p>
<ul>
<li>30% recurring on subscriptions / 35% on lifetime (beta rates)</li>
<li>Friends get 20% off their first payment</li>
<li>Real money via Stripe, not points</li>
</ul>
<p>Would love to hear how others have approached affiliate/referral systems in Phoenix. Any gotchas we should watch out for as we scale?</p>
<p>Cheers, Mark</p><aside class="onebox allowlistedgeneric" data-onebox-src="https://mosslet.com/referrals">
  <header class="source">
      <img src="https://mosslet.com/favicon/favicon-32x32-17e1f79e3b6aa8148094fbd276ef0b54.png?vsn=d" class="site-icon" alt="" width="32" height="32">

      <a href="https://mosslet.com/referrals" target="_blank" rel="noopener nofollow ugc">MOSSLET</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/361;"><img src="https://mosslet.com/images/referrals/referrals_og-6ff210be47d18cbd9d33c1b299edde12.png?vsn=d" class="thumbnail" alt="" width="690" height="430"></div>

<h3><a href="https://mosslet.com/referrals" target="_blank" rel="noopener nofollow ugc">Referral Program</a></h3>

  <p>Earn real money sharing MOSSLET with friends. 15% recurring commissions on subscriptions and 20% on lifetime purchases. Privacy-first referral program with direct bank payouts.</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="380543" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/76">Post #75</a>
	                </div>
	            </div>
              <div id="likers-container-380543" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="380543"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #75"></div>
  </section>
</div>
    <div class="postbit" id="381688" data-post-id="381688">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Updated our demo video to include our new Journal, moderation (community protection for sharing), and referral <a href="https://mosslet.com/features" rel="noopener nofollow ugc">features</a>:<br>
<a href="https://www.loom.com/share/e088294ed8c043978e239dcca8e82e5f" rel="noopener nofollow ugc"><br>
Exploring the New Features of Moslet: Social and Journal <img src="https://forum.elixirforum.com/images/emoji/apple/rocket.png?v=15" title=":rocket:" class="emoji" alt=":rocket:" loading="lazy" width="20" height="20"> - Watch Video<br>
</a><a href="https://www.loom.com/share/e088294ed8c043978e239dcca8e82e5f" rel="noopener nofollow ugc"><img src="https://cdn.loom.com/sessions/thumbnails/e088294ed8c043978e239dcca8e82e5f-225fd8e4dcd3d547-full-play.gif#t=0.1" alt="" role="presentation" width="636" height="360"></a></p>
<p>Our latest updates with AI integration using <a href="https://hex.pm/packages/req_llm" rel="nofollow">req_llm</a> while maintaing our same privacy-first design:</p>
<h2><a name="p-381688-privacy-first-community-health-1" class="anchor" href="#p-381688-privacy-first-community-health-1" aria-label="Heading link" rel="nofollow"></a>Privacy-First Community Health <img src="https://forum.elixirforum.com/images/emoji/apple/shield.png?v=15" title=":shield:" class="emoji" alt=":shield:" loading="lazy" width="20" height="20"></h2>
<p>v0.13.0 • January 2026 <em>Latest</em></p>
<p>Building a healthier community with privacy-first moderation. Content and image checks for public posts, image-only checks for private content, plus automatic AI-generated image detection.</p>
<ul>
<li>Privacy-first moderation — public posts are checked for harmful content and images, keeping the community safe</li>
<li>Image safety checks — all images (public and private) are screened while respecting your privacy</li>
<li>Non-public privacy — private posts only have image checks, your text content stays between you and your connections</li>
<li>AI-generated badge — automatically detect and label AI-generated imagery for full transparency</li>
<li>Community health — building trust through transparency and protecting what makes MOSSLET special</li>
</ul>
<h2><a name="p-381688-private-journal-2" class="anchor" href="#p-381688-private-journal-2" aria-label="Heading link" rel="nofollow"></a>Private Journal <img src="https://forum.elixirforum.com/images/emoji/apple/notebook.png?v=15" title=":notebook:" class="emoji" alt=":notebook:" loading="lazy" width="20" height="20"></h2>
<p>v0.12.0 • January 2026 <em>Feature</em></p>
<p>Your private space for reflection — write freely with end-to-end encryption, track moods, build streaks, and even upload handwritten entries.</p>
<ul>
<li>Private journal entries — write freely, everything is encrypted with your personal key</li>
<li>Journal books — organize entries into themed collections like travel logs or gratitude journals</li>
<li>Writing streaks — build consistency with daily streak tracking</li>
<li>AI mood insights — get gentle reflections on your emotional patterns over time</li>
<li>Handwritten upload — snap a photo of your paper journal and we’ll digitize it</li>
<li>Favorites — star meaningful entries to revisit later</li>
</ul>
<h2><a name="p-381688-discover-rss-feeds-3" class="anchor" href="#p-381688-discover-rss-feeds-3" aria-label="Heading link" rel="nofollow"></a>Discover &amp; RSS Feeds <img src="https://forum.elixirforum.com/images/emoji/apple/herb.png?v=15" title=":herb:" class="emoji" alt=":herb:" loading="lazy" width="20" height="20"></h2>
<p>v0.11.0 • January 2026 <em>Feature</em></p>
<p>Explore public posts from the community and subscribe via RSS — plus GIF support and UI polish throughout.</p>
<ul>
<li>Discover page — browse public posts from the MOSSLET community</li>
<li>RSS feeds — subscribe to public posts and our blog in your favorite feed reader</li>
<li>GIF support — upload and share animated images in your posts</li>
<li>Image upload improvements — better handling and format support</li>
<li>Mobile polish — improved password inputs, tooltips, and image viewing</li>
<li>UI refinements — updated user dropdown, circle UI, and more</li>
</ul>
<h2><a name="p-381688-referral-program-new-pricing-4" class="anchor" href="#p-381688-referral-program-new-pricing-4" aria-label="Heading link" rel="nofollow"></a>Referral Program &amp; New Pricing <img src="https://forum.elixirforum.com/images/emoji/apple/money_with_wings.png?v=15" title=":money_with_wings:" class="emoji" alt=":money_with_wings:" loading="lazy" width="20" height="20"></h2>
<p>v0.10.0 • December 2025 <em>Feature</em></p>
<p>Get paid for sharing MOSSLET with friends and family. Real money, not points — plus a refreshed pricing structure with more options.</p>
<ul>
<li>Referral program — earn 30% recurring on subscriptions and 35% on lifetime purchases (beta rates)</li>
<li>Friend discount — your referrals get 20% off their first payment</li>
<li>Direct payouts via Stripe — real cash to your bank, not confusing points</li>
<li>Privacy-first referrals — encrypted tracking with no creepy pixels or third-party data sharing</li>
<li>New pricing tiers — monthly, annual, and lifetime options to fit your needs</li>
<li>Beta bonus — lock in higher commission rates by joining during beta</li>
</ul>
<h2><a name="p-381688-in-development-5" class="anchor" href="#p-381688-in-development-5" aria-label="Heading link" rel="nofollow"></a>In development</h2>
<ul>
<li>native apps for desktop and mobile (active)</li>
<li>federation support (tbd)</li>
</ul>
<p>Now with Journal, you can use <a href="https://mosslet.com" rel="noopener nofollow ugc">MOSSLET</a> to connect with friends and family, or simply yourself. <img src="https://forum.elixirforum.com/images/emoji/apple/herb.png?v=15" title=":herb:" class="emoji" alt=":herb:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="381688" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/77">Post #76</a>
	                </div>
	            </div>
              <div id="likers-container-381688" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="381688"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #76"></div>
  </section>
</div>
    <div class="postbit" id="381743" data-post-id="381743">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Werner" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Werner
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi, congratulation! I really like Mosslet’s design. Do you do everything yourself with Tailwind?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="381743" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/78">Post #77</a>
	                </div>
	            </div>
              <div id="likers-container-381743" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="381743"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #77"></div>
  </section>
</div>
    <div class="postbit" id="381748" data-post-id="381748">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you <img src="https://forum.elixirforum.com/images/emoji/apple/blush.png?v=15" title=":blush:" class="emoji" alt=":blush:" loading="lazy" width="20" height="20"> Yes, and tailwind (I’ve been a paid member of what’s now tailwind plus). The biggest change I made recently was adopting tidewave into my development flow and making a design markdown file that the AI agent can follow — that’s helped a lot with quickly creating and maintaining the design (and make a11y improvements).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="381748" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/79">Post #78</a>
	                </div>
	            </div>
              <div id="likers-container-381748" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="381748"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #78"></div>
  </section>
</div>
    <div class="postbit" id="382512" data-post-id="382512">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Mosslet was featured on <a href="https://betalist.com/startups/mosslet" rel="noopener nofollow ugc">BetaList</a> today! And recently released our initial interoperability with Bluesky via oauth. Lots more to do, but excited for the progress and working toward making a space online to support privacy and open-social. <img src="https://forum.elixirforum.com/images/emoji/apple/relieved_face.png?v=15" title=":relieved_face:" class="emoji" alt=":relieved_face:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="382512" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/80">Post #79</a>
	                </div>
	            </div>
              <div id="likers-container-382512" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="382512"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #79"></div>
  </section>
</div>
    <div class="postbit" id="385748" data-post-id="385748">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="f0rest8" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/f0rest8/120/38551_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  f0rest8
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just released our latest feature on <a href="https://mosslet.com" rel="noopener nofollow ugc">Mosslet</a>, end-to-end encrypted direct messaging called Conversations!</p>
<ul>
<li>e2ee direct messaging between connections</li>
<li>block, archive, or delete conversations</li>
<li>real-time, reactions, images, and typing indicators</li>
</ul>
<p>I was motivated to release this after the news that Instagram was removing their end-to-end encryption and was excited to essentially utilize our encryption architecture but adapt it to be client-side rather than server-side (sans the image safety checks).</p>
<p>It’s simple, straight forward private messaging with your connections on Mosslet.</p>
<p>Cheers <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="385748" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/mosslet-a-privacy-focused-alternative-to-the-social-networking-landscape-built-with-elixir/41021/81">Post #80</a>
	                </div>
	            </div>
              <div id="likers-container-385748" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="385748"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #80"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/41021/load_more?page=9">Load more posts (2 remaining)</a>
</div></template></turbo-stream>