diff --git a/examples/.gitignore b/examples/.gitignore
index ca6be88315595d88cd8b4d0a09cbfbc336f476b3..4741371e5883899742b08cf256ca454fefa6267a 100644
--- a/examples/.gitignore
+++ b/examples/.gitignore
@@ -1 +1,3 @@
 _sphinx_build
+downloads
+zipped-examples
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index dd2f8338ae859a78a4af55fa53bc51db389d3c4c..56d5261c522b3e8065ff6a812213a046a43e3b68 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -12,5 +12,6 @@ FetchContent_MakeAvailable(walberla)
 
 add_subdirectory(${CMAKE_SOURCE_DIR}/.. ${CMAKE_BINARY_DIR}/sfg-walberla)
 
+add_subdirectory( GeneratorScriptBasics )
 add_subdirectory( PoiseuilleChannel )
 
diff --git a/examples/GeneratorScriptBasics/BasicCodegen.py b/examples/GeneratorScriptBasics/BasicCodegen.py
new file mode 100644
index 0000000000000000000000000000000000000000..a23e622ffd334f082f067602c037450790e5f636
--- /dev/null
+++ b/examples/GeneratorScriptBasics/BasicCodegen.py
@@ -0,0 +1,4 @@
+from pystencilssfg import SourceFileGenerator
+
+with SourceFileGenerator() as sfg:
+    pass
diff --git a/examples/GeneratorScriptBasics/CMakeLists.txt b/examples/GeneratorScriptBasics/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ab855a422790fa0910f1c0ee96212ffed91a1fd7
--- /dev/null
+++ b/examples/GeneratorScriptBasics/CMakeLists.txt
@@ -0,0 +1,12 @@
+add_executable( Ex_GeneratorScriptBasics )
+target_sources( Ex_GeneratorScriptBasics PRIVATE Ex_GeneratorScriptBasics.cpp )
+
+pystencilssfg_generate_target_sources( Ex_PoiseuilleChannel 
+    SCRIPTS BasicCodegen.py
+)
+
+target_link_libraries(
+    Ex_GeneratorScriptBasics
+    PRIVATE 
+    core blockforest sfg_walberla 
+)
diff --git a/examples/GeneratorScriptBasics/GeneratorScriptBasics.md b/examples/GeneratorScriptBasics/GeneratorScriptBasics.md
new file mode 100644
index 0000000000000000000000000000000000000000..27924119f23764dafb2e6964af8b53eaa6966f34
--- /dev/null
+++ b/examples/GeneratorScriptBasics/GeneratorScriptBasics.md
@@ -0,0 +1,28 @@
+# Getting Started with Generator Scripts
+
+This example aims to illustrate the basic code generation features of `sfg-walberla`
+by building a force-driven channel flow application.
+
+## Files
+
+{download}`GeneratorScriptBasics.zip </zipped-examples/GeneratorScriptBasics.zip>`.
+
+This example comprises the following files:
+
+ - `GeneratorScriptBasics.cpp`: The demo simulation;
+ - `BasicCodegen.py`: A sample code generation script;
+ - `CMakeLists.txt`: The CMake build system configuration.
+
+## CMake Target Definition
+
+:::{card} `CMakeLists.txt`
+::::{literalinclude} CMakeLists.txt
+:language: CMake
+::::
+:::
+
+Then, we register our code generator script `LbmAlgorithms.py` via the
+[`pystencilssfg_generate_target_sources`][sfg_add_gen_scripts] CMake function.
+
+
+[sfg_add_gen_scripts]: https://pycodegen.pages.i10git.cs.fau.de/pystencils-sfg/usage/project_integration.html#add-generator-scripts "pystencils-sfg Documentation"
\ No newline at end of file
diff --git a/examples/Makefile b/examples/Makefile
index 722b842da7481121e56468628dec1b81e0a6613c..bfa9099e133dcd0678634b2188fab2f1c1017d84 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -10,6 +10,8 @@ BUILDDIR      = _sphinx_build
 
 ZIPPED_EXAMPLES := zipped-examples
 
+include examples.mk
+
 MKDIR := mkdir -p
 dir_guard = $(MKDIR) $(@D)
 
@@ -30,8 +32,9 @@ clean:
 	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
 
 ZipExamples: $(ZIPPED_EXAMPLES)/PoiseuilleChannel.zip
+ZipExamples: $(foreach example, $(EXAMPLES), $(ZIPPED_EXAMPLES)/$(example).zip)
 
-$(ZIPPED_EXAMPLES)/PoiseuilleChannel.zip: PoiseuilleChannel/*
+$(ZIPPED_EXAMPLES)/%.zip: %/*
 	@$(dir_guard)
 	@echo Zipping $(<D)
 	@zip -r $@ $(<D)
diff --git a/examples/downloads/PoiseuilleChannel.zip b/examples/downloads/PoiseuilleChannel.zip
deleted file mode 100644
index 7b65737eae4207451a75901da2b1858977db908d..0000000000000000000000000000000000000000
Binary files a/examples/downloads/PoiseuilleChannel.zip and /dev/null differ
diff --git a/examples/examples.mk b/examples/examples.mk
new file mode 100644
index 0000000000000000000000000000000000000000..d36074572d7ca27aa6cc49d6c2869c073859ac64
--- /dev/null
+++ b/examples/examples.mk
@@ -0,0 +1 @@
+EXAMPLES = GeneratorScriptBasics PoiseuilleChannel
diff --git a/examples/index.md b/examples/index.md
index 79a790ad849fe55a5d08873ba72fa57b931760e4..733282293dbe554e424450e39ccfecbf8a3fc269 100644
--- a/examples/index.md
+++ b/examples/index.md
@@ -5,5 +5,6 @@
 :caption: Fundamentals
 :maxdepth: 1
 
+GeneratorScriptBasics/GeneratorScriptBasics
 PoiseuilleChannel/PoiseuilleChannel
-:::
\ No newline at end of file
+:::
diff --git a/examples/zipped-examples/PoiseuilleChannel.zip b/examples/zipped-examples/PoiseuilleChannel.zip
deleted file mode 100644
index 3af55558698f18b309a52e1bcfda5ab6f68699d2..0000000000000000000000000000000000000000
Binary files a/examples/zipped-examples/PoiseuilleChannel.zip and /dev/null differ