Skip to content

Instantly share code, notes, and snippets.

View iagopiimenta's full-sized avatar
🏠
Working from home

Iago Pimenta iagopiimenta

🏠
Working from home
View GitHub Profile

🆕 Update: See more extensive repo here: https://github.com/marckohlbrugge/unofficial-37signals-coding-style-guide

The Unofficial 37signals/DHH Rails Style Guide

About This Document

This style guide was generated by Claude Code through deep analysis of the Fizzy codebase - 37signals' open-source project management tool.

Why Fizzy matters: While 37signals has long advocated for "vanilla Rails" and opinionated software design, their production codebases (Basecamp, HEY, etc.) have historically been closed source. Fizzy changes that. For the first time, developers can study a real 37signals/DHH-style Rails application - not just blog posts and conference talks, but actual production code with all its patterns, trade-offs, and deliberate omissions.

@vicenterusso
vicenterusso / docker-compose.yml
Last active November 12, 2023 13:33
Docker Compose with fix Fedora 35/36/37 MySQL container - Leak Memory - High Usage - Error code 137
version: '3'
services:
mysqldb:
image: mysql:5.7.22
container_name: mysql_container_name
restart: always
ulimits:
nproc: 65535
nofile:
soft: 20000

Mysql2::Error: Specified key was too long; max key length is 767 bytes

You might get this error with InnoDB tables on MariaDB < 10.2.2, MySQL < 5.7. Although, this error might be also triggered on newer versions if you switch to COMPACT row format.

In the abovementioned releases the default InnoDB row format is COMPACT. With this format the maximum index prefix length is [767 bytes][max-index-prefix]. The default character set is [latin1][def-charset], but if you use

@tkrotoff
tkrotoff / FrontendFrameworksPopularity.md
Last active August 11, 2026 16:45
Front-end frameworks popularity (React, Vue, Angular and Svelte)

Charts are from different sources and thus colors are inconsistent, please carefully read the chart's legends.

Similar analysis:

Personal conclusion

After all those years maintaining this data (since 2018): React is still much more popular and continue to grow faster than alternatives; Vue dates back from 2014 and Svelte from 2016, they should have overthrown React by now.

@andyyou
andyyou / rails_webpacker_bootstrap_expose_jquery.md
Last active November 14, 2025 00:54
Rails 5.2 with webpacker, bootstrap, stimulus starter

Rails 5.2 with webpacker, bootstrap, stimulus starter

This gist will collects all issues we solved with Rails 5.2 and Webpacker

Create Project

# Last few parameters(--skip-* part) is only my habbit not actully required
$ rails new <project_name> --webpack=stimulus --database=postgresql --skip-coffee --skip-test
# config/initializers/activestorage.rb
Rails.application.config.to_prepare do
# Provides the class-level DSL for declaring that an Active Record model has attached blobs.
ActiveStorage::Attached::Macros.module_eval do
def has_one_attached(name, dependent: :purge_later, acl: :private)
class_eval <<-CODE, __FILE__, __LINE__ + 1
def #{name}
@active_storage_attached_#{name} ||= ActiveStorage::Attached::One.new("#{name}", self, dependent: #{dependent == :purge_later ? ":purge_later" : "false"}, acl: "#{acl}")
end
@yalab
yalab / bootstrap-memo.md
Last active July 20, 2022 20:29
rails5 + webpacker + bootstrap
$ echo 'gem "webpacker"' >> Gemfile
$ bundle install
$ rails webpacker:install
$ yarn add bootstrap@4.0.0-beta jquery popper.js
diff --git a/config/webpack/environment.js b/config/webpack/environment.js
index d16d9af..86bf1a7 100644
@robertpainsi
robertpainsi / commit-message-guidelines.md
Last active August 7, 2026 13:57
Commit message guidelines

Commit Message Guidelines

Short (72 chars or less) summary

More detailed explanatory text. Wrap it to 72 characters. The blank
line separating the summary from the body is critical (unless you omit
the body entirely).

Write your commit message in the imperative: "Fix bug" and not "Fixed
bug" or "Fixes bug." This convention matches up with commit messages
@jgillman
jgillman / restore.sh
Last active February 6, 2025 02:39
pg_restore a local db dump into Docker
# Assumes the database container is named 'db'
DOCKER_DB_NAME="$(docker-compose ps -q db)"
DB_HOSTNAME=db
DB_USER=postgres
LOCAL_DUMP_PATH="path/to/local.dump"
docker-compose up -d db
docker exec -i "${DOCKER_DB_NAME}" pg_restore -C --clean --no-acl --no-owner -U "${DB_USER}" -d "${DB_HOSTNAME}" < "${LOCAL_DUMP_PATH}"
docker-compose stop db