---
parent: Architecture decisions
---

# 001: Initial architecture decisions

## Ruby on Rails

- Well established and commonly used within MHCLG and GOV.UK in general
- Good ecosystem for common web app tasks, quick productivity
- Matches team skill set
- Analysis/RAP pipelines will sit in the DAP platform and not this application directly so optimising for web framework tasks makes sense.

## Testing

- Rspec for unit testing
- Capybara or Cypress-Rails for front end testing
- TDD or ATDD approach
- No specific code coverage target or deploy gate as we feel this leads to arbitrary metric chasing and is counter-productive

## Front end

- In the same app codebase
- ERB templates

## Code style and linting

- GOV.UK Rubocop for Ruby style
- `.editorconfig` for whitespace, newlines etc

## Ways of working

- Flexible approach to branching. Generally Trunk based CI (every TDD round results in a commit and push to master) when pairing, branches and PR when doing solo or more exploratory work.
- Github actions for automated test, build, deploy pipeline
- Github actions should run Rubocop, RSpec, Front end tests, docker build and deploy
- Encourage pairing
