freckle/guides

Freckle guides and best practices

Ruby

56

147 commits

updated Sep 10, 2026

See the code

README

Freckle Guides

Freckle guides and best practices

Overall Rules

  1. Microsoft's API Guidelines should be followed

    In case of conflict with content here, we should open an Issue to propose removing the content here.

  2. Defer to a (configured) auto-formatter for all style decisions

    In case of conflict with content here, we should open an Issue to propose removing the content here.

Fancy Terms

Why do we use terms like "Monoid" and what do they mean?

Naming Conventions

Conventions for naming database entities, JSON serializations, etc.

Haskell

  • Best Practices - Best practices in a Haskell code base.
  • API - Best practices in our Haskell API specifically.
  • Persistent - Best practices for persistent-based database interaction.
  • Style - Haskell style. TL;DR: use Fourmolu.
  • Testing - Haskell testing practices, work in progress.

Shell

  • Style - Shell style. TL;DR: use ShellCheck and shfmt.
  • Open Source - Processes and practices for our open source libraries.
ghvm-managed

Contributors

pbrisbin

53 commits

eborden

24 commits

cdparks

20 commits

5outh

12 commits

freckle/guides

Freckle guides and best practices

Ruby

56

147 commits

updated Sep 10, 2026

See the code

README

Freckle Guides

Freckle guides and best practices

Overall Rules

  1. Microsoft's API Guidelines should be followed

    In case of conflict with content here, we should open an Issue to propose removing the content here.

  2. Defer to a (configured) auto-formatter for all style decisions

    In case of conflict with content here, we should open an Issue to propose removing the content here.

Fancy Terms

Why do we use terms like "Monoid" and what do they mean?

Naming Conventions

Conventions for naming database entities, JSON serializations, etc.

Haskell

  • Best Practices - Best practices in a Haskell code base.
  • API - Best practices in our Haskell API specifically.
  • Persistent - Best practices for persistent-based database interaction.
  • Style - Haskell style. TL;DR: use Fourmolu.
  • Testing - Haskell testing practices, work in progress.

Shell

  • Style - Shell style. TL;DR: use ShellCheck and shfmt.
  • Open Source - Processes and practices for our open source libraries.
ghvm-managed

Contributors

pbrisbin

53 commits

eborden

24 commits

cdparks

20 commits

5outh

12 commits

Languages

Ruby

100.0%