diff --git a/data/sidebar_community.json b/data/sidebar_community.json
index 83d693cfd..10e673045 100644
--- a/data/sidebar_community.json
+++ b/data/sidebar_community.json
@@ -5,5 +5,9 @@
"roadmap",
"code-of-conduct",
"translations"
+ ],
+ "ReScript Association": [
+ "association",
+ "donate"
]
}
\ No newline at end of file
diff --git a/pages/community/association.mdx b/pages/community/association.mdx
new file mode 100644
index 000000000..38054b8df
--- /dev/null
+++ b/pages/community/association.mdx
@@ -0,0 +1,36 @@
+---
+title: "About"
+description: "The ReScript Association is dedicated to the development and support of the ReScript programming language."
+canonical: "community/association"
+---
+
+# The ReScript Association
+
+The ReScript Association is dedicated to the development and support of the ReScript programming language
+
+ReScript is a programming language for building complex JavaScript applications and user interfaces. It was designed for professional JavaScript and TypeScript developers, and integrates seamlessly in existing JavaScript projects for gradual adoption.
+
+Goal of ReScript is to provide a viable alternative to gradually typed languages, such as TypeScript. The type system was derived from the OCaml programming language, and refined for JavaScript usage.
+
+It provides one of the fastest compile-to-JS compilation and build toolchain in the JavaScript ecosystem available today.
+
+> ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.
+
+The ReScript Association provides a legal and financial foundation for Open Source related work within the ReScript project. It takes ownership of essential language infrastructure and is responsible for outside communication to industrial ReScript users, partners and donors.
+
+The organization is non-profit oriented. All its work is independently funded by industrial partners / research institutions / individuals, and openly accessible to the public.
+
+## Board
+
+
+ Board (TODO)
+
+
+## Our Actions
+
+The ReScript Association is responsible for the rescript-lang.org documentation platform and its server infrastructure.
+
+Individual ReScript Association members are also contributing to the syntax, compiler, IDE support and standard library.
+
+Apart from technical tasks, the ReScript Association is supporting the ReScript core team by organizing community events (conferences / meetups), managing the ReScript brand / marketing assets, creating yearly donor reports, and promoting the ReScript platform.
+
diff --git a/pages/community/donate.mdx b/pages/community/donate.mdx
new file mode 100644
index 000000000..77d7a5a4a
--- /dev/null
+++ b/pages/community/donate.mdx
@@ -0,0 +1,20 @@
+---
+title: "Donate"
+description: "How to donate to the ReScript Association."
+canonical: "/community/donate"
+---
+
+# Donate
+
+Donations will help the ReScript project to maintain and improve the platform and to provide our users with a more accessible ReScript ecosystem.
+
+The ReScript language, its tooling and docmentation, are fully developed by the community. Thus, we rely on donations from organizations and individuals to stay independent. Additional financial resources help us to maintain essential language infrastructure (e.g. rescript-lang.org, syntax, editor-tooling), and to organize events, like the [annual ReScript Retreat](/blog/retreats).
+
+It also enables us to fund important Open Source projects within the ReScript ecosystem.
+
+## How to Donate?
+
+For now we only support SEPA transfers.
+
+
+
diff --git a/public/static/donation_qr_code.svg b/public/static/donation_qr_code.svg
new file mode 100644
index 000000000..cb87ae1b5
--- /dev/null
+++ b/public/static/donation_qr_code.svg
@@ -0,0 +1,1196 @@
+
+
+
\ No newline at end of file
diff --git a/src/components/Footer.res b/src/components/Footer.res
index dc4c88fc5..c6881a49e 100644
--- a/src/components/Footer.res
+++ b/src/components/Footer.res
@@ -51,9 +51,14 @@ let make = () => {
diff --git a/src/components/Markdown.res b/src/components/Markdown.res
index 5cc9f3727..6c0034b9e 100644
--- a/src/components/Markdown.res
+++ b/src/components/Markdown.res
@@ -529,6 +529,11 @@ module Video = {
}
}
+module DonationForm = {
+ @react.component
+ let make = () =>
+}
+
// Useful for debugging injected values in props
// let mdxTestComponent: React.component<{.}> = %raw(`
// function(children) {
diff --git a/src/components/Markdown.resi b/src/components/Markdown.resi
index 9abe49e38..783095fd6 100644
--- a/src/components/Markdown.resi
+++ b/src/components/Markdown.resi
@@ -169,6 +169,11 @@ module Video: {
let make: (~src: string, ~caption: string=?) => React.element
}
+module DonationForm: {
+ @react.component
+ let make: unit => React.element
+}
+
// Used for the MdxJS Provider
/* Sets our preferred branded styles
diff --git a/src/components/MarkdownComponents.res b/src/components/MarkdownComponents.res
index 784bc756f..0ef0d9e23 100644
--- a/src/components/MarkdownComponents.res
+++ b/src/components/MarkdownComponents.res
@@ -21,6 +21,8 @@ type t = {
urlBox?: React.componentLike, React.element>,
@as("CodeTab")
codeTab?: CodeTab.props> => React.element,
+ @as("DonationForm")
+ donationForm?: React.componentLike,
/* Common markdown elements */
p?: P.props => React.element,
li?: Li.props => React.element,
@@ -74,4 +76,5 @@ let default = {
pre: Pre.make,
blockquote: Blockquote.make,
code: Code.make,
+ donationForm: DonationForm.make,
}
diff --git a/src/layouts/LandingPageLayout.res b/src/layouts/LandingPageLayout.res
index f1907f237..203a4d7ce 100644
--- a/src/layouts/LandingPageLayout.res
+++ b/src/layouts/LandingPageLayout.res
@@ -682,15 +682,38 @@ module CuratedResources = {
}
}
-/*
module Sponsors = {
@react.component
- let make = () =>
-
-
{React.string("Sponsors")}
-
+ let make = () => {
+
+
+ {React.string("From the community, for the community")}
+
+
+
+ {React.string(
+ "We rely on donations from organizations and individuals to stay independent. ",
+ )}
+
+
+ {<>
+ {React.string(
+ "Additional financial resources help us to maintain essential language infrastructure, and to organize events, like the ",
+ )}
+
+ {React.string("annual ReScript Retreat")}
+
+ {React.string(".")}
+ >}
+
+
+
+
+
+
+ }
}
-*/
@react.component
let make = (~components=MarkdownComponents.default, ~children) => {
@@ -721,6 +744,7 @@ let make = (~components=MarkdownComponents.default, ~children) => {
+
children
diff --git a/src/others/DonationForm.res b/src/others/DonationForm.res
new file mode 100644
index 000000000..91b8afc54
--- /dev/null
+++ b/src/others/DonationForm.res
@@ -0,0 +1,31 @@
+// TODO (fham): Make this a stripe checkout form.
+// 1. Create a rescript-association stripe account
+// 2. Use stripe's library on npm
+
+@react.component
+let make = () => {
+