What is Flamingo¶
Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable web-applications.
- 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 clean and clear dependencies in mind.
It's architecture is especially useful to build "frontends" for your headless microservice architecture.
With "Flamingo Carotene" and "Flamingo Commerce" you get your toolkit for building blazing fast commerce experience layers
The "I Love Flamingo" Ecosystem¶
The Flamingo ecosystem consists of the following main projects:
- Flamingo: This is the go based (micro)framework with all core and framework modules. code on github
- Flamingo Carotene: Npm modules that provide a frontend build pipeline for your projects - featuring tools like pug, Sass, webpack and atomic design pattern. code on github
- Flamingo Commerce: Providing powerful e-commerce features, that you can use to build flexible and modern e-commerce applications code on github
Related to this projects you find a couple of training materials and examples:
- hello-flamingo: A minimalistic example project using only flamingo and gotemplates. code on github
- commerce-demo-carotene: A standard demo shop using "Flamingo Commerce" and standalone adapters code on github
Also there is a constantly growing amount of Flamingo modules that can be used as lib, some of them are maintained under the core project like:
- dingo Go Dependency Injection Framework, used for Flamingo modules as basis. code on github
- form Module that provided concepts to deal with web forms (parsing to data transfer objects, validating etc..) code on github
- pugtemplate Module that implements a flamingo templateengine that works together with the parsed pug templates by Flamingo Carotene. This is the Flamingo module that you need if you want to use Flamingo Carotene based templates. code on github
Flamingo Commerce consists of several Flamingo modules, that provide powerful e-commerce features, which you can use to build flexible and modern e-commerce applications.
Flamingo Commerce uses "Domain Driven Design" with a "technology free" domain model by using the layering approach "Ports and Adapters" for its modules. The different modules provide „domain“, „application“ and „interface“ logic around commerce features.
According to „ports and adapters“ these modules can be used with your own „adapters“ to interact with any API or microservice you want.
Flamingo-Carotene is an easy to use frontend (-tooling) for projects build with the Flamingo framework. It offers the frontend build pipeline using tools like pug, sass, webpack and atomic design pattern. It can be used to implement modern and flexible - component based templates for your web applications.
You may want to start reading in the docs: