The JVM Platform Clojure Deserves
Deploy Leiningen and CLI tools projects with git push.
Scale with gigalixir ps:scale.
Run your immutable data structures on immutable infrastructure.
No Dockerfiles, just standard buildpacks.

Clojure has always fit well on the Heroku-style buildpack model, but reliable platforms supporting it are scarce.
Gigalixir supports the standard Clojure build chain natively.
We detect your project configuration and handle the compilation process.
You push your code, and we run your uberjar on the JVM with the same ease of use you are accustomed to.
Clojure developers live in the REPL.
We provide an environment that respects the interactive nature of the language.
You can configure your application to expose an nREPL server on a specific port.
By using our secure tunneling capabilities (or SSH port forwarding), you can connect your local editor (Emacs/CIDER, VS Code/Calva) directly to the running production process for inspection and debugging.
Since we do not kill "idle" processes or force daily restarts, your long-running state (stored in Atoms, Agents, or Refs) remains active and valid.
This stability is crucial for applications that build up in-memory caches or state aggregations over time.
Use gigalixir logs to watch your application output in real-time.
This is perfect for debugging logic or monitoring standard out from your Ring handler without needing to setup a complex ELK stack.

The Questions We Get The Most at Gigalixir Support
No. If you have a project.clj, the buildpack handles the rest.
We compile the uberjar and set up the runtime container automatically.
You can verify the build log in your terminal as the deploy happens.
Yes.
You can use the heroku-buildpack-clojure which supports deps.edn via the clojure CLI tools.
You may need to specify this buildpack explicitly in a .buildpacks file if auto-detection fails, but it is fully supported.
We provide a DATABASE_URL environment variable.
Configure your connection pool (like HikariCP) to use this string.
Most Clojure database libraries accept this JDBC URL string directly without modification.
Yes.
Your -main function just needs to start a web server (like Jetty, http-kit, or Aleph) listening on the port provided by the PORT environment variable.
We route traffic to that port automatically.
We default to a recent LTS version of OpenJDK.
You can strictly define this by creating a system.properties file in your project root with the content java.runtime.version=17 (or your preferred version).
Reach out directly to the Engineers who built Gigalixir to discuss your specific architecture, integration challenges, or compliance constraints here 👇
Stop fighting generic cloud infrastructure.
Whether you’re working with Elixir, Python, or Node.js, get the specialized support and performance your application deserves.