A zero-ceremony prototyping language
Write a .drop file. Run drop file.drop. Get a running prototype.
name = "World" print "Hello, {name}!"
That's it. No imports. No main function. No semicolons. Just your idea.
serve 8080 store "todos" get "/" page "My Todos" each todo in load "todos" row text todo.name button "Delete" -> delete "/todos/{todo.id}" form "New Todo" input "name" submit "Add" -> post "/todos" post "/todos" save "todos" body respond body 201 delete "/todos/:id" remove "todos" id respond "Deleted" get "/api/todos" respond load "todos"
That's a full CRUD app with a UI. ~20 lines. No setup. No dependencies.
serve, get, post, respond, body, route params. Your prototype is a web app from line one.
store, save, load, remove. JSON files on disk. No database to configure.
Your browser gets styled HTML pages. Lists become tables, maps become cards. No templates.
Custom UI with page, text, row, each, button, form, input, submit. Layout without a framework.
fetch "url" for external HTTP requests. Talk to any API in one line.
Change your file, server restarts automatically. No manual restarts, no watchers to configure.
name = "Andrea" age = 30 msg = "Hello {name}, age {age}"
do greet(name) return "Hello, {name}!"
if age > 18 respond "Welcome" else respond "Too young" for user in users print user.name
tags = ["fast", "simple"] user = {name: "Andrea"} -- this is a comment
$ go install github.com/superciccio/drop-lang/cmd/drop@latest
or download from GitHub Releases
Editor support: drop --editor vscode|vim|sublime|zed