diff --git a/funcsug.md b/funcsug.md
new file mode 100644
index 00000000..08bddb57
--- /dev/null
+++ b/funcsug.md
@@ -0,0 +1,168 @@
+---
+name: FuncSug
+contributors:
+ - ["cl4cnam", "https://github.com/cl4cnam"]
+filename: learnfuncsug.fg
+---
+
+FuncSug is a programming language designed (as a complement of JavaScript) to simplify GUI programming. It enables a more linear code in line with async/await and structured concurrency. It replaces event-driven syntaxes with easy-to-use concurrent syntaxes.
+
+```
+# Boolean, Numbers, Strings, Compound assignment
+var a := true
+a := 3.5
+a := 'Hello' + " " + `world!`
+a += 'and hello everybody!'
+
+# Print onto the console
+print('Hello world!)
+
+# Print onto the browser
+displayNewMessage('Hello world!')
+
+# Indentation (one tab) is significant as in Python
+if n>0:
+ doThis()
+else:
+ doThat()
+
+def myFunction(p_param1,...,p_paramN):
+ doThis()
+
+# A "parallel" block ends when all the branches are ended
+parallel ||
+ doThis()
+||
+ doThat()
+
+# Retrieve the value of a 'parallel' block
+result := parallel ||
+ doThis()
+||
+ doThat()
+
+# Parallel block that ends when N branches are ended (the others branches are automatically and definitively interrupted)
+parallel exitAfter N finished ||
+ doThis1()
+||
+ [...]
+||
+ doThisM()
+
+# Parallel block that selects the N branches that reached a certain point (the others branches are automatically and definitively interrupted)
+# "...-------" is to be written to indicate the point to be reached
+parallel(select N) ||
+||===========
+ doThis1_firstPart()
+...---------
+ doRest1()
+[...]
+||===========
+ doThisM_firstPart()
+...---------
+ doRestM()
+
+# Await a variable (that is, await an assignment to it), an event, a duration
+awaitBeep myVar
+awaitClickBeep(myButton)
+awaitClickBeep('#myButtonId')
+waitSeconds(numberOfSeconds)
+
+# Await a text by the user (like "input()" in Python, but in the browser, not in the console)
+var text := awaitHumanText()
+
+# Include JavaScript snippets with 'js' block (var1,...,varN) are
+var result := js (var1,...,varN):
+ // JavaScript/DOM code
+ document.getElementById('myLabel').style.color = var6
+ return var1*var2+var3+Math.floor(var4/var5)
+
+var a := 2025
+var b := js (a):
+ return Math.sqrt(a)
+displayNewMessage('sqrt(' + a + ') = ' + b)
+```
+
+Simple examples
+
+```
+# Play multiple sounds at the same time
+parallel ||
+ playSoundFile('sound1.mp3')
+||
+ playSoundFile('sound2.mp3')
+||
+ playSoundFile('sound3.mp3')
+
+# Play multiple sounds one at a time
+playSoundFile('sound1.mp3')
+playSoundFile('sound2.mp3')
+playSoundFile('sound3.mp3')
+
+# Hello you
+displayNewMessage('What is your name?')
+var theName := awaitHumanText()
+displayNewMessage('Hello, ' + theName + '!')
+
+# Choice
+displayNewMessage('')
+
+parallel(select 1) ||
+||=================
+ awaitClickBeep('#A')
+...---
+ displayNewMessage("You've chosen A")
+||================
+ awaitClickBeep('#B')
+...---
+ displayNewMessage("You've chosen B")
+
+# Quiz question with timeout
+displayNewMessage('4+5=?')
+parallel exitAfter 1 finished ||
+ var answered := awaitHumanText()
+ if answered = 9:
+ displayNewMessage('Yes!')
+ else:
+ displayNewMessage('No! 9')
+||
+ waitSeconds(5)
+ displayNewMessage('Too late!')
+
+# Quiz question with timeout (better version)
+displayNewMessage('4+5=?')
+parallel(select 1) ||
+||==================================
+ var answered := awaitHumanText()
+...---------------------------------
+ if answered = 9:
+ displayNewMessage('Yes!')
+ else:
+ displayNewMessage('No! 9')
+||================
+ waitSeconds(5)
+...---------------
+ displayNewMessage('Too late!')
+
+# Guess the number
+var numberToGuess := randomIntBetween(1, 100)
+var triedNumber := 0
+displayNewMessage('Guess my number (between 1 and 100)!')
+
+while triedNumber != numberToGuess:
+
+ triedNumber := awaitHumanText()
+
+ if triedNumber < numberToGuess:
+ displayNewMessage('Too low! Try again!')
+ if triedNumber > numberToGuess:
+ displayNewMessage('Too high! Try again!')
+ if triedNumber = numberToGuess:
+ displayNewMessage('Well Done!')
+```
+
+* [Online Playground](https://cl4cnam.github.io/try_FuncSug)
+
+* [Tutorials](https://github.com/cl4cnam/funcSug/wiki/Tutorials)
+
+* [Github repository](https://github.com/cl4cnam/funcSug)