Flamingo

adopt

Flamingo is a high productivity go based framework for rapidly building fast and pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo is:

  • open source
  • written in go
  • easy to learn
  • fast and flexible

Go as simple, powerful and typesafe language is great to implement and scale serverside logic. Flamingo has a clean architecture with clear dependencies in mind and offers a typical features and support for nowadays web applications:

  • Powerful Templating Engines. E.g. support for Pug templates with reusable mixins and lightweight scripting.
  • Configuration concepts using yml and support for multiple areas and contexts
  • Powerful Dependency Injection
  • A Module concept for building modular and pluggable applications
  • Authentication concepts and security middleware
  • Flexible routing with support for prefix routes and reverse routing
  • Web Controller Support with: Request / Response / Form Handling etc
  • Operational Readyness: Logging, (distributed) Tracing, Metrics and Healthchecks with seperate endpoint
  • Localisation
  • Commands
  • Sessionhandling and Management
  • GraphQL support and therefore support to build nice SPA and PWAs on top of it
  • Resilience and Caching for external APIs calls.

Flamingo itself does not contain ORM Mapper or libraries - instead it emphasizes "ports and adapters" architecture - so that you have a technology free (domain) model and any possible (and replaceable) persitence behind it. That makes Flamingo useful to build microservices and applications - especially to build "frontends" or portals that require interaction with other (micro) services in a distributed architecture. When sticking to the architectural recommendation you can build modular applications with replaceable adapters that gives you independed testability.

With "Flamingo Commerce" there is an additional active projects that offer rich and flexible features to build modern e-commerce applications.