Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Lotus: because sometimes you need to reinvent t...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Arjan van der Gaag
July 08, 2015
Programming
260
0
Share
Lotus: because sometimes you need to reinvent the wheel
Arjan van der Gaag
July 08, 2015
More Decks by Arjan van der Gaag
See All by Arjan van der Gaag
How to Lead a Team by Doing Nothing
avdgaag
8
910
Getting to know Elm
avdgaag
0
160
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
93
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
600
Use your database for… Validations! Caching! Logic!
avdgaag
0
110
Web development that hurts even less: taking lessons from Rails
avdgaag
1
370
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
310
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
480
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
420
Other Decks in Programming
See All in Programming
AgentCore Optimizationを始めよう!
licux
3
250
iOS26時代の新規アプリ開発
yuukiw00w
0
110
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
490
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
13k
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
450
ハーネスエンジニアリングとは?
kinopeee
13
7.1k
【ディップ|26年新卒研修資料】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
170
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
0
190
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
370
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
1.1k
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
120
PHPer、Cloudflare に引っ越す
suguruooki
2
220
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building Adaptive Systems
keathley
44
3k
New Earth Scene 8
popppiees
3
2.2k
Designing Experiences People Love
moore
143
24k
A better future with KSS
kneath
240
18k
How to build a perfect <img>
jonoalderson
1
5.5k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
Bash Introduction
62gerente
615
210k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
250
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
Balancing Empowerment & Direction
lara
6
1.1k
Crafting Experiences
bethany
1
150
Transcript
lotus sometimes you need to reinvent the wheel
Arjan van der Gaag @avdgaag brightin
Lotus is a Ruby MVC web framework comprised of many
micro-libraries. It has a simple, stable API, a minimal DSL, and prioritises the use of plain objects over magical, over- complicated classes with too much responsibility.
standalone frameworks
standalone frameworks to build full-stack applications
from small endpoints… require 'bundler/setup' require 'lotus/router' run Lotus::Router.new {
get '/', to: ->(env) { [200, {}, ['Hello, world'] } }
…to containers
some conventions
some conventions many objects
some conventions many objects no monkey patches
simplicity > convenience
testable class Show include Lotus::Action expose :book def initialize(repository: BookRepository)
@repository = repository end def call(params) @book = @repository.find params[:id] end end
focus on maintenance
writing Ruby is fun
Guides and docs at lotusrb.org
@avdgaag arjanvandergaag.nl