Marketplace
Browse and adopt engineering standards, rules, and configurations. Fork to customize for your organization.
Use Phoenix for web applications
elixir
Phoenix for web apps. LiveView for interactive UIs without JavaScript. Channels for real-time. PubSub for broadcasting.
Use Phoenix LiveView for interactivity
elixir
LiveView for server-rendered reactive UIs. No JavaScript needed for most interactions. Use hooks for JS interop. Streams for large lists.
Use Java 21+ features
java
Virtual threads for scalable concurrency. Pattern matching for switch. Record patterns. Sequenced collections. Java 21 LTS minimum.
Use JUnit 5 for testing
java
JUnit 5 (Jupiter) for all tests. Use `@Test`, `@BeforeEach`, `@ParameterizedTest`. Mockito for mocking.
Use Maven or Gradle for builds
java
Gradle for flexibility, Maven for simplicity. Lock dependency versions. Use wrapper scripts (gradlew/mvnw).
Use Optional instead of null
java
`Optional<T>` for nullable returns. Never return null from methods. Use `@Nullable` annotations if needed.
Use async/await over callbacks and .then()
javascript
async/await for all async code. Easier to read, proper try/catch, works with loops.
Use const and let, never var
javascript
`const` by default, `let` for reassignment. Never `var` (hoisting bugs).
Use TypeScript for all new projects
javascript
TypeScript, not JS. Enable `strict: true`, `noImplicitAny`, `strictNullChecks`.
Use Kotlin idioms over Java patterns
kotlin
Data classes, extension functions, scope functions (let/apply/run). Null safety with `?` and `!!`.
Use Spring Boot 3+ features
spring
Spring Boot 3.x with Java 17+. Native compilation with GraalVM. Virtual threads support. Observability with Micrometer. Jakarta EE namespace.
Use Jest for JavaScript testing
testing
Jest for unit/integration tests. `describe`/`it` blocks. Mock with jest.mock(). Snapshot testing sparingly.
Follow Java naming conventions
java
Classes: PascalCase. Methods/variables: camelCase. Constants: SCREAMING_SNAKE_CASE. Packages: lowercase.
Prefer immutability
java
Final fields, immutable collections. Use records for data classes (Java 16+). Builder pattern for complex objects.
Use Checkstyle for Java style
java
Checkstyle for style enforcement. Google or Sun conventions. Integrate with build (Maven/Gradle).
Use SpotBugs for Java bug detection
java
SpotBugs (FindBugs successor) for bug patterns. High-confidence issues only. Part of CI pipeline.
Use Spotless for Java formatting
java
Spotless for consistent formatting. Google Java Format or custom. `spotlessApply` before commit.
Use ESLint with strict configuration
javascript
ESLint + @typescript-eslint recommended rules. No `any`, no unused vars. Run in CI.
Use Importmap for Rails JavaScript
rails
Importmap for JS without bundling. Pin packages from CDN or vendor. Works with Hotwire. No node_modules.