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
92
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
cloudnative conference 2026 flyle
azihsoyn
0
120
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
320
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
320
Programming with a DJ Controller — not vibe coding
m_seki
3
790
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
150
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.6k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
140
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
760
🦞OpenClaw works with AWS
licux
1
340
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
1.1k
Kingdom of the Machine
yui_knk
2
1.4k
Agentic Elixir
whatyouhide
0
440
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
110
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
290
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1k
Documentation Writing (for coders)
carmenintech
77
5.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
The Curious Case for Waylosing
cassininazir
0
340
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
GitHub's CSS Performance
jonrohan
1032
470k
The SEO identity crisis: Don't let AI make you average
varn
0
460
Writing Fast Ruby
sferik
630
63k
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