Lamdera

is a delightful platform for type-safe full-stack web apps. It aims to remove the incidental complexity that comes with glue code between components. site , docs , api

We are using the Lamdera compiler. page It is a friendly extension of the Elm compiler. All user code is written in Elm.

Using NixOS?

How to install? search.nixos.org/packages (NixOS Configuration)

elm-pages

Why does elm-pages use Lamdera? Is it free? (docs/FAQ.md )

Starting with elm-pages v3, the Lamdera compiler is used instead of the Elm compiler. This is completely independent of the Lamdera hosted service. The Lamdera compiler is completely free to use and will not have any costs now or in the future.

The reason elm-pages v3 began using the Lamdera compiler is for its automatic serialization of Elm data, which is known as Lamdera Wire.

The Lamdera compiler is a fork of the Elm compiler which adds some functionality including Lamdera Wire. The elm-pages framework uses this under the hood.

The BackendTask data you define in your elm-pages Route Modules is resolved either at build-time (for pre-rendered routes, resolved when you run elm-pages build), or at request-time (for server-rendered routes). Imagine you have sensitive data that can't be exposed in your client-side app, like an API key to access data. Since BackendTask's are resolved at build-time or request-time (they are NOT resolved on the client-side in the browser), you can safely use these secrets.

The secrets you use to resolve that data won't end up on the client-side at all unless you include any sensitive data in your Route Module's Data value.

The automatic serialization we get from the Lamdera Compiler gives us this abstraction for free. Before elm-pages v3, the OptimizedDecoder abstraction was used to serialize all data involved in resolve the BackendTask. This would include any secret environment variables that were used along the way, which is why elm-pages v2 had the Secrets API – to ensure that you could use sensitive values without them showing up on the client-side. Thanks to the Lamdera Compiler, we're able to serialize only the final value for your Route Module's Data (not any of the intermediary values), so the user can reason about it more easily and write less code. It also improves performance because we serialize the Data value in a binary format, reducing the transfer size

The Lamdera Compiler is free to use, but is currently only source-available to enterprise customers of the hosted Lamdera service. In the future, it's possible that the Lamdera Wire functionality will be made available in an open source, source-available tool, but there's no guarantee of that or timeline.