Otto - a Reddit alternative I've been building since 2023

Posted by p4r4d0x@reddit | RedditAlternatives | View on Reddit | 44 comments

I've been working on a Reddit-alternative called Otto for a few years now. The increasingly user hostile direction Reddit has taken over the past few years, especially since the IPO, has been disappointing and has significantly diverged from how it was in the 2010s. The API shutdown leading to the moderator exodus, killing third-party apps, rampant astroturfing, bot accounts in every thread, private profiles that seem to intentionally obscure whether someone is a bot, declining quality of comments and posts.

There was also the design side of things. Old Reddit has been on borrowed time for years now and may eventually disappear. So when I started building an alternative, that was one of the goals: something that takes inspiration from Old Reddit and preserves the spirit in case it goes away, but with an attempt at a more current design and implementation from the 2020s and made using modern frameworks and tools.

It's at **[otto.talk](https://otto.talk)** if you want to take a look.

**What makes it different**

There's a couple of guiding principles behind it:

- **Moderator accountability.** Mod actions are logged and visible. There's automated detection for mod abuse patterns, and admins can restrict mod permissions or issue warnings. Communities cannot be held hostage by anyone. Every mod action can be appealed. I've been on the wrong end of unjust actions myself and want to ensure that doesn't happen here.

- **No ads and no algorithmic feed.** There's no engagement-optimizing algorithm deciding what you see and no promoted content. There's two unique sorts implemented, one for posts and one for comments. The default post sort "Depth" promotes long-form content, and demotes easily digestible images and memes that tend to dominate vote-based feeds. Comments have a "Quality" sort that promotes more thought-out comments over jokes and one-liners (I can go into exactly how these work at a later date).

- **Automated bot and spam detection.** The platform runs multiple layers of automated detection for spam, manipulation, and inauthentic behavior.

- **No private profiles and visible country flags.** Every user's post and comment history is visible, and country flags are shown alongside posts and comments based on where you're posting from. This makes it much harder for bots and astroturfers to operate without being noticed, and lets you judge credibility for yourself.

- **Hosted in Australia.** The servers and data are located in Melbourne, Australia. With increasing uncertainty around US-based platforms and government pressure on tech companies, having servers located outside the US seems to be advantageous. As much as possible is edge cached near you via bunny.net CDN, so it should still be fast and responsive, regardless of where you are located in the world.

- **GDPR and CCPA compliant.** Accounts can be fully deleted and personal data can be exported. European and Californian privacy regulations are adhered to as a baseline. Minimum amount of information is captured to run the site.

- **SFW-only at launch.** Age verification laws are a mess around the world and rather than requiring everyone to scan their face, the simpler path is just to disallow NSFW content for now. The majority of interesting content on Reddit is not NSFW. Once the laws stabilize and there's less invasive ways of proving age (or maybe the laws get scrapped entirely), this can be revisited.

- **VPNs are blocked.** I know some people use VPNs for privacy, but they're also widely used to sockpuppet other countries, particularly people pretending to be American to have some nefarious influence on American political discourse. This became apparent when Twitter added the country of origin feature recently and tons of political accounts were revealed as not actually based in the US, despite claiming to be in their bio. Part of the design is to block VPNs and datacentre IPs, so the actual country flag can be displayed next to the user. If this turns out to be a bad decision, I'll revisit, but I want to try it out at least initially.

**Other features**

There's a full feature list on the [About page](https://otto.talk/about) if you want the details, but the short version: it's fairly full-featured at this point. Communities with customizable settings, flairs, rules, and per-community domain blocklists. Text, link, and multi-image posts with thumbnails and auto-generated TLDR summaries. Threaded comments with multiple sort options. Full-text search. Embedded media for YouTube, Twitter/X, and Bluesky. DMs and modmail with typing indicators and conversation archiving. Google login. User tags (like a built-in RES). Session management. Ban appeals with automatic content restoration. Reporter quality scoring (bad-faith reporters get deprioritized). Dark mode. Keyboard shortcuts. Fully responsive mobile experience. Live notifications via websockets.

**Tech stack (if anyone's curious)**

- Backend: Swift/Vapor with PostgreSQL and Redis

- Frontend: React Router 7 with SSR, TanStack Query, heavily modified Bootstrap + Tailwind

- Search: Meilisearch (self-hosted)

- CDN/DDoS: Bunny.net

- Bot protection: Cloudflare Turnstile (invisible)

- Analytics: Umami (self-hosted, privacy-focused, no Google or Facebook listening in)

- Observability: Grafana, Prometheus

- Server: Docker, Ubuntu, Nginx, Resend

**Where it's at**

It's been live for about a month, while I've been making alterations and additions on a daily basis. Obviously this is not going to replace Reddit, but it's worth taking a shot at tackling some of the problems that Reddit seems less interested in solving and see whether I can make a dent. I'm several years into this now and pretty invested in seeing it get some traction. I've personally been working as a software dev since 2009 including a stint in bigtech, so making software is something I'm pretty familiar with.

One disclosure that needs to be made is that there is artificial activity on the site right now. This is the classic 'cold start' or 'chicken and egg' problem, where a social platform without activity cannot attract users, but you need users to produce activity. The way the Reddit founders solved that was sockpuppeting accounts and posting stuff themselves via numerous user accounts. I've just automated that. They will get turned off the moment a self-sustaining amount of user activity is happening. Yes, it's all very ironic that I'm trying to start a site based around authenticity and there's artificial activity, but an empty site is a dead site, so I've had to compromise on this one issue, and hopefully only very temporarily.

There's a feedback button on every page in the bottom-right hand corner of the screen. This dialog that appears takes bug reports or feature suggestions. Both are welcome, please feel free to report any issues or give any feedback that might come to mind.

If any of this sounds interesting, I'd appreciate you checking it out at **[otto.talk](https://otto.talk)**. And if you're inclined, create a community for something you care about.