Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure. Learn more →
Transport-site Alternatives
Similar projects and alternatives to transport-site
-
-
Stream
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
-
-
-
-
hyper-express
High performance Node.js webserver with a simple-to-use API powered by uWebsockets.js under the hood.
-
-
nerdctl
contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
-
-
NGINX Unit
NGINX Unit is a lightweight and versatile open-source web app server that has three core capabilities. It is a HTTP reverse proxy, a web server for static media assets, and an application server that can natively execute application code in seven different languages.
-
explorer
Series (one-dimensional) and dataframes (two-dimensional) for fast and elegant data exploration in Elixir
-
-
-
-
-
-
desktop
Building Local-First apps for Windows, MacOS, Linux, iOS and Android using Phoenix LiveView & Elixir! (by elixir-desktop)
-
ngx-php
ngx-php - Embedded php7 or php8 scripting language for nginx module. Mainline development version of the ngx-php.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
transport-site discussion
transport-site reviews and mentions
- Switching to Elixir
-
Unpacking Elixir: Observability
The Erlang "telemetry" module can even be used "applicatively" with good uses.
An example of that is a "caching reverse proxy" in use at https://transport.data.gouv.fr/, which helps protect data producers servers from excessive load from data consumers (which we manage for them).
"External" requests come to us (via proxy.transport.data.gouv.fr) and if the response is not in cache (for a configured TTL), we forward the request as an "internal" request to the target (3rd party) server.
The proxy uses "telemetry" to generate events for these internal/external queries, without knowing how they will be consumed (https://github.com/etalab/transport-site/blob/master/apps/un...).
The main app receives those events and does what it wants, in this case upserting metrics in the database (https://github.com/etalab/transport-site/blob/master/apps/tr...).
As a result, it's easy to use LiveView to create a real-time dashboard to show these metrics (https://jumpshare.com/s/rdGtTa47CzlcgOz4jsOI - low traffic at time of posting) or generate stats for the data producers which are behind the proxy.
It's all quite natural to do because it's really baked into the runtime!
-
Unpacking Elixir: Resilience
We're using on the French national access point to transportation data (http://transport.data.gouv.fr/?locale=en, source code at https://github.com/etalab/transport-site) and we're not going to switch to another stack ^_^.
Plenty of use-cases are made easy by the stack, from regular web work, API (https://transport.data.gouv.fr/swaggerui) to proxying (https://github.com/etalab/transport-site/tree/master/apps/un...) to real-time maps (https://transport.data.gouv.fr/explore), clustered maps (https://transport.data.gouv.fr/explore/gtfs-stops), XML queries building (https://transport.data.gouv.fr/tools/siri-querier?endpoint_u...)...
The maintenance story is very good too.
With ML being added (Nx/Axon etc), and mobile apps being in the works (LiveViewNative), it has become my everyday language & stack.
-
Nginx Unit – Universal web app server
> Yes, this is as bad as it looks: “success” isn’t even part of the schema. It’s in the examples, but not the actual schema definition.
Having gone through a pretty heavy overhaul of an "OpenAPI" (full code in Elixir at https://github.com/etalab/transport-site/pull/3351), I stumbled on that exact type of problem!
At the scale of nginx, having automatic verification that the examples (and the output of the API in general) match the specification would be great.
At our scale, here is what really helped me go through the rework (and ensure we do not regress too easily):
- setting additionalProperties to "false" to detect key field "rot"
- using "required: [x,y,z]" on everything, and by default specify "all the property keys", with an opt-out (so that each time a developer adds a field later, it is considered mandatory, unless otherwise specified)
- use tooling during the tests: "assert_schema" (with OpenAPISpex) to ensure our API endpoints responses pass the spec (additionalProperties: false helps ensure we get an exception in case of key field rot, again!)
- even more useful: crawl our production most important endpoints and tweak the spec until everything is green (an example of useful use of Task.async_stream in Elixir, by the way) https://github.com/etalab/transport-site/pull/3351/files#dif...
It can be super frustrating for users to live with the uncertainty of the response of an API for sure, and I was happy to discover the Elixir tooling (OpenAPISpex in particular) worked so nicely once I understood what I had to do.
-
Unpacking Elixir: Concurrency
Very convenient to parallelise HTTP queries (and without the need to go “evented”).
One recent example where I assert that API responses match our OpenAPI specifications here, for the curious:
https://github.com/etalab/transport-site/pull/3351/files#dif...
-
Scripting with Elixir
I've been a big fan of "Mix.install" since it was released!
I believe this made me use Elixir instead of Ruby (my natural scripting language) more and more.
I use it on a regular basis for my work on https://transport.data.gouv.fr/ (which is Elixir-based and open-source), as one can see at https://github.com/etalab/transport-site/tree/master/scripts.
What I like the most is that it helps me start ideas, experiments & data analysis with their own set of dependencies (without much care of "will this impact the main application?"), store those experiments in the same repo at the main application, and maybe later promote some of those experiments to the main application source code.
Concrete examples include:
- Ask HN: So, what's up with Phoenix (web framework)?
-
Hello! Is there an Open-Data source for Every bus company that operates inside france?
You can check this gov website : https://transport.data.gouv.fr/
-
Heuristics for Development [in Erlang]
transport.data.gouv.fr, the transport part of the french open data portal. Source code here: https://github.com/etalab/transport-site/.
-
Phoenix 1.6.0-RC.0 Released
Stripe, Shopify and GitHub are still largely relying on Ruby as far as I know (and while there are reimplementations of some services in some langages, I don't think C++ or Java have been publicly mentioned often).
That said, I think one important asset of Elixir (in my view) is not the raw performance, but the overall "total cost of ownership" (including maintenance work, and software is a lot of maintenance).
Being able to simplify architectures is something that is nicely done with Elixir, actually.
If a part of an app needs to play a "proxy" role (like here https://github.com/etalab/transport-site/tree/master/apps/un...), then I just add a component to the app, and I can keep the incoming connections under hand, all while issuing external queries etc.
If there is a need to do some rich interactive dashboards, I can use LiveView.
If I need to demonstrate some simple stuff, I can use "Mix.install" to create one-off scripts.
If I need to do more data-science, I can tap into LiveBook, VegaLite etc.
All this with a small team or as a solo developer, is quite great, much more than raw performance, in my eyes.
-
A note from our sponsor - Stream
getstream.io | 11 Jul 2025
Stats
The primary programming language of transport-site is Elixir.