Skip to content

Flamingo Project Structure


project overview

Project structure

A typical Flamingo project looks like this:

projectName (Project Root)
│   main.go (The entry for your project)
│   Dockerfile
│   Makefile
│   (Jenkinsfile or other CI config)
│   go.mod
│   go.sum
└───config (Your project configuration)
│   └───config.yml (Main project config)
│   └───config_dev.yml (additional configs - e.g. this one is loaded for CONTEXT dev)
│   └───routes.yml (Routing config)
│   └───SUBFOLDER (Optional additional configuration context)
│          └───config.yml (Additional config for this context)       
└───src (Project specific modules live here)
│   └───myModule (a module - see module structure below)
└───frontend (Frontend templates - if "flamingo-carotene" is used)
│   └───src (main frontend source / structure by atomic design)
│   │    └───atom (see flamingo-carotene)
│   │    └───molecule
│   │    └───...
│   └───dist (not part of VCS - will have frontend build result)

Projects main.go

The Main executable should do:

  • build the context tree for your project
  • call the flamingo.App() with the list of needed Flamingo modules

Depending on the activated Flamingo modules in your project, you see a list of all available commands with go run main.go

The main command is "serve" - so to run your project you normally call:

go run main.go serve


A configuration context allows to run several different Flamingo powered sites in one installation. Typical usecases are localisations and/or specific subsites.

A Context represents:

  • a list of modules for each context
  • configurations (that are loaded from the corresponding "config" folder)
  • a baseurl: This is the first part of the URL - and its telling Flamingo which context should be loaded.

Contexts can be nested in a tree like structure - this allows you to inherit the properties of contexts from parents to children.


Different Template Engines can be used to render content for the Web.
Currently there are two available: „gotemplate“ and „pugtemplate“:

The „pugtemplate“ template engine comes with a standalone frontend build pipeline (based on webpack) that can be used. This is called „flamingo-carotene“

Learn more:


Different example projects are provided in separate repositories.