local lapis = require "lapis" local app = lapis.Application() app:match("/", function(self) return "Hello world!" end) return app lapis = require "lapis" class extends lapis.Application "/": => "Hello world!" How does it work? With OpenResty, Lua is run directly inside of the Nginx worker using LuaJIT, giving you the smallest barrier between the webserver and your code. Have a look at Web Framewor