Guidelines and Defaults
Run less software
- Rely on well-known tools by default
- ActiveRecord
- Postgres
- Rails standards
- Prefer Hotwire to React
Default to functional principles
- Separate writes from reads
- Use Actors for complex writes
- Avoid effects by default
- Prefer pure functions (companions) to stateful objects
Don’t be afraid to build custom solutions to gain simplicity
- Astra Forms
- Actors
- GiraffeQL
- Data Trees
Consider the stability of your problem and solution spaces
If you have low or medium confidence in a problem, consider a loosely-integrated exploratory solution. If you have high confidence in a problem, consider a solution which meets future needs and provides broad leverage.
Seeking Technical Feedback
- Your team is happy to provide feedback in whatever form is most useful
- You are ultimately the driver of the solutions and decisions of your project
- Presenting unbaked ideas is encouraged–don’t wait to get feedback if you’re unsure
- Hosting a Design Discussion is a good default for synchronous feedback
- Writing an Architecture Decision Record (ADR) is a good default for asynchronous feedback