diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index b5d219f2..81cb1c5e 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -171,6 +171,11 @@ const config = { label: "Sponsor", position: "right", }, + { + to: "support", + label: "Support", + position: "right", + }, { to: "pricing", label: "Go Pro", diff --git a/website/src/components/Sponsor/index.js b/website/src/components/Sponsor/index.js index 4efdb635..17392703 100644 --- a/website/src/components/Sponsor/index.js +++ b/website/src/components/Sponsor/index.js @@ -1,10 +1,29 @@ import Link from "@docusaurus/Link"; import styles from "@site/src/components/Sponsor/styles.module.css"; +import FallbackAvatar from "@site/static/img/avatar.svg"; import clsx from "clsx"; import React, { useContext } from "react"; import { SponsorContext } from "../../contexts/sponsor"; +function Avatar({ src }) { + return src ? ( + + ) : ( + + ); +} + +function LinkTo({ href, name }) { + return href ? ( + + {name} + + ) : ( +
{name}
+ ); +} + export default function Sponsor({ name, avatar, @@ -15,6 +34,7 @@ export default function Sponsor({ }) { const level = useContext(SponsorContext); const showAvatar = level === "featured" || level === "leaders"; + return (
{showAvatar ? ( - + ) : null} - - {name} - +
); } diff --git a/website/src/components/Sponsor/styles.module.css b/website/src/components/Sponsor/styles.module.css index 89f5cb28..19f98ae9 100644 --- a/website/src/components/Sponsor/styles.module.css +++ b/website/src/components/Sponsor/styles.module.css @@ -7,19 +7,29 @@ margin: 0.5rem; padding: 1rem; flex: 0 0 18rem; - font-size: 1.5rem; + font-size: 1.2rem; } -.featured .name { - font-size: 2rem; - padding-top: 1rem; + +.leaders { + flex: 0 0 12rem; } -.featured { +.featured, +.leaders { border: 3px solid var(--ifm-color-primary-dark); background: white; border-radius: 12px; } +.featured .name { + font-size: 2rem; + padding-top: 1rem; +} + +.leaders .name { + font-size: 1.2rem; + padding-top: 0.8rem; +} .name { color: var(--ifm-color-primary-darker); text-align: center; @@ -41,12 +51,18 @@ color: var(--ifm-color-primary); } -img.avatar { +.featured .avatar { border-radius: 10rem; width: 10rem; height: 10rem; } +.leaders .avatar { + border-radius: 5rem; + width: 5rem; + height: 5rem; +} + .business { } @@ -58,3 +74,23 @@ img.avatar { border-radius: inherit; border: inherit; } + +.backers:last-child { + display: none; +} + +.backers:first-child { + display: flex; +} + +@media screen and (max-width: 995px) { + .leaders { + display: none; + } + .backers:first-child { + display: none; + } + .backers:last-child { + display: flex; + } +} diff --git a/website/src/components/Sponsors/styles.module.css b/website/src/components/Sponsors/styles.module.css index 7d3d67ee..97eef7a2 100644 --- a/website/src/components/Sponsors/styles.module.css +++ b/website/src/components/Sponsors/styles.module.css @@ -1,4 +1,5 @@ .sponsorContainer { + composes: wide from global; display: flex; flex-wrap: wrap; align-items: space-around; diff --git a/website/src/components/TierPlusButtons/index.js b/website/src/components/TierPlusButtons/index.js new file mode 100644 index 00000000..4bd02c4c --- /dev/null +++ b/website/src/components/TierPlusButtons/index.js @@ -0,0 +1,25 @@ +import Link from "@docusaurus/Link"; +import styles from "@site/src/components/TierPlusButtons/styles.module.css"; +import clsx from "clsx"; +import React from "react"; + +export default function TierPlusButtons() { + return ( +
+ + +
+ ); +} diff --git a/website/src/components/TierPlusButtons/styles.module.css b/website/src/components/TierPlusButtons/styles.module.css new file mode 100644 index 00000000..b1da2c5f --- /dev/null +++ b/website/src/components/TierPlusButtons/styles.module.css @@ -0,0 +1,73 @@ +.sponsorbuttons { + display: flex; + justify-content: center; + margin-top: 2rem; + margin-bottom: 1.5rem; +} + +.borderbutton { + color: white; + text-transform: uppercase; + max-width: 100%; + margin-left: 1rem; + border: 1px solid var(--ifm-color-primary); +} + +.borderbutton:hover { + border-radius: 7px; + border: 1px solid var(--ifm-color-primary-darkest); + background-color: var(--ifm-color-primary-darkest); +} + +.sponsorbutton { + text-transform: uppercase; + max-width: 100%; + border: 1px solid var(--ifm-color-primary-darker); + background-color: var(--ifm-color-primary-darker); +} + +.sponsorbutton:before { + content: "Start Monthly Plan"; +} + +.borderbutton:before { + content: "Contact Graphile"; +} + +.sponsorbutton:hover { + background-color: var(--ifm-color-primary-darkest); + border: 1px solid var(--ifm-color-primary-darkest); +} + +[data-theme="dark"] .sponsorbutton { + border: 1px solid var(--ifm-color-primary-light); + background-color: var(--ifm-color-primary-light); +} + +[data-theme="dark"] .borderbutton { + color: black; +} + +[data-theme="dark"] .sponsorbutton:hover { + border: 1px solid var(--ifm-color-primary-lightest); + background-color: var(--ifm-color-primary-lightest); +} + +[data-theme="dark"] .borderbutton:hover { + border: 1px solid var(--ifm-color-primary-lightest); + background-color: var(--ifm-color-primary-lightest); +} + +@media screen and (max-width: 995px) { + .sponsorbuttons { + display: flex; + flex-direction: column; + } + .borderbutton { + margin-top: 1rem; + margin-left: 0rem; + } + .borderbutton:before { + content: "Contact"; + } +} diff --git a/website/src/components/Tiers/index.js b/website/src/components/Tiers/index.js new file mode 100644 index 00000000..453943ba --- /dev/null +++ b/website/src/components/Tiers/index.js @@ -0,0 +1,142 @@ +import Link from "@docusaurus/Link"; +import styles from "@site/src/components/Tiers/styles.module.css"; +import clsx from "clsx"; +import React from "react"; + +const TierList = [ + { + title: "Supporter", + tagline: "Thank you!", + pricing: "$25", + link: "https://github.com/sponsors/benjie/sponsorships?tier_id=369", + buttonText: "", + description: ( + <> + + + ), + }, + { + title: "Production Sponsor", + tagline: "Support sustainability", + pricing: "$100", + link: "https://github.com/sponsors/benjie/sponsorships?tier_id=368", + buttonText: "", + description: ( + <> + + + ), + }, + { + title: "Featured Sponsor", + tagline: "Get featured in the project", + pricing: "$500", + link: "https://github.com/sponsors/benjie/sponsorships?tier_id=367", + buttonText: "", + description: ( + <> + + + ), + }, +]; + +function Tier({ title, tagline, link, buttonText, description, pricing }) { + return ( +
+

{title}

+

+ {pricing}  + /month +

+ + {buttonText} + +

{tagline}

+

{description}

+
+ ); +} + +export default function List() { + return ( +
+
+ {TierList.map((props, idx) => ( + + ))} +
+
+ ); +} diff --git a/website/src/components/Tiers/styles.module.css b/website/src/components/Tiers/styles.module.css new file mode 100644 index 00000000..d17577c3 --- /dev/null +++ b/website/src/components/Tiers/styles.module.css @@ -0,0 +1,123 @@ +.tiers { + composes: wide from global; + display: flex; + width: 100%; + flex-direction: row; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.tierRow { + justify-content: center; + gap: 2rem; + display: flex; +} + +.tier { + display: flex; + flex-direction: column; + flex: 0 0 30%; + justify-content: flex-start; + align-items: flex-start; + font-weight: normal; + font-size: 0.9rem; + padding: 1rem; + border: 2px solid var(--ifm-color-primary-darker); + border-radius: 12px; +} + +.tier:nth-child(2) { + border: 3px solid var(--ifm-color-primary); +} + +[data-theme="dark"] .tier { + border: 3px solid var(--ifm-color-primary-light); +} + +[data-theme="dark"] .tier:nth-child(2) { + border: 3px solid var(--ifm-color-primary); +} + +.title, +.note { + color: var(--ifm-color-primary-darker); +} + +[data-theme="dark"] .title, +[data-theme="dark"] .note { + color: var(--ifm-color-primary-lighter); +} + +.tagline { + font-weight: var(--ifm-heading-font-weight); +} + +.price { + font-weight: bold; +} + +.note { + font-size: 0.8rem; + font-weight: var(--ifm-font-weight-base); +} + +.tier:nth-child(2) .title, +.tier:nth-child(2) .note { + color: var(--ifm-color-primary); +} + +[data-theme="dark"] .tier:nth-child(2) .title, +[data-theme="dark"] .tier:nth-child(2) .note { + color: var(--ifm-color-primary); +} + +.button { + width: 100%; + margin: 1rem 0 1rem 0; + background-color: var(--ifm-color-primary-darker); + border-color: var(--ifm-color-primary-darker); +} + +.button:before { + content: "Join on GitHub Sponsors"; +} + +.tier:nth-child(2) .button { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); +} + +.tier .button:hover { + background-color: var(--ifm-color-primary-darkest); + border-color: var(--ifm-color-primary-darkest); +} + +[data-theme="dark"] .button { + background-color: var(--ifm-color-primary-light); + border-color: var(--ifm-color-primary-light); +} + +[data-theme="dark"] .tier:nth-child(2) .button { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); +} + +[data-theme="dark"] .tier .button:hover { + background-color: var(--ifm-color-primary-lightest); + border-color: var(--ifm-color-primary-lightest); +} + +@media screen and (max-width: 1200px) { + .tierRow { + flex-direction: column; + gap: 0.5rem; + } + .tier { + flex: 0 0 auto; + font-size: 1rem; + margin: 0; + } + .button:before { + content: "GitHub Sponsors"; + } +} diff --git a/website/src/components/TiersPlus/index.js b/website/src/components/TiersPlus/index.js new file mode 100644 index 00000000..c20ad426 --- /dev/null +++ b/website/src/components/TiersPlus/index.js @@ -0,0 +1,129 @@ +import Link from "@docusaurus/Link"; +import styles from "@site/src/components/TiersPlus/styles.module.css"; +import clsx from "clsx"; +import React from "react"; + +const TierList = [ + { + title: "Monthly Plan", + tagline: "Pay month-to-month with full flexibility", + pricing: "$999", + was: "$1,500", + link: "https://github.com/sponsors/benjie/sponsorships?tier_id=42012", + buttonText: "Start Monthly Plan", + frequency: "/mo", + comparison: "Cancel any time", + badge: "Updated September 2025", + description: ( + <> + + + ), + }, + { + title: "Annual Plan", + tagline: "Maximum savings with full year commitment", + pricing: "$899", + hint: "10% discount", + //was: "$11,988", + link: "mailto:team@graphile.com?subject=Private%20Advisor%20enquiry", + buttonText: "Contact Graphile", + frequency: "/mo", + comparison: "Paid annually — $10,788/yr", + badge: "Best Value — Save $1,200", + featured: true, + description: ( + <> + + + ), + }, +]; + +function Tier({ + title, + tagline, + link, + buttonText, + description, + pricing, + was, + frequency, + comparison, + badge, + featured, + hint, +}) { + return ( +
+ {badge ?
{badge}
: null} +
+
+

{title}

+
{tagline}
+
+ {was ? {was} : null}{" "} + + {pricing} + {frequency} + + {hint ? {hint} : null} +
+
+ {comparison} +
+
+
+ + {buttonText} + +
+
+
{description}
+
+ ); +} + +export default function List() { + return ( +
+
+ {TierList.map((props, idx) => ( + + ))} +
+
+ ); +} diff --git a/website/src/components/TiersPlus/styles.module.css b/website/src/components/TiersPlus/styles.module.css new file mode 100644 index 00000000..8f0e27d2 --- /dev/null +++ b/website/src/components/TiersPlus/styles.module.css @@ -0,0 +1,247 @@ +.tiers { + composes: wide from global; + display: flex; + flex-direction: column; + padding-top: 2rem; + padding-bottom: 2rem; +} + +.tierRow { + justify-content: center; + gap: 2rem; + display: flex; +} + +.tier, +.tierSupport { + position: relative; + display: flex; + flex-direction: column; + flex: 0 0 40%; + justify-content: flex-start; + align-items: flex-start; + font-weight: normal; + font-size: 0.9rem; + padding: 1rem; + border: 2px solid var(--ifm-color-primary-darker); + border-radius: 12px; + &.featured { + background-color: #fff9f5; + border: 3px solid var(--ifm-color-primary); + } +} + +[data-theme="dark"] .tier, +[data-theme="dark"] .tierSupport { + border: 2px solid var(--ifm-color-primary-light); + &.featured { + background-color: #000a15; + border: 3px solid var(--ifm-color-primary); + } +} + +.tierSupport { + flex: 0 0 100%; + &.featured { + background-color: transparent; + } +} + +[data-theme="dark"] .tierSupport { + &.featured { + background-color: transparent; + } +} + +.hint { + background: rgb(221, 245, 221); + color: #059669; + padding: 0 0.8rem 0.1rem; + font-size: 0.8rem; + border-radius: calc(infinity * 1px); + margin-left: 1rem; + height: 1.5rem; +} + +[data-theme="dark"] .hint { + background: #059669; + color: rgb(230, 246, 230); +} + +.badge { + margin: -1.8rem 0 0; + background-color: white; + border-radius: calc(infinity * 1px); + border: 1px solid var(--ifm-color-primary-darker); + padding: 0rem 0.8rem 0.1rem; + .featured & { + background-color: var(--ifm-color-primary); + border: 1px solid var(--ifm-color-primary); + color: white; + font-weight: bold; + margin: -1.8rem auto 0; + } +} + +[data-theme="dark"] .badge { + background-color: var(--ifm-color-primary-light); + border-color: var(--ifm-color-primary-light); + color: black; +} + +[data-theme="dark"] .featured .badge { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); +} + +.banner { + display: flex; + width: 100%; + justify-content: space-between; + flex-direction: column; + margin-top: 0.2rem; +} + +.info { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + > * { + text-align: center; + } +} + +.title { + color: var(--ifm-color-primary-darker); + font-size: 2rem; + font-weight: bold; + .featured & { + color: var(--ifm-color-primary); + } +} + +.note { + font-size: 0.9rem; + color: var(--ifm-color-primary-darker); + font-weight: var(--ifm-font-weight-base); + .featured & { + color: var(--ifm-color-primary); + } +} + +[data-theme="dark"] .title, +[data-theme="dark"] .note { + color: var(--ifm-color-primary-light); +} + +[data-theme="dark"] .featured .title, +[data-theme="dark"] .featured .note { + color: var(--ifm-color-primary); +} + +.tagline { + text-align: center; + font-size: 1rem; +} + +.priceline, +.pricelineSupport { + font-weight: var(--ifm-heading-font-weight); + text-align: center; + font-size: 2rem; + display: flex; + align-items: center; +} + +.pricelineSupport { + align-items: baseline; +} + +.price { + font-weight: bold; +} + +.pricesub { + font-size: 1rem; + color: var(--ifm-color-primary-darker); + .featured & { + color: var(--ifm-color-primary); + } +} + +[data-theme="dark"] .pricesub { + color: var(--ifm-color-primary-lighter); +} + +[data-theme="dark"] .featured .pricesub { + color: var(--ifm-color-primary); +} + +.was { + color: var(--ifm-color-gray-400); + text-decoration: line-through; + margin-right: 1rem; +} + +[data-theme="dark"] .was { + color: var(--ifm-color-gray-700); +} + +.description { + font-size: 1rem; + padding: 0.5rem 0 0.5rem 0; +} + +.description li::marker { + font-size: 20px; + color: var(--ifm-color-primary-darker); + content: "✓ "; +} + +.button { + width: 100%; + margin: 1rem 0 0 0; +} + +.button { + background-color: var(--ifm-color-primary-darker); + border-color: var(--ifm-color-primary-darker); + .featured & { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); + } +} + +.button:hover { + background-color: var(--ifm-color-primary-darkest); + border-color: var(--ifm-color-primary-darkest); +} + +[data-theme="dark"] .button { + background-color: var(--ifm-color-primary-light); + border-color: var(--ifm-color-primary-light); +} + +[data-theme="dark"] .featured .button { + background-color: var(--ifm-color-primary); + border-color: var(--ifm-color-primary); +} + +[data-theme="dark"] .button:hover { + border: 1px solid var(--ifm-color-primary-lightest); + background-color: var(--ifm-color-primary-lightest); +} + +@media screen and (max-width: 1200px) { + .tierRow { + flex-direction: column; + } + .tier { + font-size: 1rem; + margin: 0; + } + .banner { + flex-direction: column; + } +} diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 83ee6a15..92b792fb 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -59,3 +59,11 @@ figcaption { .prettyDivide path { fill: var(--ifm-color-primary); } + +.mdx-wrapper { + article > :not(.wide) { + max-width: 49rem; + margin-left: auto; + margin-right: auto; + } +} diff --git a/website/src/pages/pricing.mdx b/website/src/pages/pricing.mdx index ea55480b..cf217bdf 100644 --- a/website/src/pages/pricing.mdx +++ b/website/src/pages/pricing.mdx @@ -16,12 +16,12 @@ and “quality of life” features which can help your team to save development costs and removes the need to scale to zero while upgrading Worker versions. -Worker Pro is available as a perk for -[Graphile sponsors](https://graphile.org/sponsor/). Businesses which use -Graphile Worker should explore sponsorship as the first option to obtain Worker -Pro, as sponsorship also helps to fund development and maintenance of the entire -Graphile suite, as well as enabling us to advance the software they rely on. At -the time of writing, there are no other ways to obtain Worker Pro. +Worker Pro is available as a perk for [Graphile sponsors](/sponsor). +**Businesses which use Graphile Worker should explore sponsorship as the first +option to obtain Worker Pro, as sponsorship also helps to fund development and +maintenance of the entire Graphile suite, as well as enabling us to advance the +software they rely on**. At the time of writing, there are no other ways to +obtain Worker Pro. :::tip Launch Offer @@ -39,9 +39,9 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month. Sponsor” tier (Sponsor+) is suitable for many small and medium businesses while the “Private Advisor Tier” ( Enterprise) gives access to a complimentary{" "} - Development Support contract - and discounted consultancy packages, perfect for enterprises and those who - need bespoke advice and support on their project. + Development Support contract and discounted + consultancy packages, perfect for enterprises and those who need bespoke + advice and support on their project.

@@ -51,9 +51,9 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month. businesses with some perks such as free access to the database tool{" "} pgRITA and discounted consultancy calls. The “Private Advisor Tier” gives access to a complimentary{" "} - Development Support contract - and discounted consultancy packages, perfect for enterprises and those who - need bespoke advice and support on their project. + Development Support contract and discounted + consultancy packages, perfect for enterprises and those who need bespoke + advice and support on their project.

@@ -85,7 +85,7 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month. - + @@ -507,7 +507,7 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month. @@ -600,11 +600,11 @@ through our [Discord Server](https://discord.gg/graphile) where anyone can ask and answer questions about Worker and the Graphile suite of tools. Sponsors receive priority support from our maintainers within our Discord Server. -Sponsors on the "Private Advisor" tier or above can enter a complimentary +Sponsors on the “Private Advisor” tier or above can enter a complimentary Development Support contract and receive support through their company -Slack/GitHub organization. Prices start at $1,500 a month, with no minimum term. -More information can be found at the -[Development Support page](https://graphile.org/support/) or you can +Slack/GitHub organization. Priced at $999 a month, with no minimum term, or +receive a discount with an annual contract. More information can be found at the +[Development Support page](/support) or you can [get in touch via email](mailto:team@graphile.org?subject=Enterprise%20enquiry). ### I'm an enterprise user and need X, Y and Z @@ -618,7 +618,7 @@ The license forbids publishing and redistribution but otherwise allows you to make your own modifcations for internal usage: ``` -Copyright © 2024 Benjie Gillam +Copyright © 2025 Benjie Gillam Use and modification of this software and associated documentation files (the “Software”) is permitted, subject to the following conditions: @@ -636,5 +636,5 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` - Last reviewed: 20th September 2024 + Last reviewed: August 2025 diff --git a/website/src/pages/pricing.module.css b/website/src/pages/pricing.module.css index 4926790c..e65c5333 100644 --- a/website/src/pages/pricing.module.css +++ b/website/src/pages/pricing.module.css @@ -27,6 +27,7 @@ } .pricingTable { + composes: wide from global; overflow-x: visible; overflow-y: visible; } @@ -126,12 +127,10 @@ border-top: 1px solid var(--ifm-color-primary-darker); } -.showFull { - display: contents; -} - -.showMobile { - display: none; +@media screen and (min-width: 927px) { + .showMobile { + display: none; + } } @media screen and (max-width: 926px) { @@ -205,7 +204,4 @@ .showFull { display: none; } - .showMobile { - display: contents; - } } diff --git a/website/src/pages/sponsors.mdx b/website/src/pages/sponsors.mdx index 00c3f206..bd4840c8 100644 --- a/website/src/pages/sponsors.mdx +++ b/website/src/pages/sponsors.mdx @@ -3,10 +3,15 @@ title: "Sponsor Graphile Open Source Software" hide_table_of_contents: true --- +import clsx from "clsx"; + import Sponsor from "@site/src/components/Sponsor"; import Sponsors from "@site/src/components/Sponsors"; import SponsorButtons from "@site/src/components/SponsorButtons"; +import sponsorStyles from "@site/src/components/TiersPlus/styles.module.css"; import Link from "@docusaurus/Link"; +import TierList from "@site/src/components/Tiers"; +import TierPlusList from "@site/src/components/TiersPlus"; ## Sponsor Graphile’s Open Source Software @@ -23,40 +28,105 @@ to fund ongoing development on Graphile Worker through sponsorship. THANK YOU! business /> + + + + + + + + + + + + + + + + - + + -Graphile has a number of crowd-funded open-source projects, licensed under the -permissive MIT license, including Graphile Worker, PostGraphile, -Grafast, Graphile Migrate and Graphile Starter. Sponsorship increases -the rate of fixes, documentation improvements, and feature development on these -and other projects. +## Sponsor tiers & benefits + + + +
+
+
+
+
+
Development Support
+
+ From  + $899 + /mo +
+
+ + Find out more + +
+
+
+
+ +As well as ensuring the sustainability and longevity of Graphile Worker and the +wider Graphile suite of developer tooling, sponsorship also gives you or your +company some additional benefits such as access to security announcements and +being featured in the README files of Graphile’s main open source projects. + +## Why are Graphile projects “crowd-funded open-source”? + +Many of our projects are open-source under the permissive MIT license to give +users great freedom in how they use the software, and to enable the community to +have influence over how the projects progress to make it appropriate for a wide +range of use-cases. To ensure users can rely on these projects for years to +come, they need to be well directed and financially sustainable. + +**The best way to ensure that Graphile software is something you can depend on +for years to come is through monthly sponsorship.** Crowd-sourced funding +enables us to spend the most time directly working on improving the software, +which you and other users then benefit from. diff --git a/website/src/pages/support.mdx b/website/src/pages/support.mdx new file mode 100644 index 00000000..89e36064 --- /dev/null +++ b/website/src/pages/support.mdx @@ -0,0 +1,91 @@ +--- +title: "Sponsor Graphile Open Source Software" +hide_table_of_contents: true +--- + +import clsx from "clsx"; + +import Link from "@docusaurus/Link"; +import styles from "@site/src/css/common.module.css"; +import TierList from "@site/src/components/Tiers"; +import TierPlusList from "@site/src/components/TiersPlus"; +import TierPlusButtons from "@site/src/components/TierPlusButtons"; + +## Development Support + +Give your organization access to the knowledge and experience of the Graphile +team for any issues you have with PostGraphile, Graphile Worker and the wider +Graphile suite, and other tools in the ecosystem such as TypeScript, SQL, +Node.js, GraphQL and more. If you’re running any of the Graphile tools, +you won’t find anyone more qualified to help. + + + +## Benefits of Development Support + +
    +
  • One-to-one access to the Graphile team throughout the year
  • +
  • + Priority support straight from the maintainer +
  • +
  • Add the Graphile team to your chat server for timely responses
  • +
  • Add the Graphile team to your GitHub/GitLab organization
  • +
  • Reference your code verbatim
  • +
  • Calls arranged as required
  • +
  • NDA available
  • +
+ +Plus, receive recognition as a Featured Sponsor: + +
    +
  • + Access to private security announcements +
  • +
  • + Name and logo{" "} + featured in the READMEs of Graphile’s main OSS projects{" "} + (shown on GitHub and npm) +
  • +
  • + Name and logo prominently featured on our + websites +
  • +
  • + Access to #vip-lounge on Graphile’s Discord +
  • +
  • + Free access to{" "} + + pgRITA + +
  • + +
  • + Access to PostGraphile V4 Pro and{" "} + + graphile-pro sponsors only project repository + +
  • +
  • + The warm feeling that comes from knowing{" "} + + you’re making a significant difference to Graphile Worker’s development + and sustainability + +
  • +
+ + + +## Graphile projects are “crowd-funded open-source” + +Many of our projects are open-source to give users great freedom in how they use +the software, and to enable the community to have influence over how the +projects progress to make it appropriate for a wide range of use-cases. To +ensure users can rely on these projects for years to come, they need to be well +directed and financially sustainable. + +**The best way to ensure that Graphile software is something you can depend on +for years to come is through monthly sponsorship.** Crowd-sourced funding +enables us to spend the most time directly working on improving the software, +which you and other users then benefit from. diff --git a/website/static/img/avatar.svg b/website/static/img/avatar.svg new file mode 100644 index 00000000..a467fea3 --- /dev/null +++ b/website/static/img/avatar.svg @@ -0,0 +1,49 @@ + + + + + + +
Small businesses Small and medium businessesEnterprisesAccess development support
From{" "} - $1,500/mo USD + $899/mo USD
@@ -542,9 +542,9 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month.
- Get in contact + Find out more