Carbon Intensity Forecasting

This is very simple example of an app built using Crux built solely for the purposes of demonstrating orchestration of multiple API calls to backend services.

Note: the APIs are UK specific, and so the app will not work as intended outside of the UK.

Overview

The core of the app responds to 2 events — one for getting national intensity and generation mix forecasts for the next 24 hours, and one for local forecasts. The local path uses the latitude and longitude of the user's location (from the host device), reverse geocoded to a postcode (using Postcodes.io). The app then calls the National Grid API to get the local intensity and generation mix forecast for the next 24 hours.

flow

Core

The core is written in Rust, with Crux

Web

The web shell is written in TypeScript, with Remix, and the graphs use Chart.js.

iOS

The iOS shell is written in Swift, with Swift UI and Swift Charts for displaying the data.

Android

The Android shell is written in Kotlin, with Jetpack Compose, and the graphs are hand built.