< Back

Same App Different Languages

Overview

This multi‑language project implements the same simple web application in different ecosystems to compare approaches in functional programming.
The app includes:

  • Server‑Side Rendered (SSR) HTML
  • Protected routes
  • User registration and login
  • Database integration

Goal

The main goal is to compare Programming styles and frameworks across languages.


Implemented

Scala 3 + ZIO

Repository: https://github.com/de-angelov/scala-user-login

Tech Stack & Libraries: - Scala 3 — modern, strongly typed JVM language with functional programming features. - ZIO — a purely functional effect system & runtime for Scala, offering type‑safe, composable concurrency and resource management (handles effects, asynchronous programming, error handling, and more).


Haskell + Servant + RIO

Repository: https://github.com/de-angelov/servant-user-login

Tech Stack & Libraries: - Haskell — a purely functional programming language with a strong static type system. - Servant — a Haskell web framework / type‑level DSL for describing APIs. Routes are defined as types which are then interpreted by the framework to provide servers, client stubs, documentation, etc. - RIO — a batteries‑included, opinionated Haskell standard library and Prelude replacement, providing common tools (logging, environment management, safe defaults) to make production Haskell code more ergonomic.


Planned

  • TypeScript + Effect‑TS — using a functional effects system in the TypeScript ecosystem.