Lobsters Rails Project 
Lobsters is a Rails codebase and uses a SQL (MariaDB in production) backend for the database.
The code is open source as part of our commitment to transparency.
It's been used to run sister sites, but mostly we want people to be able to understand and improve what's happening on Lobsters itself.
Despite the site being an uber mega cringe ghost town running on a quite sad codebase, at least we have no relation to the self-help guru.
Contributing bugfixes and new features
We'd love to have your help.
Please see the CONTRIBUTING file for details and dev environment setup.
If you have questions, there is usually someone in our chat room who's familiar with the code.
Lobsters is a volunteer project with limited development time and a long time horizon, we hope to be running for decades.
So our design philosophy is a little different than a typical commercial product:
- We started with Rails 3.2.2 in 2012, so we have a few dusty corners and places where we don't take advantage of features that were introduced since we started.
- We lean into using Rails features instead of custom code, and we'll write a couple dozen lines of narrow code for a feature rather than add a dependency that might require maintenance.
- We are very reluctant to add new production services and almost entirely unwilling to depend on external services.
We take pride in self-hosting from the VPS up, which necessitates reducing the number of moving parts.
- We test to ensure functionality, but testing is a lot lighter for moderator and other non-core features.
We're trying to maximize the return on investment of testing rather than minimize errors.
- We're willing to take downtime for big code changes rather than try to make them seamless.
- We have users that are unusually likely to use old, experimental, and even homemade browsers, so we only use CSS in the widely available baseline.
- We don't serve JavaScript to logged-out visitors, we use as little JS as possible for users with a vanilla/jQuery-style of DOM attachment, we are (very slowly) making JS entirely optional for users, and we accept JS for mod features.
Keeping JS small and optional helps keep the site fast, and an unusually high proportion of visitors use old, odd, and homebrew browsers.
We do not want JavaScript in our build chain, it requires too much maintenance.