Skip to main content
Backend

Ruby on Rails

The backbone of most things we build.

All of the stack
In plain English

What it is

Ruby on Rails is a mature, open-source framework for building web applications and the APIs behind them. It gives a project a sensible shape from day one – how data, business logic, and web requests fit together – so the effort goes into your product rather than into wiring.

Our take

Why we use it

Rails lets a small team build and maintain big things. Its conventions mean any Rails developer can pick up the code; the ecosystem is deep and battle-tested; and it stays productive for years, not months. We build modular monoliths – one codebase with firm internal boundaries – which gives most businesses the clarity of separate services without the cost and complexity of running a distributed system.

In practice

How we use it

Rails is the backend under our SaaS platforms, webshops, and APIs. Recent work includes a full competition-management platform and an OAuth2 identity provider, both running in production.

How it fits together

Model, view, controller.

The same idea, split into predictable places – a model for the domain, a controller for the request, a view for the output, routes to tie them together. Click through the files.

app/models
app/controllers
app/views/competitions
config
app/models/competition.rb
class Competition < ApplicationRecord
  include AASM

  belongs_to :organisation
  has_many :entries, dependent: :destroy

  validates :name, presence: true

  aasm column: 'status' do
    state :draft, initial: true
    state :published
    state :archived
  end

  scope :published, -> { where(status: 'published') }
end
State machines

State, made explicit.

That aasm block isn’t decoration – it makes the rules real. A competition can only move along defined paths, so invalid states simply can’t happen.

:draft
initial
publish
:published
archive
:archived
Work with us

Building something with Ruby on Rails?

Tell us what you're building. A Code Bunny will tell you honestly how we'd approach it.

Talk to a Code Bunny