Should I Move From PHP to Node/Express?

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/node

Our great sponsors
  • Klotho - AWS Cloud-aware infrastructure-from-code toolbox [NEW]
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • Sonar - Write Clean JavaScript Code. Always.
  • RxPHP

    Reactive extensions for PHP

    Not really, it's just the respective functional design approaches are applicable everywhere (Java, Scala, Kotlin, Swift, C++, Rust, JS ... PHP) and there's a practical benefit to it in terms of the amount of code and overall cognitive complexity needed for the respective implementation.

  • Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

    For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.

  • Klotho

    AWS Cloud-aware infrastructure-from-code toolbox [NEW]. Build cloud backends with Infrastructure-from-Code (IfC), a revolutionary technique for generating and updating cloud infrastructure. Try IfC with AWS and Klotho now (Now open-source)

  • cats-effect

    The pure asynchronous runtime for Scala

    On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.

  • cats

    Lightweight, modular, and extensible library for functional programming.

    On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.

  • MikroORM

    TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.

    For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.

  • Hasura

    Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.

    For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.

  • FS2

    Compositional, streaming I/O library for Scala

    On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • automerge

    A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

    For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.

  • fantasy-land

    Specification for interoperability of common algebraic structures in JavaScript

    There are respective fantasy land and static land specs, with the law conformance checks.

  • static-land

    Specification for common algebraic structures in JavaScript based on Fantasy Land

    There are respective fantasy land and static land specs, with the law conformance checks.

  • fantasy-laws

    Property-based tests for FL-compatible ADTs

    There are respective fantasy land and static land specs, with the law conformance checks.

  • fp-ts

    Functional programming in TypeScript

    JS by it's nature is neither functional nor OOP'ish - somewhere in between. For instance, promises do lack referential transparency and side-effect capturing guarantees, compared to something like IO Monad, although there are some wrappers in fpts with partial IO Monad support.

  • lodash

    A modern JavaScript utility library delivering modularity, performance, & extras.

    You don't need to understand all the details, and category theory, to get practical benefit out of it - it's fine just grabbing something like lodash-fp and getting acquainted with transducers.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts