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..546b5ac9 --- /dev/null +++ b/website/src/components/TiersPlus/index.js @@ -0,0 +1,126 @@ +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", + link: "https://github.com/sponsors/benjie/sponsorships?tier_id=531702", + buttonText: "Start Monthly Plan", + frequency: "/mo", + comparison: "Cancel any time", + 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..ae355fea 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. - + @@ -403,7 +403,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. @@ -564,7 +564,7 @@ offer ends; saving you a minimum of $1300 over the regular price of $100 /month. ### Graphile Worker is OSS under the MIT license -Graphile Worker is sufficient for many peoples needs; it's the only version that +Graphile Worker is sufficient for many peoples needs; it’s the only version that existed for the first 5 years of the project and many people are running it with great success in production. No features in Graphile Worker have been removed or obscured, and it continues to be developed and maintained, supported by @@ -577,7 +577,7 @@ contributions from the community, The Worker Pro preset enhances Graphile Worker with additional features and is located in a sponsors only GitHub repository. -Worker Pro is not open source, but is "source available". The source code +Worker Pro is not open source, but is “source available”. The source code license forbids publishing and redistribution, but is otherwise very flexible, allowing you to make your own modifications for internal usage should you need to. @@ -592,6 +592,25 @@ code hosted on GitHub. Worker Pro can be installed using an authenticated `authToken`, see the [Worker Pro documentation](/docs/pro#getting-access) for the full details. +### Repository access policy + +To keep pricing fair and sustainable, access to the Graphile Sponsors repository +is intended for: + +- A limited number of individual users within your organization (e.g. evaluators + or team leads) +- Any necessary service or automation accounts + +As a guideline, access should be limited to those who actively need it and users +should be reasonably attributable to the sponsoring organization. Requests to +add users should be sent with their GitHub usernames and, where the user is not +publicly linked to the sponsoring profile, a brief explanation of their role or +relationship to the sponsor. + +We reserve the right to review and limit access where usage falls outside the +spirit of this model. If you require broader access across a team or +organization, please contact us to discuss options. + ### Does Worker Pro come with direct support? Access to Worker Pro grants access to its repository, where users can file @@ -600,25 +619,25 @@ 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 +### I’m an enterprise user and need X, Y and Z Please [get in touch](mailto:team@graphile.org?subject=Enterprise%20enquiry) and -we'll be happy to help! +we’ll be happy to help! ### What is the Worker Pro license? The license forbids publishing and redistribution but otherwise allows you to -make your own modifcations for internal usage: +make your own modifications for internal usage: ``` -Copyright © 2024 Benjie Gillam +Copyright © 2026 Benjie Gillam Use and modification of this software and associated documentation files (the “Software”) is permitted, subject to the following conditions: @@ -636,5 +655,5 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` - Last reviewed: 20th September 2024 + Last reviewed: 21st April 2026 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..d4874ec3 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 @@ -17,46 +22,106 @@ to fund ongoing development on Graphile Worker through sponsorship. THANK YOU! + + + + + + + + + + + + + + + + - + + -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..87deee5b --- /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 Graphile Worker 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 @@ + + + + + + + diff --git a/website/yarn.lock b/website/yarn.lock new file mode 100644 index 00000000..fb57ccd1 --- /dev/null +++ b/website/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +
Small businesses Small and medium businessesEnterprisesAccess development support
Sponsor's discountSponsor’s discount 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