## Contact Us [#contact]
-Answers to many common questions are readily available on this event’s
-website. If you cannot find the answer to your question, you are welcome
-to contact us by emailing graphql_events@linuxfoundation.org.
+Answers to many common questions are readily available on this event’s website.
+If you cannot find the answer to your question, you are welcome to contact us by
+emailing graphql_events@linuxfoundation.org.
## Confidentiality
-We never sell attendee lists or contact information, nor do we authorize
-others to do so. If you receive an email claiming to sell an attendee
-list for a Linux Foundation event, please forward it to events@linuxfoundation.org.
+We never sell attendee lists or contact information, nor do we authorize others
+to do so. If you receive an email claiming to sell an attendee list for a Linux
+Foundation event, please forward it to events@linuxfoundation.org.
## Code of Conduct [#codeofconduct]
-The GraphQL Foundation and the Linux Foundation are dedicated to
-providing a harassment-free experience for participants at all of our
-events, whether they are held in person or virtually. GraphQLConf is a
-working conference intended for professional networking and
-collaboration within the open source community. It exists to encourage
-the open exchange of ideas and expression and requires an environment
-that recognizes the inherent worth of every person and group. While at
-GraphQLConf or related ancillary or social events, any participants,
-including members, speakers, attendees, volunteers, sponsors,
-exhibitors, booth staff and anyone else, should not engage in
-harassment in any form.
-
-This Code of Conduct may be revised at any time by The GraphQL
-Foundation or The Linux Foundation and the terms are non-negotiable.
-Your registration for or attendance at GraphQL, whether in person or
-virtually, indicates your agreement to abide by this policy and its
-terms.
-
-Please read the full [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct) for the complete policy and terms.
+The GraphQL Foundation and the Linux Foundation are dedicated to providing a
+harassment-free experience for participants at all of our events, whether they
+are held in person or virtually. GraphQLConf is a working conference intended
+for professional networking and collaboration within the open source community.
+It exists to encourage the open exchange of ideas and expression and requires an
+environment that recognizes the inherent worth of every person and group. While
+at GraphQLConf or related ancillary or social events, any participants,
+including members, speakers, attendees, volunteers, sponsors, exhibitors, booth
+staff and anyone else, should not engage in harassment in any form.
+
+This Code of Conduct may be revised at any time by The GraphQL Foundation or The
+Linux Foundation and the terms are non-negotiable. Your registration for or
+attendance at GraphQL, whether in person or virtually, indicates your agreement
+to abide by this policy and its terms.
+
+Please read the full
+[Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct) for
+the complete policy and terms.
## Diversity & Inclusion [#dni]
Education and collaboration are vital to the future of the open source
-ecosystem, and it is imperative to us that everyone in the community
-that wants to participate feels welcome to do so regardless of gender,
-gender identity, sexual orientation, disability, race, ethnicity, age,
-religion or economic status. Our [code of conduct](#codeofconduct) outlines our expectations
-for all those who participate in our community, as well as the
-consequences for unacceptable behavior.
-
-We offer diversity and need based
-scholarships and have considered a broad
-range of both onsite resources and
-emergency resources as well as a
-health & safety policy.
-
-If you have ideas on how we can create a more inclusive event, please
-do not hesitate to let us know. Contact Emily Ruf, Senior Event
-Manager, at eruf@linuxfoundation.org.
+ecosystem, and it is imperative to us that everyone in the community that wants
+to participate feels welcome to do so regardless of gender, gender identity,
+sexual orientation, disability, race, ethnicity, age, religion or economic
+status. Our [code of conduct](#codeofconduct) outlines our expectations for all
+those who participate in our community, as well as the consequences for
+unacceptable behavior.
+
+We offer diversity and need based scholarships and have considered a broad range
+of both onsite resources and emergency resources as well as a health & safety
+policy.
+
+If you have ideas on how we can create a more inclusive event, please do not
+hesitate to let us know. Contact Emily Ruf, Senior Event Manager, at
+eruf@linuxfoundation.org.
## CHAOSS D&I Event Badge [#chaoss-event-badge]
![D&I Badging badge state: Gold](https://img.shields.io/badge/D%26I-Gold-yellow?style=flat-square&labelColor=583586&&link=https://github.com/badging/event-diversity-and-inclusion/issues/255/&logo=data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI1MCAyNTAiPgo8cGF0aCBmaWxsPSIjMUM5QkQ2IiBkPSJNOTcuMSw0OS4zYzE4LTYuNywzNy44LTYuOCw1NS45LTAuMmwxNy41LTMwLjJjLTI5LTEyLjMtNjEuOC0xMi4yLTkwLjgsMC4zTDk3LjEsNDkuM3oiLz4KPHBhdGggZmlsbD0iIzZBQzdCOSIgZD0iTTE5NC42LDMyLjhMMTc3LjIsNjNjMTQuOCwxMi4zLDI0LjcsMjkuNSwyNy45LDQ4LjVoMzQuOUMyMzYuMiw4MC4yLDIxOS45LDUxLjcsMTk0LjYsMzIuOHoiLz4KPHBhdGggZmlsbD0iI0JGOUNDOSIgZD0iTTIwNC45LDEzOS40Yy03LjksNDMuOS00OS45LDczLTkzLjgsNjUuMWMtMTMuOC0yLjUtMjYuOC04LjYtMzcuNS0xNy42bC0yNi44LDIyLjQKCWM0Ni42LDQzLjQsMTE5LjUsNDAuOSwxNjIuOS01LjdjMTYuNS0xNy43LDI3LTQwLjIsMzAuMS02NC4ySDIwNC45eiIvPgo8cGF0aCBmaWxsPSIjRDYxRDVGIiBkPSJNNTUuNiwxNjUuNkMzNS45LDEzMS44LDQzLjMsODguOCw3My4xLDYzLjVMNTUuNywzMy4yQzcuNSw2OS44LTQuMiwxMzcuNCwyOC44LDE4OEw1NS42LDE2NS42eiIvPgo8L3N2Zz4K)
-Awarded to events in the open source community that fosters healthy
-D&I practices. [Learn More](https://chaoss.community/diversity-and-inclusion-badging).
+Awarded to events in the open source community that fosters healthy D&I
+practices.
+[Learn More](https://chaoss.community/diversity-and-inclusion-badging).
## Invoices & Certificates of Attendance [#invoices]
### Registration Invoices
-Invoice receipts are downloadable from the confirmation email you
-received after registering under the Payment Receipt Information
-section. If the downloadable invoice receipt does not meet your needs
-or you need to have your confirmation email resent, please submit your
-request [here](https://docs.google.com/forms/d/1uxCqF-ieG9QmpU8tl3HqgatHLY9FWhRs7KLpyhZA5KI/edit).
-Please include any additional customization you need for your
-invoice receipt in the request.
+Invoice receipts are downloadable from the confirmation email you received after
+registering under the Payment Receipt Information section. If the downloadable
+invoice receipt does not meet your needs or you need to have your confirmation
+email resent, please submit your request
+[here](https://docs.google.com/forms/d/1uxCqF-ieG9QmpU8tl3HqgatHLY9FWhRs7KLpyhZA5KI/edit).
+Please include any additional customization you need for your invoice receipt in
+the request.
### Certificates of Attendance
-To request a Certificate of Attendance, please submit a request [here](https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/edit).
+To request a Certificate of Attendance, please submit a request
+[here](https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/edit).
**Please note:** We verify attendance through the registration system, and
-Certificate of Attendance letters are sent out after the event is
-completed.
+Certificate of Attendance letters are sent out after the event is completed.
## Refund Policy
### Cancellations
-If you must cancel for any reason, please [sign back into your registration](https://cvent.me/4zbxz9), click the “Register/Modify” button and select “Unregister.” If you
-need further assistance, email registration@linuxfoundation.org.
+If you must cancel for any reason, please
+[sign back into your registration](https://cvent.me/4zbxz9), click the
+“Register/Modify” button and select “Unregister.” If you need further
+assistance, email registration@linuxfoundation.org.
-Refunds will only be issued for cancellations received two weeks prior
-to the event start date, including bulk ticket request refunds, and
-will appear as a credit on the card’s statement 7 – 10 business days
-after cancellation. Due to the ongoing pandemic, individual refund
-requests due to COVID-19 positive tests will be honored up until the
-start date of the event, and must be accompanied by a photo of a
-positive COVID-19 test.
+Refunds will only be issued for cancellations received two weeks prior to the
+event start date, including bulk ticket request refunds, and will appear as a
+credit on the card’s statement 7 – 10 business days after cancellation. Due to
+the ongoing pandemic, individual refund requests due to COVID-19 positive tests
+will be honored up until the start date of the event, and must be accompanied by
+a photo of a positive COVID-19 test.
-**Please note:** Refunds can only be issued on the card the original
-payment was made.
+**Please note:** Refunds can only be issued on the card the original payment was
+made.
### Substitutions
-If you are unable to attend, you may substitute another attendee in
-lieu of cancellation. To substitute an attendee, [sign back into your registration](https://cvent.me/4zbxz9)
-, click the “Register/Modify”, and select “Transfer Registration” on
-your confirmation page.
+If you are unable to attend, you may substitute another attendee in lieu of
+cancellation. To substitute an attendee,
+[sign back into your registration](https://cvent.me/4zbxz9) , click the
+“Register/Modify”, and select “Transfer Registration” on your confirmation page.
diff --git a/src/app/conf/2024/faq/faq.mdx b/src/app/conf/2024/faq/faq.mdx
index e8c5adee33..be4e2423fd 100644
--- a/src/app/conf/2024/faq/faq.mdx
+++ b/src/app/conf/2024/faq/faq.mdx
@@ -1,190 +1,194 @@
# GraphQLConf FAQ
-
## Contact Us [#contact]
-Answers to many common questions are readily available on this event’s
-website. If you cannot find the answer to your question, you are welcome
-to contact us by emailing graphql_events@linuxfoundation.org.
+Answers to many common questions are readily available on this event’s website.
+If you cannot find the answer to your question, you are welcome to contact us by
+emailing graphql_events@linuxfoundation.org.
## Confidentiality
-We never sell attendee lists or contact information, nor do we authorize
-others to do so. If you receive an email claiming to sell an attendee
-list for a Linux Foundation event, please forward it to events@linuxfoundation.org.
+We never sell attendee lists or contact information, nor do we authorize others
+to do so. If you receive an email claiming to sell an attendee list for a Linux
+Foundation event, please forward it to events@linuxfoundation.org.
## Code of Conduct [#codeofconduct]
-The GraphQL Foundation and the Linux Foundation are dedicated to
-providing a harassment-free experience for participants at all of our
-events, whether they are held in person or virtually. GraphQLConf is a
-working conference intended for professional networking and
-collaboration within the open source community. It exists to encourage
-the open exchange of ideas and expression and requires an environment
-that recognizes the inherent worth of every person and group. While at
-GraphQLConf or related ancillary or social events, any participants,
-including members, speakers, attendees, volunteers, sponsors,
-exhibitors, booth staff and anyone else, should not engage in
-harassment in any form.
-
-This Code of Conduct may be revised at any time by The GraphQL
-Foundation or The Linux Foundation and the terms are non-negotiable.
-Your registration for or attendance at GraphQL, whether in person or
-virtually, indicates your agreement to abide by this policy and its
-terms.
-
-Please read the full [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct) for the complete policy and terms.
+The GraphQL Foundation and the Linux Foundation are dedicated to providing a
+harassment-free experience for participants at all of our events, whether they
+are held in person or virtually. GraphQLConf is a working conference intended
+for professional networking and collaboration within the open source community.
+It exists to encourage the open exchange of ideas and expression and requires an
+environment that recognizes the inherent worth of every person and group. While
+at GraphQLConf or related ancillary or social events, any participants,
+including members, speakers, attendees, volunteers, sponsors, exhibitors, booth
+staff and anyone else, should not engage in harassment in any form.
+
+This Code of Conduct may be revised at any time by The GraphQL Foundation or The
+Linux Foundation and the terms are non-negotiable. Your registration for or
+attendance at GraphQL, whether in person or virtually, indicates your agreement
+to abide by this policy and its terms.
+
+Please read the full
+[Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct) for
+the complete policy and terms.
## Diversity & Inclusion [#dni]
Education and collaboration are vital to the future of the open source
-ecosystem, and it is imperative to us that everyone in the community
-that wants to participate feels welcome to do so regardless of gender,
-gender identity, sexual orientation, disability, race, ethnicity, age,
-religion or economic status. Our [code of conduct](#codeofconduct) outlines our expectations
-for all those who participate in our community, as well as the
-consequences for unacceptable behavior.
-
-We offer diversity and have considered a broad
-range of both [onsite resources](#onsite-resources) and
+ecosystem, and it is imperative to us that everyone in the community that wants
+to participate feels welcome to do so regardless of gender, gender identity,
+sexual orientation, disability, race, ethnicity, age, religion or economic
+status. Our [code of conduct](#codeofconduct) outlines our expectations for all
+those who participate in our community, as well as the consequences for
+unacceptable behavior.
+
+We offer diversity and have considered a broad range of both
+[onsite resources](#onsite-resources) and
[emergency resources](#emergency-resources) as well as a
[health & safety](#health-and-safety) policy.
-If you have ideas on how we can create a more inclusive event, please
-do not hesitate to let us know. Contact Emily Ruf, Event Director, at eruf@linuxfoundation.org.
+If you have ideas on how we can create a more inclusive event, please do not
+hesitate to let us know. Contact Emily Ruf, Event Director, at
+eruf@linuxfoundation.org.
## Health & Safety [#health-and-safety]
_Updated March 27, 2024_
-_Our community’s well-being is extremely important to us, and
-creating a safe, worry-free event is our top priority. We will
-adjust our health and safety protocols as needed while updating this
-page with information about plans for our attendees onsite. We
-continue to look to local municipality guidelines to make the best
-and most informed decisions around onsite safety and requirements.
-**All in-person attendance requirements are subject to change based on local guidelines.**_
-
-{/*
-
-{
Health Measures
}
-
-{
COVID-19
}
-
-Masks are recommended, but not required, to attend this event. There
-are no vaccine or testing requirements to attend this event. These are
-both subject to change based on local municipality requirements and
-any changes in COVID-19.
-
-We encourage high-risk individuals, and those with family or
-colleagues who are at a higher risk of getting COVID-19, to consider
-wearing a high-quality mask recommended by health agencies. We also
-ask that you respect those around you who choose to wear a mask. A
-limited number of masks will be available upon request at Registration
-onsite.
-
-{
Vaccines
}
-
-We encourage flu shots, COVID-19 vaccination and boosters to reduce
-the threat of illness.
-
-*/}
+_Our community’s well-being is extremely important to us, and creating a safe,
+worry-free event is our top priority. We will adjust our health and safety
+protocols as needed while updating this page with information about plans for
+our attendees onsite. We continue to look to local municipality guidelines to
+make the best and most informed decisions around onsite safety and requirements.
+**All in-person attendance requirements are subject to change based on local
+guidelines.**_
{
Onsite Personal Protection
}
-- If you feel ill while at the event, please take a COVID-19 self-test and isolate as needed.
+- If you feel ill while at the event, please take a COVID-19 self-test and
+ isolate as needed.
- Hand sanitizing stations will be available throughout the event venue.
- A limited supply of face masks will be available upon request at Registration.
- We respectfully remind all attendees, speakers, sponsors, and staff to:
- - Stay home if you experience any cold or flu-like symptoms.
- - Wash your hands for at least 20 seconds.
- - Stay healthy! Engage in responsible health practices such as avoiding touching eyes/nose/mouth with unwashed hands.
-- We’ll be providing a wearable indicator that shows your comfort
- level with social distancing. While it's optional to wear, we highly
- encourage participants to use it.
+ - Stay home if you experience any cold or flu-like symptoms.
+ - Wash your hands for at least 20 seconds.
+ - Stay healthy! Engage in responsible health practices such as avoiding
+ touching eyes/nose/mouth with unwashed hands.
+- We’ll be providing a wearable indicator that shows your comfort level with
+ social distancing. While it's optional to wear, we highly encourage
+ participants to use it.
{
Food Allergies
}
-The Linux Foundation believes it’s essential to prioritize the safety
-and well-being of all attendees, including those with food allergies.
+The Linux Foundation believes it’s essential to prioritize the safety and
+well-being of all attendees, including those with food allergies.
-- We aim to provide a variety of choices to cater to various needs such as vegetarian, vegan, gluten-free, dairy-free, and nut-free.
-- All food items will be clearly labeled at the event, indicating the ingredients used and any potential allergens present.
+- We aim to provide a variety of choices to cater to various needs such as
+ vegetarian, vegan, gluten-free, dairy-free, and nut-free.
+- All food items will be clearly labeled at the event, indicating the
+ ingredients used and any potential allergens present.
-If you have a food allergy we need to be aware of, please email us at graphql_events@linuxfoundation.org.
+If you have a food allergy we need to be aware of, please email us at
+graphql_events@linuxfoundation.org.
{
Safety Resources & Tips
}
-Attendee safety is our top priority. Always exercise common sense and
-good judgment when traveling.
+Attendee safety is our top priority. Always exercise common sense and good
+judgment when traveling.
{
General Safety
}
- When walking around the city, remember to take off your conference badge.
-- Safety in numbers: Exploring the city can be safer when done with a friend or colleague.
+- Safety in numbers: Exploring the city can be safer when done with a friend or
+ colleague.
- Walk with purpose and stick to well-lit areas and on main streets.
- If alone after dark, use a ride service such as Lyft, Uber or a taxi.
- Save the address and phone number of where you’re staying in your phone.
- Be aware of your surroundings and keep your eyes up and not on your phone.
- If something doesn’t feel right, walk into a business/hotel for help.
- Be careful and alert when using a cash machine.
-- Carry your purse or wallet safely. Purses should be closed and held in front of your body. Wallets should be carried in a front pants pocket or in an interior jacket pocket.
+- Carry your purse or wallet safely. Purses should be closed and held in front
+ of your body. Wallets should be carried in a front pants pocket or in an
+ interior jacket pocket.
{
When Visiting Any Venue:
}
- Know where you are; the venue name, street address or cross street.
-- Take a moment to identify at least two exit routes from any building or event and emergency exit signs.
-- If an alarm sounds, evacuate immediately. Follow directions from First Responders and venue staff.
-- Do not carry any unnecessary valuables with you, or leave personal items unattended.
-- Do not leave drinks unattended, or accept open drinks or food products from strangers.
+- Take a moment to identify at least two exit routes from any building or event
+ and emergency exit signs.
+- If an alarm sounds, evacuate immediately. Follow directions from First
+ Responders and venue staff.
+- Do not carry any unnecessary valuables with you, or leave personal items
+ unattended.
+- Do not leave drinks unattended, or accept open drinks or food products from
+ strangers.
{
Emergency Evacuations
}
-- In the event of an emergency evacuation, make your way quickly and calmly to an emergency exit. Be aware of any hazards or dangers around you and proceed to a safe area.
+- In the event of an emergency evacuation, make your way quickly and calmly to
+ an emergency exit. Be aware of any hazards or dangers around you and proceed
+ to a safe area.
- Follow the advice of venue staff, security personnel and First Responders.
-- Do not put yourself in danger by stopping to collect belongings unless directed by First Responders.
+- Do not put yourself in danger by stopping to collect belongings unless
+ directed by First Responders.
{
Weapon Policy
}
-The Linux Foundation does not allow firearms or other weapons,
-regardless of whether they are permitted or not, or whether they are
-concealed or not, to be brought into our events. By registering for
-the event, you are agreeing that you understand this policy and will
-not bring a firearm or other weapons into the event.
+The Linux Foundation does not allow firearms or other weapons, regardless of
+whether they are permitted or not, or whether they are concealed or not, to be
+brought into our events. By registering for the event, you are agreeing that you
+understand this policy and will not bring a firearm or other weapons into the
+event.
## Invoices & Certificates of Attendance [#invoices]
{
Registration Invoices
}
-Invoice receipts are downloadable from the confirmation email you
-received after registering under the Payment Receipt Information
-section. If the downloadable invoice receipt does not meet your needs
-or you need to have your confirmation email resent, please submit your
-request [here](https://docs.google.com/forms/d/1uxCqF-ieG9QmpU8tl3HqgatHLY9FWhRs7KLpyhZA5KI/edit).
-Please include any additional customization you need for your
-invoice receipt in the request.
+Invoice receipts are downloadable from the confirmation email you received after
+registering under the Payment Receipt Information section. If the downloadable
+invoice receipt does not meet your needs or you need to have your confirmation
+email resent, please submit your request
+[here](https://docs.google.com/forms/d/1uxCqF-ieG9QmpU8tl3HqgatHLY9FWhRs7KLpyhZA5KI/edit).
+Please include any additional customization you need for your invoice receipt in
+the request.
{
Certificates of Attendance
}
-To request a Certificate of Attendance, please submit a request [here](https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/edit).
+To request a Certificate of Attendance, please submit a request
+[here](https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/edit).
**Please note:** We verify attendance through the registration system, and
-Certificate of Attendance letters are sent out after the event is
-completed.
-
+Certificate of Attendance letters are sent out after the event is completed.
## Refund Policy
{
Cancellations
}
-If you must cancel for any reason, please click the Unregister button above. If you need further assistance, email registration@linuxfoundation.org.
+If you must cancel for any reason, please click the Unregister button above. If
+you need further assistance, email registration@linuxfoundation.org.
-Refunds will only be issued for cancellations received two weeks prior to the event start date (including bulk ticket request refunds, co-located events, and add-ons), and will appear as a credit on the card’s statement 7 - 10 business days after cancellation. Individual refund requests for late cancellations due to sickness or emergency will be considered on a case by case basis - contact us at registration@linuxfoundation.org.
+Refunds will only be issued for cancellations received two weeks prior to the
+event start date (including bulk ticket request refunds, co-located events, and
+add-ons), and will appear as a credit on the card’s statement 7 - 10 business
+days after cancellation. Individual refund requests for late cancellations due
+to sickness or emergency will be considered on a case by case basis - contact us
+at registration@linuxfoundation.org.
-**Please note:** Refunds can only be issued on the card the original payment was made.
+**Please note:** Refunds can only be issued on the card the original payment was
+made.
{
Substitutions
}
-If you are unable to attend, you may substitute another attendee in lieu of cancellation. To substitute an attendee, select the Transfer Registration button above. You will be required to provide the attendee's first name, last name, and email address for the registration.
-
+If you are unable to attend, you may substitute another attendee in lieu of
+cancellation. To substitute an attendee, select the Transfer Registration button
+above. You will be required to provide the attendee's first name, last name, and
+email address for the registration.
diff --git a/src/app/conf/2024/partner/index.mdx b/src/app/conf/2024/partner/index.mdx
index 41556176e6..23c88d5a8b 100644
--- a/src/app/conf/2024/partner/index.mdx
+++ b/src/app/conf/2024/partner/index.mdx
@@ -2,27 +2,45 @@ import { Button } from "@/app/conf/_components/button"
## Sponsor GraphQLConf 2024 [#sponsor]
-
-
-
+
+
+
-Contact us at graphqlconf@graphql.org to reserve your sponsorship, ask questions or talk about different options.
+Contact us at graphqlconf@graphql.org to reserve your sponsorship, ask questions
+or talk about different options.
-GraphQLConf is the official GraphQL conference hosted by the GraphQL Foundation. It is a premier event by the community for the community to promote education, adoption, and advancement of GraphQL.
+GraphQLConf is the official GraphQL conference hosted by the GraphQL Foundation.
+It is a premier event by the community for the community to promote education,
+adoption, and advancement of GraphQL.
Help make this event one to remember by becoming a sponsor.
-GraphQLConf will attract members of the GraphQL community from around the world. Developers, users, architects, and technology leaders from multiple industries will gather in San Francisco to meet, collaborate and build. GraphQLConf 2024 is the flagship event in the GraphQL Foundation’s official event series.
-
-Investing in GraphQLConf provides the opportunity to build awareness and loyalty with leaders and decision makers in organizations across the GraphQL and open source community.
+GraphQLConf will attract members of the GraphQL community from around the world.
+Developers, users, architects, and technology leaders from multiple industries
+will gather in San Francisco to meet, collaborate and build. GraphQLConf 2024 is
+the flagship event in the GraphQL Foundation’s official event series.
+Investing in GraphQLConf provides the opportunity to build awareness and loyalty
+with leaders and decision makers in organizations across the GraphQL and open
+source community.
## Partner with GraphQLConf [#program]
-We are pleased to offer a Media and Community Partner Program for
-our upcoming GraphQLConf 2024. Our program is designed to provide
-benefits to media and community partners, while also ensuring that
-our conference is promoted in a positive and appropriate way.
+We are pleased to offer a Media and Community Partner Program for our upcoming
+GraphQLConf 2024. Our program is designed to provide benefits to media and
+community partners, while also ensuring that our conference is promoted in a
+positive and appropriate way.
{/* prettier-ignore */}
@@ -70,29 +88,31 @@ As a community partner, you will receive the following benefits:
## Obligations for Media and Community Partners [#obligation]
-In exchange for these benefits, media and community partners are
-expected to fulfill the following obligations:
+In exchange for these benefits, media and community partners are expected to
+fulfill the following obligations:
- Promote the conference through your own media channels or community network
-- Include the conference logo and website URL in any promotional materials related to the conference
-- Follow conference media and social media guidelines, including not publishing or sharing any defamatory or inappropriate content related to the conference or its attendees
+- Include the conference logo and website URL in any promotional materials
+ related to the conference
+- Follow conference media and social media guidelines, including not publishing
+ or sharing any defamatory or inappropriate content related to the conference
+ or its attendees
- Attend the conference and actively engage with attendees and other partners
- Provide feedback and suggestions for improvement of future conferences
## How to Apply [#apply]
-To apply to become a media or community partner, please fill out the
-application form. Applications will be reviewed on a rolling basis,
-and all applicants will be notified of their status within two weeks
-of submitting their application.
+To apply to become a media or community partner, please fill out the application
+form. Applications will be reviewed on a rolling basis, and all applicants will
+be notified of their status within two weeks of submitting their application.
-Thank you for your interest in partnering with us for GraphQLConf 2024. We look forward to working with you to make our
-conference a success!
+Thank you for your interest in partnering with us for GraphQLConf 2024. We look
+forward to working with you to make our conference a success!
-{/*
-*/}
+>
+ Fill out the application form
+
diff --git a/src/app/conf/2024/speak/index.mdx b/src/app/conf/2024/speak/index.mdx
index 1bb6b63712..4679ec2989 100644
--- a/src/app/conf/2024/speak/index.mdx
+++ b/src/app/conf/2024/speak/index.mdx
@@ -4,11 +4,13 @@ import { Button } from "@/app/conf/_components/button"
**September 10-12, 2024 | San Francisco, CA**
-Putting on an amazing conference depends on great content, which is where you come in! Join
-other GraphQL leaders and community members as a presenter by submitting to our Call for
-Proposals (CFP) and sharing your experience across a wide range of topics.
+Putting on an amazing conference depends on great content, which is where you
+come in! Join other GraphQL leaders and community members as a presenter by
+submitting to our Call for Proposals (CFP) and sharing your experience across a
+wide range of topics.
-For any questions regarding the CFP process, please email cfp@linuxfoundation.org.
+For any questions regarding the CFP process, please email
+cfp@linuxfoundation.org.
export const isExpired = new Date() > new Date("2024/05/22 12:00")
@@ -20,10 +22,12 @@ export const isExpired = new Date() > new Date("2024/05/22 12:00")
{isExpired ? "CFP Closed" : "Submit a Proposal"}
-> Please be aware that the Linux Foundation will now be utilizing Sessionize for CFP
-> submissions. Sessionize is a cloud-based event content management software designed to be
-> intuitive and user-friendly. If you need guidance, please review [how to submit your session for
-> an event](https://sessionize.com/playbook/submit-your-session-for-an-event) to see step-by-step instructions and helpful screenshots.
+> Please be aware that the Linux Foundation will now be utilizing Sessionize for
+> CFP submissions. Sessionize is a cloud-based event content management software
+> designed to be intuitive and user-friendly. If you need guidance, please
+> review
+> [how to submit your session for an event](https://sessionize.com/playbook/submit-your-session-for-an-event)
+> to see step-by-step instructions and helpful screenshots.
Click through the tabs on this page to access the information.
@@ -45,92 +49,128 @@ Click through the tabs on this page to access the information.
## Suggested Topics
-{
GraphQL Spec
}
-Latest and greatest developments in the GraphQL specification, reference implementation, and related
-official specifications such as GraphQL-over-HTTP specification.
+{
GraphQL Spec
} Latest and greatest developments in the GraphQL
+specification, reference implementation, and related official specifications
+such as GraphQL-over-HTTP specification.
-{
GraphQL in Production
}
-Best practices, real world use cases, spectacular success, spectacular failures, and lessons
-learned from production deployments of GraphQL.
+{
GraphQL in Production
} Best practices, real world use cases,
+spectacular success, spectacular failures, and lessons learned from production
+deployments of GraphQL.
-{
GraphQL Security
}
-Authentication/authorization, security testing, threat models, GraphQL and OWASP Top 10,
-exploit analysis and retrospective, full-lifecycle security considerations.
+{
GraphQL Security
} Authentication/authorization, security testing,
+threat models, GraphQL and OWASP Top 10, exploit analysis and retrospective,
+full-lifecycle security considerations.
-{
GraphQL Clients
}
-Client development (web, mobile, and beyond) with GraphQL, frontend frameworks, GraphQL
-IDEs.
+{
GraphQL Clients
} Client development (web, mobile, and beyond) with
+GraphQL, frontend frameworks, GraphQL IDEs.
-{
Backend
}
-GraphQL server implementations, data sources for GraphQL resolvers, alternative execution strategies,
-and related backend development concerns.
+{
Backend
} GraphQL server implementations, data sources for GraphQL
+resolvers, alternative execution strategies, and related backend development
+concerns.
-{
Scaling
}
-Everything related to scaling GraphQL: testing, automation, performance, social/organizational
-considerations.
+{
Scaling
} Everything related to scaling GraphQL: testing, automation,
+performance, social/organizational considerations.
-{
GraphQL Academia
}
-Research papers or studies in academia that involve GraphQL.
+{
GraphQL Academia
} Research papers or studies in academia that involve
+GraphQL.
-{
Emerging Community Trends
}
-What’s happening at the vanguard of GraphQL adoption that will help define the future of
-GraphQL usage in the community.
+{
Emerging Community Trends
} What’s happening at the vanguard of GraphQL
+adoption that will help define the future of GraphQL usage in the community.
-{
API Platform
}
-Integration with platform providers/frameworks, serverless, mesh architectures, AI/ML.
+{
API Platform
} Integration with platform providers/frameworks,
+serverless, mesh architectures, AI/ML.
-{
Federation and Composite Schemas
}
-Building a schema from multiple smaller schemas: technologies, experiences, specifications, best
-practices, things to avoid.
+{
Federation and Composite Schemas
} Building a schema from multiple
+smaller schemas: technologies, experiences, specifications, best practices,
+things to avoid.
-{
Developer Experience
}
-The latest and greatest developments in GraphiQL and other GraphQL IDEs, frontend and backend tooling,
-editor integrations, AI assistance and more.
+{
Developer Experience
} The latest and greatest developments in GraphiQL
+and other GraphQL IDEs, frontend and backend tooling, editor integrations, AI
+assistance and more.
-{
Defies Categorization
}
-Have a talk idea that doesn’t fit inside the topics above? Challenge accepted! Wow us with your
-awesome talk submission and we’ll work with you to fit it into our track structure.
+{
Defies Categorization
} Have a talk idea that doesn’t fit inside the
+topics above? Challenge accepted! Wow us with your awesome talk submission and
+we’ll work with you to fit it into our track structure.
## Submission Types
-- **Session Presentation:** Typically 30-40 minutes in length, 1-2 speakers presenting on a topic
-- **Panel Discussion:** Typically 30-40 minutes in length, 3-4 speakers presenting on a topic
+- **Session Presentation:** Typically 30-40 minutes in length, 1-2 speakers
+ presenting on a topic
+- **Panel Discussion:** Typically 30-40 minutes in length, 3-4 speakers
+ presenting on a topic
- **Birds of a Feather:** Typically 45 minutes to 1 hour in length
- **Lightning Talk:** Typically 5-10 minutes in length
- **Workshop:** Typically 1-2 hours in length
## Important Notes
-- All speakers are required to adhere to our [Code of Conduct](/conf/2024/faq/#codeofconduct). We also highly recommend that speakers take our online [Inclusive Speaker Orientation Course](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation).
-- Panel submissions must include the names of all participants in the initial submission to be considered. In an effort to promote speaker diversity, The Linux Foundation does not accept submissions with all-male panels, and speakers must not all be from the same company.
-- Complimentary Passes For Speakers – One complimentary pass for the event will be provided for each accepted speaker.
-- Avoid sales or marketing pitches and discussing unlicensed or potentially closed-source technologies when preparing your proposal; these talks are almost always rejected due to the fact that they take away from the integrity of our events, and are rarely well-received by conference attendees.
-- You are allowed to be listed as a speaker on a maximum of two proposals submitted to the CFP, regardless of the format. If you are listed on more than two, we will contact you to remove yourself from any additional proposals.
-- You may only be selected to speak on one panel and one non-panel session per event.
+- All speakers are required to adhere to our
+ [Code of Conduct](/conf/2024/faq/#codeofconduct). We also highly recommend
+ that speakers take our online
+ [Inclusive Speaker Orientation Course](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation).
+- Panel submissions must include the names of all participants in the initial
+ submission to be considered. In an effort to promote speaker diversity, The
+ Linux Foundation does not accept submissions with all-male panels, and
+ speakers must not all be from the same company.
+- Complimentary Passes For Speakers – One complimentary pass for the event will
+ be provided for each accepted speaker.
+- Avoid sales or marketing pitches and discussing unlicensed or potentially
+ closed-source technologies when preparing your proposal; these talks are
+ almost always rejected due to the fact that they take away from the integrity
+ of our events, and are rarely well-received by conference attendees.
+- You are allowed to be listed as a speaker on a maximum of two proposals
+ submitted to the CFP, regardless of the format. If you are listed on more than
+ two, we will contact you to remove yourself from any additional proposals.
+- You may only be selected to speak on one panel and one non-panel session per
+ event.
- All accepted speakers are required to submit their slides prior to the event.
## Prepare to Submit
-While it is not our intention to provide you with strict instructions on how to prepare your proposal, we hope you will take a moment to review the following guidelines that we have put together to help you prepare the best submission possible. To get started, here are three things that you should consider before submitting your proposal:
+While it is not our intention to provide you with strict instructions on how to
+prepare your proposal, we hope you will take a moment to review the following
+guidelines that we have put together to help you prepare the best submission
+possible. To get started, here are three things that you should consider before
+submitting your proposal:
1. What are you hoping to get from your presentation?
1. What do you expect the audience to gain from your presentation?
1. How will your presentation help better the ecosystem?
-There are plenty of ways to give a presentation about projects and technologies without focusing on company-specific efforts. Remember the things to consider that we mentioned above when writing your proposal and think of ways to make it interesting for attendees while still letting you share your experiences, educate the community about an issue, or generate interest in a project.
+There are plenty of ways to give a presentation about projects and technologies
+without focusing on company-specific efforts. Remember the things to consider
+that we mentioned above when writing your proposal and think of ways to make it
+interesting for attendees while still letting you share your experiences,
+educate the community about an issue, or generate interest in a project.
{
Writing Your Proposal
}
-Your abstract title will be the main point of reference for attendees to decide if they want to attend your talk, so choose it carefully. The title should accurately reflect the content of your talk. Speakers are required to adhere to our [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct). We also highly recommend that speakers take our online [Inclusive Speaker Orientation Course](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation).
+Your abstract title will be the main point of reference for attendees to decide
+if they want to attend your talk, so choose it carefully. The title should
+accurately reflect the content of your talk. Speakers are required to adhere to
+our [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct).
+We also highly recommend that speakers take our online
+[Inclusive Speaker Orientation Course](https://training.linuxfoundation.org/linux-courses/open-source-compliance-courses/inclusive-speaker-orientation).
{
How to Give a Great Talk
}
-We want to make sure submitters receive resources to help put together a great submission and if accepted, give the best presentation possible. To help with this, we recommend viewing seasoned speaker Dawn Foster’s in-depth talk: [Getting Over Your Imposter Syndrome to Become a Conference Speaker – Dawn Foster, VMware](https://youtu.be/2I5fYBLCfUA).
+We want to make sure submitters receive resources to help put together a great
+submission and if accepted, give the best presentation possible. To help with
+this, we recommend viewing seasoned speaker Dawn Foster’s in-depth talk:
+[Getting Over Your Imposter Syndrome to Become a Conference Speaker – Dawn Foster, VMware](https://youtu.be/2I5fYBLCfUA).
{
Have More Questions? First Time Submitting? Don’t Feel Intimidated
}
-Linux Foundation events are an excellent way to get to know the community and share your ideas and the work that you are doing and we strongly encourage first-time speakers to submit talks for our events. In the instance that you aren’t sure about your abstract, [reach out to us](mailto:cfp@linuxfoundation.org) and we will be more than happy to work with you on your proposal.
+Linux Foundation events are an excellent way to get to know the community and
+share your ideas and the work that you are doing and we strongly encourage
+first-time speakers to submit talks for our events. In the instance that you
+aren’t sure about your abstract,
+[reach out to us](mailto:cfp@linuxfoundation.org) and we will be more than happy
+to work with you on your proposal.
## Code of Conduct
-The Linux Foundation is dedicated to providing a harassment-free experience for participants at all of our events. We encourage all submitters to review our complete [Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct).
+The Linux Foundation is dedicated to providing a harassment-free experience for
+participants at all of our events. We encourage all submitters to review our
+complete
+[Code of Conduct](https://events.linuxfoundation.org/about/code-of-conduct).
diff --git a/src/pages/blog.mdx b/src/pages/blog.mdx
index df349e7b40..e48c5ed59e 100644
--- a/src/pages/blog.mdx
+++ b/src/pages/blog.mdx
@@ -7,10 +7,10 @@ import { clsx } from "clsx"
export default function Blog() {
const { asPath } = useRouter()
- const items = getPagesUnderRoute("/blog").flatMap(item => item.children || item)
- const blogs = items.sort(
- (a, b) => b.frontMatter.date - a.frontMatter.date,
+ const items = getPagesUnderRoute("/blog").flatMap(
+ item => item.children || item
)
+ const blogs = items.sort((a, b) => b.frontMatter.date - a.frontMatter.date)
const currentTag = asPath.startsWith("/blog")
? ""
: asPath.replace("/tags/", "").replace(/\/$/, "")
@@ -24,7 +24,7 @@ export default function Blog() {
}, {})
//
const tagList = (
-
>
diff --git a/src/pages/blog/2015-09-14-graphql.mdx b/src/pages/blog/2015-09-14-graphql.mdx
index 97cd48527c..1f9cfa5b45 100644
--- a/src/pages/blog/2015-09-14-graphql.mdx
+++ b/src/pages/blog/2015-09-14-graphql.mdx
@@ -5,21 +5,46 @@ date: 2015-09-14
byline: "Lee Byron"
---
-When we built Facebook's mobile applications, we needed a data-fetching API powerful enough to describe all of Facebook, yet simple and easy to learn so product developers can focus on building things quickly. We developed GraphQL three years ago to fill this need. Today it powers hundreds of billions of API calls a day. This year we've begun the process of open-sourcing GraphQL by drafting a specification, releasing a reference implementation, and forming a community around it here at [graphql.org](/).
+When we built Facebook's mobile applications, we needed a data-fetching API
+powerful enough to describe all of Facebook, yet simple and easy to learn so
+product developers can focus on building things quickly. We developed GraphQL
+three years ago to fill this need. Today it powers hundreds of billions of API
+calls a day. This year we've begun the process of open-sourcing GraphQL by
+drafting a specification, releasing a reference implementation, and forming a
+community around it here at [graphql.org](/).
## Why GraphQL?
-Back in 2012, we began an effort to rebuild Facebook's native mobile applications.
-
-At the time, our iOS and Android apps were thin wrappers around views of our mobile website. While this brought us close to a platonic ideal of the "write one, run anywhere" mobile application, in practice it pushed our mobile-webview apps beyond their limits. As Facebook's mobile apps became more complex, they suffered poor performance and frequently crashed.
-
-As we transitioned to natively implemented models and views, we found ourselves for the first time needing an API data version of News Feed — which up until that point had only been delivered as HTML. We evaluated our options for delivering News Feed data to our mobile apps, including RESTful server resources and FQL tables (Facebook's SQL-like API). We were frustrated with the differences between the data we wanted to use in our apps and the server queries they required. We don't think of data in terms of resource URLs, secondary keys, or join tables; we think about it in terms of a graph of objects and the models we ultimately use in our apps like NSObjects or JSON.
-
-There was also a considerable amount of code to write on both the server to prepare the data and on the client to parse it. This frustration inspired a few of us to start the project that ultimately became GraphQL. GraphQL was our opportunity to rethink mobile app data-fetching from the perspective of product designers and developers. It moved the focus of development to the client apps, where designers and developers spend their time and attention.
+Back in 2012, we began an effort to rebuild Facebook's native mobile
+applications.
+
+At the time, our iOS and Android apps were thin wrappers around views of our
+mobile website. While this brought us close to a platonic ideal of the "write
+one, run anywhere" mobile application, in practice it pushed our mobile-webview
+apps beyond their limits. As Facebook's mobile apps became more complex, they
+suffered poor performance and frequently crashed.
+
+As we transitioned to natively implemented models and views, we found ourselves
+for the first time needing an API data version of News Feed — which up until
+that point had only been delivered as HTML. We evaluated our options for
+delivering News Feed data to our mobile apps, including RESTful server resources
+and FQL tables (Facebook's SQL-like API). We were frustrated with the
+differences between the data we wanted to use in our apps and the server queries
+they required. We don't think of data in terms of resource URLs, secondary keys,
+or join tables; we think about it in terms of a graph of objects and the models
+we ultimately use in our apps like NSObjects or JSON.
+
+There was also a considerable amount of code to write on both the server to
+prepare the data and on the client to parse it. This frustration inspired a few
+of us to start the project that ultimately became GraphQL. GraphQL was our
+opportunity to rethink mobile app data-fetching from the perspective of product
+designers and developers. It moved the focus of development to the client apps,
+where designers and developers spend their time and attention.
## What is GraphQL?
-A GraphQL query is a string that is sent to a server to be interpreted and fulfilled, which then returns JSON back to the client.
+A GraphQL query is a string that is sent to a server to be interpreted and
+fulfilled, which then returns JSON back to the client.
```graphql
# { "graphiql": true, "schema": "Users" }
@@ -44,15 +69,40 @@ A GraphQL query is a string that is sent to a server to be interpreted and fulfi
}
```
-**Defines a data shape:** The first thing you'll notice is that GraphQL queries mirror their response. This makes it easy to predict the shape of the data returned from a query, as well as to write a query if you know the data your app needs. More important, this makes GraphQL really easy to learn and use. GraphQL is unapologetically driven by the data requirements of products and of the designers and developers who build them.
-
-**Hierarchical:** Another important aspect of GraphQL is its hierarchical nature. GraphQL naturally follows relationships between objects, where a RESTful service may require multiple round-trips (resource-intensive on mobile networks) or a complex join statement in SQL. This data hierarchy pairs well with graph-structured data stores and ultimately with the hierarchical user interfaces it's used within.
-
-**Strongly typed:** Each level of a GraphQL query corresponds to a particular type, and each type describes a set of available fields. Similar to SQL, this allows GraphQL to provide descriptive error messages before executing a query. It also plays well with the strongly typed native environments of Obj-C and Java.
-
-**Protocol, not storage:** Each GraphQL field on the server is backed by a function - code linking to your application layer. While we were building GraphQL to support News Feed, we already had a sophisticated feed ranking and storage model, along with existing databases and business logic. GraphQL had to leverage all this existing work to be useful, and so does not dictate or provide any backing storage. Instead, GraphQL takes advantage of your existing code by exposing your application layer, not your storage layer.
-
-**Introspective:** A GraphQL server can be queried for the types it supports. This creates a powerful platform for tools and client software to build atop this information like code generation in statically typed languages, our application framework, Relay, or IDEs like GraphiQL (pictured below). GraphiQL helps developers learn and explore an API quickly without grepping the codebase or wrangling with cURL.
+**Defines a data shape:** The first thing you'll notice is that GraphQL queries
+mirror their response. This makes it easy to predict the shape of the data
+returned from a query, as well as to write a query if you know the data your app
+needs. More important, this makes GraphQL really easy to learn and use. GraphQL
+is unapologetically driven by the data requirements of products and of the
+designers and developers who build them.
+
+**Hierarchical:** Another important aspect of GraphQL is its hierarchical
+nature. GraphQL naturally follows relationships between objects, where a RESTful
+service may require multiple round-trips (resource-intensive on mobile networks)
+or a complex join statement in SQL. This data hierarchy pairs well with
+graph-structured data stores and ultimately with the hierarchical user
+interfaces it's used within.
+
+**Strongly typed:** Each level of a GraphQL query corresponds to a particular
+type, and each type describes a set of available fields. Similar to SQL, this
+allows GraphQL to provide descriptive error messages before executing a query.
+It also plays well with the strongly typed native environments of Obj-C and
+Java.
+
+**Protocol, not storage:** Each GraphQL field on the server is backed by a
+function - code linking to your application layer. While we were building
+GraphQL to support News Feed, we already had a sophisticated feed ranking and
+storage model, along with existing databases and business logic. GraphQL had to
+leverage all this existing work to be useful, and so does not dictate or provide
+any backing storage. Instead, GraphQL takes advantage of your existing code by
+exposing your application layer, not your storage layer.
+
+**Introspective:** A GraphQL server can be queried for the types it supports.
+This creates a powerful platform for tools and client software to build atop
+this information like code generation in statically typed languages, our
+application framework, Relay, or IDEs like GraphiQL (pictured below). GraphiQL
+helps developers learn and explore an API quickly without grepping the codebase
+or wrangling with cURL.
```graphql
# { "graphiql": true, "schema": "Users" }
@@ -69,15 +119,53 @@ A GraphQL query is a string that is sent to a server to be interpreted and fulfi
}
```
-**Version free:** The shape of the returned data is determined entirely by the client's query, so servers become simpler and easy to generalize. When you're adding new product features, additional fields can be added to the server, leaving existing clients unaffected. When you're sunsetting older features, the corresponding server fields can be deprecated but continue to function. This gradual, backward-compatible process removes the need for an incrementing version number. We still support three years of released Facebook applications on a single version of our GraphQL API.
-
-With GraphQL, we were able to build full-featured native News Feed on iOS in 2012, and on Android shortly after. Since then, GraphQL has become the primary way we build our mobile apps and the servers that power them. More than three years later, GraphQL powers almost all data-fetching in our mobile applications, serving millions of requests per second from nearly 1,000 shipped application versions.
-
-When we built GraphQL in 2012 we had no idea how important it would become to how we build things at Facebook and didn't anticipate its value beyond Facebook. However, earlier this year we announced Relay, our application framework for the web and React Native built atop GraphQL. The community excitement for Relay inspired us to revisit GraphQL to evaluate every detail, make improvements, fix inconsistencies, and write a specification describing GraphQL and how it works.
-
-Two months ago, we [made our progress public](https://youtube.com/watch?v=WQLzZf34FJ8) and released a working draft of the [GraphQL spec](https://spec.graphql.org) and a reference implementation: [GraphQL.js](https://github.com/graphql/graphql-js). Since then, a community has started to form around GraphQL, and versions of the GraphQL runtime are being [built in many languages](https://github.com/chentsulin/awesome-graphql), including Go, Ruby, Scala, Java, .Net, and Python. We've also begun to share some of the tools we use internally, like [GraphiQL](https://github.com/graphql/graphiql), an in-browser IDE, documentation browser, and query runner. GraphQL has also seen production usage outside Facebook, in a project for the [_Financial Times_](https://youtube.com/watch?v=S0s935RKKB4) by consultancy [Red Badger](http://red-badger.com).
-
-“GraphQL makes orchestrating data fetching so much simpler, and it pretty much functions as a perfect isolation point between the front end and the back end”
-— Viktor Charypar, software engineer at Red Badger
-
-While GraphQL is an established part of building products at Facebook, its use beyond Facebook is just beginning. Try out [GraphiQL](http://graphql-swapi.parseapp.com/graphiql) and help provide feedback on our [specification](https://github.com/facebook/graphql). We think GraphQL can greatly simplify data needs for both client product developers and server-side engineers, regardless of what languages you're using in either environment, and we're excited to continue to improve GraphQL, help a community grow around it, and see what we can build together.
+**Version free:** The shape of the returned data is determined entirely by the
+client's query, so servers become simpler and easy to generalize. When you're
+adding new product features, additional fields can be added to the server,
+leaving existing clients unaffected. When you're sunsetting older features, the
+corresponding server fields can be deprecated but continue to function. This
+gradual, backward-compatible process removes the need for an incrementing
+version number. We still support three years of released Facebook applications
+on a single version of our GraphQL API.
+
+With GraphQL, we were able to build full-featured native News Feed on iOS in
+2012, and on Android shortly after. Since then, GraphQL has become the primary
+way we build our mobile apps and the servers that power them. More than three
+years later, GraphQL powers almost all data-fetching in our mobile applications,
+serving millions of requests per second from nearly 1,000 shipped application
+versions.
+
+When we built GraphQL in 2012 we had no idea how important it would become to
+how we build things at Facebook and didn't anticipate its value beyond Facebook.
+However, earlier this year we announced Relay, our application framework for the
+web and React Native built atop GraphQL. The community excitement for Relay
+inspired us to revisit GraphQL to evaluate every detail, make improvements, fix
+inconsistencies, and write a specification describing GraphQL and how it works.
+
+Two months ago, we
+[made our progress public](https://youtube.com/watch?v=WQLzZf34FJ8) and released
+a working draft of the [GraphQL spec](https://spec.graphql.org) and a reference
+implementation: [GraphQL.js](https://github.com/graphql/graphql-js). Since then,
+a community has started to form around GraphQL, and versions of the GraphQL
+runtime are being
+[built in many languages](https://github.com/chentsulin/awesome-graphql),
+including Go, Ruby, Scala, Java, .Net, and Python. We've also begun to share
+some of the tools we use internally, like
+[GraphiQL](https://github.com/graphql/graphiql), an in-browser IDE,
+documentation browser, and query runner. GraphQL has also seen production usage
+outside Facebook, in a project for the
+[_Financial Times_](https://youtube.com/watch?v=S0s935RKKB4) by consultancy
+[Red Badger](http://red-badger.com).
+
+“GraphQL makes orchestrating data fetching so much simpler, and it pretty much
+functions as a perfect isolation point between the front end and the back end” —
+Viktor Charypar, software engineer at Red Badger
+
+While GraphQL is an established part of building products at Facebook, its use
+beyond Facebook is just beginning. Try out
+[GraphiQL](http://graphql-swapi.parseapp.com/graphiql) and help provide feedback
+on our [specification](https://github.com/facebook/graphql). We think GraphQL
+can greatly simplify data needs for both client product developers and
+server-side engineers, regardless of what languages you're using in either
+environment, and we're excited to continue to improve GraphQL, help a community
+grow around it, and see what we can build together.
diff --git a/src/pages/blog/2015-10-16-subscriptions.mdx b/src/pages/blog/2015-10-16-subscriptions.mdx
index 5a0318ebd7..f37cbff8e2 100644
--- a/src/pages/blog/2015-10-16-subscriptions.mdx
+++ b/src/pages/blog/2015-10-16-subscriptions.mdx
@@ -5,39 +5,67 @@ date: 2015-10-16
byline: Dan Schafer and Laney Kuenzel
---
-When we announced and open-sourced GraphQL and Relay this year, we described how they can be used to perform reads with queries, and to perform writes with mutations. However, oftentimes clients want to get pushed updates from the server when data they care about changes. To support that, we’ve introduced a third operation into the GraphQL specification: subscription.
+When we announced and open-sourced GraphQL and Relay this year, we described how
+they can be used to perform reads with queries, and to perform writes with
+mutations. However, oftentimes clients want to get pushed updates from the
+server when data they care about changes. To support that, we’ve introduced a
+third operation into the GraphQL specification: subscription.
## Event-based subscriptions
-The approach that we’ve taken to subscriptions parallels that of mutations; just as the list of mutations that the server supports describes all of the actions that a client can take, the list of subscriptions that the server supports describes all of the events that it can subscribe to. Just as a client can tell the server what data to refetch after it performs a mutation with a GraphQL selection, the client can tell the server what data it wants to be pushed with the subscription with a GraphQL selection.
+The approach that we’ve taken to subscriptions parallels that of mutations; just
+as the list of mutations that the server supports describes all of the actions
+that a client can take, the list of subscriptions that the server supports
+describes all of the events that it can subscribe to. Just as a client can tell
+the server what data to refetch after it performs a mutation with a GraphQL
+selection, the client can tell the server what data it wants to be pushed with
+the subscription with a GraphQL selection.
-For example, in the Facebook schema, we have a mutation field named `storyLike`, that clients can use to like a post. The client might want to refetch the like count, as well as the like sentence (“Dan and 3 others like this”. We do this translation on the server because of the complexity of that translation in various languages). To do so, they would issue the following mutation:
+For example, in the Facebook schema, we have a mutation field named `storyLike`,
+that clients can use to like a post. The client might want to refetch the like
+count, as well as the like sentence (“Dan and 3 others like this”. We do this
+translation on the server because of the complexity of that translation in
+various languages). To do so, they would issue the following mutation:
```graphql
mutation StoryLikeMutation($input: StoryLikeInput) {
storyLike(input: $input) {
story {
- likers { count }
- likeSentence { text }
+ likers {
+ count
+ }
+ likeSentence {
+ text
+ }
}
}
}
```
-But when you’re looking at a post, you also want to get pushed an update whenever someone else likes the post! That’s where subscriptions come in; the Facebook schema has a subscription field named `storyLikeSubscribe` that allows the client to get pushed data anytime someone likes or unlikes that story! The client would create a subscription like this:
+But when you’re looking at a post, you also want to get pushed an update
+whenever someone else likes the post! That’s where subscriptions come in; the
+Facebook schema has a subscription field named `storyLikeSubscribe` that allows
+the client to get pushed data anytime someone likes or unlikes that story! The
+client would create a subscription like this:
```graphql
subscription StoryLikeSubscription($input: StoryLikeSubscribeInput) {
storyLikeSubscribe(input: $input) {
story {
- likers { count }
- likeSentence { text }
+ likers {
+ count
+ }
+ likeSentence {
+ text
+ }
}
}
}
```
-The client would then send this subscription to the server, along with the value for the `$input` variable, which would contain information like the story ID to which we are subscribing:
+The client would then send this subscription to the server, along with the value
+for the `$input` variable, which would contain information like the story ID to
+which we are subscribing:
```graphql
input StoryLikeSubscribeInput {
@@ -46,21 +74,33 @@ input StoryLikeSubscribeInput {
}
```
-At Facebook, we send this query to the server at build time to generate a unique ID for it, then subscribe to a special MQTT topic with the subscription ID in it, but many different subscription mechanisms could be used here.
+At Facebook, we send this query to the server at build time to generate a unique
+ID for it, then subscribe to a special MQTT topic with the subscription ID in
+it, but many different subscription mechanisms could be used here.
-On the server, we then trigger this subscription every time someone likes a post. If all of our clients were using GraphQL, we could put this hook in the GraphQL mutation; since we have non-GraphQL clients as well, we put the hook in a layer below the GraphQL mutation to ensure it always fires.
+On the server, we then trigger this subscription every time someone likes a
+post. If all of our clients were using GraphQL, we could put this hook in the
+GraphQL mutation; since we have non-GraphQL clients as well, we put the hook in
+a layer below the GraphQL mutation to ensure it always fires.
## Why not Live Queries?
-Notably, this approach requires the client to subscribe to events that it cares about. Another approach is to have the client subscribe to a query, and ask for updates every time the result of that query changes. Why didn’t we take that approach?
+Notably, this approach requires the client to subscribe to events that it cares
+about. Another approach is to have the client subscribe to a query, and ask for
+updates every time the result of that query changes. Why didn’t we take that
+approach?
Let’s look back at the data we wanted to refetch for the story:
```graphql
fragment StoryLikeData on Story {
story {
- likers { count }
- likeSentence { text }
+ likers {
+ count
+ }
+ likeSentence {
+ text
+ }
}
}
```
@@ -69,20 +109,49 @@ What events could trigger that a change to the data fetched in that fragment?
- Someone likes the post.
- Someone unlikes the post.
-- Someone who had liked the post deactivates their account (changes the like count down one, changes the like sentence to decrement the translated count).
-- Someone who had liked the post reactivates their account (changes the like count up one, changes the like sentence to increment the translated count).
-- Someone who had liked the post blocks you (cannot show them in the like sentence).
-- Someone who had liked the post changes their name (need to update the text of the like sentence).
-- Our internal ranking model for the ordering of names in the like sentence updates, and we should be listing a different person first (want to update the text of the like sentence).
-
-And that’s just the tip of the iceberg in terms of events; each of those events also becomes tricky when there are thousands of people subscribed, and millions of people who liked the post. Implementing live queries for this set of data proved to be immensely complicated.
-
-When building event-based subscriptions, the problem of determining what should trigger an event is easy, since the event defines that explicitly. It also proved fairly straight-forward to implement atop existing message queue systems. For live queries, though, this appeared much harder. The value of our fields is determined by the result of their resolve function, and figuring out all of the things that could alter the result of that function was difficult. We could in theory have polled on the server to implement this, but that had efficiency and timeliness issues. Based on this, we decided to invest in the event-based subscription approach.
+- Someone who had liked the post deactivates their account (changes the like
+ count down one, changes the like sentence to decrement the translated count).
+- Someone who had liked the post reactivates their account (changes the like
+ count up one, changes the like sentence to increment the translated count).
+- Someone who had liked the post blocks you (cannot show them in the like
+ sentence).
+- Someone who had liked the post changes their name (need to update the text of
+ the like sentence).
+- Our internal ranking model for the ordering of names in the like sentence
+ updates, and we should be listing a different person first (want to update the
+ text of the like sentence).
+
+And that’s just the tip of the iceberg in terms of events; each of those events
+also becomes tricky when there are thousands of people subscribed, and millions
+of people who liked the post. Implementing live queries for this set of data
+proved to be immensely complicated.
+
+When building event-based subscriptions, the problem of determining what should
+trigger an event is easy, since the event defines that explicitly. It also
+proved fairly straight-forward to implement atop existing message queue systems.
+For live queries, though, this appeared much harder. The value of our fields is
+determined by the result of their resolve function, and figuring out all of the
+things that could alter the result of that function was difficult. We could in
+theory have polled on the server to implement this, but that had efficiency and
+timeliness issues. Based on this, we decided to invest in the event-based
+subscription approach.
## What’s next?
-We’re actively building out the event-based subscription approach described above. We’ve built out live liking and commenting features on our iOS and Android apps using that approach, and are continuing to flesh out its functionality and API. While its current implementation at Facebook is coupled to Facebook’s infrastructure, we’re certainly looking forward to open sourcing our progress here as soon as we can.
-
-Because our backend and schema don’t offer easy support for live queries, we don’t have any plans to develop them at Facebook. At the same time, it’s clear that there are backends and schemas for which live queries are feasible, and that they offer a lot of value in those situations. The discussion in the community on this topic has been fantastic, and we’re excited to see what kind of live query proposals emerge from it!
-
-Subscriptions create a ton of possibilities for creating truly dynamic applications. We’re excited to continue developing GraphQL and Relay with the help of the community to enable these possibilities.
+We’re actively building out the event-based subscription approach described
+above. We’ve built out live liking and commenting features on our iOS and
+Android apps using that approach, and are continuing to flesh out its
+functionality and API. While its current implementation at Facebook is coupled
+to Facebook’s infrastructure, we’re certainly looking forward to open sourcing
+our progress here as soon as we can.
+
+Because our backend and schema don’t offer easy support for live queries, we
+don’t have any plans to develop them at Facebook. At the same time, it’s clear
+that there are backends and schemas for which live queries are feasible, and
+that they offer a lot of value in those situations. The discussion in the
+community on this topic has been fantastic, and we’re excited to see what kind
+of live query proposals emerge from it!
+
+Subscriptions create a ton of possibilities for creating truly dynamic
+applications. We’re excited to continue developing GraphQL and Relay with the
+help of the community to enable these possibilities.
diff --git a/src/pages/blog/2016-04-19-mocking.mdx b/src/pages/blog/2016-04-19-mocking.mdx
index f77a19880b..2801432c57 100644
--- a/src/pages/blog/2016-04-19-mocking.mdx
+++ b/src/pages/blog/2016-04-19-mocking.mdx
@@ -6,40 +6,86 @@ byline: "Jonas Helfer"
guestBio: engineer at Meteor working on Apollo
---
-Do you think mocking your backend is always a tedious task? If you do, reading this post might change your mind…
-
-Mocking is the practice of creating a fake version of a component, so that you can develop and test other parts of your application independently. Mocking your backend is a great way to quickly build a prototype of your frontend, and it lets you test your frontend without starting up any servers. API mocking is so useful that a [quick Google search](https://www.google.com/?ion=1&espv=2#q=mock+rest+api) will turn up dozens of expensive products and services that promise to help you.
-
-Sadly, I think none of the solutions out there make it as easy as it should be. As it turns out, that’s because they’ve been trying to do it with the wrong technology!
-
-> Editor’s note : The concepts in this post are accurate, but some the code samples don’t demonstrate new usage patterns. After reading, consult the [graphql-tools docs](http://dev.apollodata.com/tools/graphql-tools/mocking.html) to see how to use mocking today.
+Do you think mocking your backend is always a tedious task? If you do, reading
+this post might change your mind…
+
+Mocking is the practice of creating a fake version of a component, so that you
+can develop and test other parts of your application independently. Mocking your
+backend is a great way to quickly build a prototype of your frontend, and it
+lets you test your frontend without starting up any servers. API mocking is so
+useful that a
+[quick Google search](https://www.google.com/?ion=1&espv=2#q=mock+rest+api) will
+turn up dozens of expensive products and services that promise to help you.
+
+Sadly, I think none of the solutions out there make it as easy as it should be.
+As it turns out, that’s because they’ve been trying to do it with the wrong
+technology!
+
+> Editor’s note : The concepts in this post are accurate, but some the code
+> samples don’t demonstrate new usage patterns. After reading, consult the
+> [graphql-tools docs](http://dev.apollodata.com/tools/graphql-tools/mocking.html)
+> to see how to use mocking today.
## Why mock?
Mocking the data a backend would return is very useful for two main reasons:
-1. It lets you start developing a frontend feature when you don’t have a working backend for it yet. This is critical for projects where the frontend and backend components are often developed in parallel.
-2. It lets you run tests locally without connecting to a real backend, which is much faster and safer. As your codebase grows and your app becomes more complex, starting up all of the server infrastructure just to run some tests isn’t feasible.
+1. It lets you start developing a frontend feature when you don’t have a working
+ backend for it yet. This is critical for projects where the frontend and
+ backend components are often developed in parallel.
+2. It lets you run tests locally without connecting to a real backend, which is
+ much faster and safer. As your codebase grows and your app becomes more
+ complex, starting up all of the server infrastructure just to run some tests
+ isn’t feasible.
-If mocking your backend API has such clear benefits, why doesn’t everyone do it? I think it's because mocking often seems like too much trouble to be worth it.
+If mocking your backend API has such clear benefits, why doesn’t everyone do it?
+I think it's because mocking often seems like too much trouble to be worth it.
## Why is mocking backends hard?
-Let’s say your backend is some REST API that is called over HTTP from the browser. You have someone working on the backend, and someone else working on the frontend. The backend code actually determines the shape of the data returned for each REST endpoint, but mocking has to be done in the frontend code. That means the mocking code will break every time the backend changes, unless both are changed at the same time. What’s worse, if you’re doing your frontend testing against a mock backend that is not up to date with your backend, your tests may pass, but your actual frontend won’t work.
-
-Rather than having to keep more dependencies up to date, the easy option is to just not mock the REST API, or have the backend be in charge of mocking itself, just so it’s all in one place. That may be easier, but it will also slow you down.
-
-The other reason I often hear for why people don’t mock the backend in their project is because it takes time to set up: first you have to include extra logic in your data fetching layer that lets you turn mocking on and off, and second you have to actually describe what that mock data should look like. For any non-trivial API that requires a lot of tedious work.
-
-Both of these reasons for why mocking backends is hard are actually due to the same underlying reason: there is no standard REST API description in machine-consumable format and contains all the information necessary for mocking and can be used by both the backend and the frontend. There are some API description standards, like Swagger, but they don’t contain all of the information you need, and can be cumbersome to write and maintain. Unless you want to pay for a service or a product — and maybe even then — mocking is a lot of work.
-
-Actually, I should say mocking used to be a lot of work, because a new technology is changing the way we think of APIs: GraphQL.
+Let’s say your backend is some REST API that is called over HTTP from the
+browser. You have someone working on the backend, and someone else working on
+the frontend. The backend code actually determines the shape of the data
+returned for each REST endpoint, but mocking has to be done in the frontend
+code. That means the mocking code will break every time the backend changes,
+unless both are changed at the same time. What’s worse, if you’re doing your
+frontend testing against a mock backend that is not up to date with your
+backend, your tests may pass, but your actual frontend won’t work.
+
+Rather than having to keep more dependencies up to date, the easy option is to
+just not mock the REST API, or have the backend be in charge of mocking itself,
+just so it’s all in one place. That may be easier, but it will also slow you
+down.
+
+The other reason I often hear for why people don’t mock the backend in their
+project is because it takes time to set up: first you have to include extra
+logic in your data fetching layer that lets you turn mocking on and off, and
+second you have to actually describe what that mock data should look like. For
+any non-trivial API that requires a lot of tedious work.
+
+Both of these reasons for why mocking backends is hard are actually due to the
+same underlying reason: there is no standard REST API description in
+machine-consumable format and contains all the information necessary for mocking
+and can be used by both the backend and the frontend. There are some API
+description standards, like Swagger, but they don’t contain all of the
+information you need, and can be cumbersome to write and maintain. Unless you
+want to pay for a service or a product — and maybe even then — mocking is a lot
+of work.
+
+Actually, I should say mocking used to be a lot of work, because a new
+technology is changing the way we think of APIs: GraphQL.
## Mocking is easy with a type system!
-GraphQL makes mocking easy, because every GraphQL backend comes with a static type system. The types can be shared between your backend and your frontend, and they contain all of the information necessary to make mocking incredibly fast and convenient. With GraphQL, there is no excuse to not mock your backend for development or testing.
+GraphQL makes mocking easy, because every GraphQL backend comes with a static
+type system. The types can be shared between your backend and your frontend, and
+they contain all of the information necessary to make mocking incredibly fast
+and convenient. With GraphQL, there is no excuse to not mock your backend for
+development or testing.
-Here’s how easy it is to create a mocked backend that will accept any valid GraphQL query with the GraphQL mocking tool we are building as part of our new [GraphQL server toolkit](https://github.com/apollostack/graphql-tools):
+Here’s how easy it is to create a mocked backend that will accept any valid
+GraphQL query with the GraphQL mocking tool we are building as part of our new
+[GraphQL server toolkit](https://github.com/apollostack/graphql-tools):
```js
// > npm install graphql-tools
@@ -65,17 +111,34 @@ myMockServer.query(`{
// }
```
-Every GraphQL server needs a schema, so it’s not extra code you need to write just for mocking. And the query is the one your component already uses for fetching data, so that’s also not code you write just for mocking. Not counting the import statement, it only took us one line of code to mock the entire backend!
+Every GraphQL server needs a schema, so it’s not extra code you need to write
+just for mocking. And the query is the one your component already uses for
+fetching data, so that’s also not code you write just for mocking. Not counting
+the import statement, it only took us one line of code to mock the entire
+backend!
-Put that in contrast to most REST APIs out there, where mocking means parsing a URL and returning data in a custom shape for each endpoint. It takes dozens of lines to mock a single endpoint that returns some realistic-looking data. With GraphQL, the shape is encoded in the query, and together with the schema we have enough information to mock the server with a single line of code.
+Put that in contrast to most REST APIs out there, where mocking means parsing a
+URL and returning data in a custom shape for each endpoint. It takes dozens of
+lines to mock a single endpoint that returns some realistic-looking data. With
+GraphQL, the shape is encoded in the query, and together with the schema we have
+enough information to mock the server with a single line of code.
-Did I mention that this one line is all you need to return mock data for any valid GraphQL query you could send? Not just some valid query, any valid query! Pretty cool, right?
+Did I mention that this one line is all you need to return mock data for any
+valid GraphQL query you could send? Not just some valid query, any valid query!
+Pretty cool, right?
## Customizing mock data
-In the example above, the mock server will return completely random IDs and strings every time you query it. When you’ve just started building your app and only want to see what your UI code looks like in different states, that’s probably good enough, but as you start to fine-tune your layout, or want to use the mock server to test your component’s logic, you’ll probably need more realistic data.
+In the example above, the mock server will return completely random IDs and
+strings every time you query it. When you’ve just started building your app and
+only want to see what your UI code looks like in different states, that’s
+probably good enough, but as you start to fine-tune your layout, or want to use
+the mock server to test your component’s logic, you’ll probably need more
+realistic data.
-Luckily, this takes only a little more effort: customization of mock data is really where the Apollo mocking tool shines, because it lets you customize virtually everything about the mock data that it returns.
+Luckily, this takes only a little more effort: customization of mock data is
+really where the Apollo mocking tool shines, because it lets you customize
+virtually everything about the mock data that it returns.
It lets you do all of the following and more:
@@ -84,14 +147,14 @@ It lets you do all of the following and more:
mockServer(schema, {
Int: () => 6,
Float: () => 22.1,
- String: () => 'Hello'
+ String: () => "Hello"
})
// customize mocking per field in the schema (i.e. for Person.name and Person.age)
mockServer(schema, {
Person: () => ({
name: casual.name,
- age: () => casual.integer(0,120)
+ age: () => casual.integer(0, 120)
})
})
@@ -99,7 +162,7 @@ mockServer(schema, {
mockServer(schema, {
Person: () => ({
// a list of length between 2 and 6
- friends: () => new MockList([2,6]),
+ friends: () => new MockList([2, 6]),
// a list of three lists of two items: [[1, 1], [2, 2], [3, 3]]
listOfLists: () => new MockList(3, () => new MockList(2))
})
@@ -116,11 +179,21 @@ mockServer(schema, {
// You can also disable mocking for specific fields, pass through to the backend, etc.
```
-For each type and each field you can provide a function that will be called on to generate mock data. Mock functions on fields have precedence over mock functions on types, but they work together really nicely: The field mock functions only need to describe the properties of the objects that matter to them, type mock functions will fill in the rest.
+For each type and each field you can provide a function that will be called on
+to generate mock data. Mock functions on fields have precedence over mock
+functions on types, but they work together really nicely: The field mock
+functions only need to describe the properties of the objects that matter to
+them, type mock functions will fill in the rest.
-The mock functions are actually just GraphQL resolve functions in disguise. What that means is that your mocking can do anything that you could do inside a GraphQL resolve function. If you wanted, you could write your entire backend with it. I’m not saying you should, but you could.
+The mock functions are actually just GraphQL resolve functions in disguise. What
+that means is that your mocking can do anything that you could do inside a
+GraphQL resolve function. If you wanted, you could write your entire backend
+with it. I’m not saying you should, but you could.
-I think the real power of this tool is that while it allows almost arbitrarily complex customization, you can get started really quickly and increase the sophistication of your mocks in tiny steps whenever you need it. Each step is so simple that it will feel like a breeze.
+I think the real power of this tool is that while it allows almost arbitrarily
+complex customization, you can get started really quickly and increase the
+sophistication of your mocks in tiny steps whenever you need it. Each step is so
+simple that it will feel like a breeze.
But enough talking, here’s a complete example:
@@ -163,14 +236,14 @@ const schema = `
// will be used to resolve the field if the query requests it.
const server = mockServer(schema, {
RootQuery: () => ({
- user: (o, { id }) => ({ id }),
+ user: (o, { id }) => ({ id })
}),
List: () => ({
name: () => casual.word,
- tasks: () => new MockList(4, (o, { completed }) => ({ completed })),
+ tasks: () => new MockList(4, (o, { completed }) => ({ completed }))
}),
Task: () => ({ text: casual.words(10) }),
- User: () => ({ name: casual.name }),
+ User: () => ({ name: casual.name })
})
mockServer.query(`
@@ -199,12 +272,21 @@ query tasksForUser{
## Live demo + try it yourself
-To see the example in action and see what output it generates, head over to the [live demo](https://launchpad.graphql.com/98lq7vz8r) try running some queries!
+To see the example in action and see what output it generates, head over to the
+[live demo](https://launchpad.graphql.com/98lq7vz8r) try running some queries!
-If you want to fiddle around with the example, just click the "Download" button in the Launchpad UI. If you’re curious about how it works or want to see what other tools we’re building for GraphQL, then head over to [apollostack/graphql-tools](https://github.com/apollostack/graphql-tools).
+If you want to fiddle around with the example, just click the "Download" button
+in the Launchpad UI. If you’re curious about how it works or want to see what
+other tools we’re building for GraphQL, then head over to
+[apollostack/graphql-tools](https://github.com/apollostack/graphql-tools).
-Pretty cool, right? All of that becomes possible by using a type system. And that’s only just the beginning — we‘re working on bridging the gap between mocking and the real thing so that your mock server can gradually turn into your real server as you add more functionality to it.
+Pretty cool, right? All of that becomes possible by using a type system. And
+that’s only just the beginning — we‘re working on bridging the gap between
+mocking and the real thing so that your mock server can gradually turn into your
+real server as you add more functionality to it.
---
-_This post was originally published on [the Apollo Blog](https://medium.com/apollo-stack). We publish one or two posts every week, about the stuff we’re working on and thinking about._
+_This post was originally published on
+[the Apollo Blog](https://medium.com/apollo-stack). We publish one or two posts
+every week, about the stuff we’re working on and thinking about._
diff --git a/src/pages/blog/2016-05-02-rest-api-graphql-wrapper.mdx b/src/pages/blog/2016-05-02-rest-api-graphql-wrapper.mdx
index 19c11fd5c9..f5c754d428 100644
--- a/src/pages/blog/2016-05-02-rest-api-graphql-wrapper.mdx
+++ b/src/pages/blog/2016-05-02-rest-api-graphql-wrapper.mdx
@@ -5,19 +5,33 @@ date: 2016-05-05
byline: "Steven Luscher"
---
-Time and time again I hear the same aspiration from front-end web and mobile developers: they're eager to reap the developer efficiency gains offered by new technologies like Relay and GraphQL, but they have years of momentum behind their existing REST API. Without data that clearly demonstrates the benefits of switching, they find it hard to justify an additional investment in GraphQL infrastructure.
+Time and time again I hear the same aspiration from front-end web and mobile
+developers: they're eager to reap the developer efficiency gains offered by new
+technologies like Relay and GraphQL, but they have years of momentum behind
+their existing REST API. Without data that clearly demonstrates the benefits of
+switching, they find it hard to justify an additional investment in GraphQL
+infrastructure.
-In this post I will outline a rapid, low-investment method that you can use to stand up a GraphQL endpoint atop an existing REST API, using JavaScript alone. No backend developers will be harmed during the making of this blog post.
+In this post I will outline a rapid, low-investment method that you can use to
+stand up a GraphQL endpoint atop an existing REST API, using JavaScript alone.
+No backend developers will be harmed during the making of this blog post.
## A client-side REST wrapper
-We're going to create a _GraphQL schema_ – a type system that describes your universe of data – that wraps calls to your existing REST API. This schema will receive and resolve GraphQL queries all on the client side. This architecture features some inherent performance flaws, but is fast to implement and requires no server changes.
+We're going to create a _GraphQL schema_ – a type system that describes your
+universe of data – that wraps calls to your existing REST API. This schema will
+receive and resolve GraphQL queries all on the client side. This architecture
+features some inherent performance flaws, but is fast to implement and requires
+no server changes.
-Imagine a REST API that exposes a `/people/` endpoint through which you can browse `Person` models and their associated friends.
+Imagine a REST API that exposes a `/people/` endpoint through which you can
+browse `Person` models and their associated friends.
![A REST API that exposes an index of people][rest-api-people]
-We will build a GraphQL schema that models people and their attributes (like `first_name` and `email`) as well as their association to other people through friendships.
+We will build a GraphQL schema that models people and their attributes (like
+`first_name` and `email`) as well as their association to other people through
+friendships.
### Installation
@@ -29,35 +43,36 @@ npm i graphql
### Building the GraphQL Schema
-Ultimately we will want to export a `GraphQLSchema` that we can use to resolve queries.
+Ultimately we will want to export a `GraphQLSchema` that we can use to resolve
+queries.
```js
import { GraphQLSchema } from "graphql"
export default new GraphQLSchema({
- query: QueryType,
+ query: QueryType
})
```
-At the root of all GraphQL schemas is a type called `query` whose definition we provide, and have specified here as `QueryType`. Let's build `QueryType` now – a type on which we will define all the possible things one might want to fetch.
+At the root of all GraphQL schemas is a type called `query` whose definition we
+provide, and have specified here as `QueryType`. Let's build `QueryType` now – a
+type on which we will define all the possible things one might want to fetch.
-To replicate all of the functionality of our REST API, let's expose two fields on `QueryType`:
+To replicate all of the functionality of our REST API, let's expose two fields
+on `QueryType`:
- an `allPeople` field – analogous to `/people/`
- a `person(id: String)` field – analogous to `/people/{ID}/`
-Each field will consist of a return type, optional argument definitions, and a JavaScript method that resolves the data being queried for.
+Each field will consist of a return type, optional argument definitions, and a
+JavaScript method that resolves the data being queried for.
```js
-import {
- GraphQLList,
- GraphQLObjectType,
- GraphQLString,
-} from 'graphql';
+import { GraphQLList, GraphQLObjectType, GraphQLString } from "graphql"
const QueryType = new GraphQLObjectType({
- name: 'Query',
- description: 'The root of all... queries',
+ name: "Query",
+ description: "The root of all... queries",
fields: () => ({
allPeople: {
type: new GraphQLList(PersonType),
@@ -66,49 +81,57 @@ const QueryType = new GraphQLObjectType({
person: {
type: PersonType,
args: {
- id: { type: GraphQLString },
+ id: { type: GraphQLString }
},
resolve: (root, args) => {} // Fetch the person with ID `args.id`,
- },
- }),
-});
+ }
+ })
+})
```
-Let's leave the resolvers as a sketch for now, and move on to defining `PersonType`.
+Let's leave the resolvers as a sketch for now, and move on to defining
+`PersonType`.
```js
-import {
- GraphQLList,
- GraphQLObjectType,
- GraphQLString,
-} from 'graphql';
+import { GraphQLList, GraphQLObjectType, GraphQLString } from "graphql"
const PersonType = new GraphQLObjectType({
- name: 'Person',
- description: 'Somebody that you used to know',
+ name: "Person",
+ description: "Somebody that you used to know",
fields: () => ({
firstName: {
type: GraphQLString,
- resolve: person => person.first_name,
+ resolve: person => person.first_name
},
lastName: {
type: GraphQLString,
- resolve: person => person.last_name,
+ resolve: person => person.last_name
},
- email: {type: GraphQLString},
- id: {type: GraphQLString},
- username: {type: GraphQLString},
+ email: { type: GraphQLString },
+ id: { type: GraphQLString },
+ username: { type: GraphQLString },
friends: {
type: new GraphQLList(PersonType),
resolve: person => {} // Fetch the friends with the URLs `person.friends`,
- },
- }),
-});
+ }
+ })
+})
```
-Note two things about the definition of `PersonType`. Firstly, we have not supplied a resolver for `email`, `id`, or `username`. The default resolver simply accesses the property of the `person` object that has the same name as the field. This works everywhere except where the property names do not match the field name (eg. the field `firstName` does not match the `first_name` property of the response object from the REST API) or where accessing the property would not yield the object that we want (eg. we want a list of person objects for the `friends` field, not a list of URLs).
-
-Now, let's write resolvers that fetch people from the REST API. Because we need to load from the network, we won't be able to return a value right away. Luckily for us, `resolve()` can return either a value or a `Promise` for a value. We're going to take advantage of this to fire off an HTTP request to the REST API that eventually resolves to a JavaScript object that conforms to `PersonType`.
+Note two things about the definition of `PersonType`. Firstly, we have not
+supplied a resolver for `email`, `id`, or `username`. The default resolver
+simply accesses the property of the `person` object that has the same name as
+the field. This works everywhere except where the property names do not match
+the field name (eg. the field `firstName` does not match the `first_name`
+property of the response object from the REST API) or where accessing the
+property would not yield the object that we want (eg. we want a list of person
+objects for the `friends` field, not a list of URLs).
+
+Now, let's write resolvers that fetch people from the REST API. Because we need
+to load from the network, we won't be able to return a value right away. Luckily
+for us, `resolve()` can return either a value or a `Promise` for a value. We're
+going to take advantage of this to fire off an HTTP request to the REST API that
+eventually resolves to a JavaScript object that conforms to `PersonType`.
And here we have it – a complete first-pass at the schema:
@@ -117,21 +140,21 @@ import {
GraphQLList,
GraphQLObjectType,
GraphQLSchema,
- GraphQLString,
-} from 'graphql';
+ GraphQLString
+} from "graphql"
-const BASE_URL = 'https://myapp.com/';
+const BASE_URL = "https://myapp.com/"
function fetchResponseByURL(relativeURL) {
- return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json());
+ return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json())
}
function fetchPeople() {
- return fetchResponseByURL('/people/').then(json => json.people);
+ return fetchResponseByURL("/people/").then(json => json.people)
}
function fetchPersonByURL(relativeURL) {
- return fetchResponseByURL(relativeURL).then(json => json.person);
+ return fetchResponseByURL(relativeURL).then(json => json.person)
}
const PersonType = new GraphQLObjectType({
@@ -140,71 +163,90 @@ const PersonType = new GraphQLObjectType({
/* ... */
friends: {
type: new GraphQLList(PersonType),
- resolve: person => person.friends.map(fetchPersonByURL),
- },
- }),
-});
+ resolve: person => person.friends.map(fetchPersonByURL)
+ }
+ })
+})
const QueryType = new GraphQLObjectType({
/* ... */
fields: () => ({
allPeople: {
type: new GraphQLList(PersonType),
- resolve: fetchPeople,
+ resolve: fetchPeople
},
person: {
type: PersonType,
args: {
- id: { type: GraphQLString },
+ id: { type: GraphQLString }
},
- resolve: (root, args) => fetchPersonByURL(`/people/${args.id}/`),
- },
- }),
-});
+ resolve: (root, args) => fetchPersonByURL(`/people/${args.id}/`)
+ }
+ })
+})
export default new GraphQLSchema({
- query: QueryType,
-});
+ query: QueryType
+})
```
### Using a client-side schema with Relay
-Normally, Relay will send its GraphQL queries to a server over HTTP. We can inject [@taion](https://github.com/taion/)'s custom `relay-local-schema` network layer to resolve queries using the schema we just built. Put this code wherever it's guaranteed to be executed before you mount your Relay app.
+Normally, Relay will send its GraphQL queries to a server over HTTP. We can
+inject [@taion](https://github.com/taion/)'s custom `relay-local-schema` network
+layer to resolve queries using the schema we just built. Put this code wherever
+it's guaranteed to be executed before you mount your Relay app.
```sh npm2yarn
npm i relay-local-schema
```
```js
-import RelayLocalSchema from 'relay-local-schema';
+import RelayLocalSchema from "relay-local-schema"
-import schema from './schema';
+import schema from "./schema"
-Relay.injectNetworkLayer(
- new RelayLocalSchema.NetworkLayer({ schema })
-);
+Relay.injectNetworkLayer(new RelayLocalSchema.NetworkLayer({ schema }))
```
-And that's that. Relay will send all of its queries to your custom client-resident schema, which will in turn resolve them by making calls to your existing REST API.
+And that's that. Relay will send all of its queries to your custom
+client-resident schema, which will in turn resolve them by making calls to your
+existing REST API.
## A server-side REST wrapper
-The client-side REST API wrapper demonstrated above should help you get up and running quickly so that you can try out a Relay version of your app (or part of your app).
+The client-side REST API wrapper demonstrated above should help you get up and
+running quickly so that you can try out a Relay version of your app (or part of
+your app).
-However, as we mentioned before, this architecture features some inherent performance flaws because of how GraphQL is still calling your underlying REST API which can be very network intensive. A good next step is to move the schema from the client side to the server side to minimize latency on the network and to give you more power to cache responses.
+However, as we mentioned before, this architecture features some inherent
+performance flaws because of how GraphQL is still calling your underlying REST
+API which can be very network intensive. A good next step is to move the schema
+from the client side to the server side to minimize latency on the network and
+to give you more power to cache responses.
-Take the next 10 minutes to watch me build a server side version of the GraphQL wrapper above using Node and Express.
+Take the next 10 minutes to watch me build a server side version of the GraphQL
+wrapper above using Node and Express.
-
+
## Bonus round: A truly Relay compliant schema
-The schema we developed above will work for Relay up until a certain point – the point at which you ask Relay to refetch data for records you've already downloaded. Relay's refetching subsystem relies on your GraphQL schema exposing a special field that can fetch any entity in your data universe by GUID. We call this the _node interface_.
+The schema we developed above will work for Relay up until a certain point – the
+point at which you ask Relay to refetch data for records you've already
+downloaded. Relay's refetching subsystem relies on your GraphQL schema exposing
+a special field that can fetch any entity in your data universe by GUID. We call
+this the _node interface_.
-To expose a node interface requires that you do two things: offer a `node(id: String!)` field at the root of the query, and switch all of your ids over to GUIDs (globally-unique ids).
+To expose a node interface requires that you do two things: offer a
+`node(id: String!)` field at the root of the query, and switch all of your ids
+over to GUIDs (globally-unique ids).
-The `graphql-relay` package contains some helper functions to make this easy to do.
+The `graphql-relay` package contains some helper functions to make this easy to
+do.
```sh npm2yarn
npm i graphql-relay
@@ -212,7 +254,8 @@ npm i graphql-relay
#### Global ids
-First, let's change the `id` field of `PersonType` into a GUID. To do this, we'll use the `globalIdField` helper from `graphql-relay`.
+First, let's change the `id` field of `PersonType` into a GUID. To do this,
+we'll use the `globalIdField` helper from `graphql-relay`.
```js
import { globalIdField } from "graphql-relay"
@@ -227,11 +270,15 @@ const PersonType = new GraphQLObjectType({
})
```
-Behind the scenes `globalIdField` returns a field definition that resolves `id` to a `GraphQLString` by hashing together the typename `'Person'` and the id returned by the REST API. We can later use `fromGlobalId` to convert the result of this field back into `'Person'` and the REST API's id.
+Behind the scenes `globalIdField` returns a field definition that resolves `id`
+to a `GraphQLString` by hashing together the typename `'Person'` and the id
+returned by the REST API. We can later use `fromGlobalId` to convert the result
+of this field back into `'Person'` and the REST API's id.
#### The node field
-Another set of helpers from `graphql-relay` will give us a hand developing the node field. Your job is to supply the helper two functions:
+Another set of helpers from `graphql-relay` will give us a hand developing the
+node field. Your job is to supply the helper two functions:
- One function that can resolve an object given a GUID.
- One function that can resolve a typename given an object.
@@ -254,96 +301,94 @@ const { nodeInterface, nodeField } = nodeDefinitions(
)
```
-The object-to-typename resolver above is no marvel of engineering, but you get the idea.
+The object-to-typename resolver above is no marvel of engineering, but you get
+the idea.
-Next, we simply need to add the `nodeInterface` and the `nodeField` to our schema. A complete example follows:
+Next, we simply need to add the `nodeInterface` and the `nodeField` to our
+schema. A complete example follows:
```js {27-39,54,61,72}
import {
GraphQLList,
GraphQLObjectType,
GraphQLSchema,
- GraphQLString,
-} from 'graphql';
-import {
- fromGlobalId,
- globalIdField,
- nodeDefinitions,
-} from 'graphql-relay';
+ GraphQLString
+} from "graphql"
+import { fromGlobalId, globalIdField, nodeDefinitions } from "graphql-relay"
-const BASE_URL = 'https://myapp.com/';
+const BASE_URL = "https://myapp.com/"
function fetchResponseByURL(relativeURL) {
- return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json());
+ return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json())
}
function fetchPeople() {
- return fetchResponseByURL('/people/').then(json => json.people);
+ return fetchResponseByURL("/people/").then(json => json.people)
}
function fetchPersonByURL(relativeURL) {
- return fetchResponseByURL(relativeURL).then(json => json.person);
+ return fetchResponseByURL(relativeURL).then(json => json.person)
}
const { nodeInterface, nodeField } = nodeDefinitions(
globalId => {
- const { type, id } = fromGlobalId(globalId);
- if (type === 'Person') {
- return fetchPersonByURL(`/people/${id}/`);
+ const { type, id } = fromGlobalId(globalId)
+ if (type === "Person") {
+ return fetchPersonByURL(`/people/${id}/`)
}
},
object => {
- if (object.hasOwnProperty('username')) {
- return 'Person';
+ if (object.hasOwnProperty("username")) {
+ return "Person"
}
- },
-);
+ }
+)
const PersonType = new GraphQLObjectType({
- name: 'Person',
- description: 'Somebody that you used to know',
+ name: "Person",
+ description: "Somebody that you used to know",
fields: () => ({
firstName: {
type: GraphQLString,
- resolve: person => person.first_name,
+ resolve: person => person.first_name
},
lastName: {
type: GraphQLString,
- resolve: person => person.last_name,
+ resolve: person => person.last_name
},
- email: {type: GraphQLString},
- id: globalIdField('Person'),
- username: {type: GraphQLString},
+ email: { type: GraphQLString },
+ id: globalIdField("Person"),
+ username: { type: GraphQLString },
friends: {
type: new GraphQLList(PersonType),
- resolve: person => person.friends.map(fetchPersonByURL),
- },
+ resolve: person => person.friends.map(fetchPersonByURL)
+ }
}),
- interfaces: [ nodeInterface ],
-});
+ interfaces: [nodeInterface]
+})
const QueryType = new GraphQLObjectType({
- name: 'Query',
- description: 'The root of all... queries',
+ name: "Query",
+ description: "The root of all... queries",
fields: () => ({
allPeople: {
type: new GraphQLList(PersonType),
- resolve: fetchPeople,
+ resolve: fetchPeople
},
node: nodeField,
person: {
type: PersonType,
args: {
- id: { type: GraphQLString },
+ id: { type: GraphQLString }
},
- resolve: (root, args) => fetchPersonByURL(`/people/${args.id}/`),
+ resolve: (root, args) => fetchPersonByURL(`/people/${args.id}/`)
}
})
-});
+})
export default new GraphQLSchema({
query: QueryType
-});
+})
```
## Taming pathological queries
@@ -367,11 +412,13 @@ query {
}
```
-The schema we created above will generate multiple round trips to the REST API for the same data.
+The schema we created above will generate multiple round trips to the REST API
+for the same data.
![Duplicate queries to the REST API][pathological-query]
-This is obviously something we would like to avoid! At the very least, we need a way to cache the result of these requests.
+This is obviously something we would like to avoid! At the very least, we need a
+way to cache the result of these requests.
We created a library called DataLoader to help tame these sorts of queries.
@@ -379,11 +426,15 @@ We created a library called DataLoader to help tame these sorts of queries.
npm i dataloader
```
-As a special note, make sure that your runtime offers native or polyfilled versions of `Promise` and `Map`. Read more [at the DataLoader site](https://github.com/facebook/dataloader#getting-started).
+As a special note, make sure that your runtime offers native or polyfilled
+versions of `Promise` and `Map`. Read more
+[at the DataLoader site](https://github.com/facebook/dataloader#getting-started).
#### Creating a data loader
-To create a `DataLoader` you supply a method that can resolve a list of objects given a list of keys. In our example, the keys are URLs at which we access our REST API.
+To create a `DataLoader` you supply a method that can resolve a list of objects
+given a list of keys. In our example, the keys are URLs at which we access our
+REST API.
```js
const personLoader = new DataLoader(urls =>
@@ -391,61 +442,60 @@ const personLoader = new DataLoader(urls =>
)
```
-If this data loader sees a key more than once in its lifetime, it will return a memoized (cached) version of the response.
+If this data loader sees a key more than once in its lifetime, it will return a
+memoized (cached) version of the response.
#### Loading data
-We can make use of the `load()` and `loadMany()` methods on `personLoader` to load URLs without fear of hitting the REST API more than once per URL. A complete example follows:
+We can make use of the `load()` and `loadMany()` methods on `personLoader` to
+load URLs without fear of hitting the REST API more than once per URL. A
+complete example follows:
```js {36,63,83}
-import DataLoader from 'dataloader';
+import DataLoader from "dataloader"
import {
GraphQLList,
GraphQLObjectType,
GraphQLSchema,
- GraphQLString,
-} from 'graphql';
-import {
- fromGlobalId,
- globalIdField,
- nodeDefinitions,
-} from 'graphql-relay';
+ GraphQLString
+} from "graphql"
+import { fromGlobalId, globalIdField, nodeDefinitions } from "graphql-relay"
-const BASE_URL = 'https://myapp.com/';
+const BASE_URL = "https://myapp.com/"
function fetchResponseByURL(relativeURL) {
- return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json());
+ return fetch(`${BASE_URL}${relativeURL}`).then(res => res.json())
}
function fetchPeople() {
- return fetchResponseByURL('/people/').then(json => json.people);
+ return fetchResponseByURL("/people/").then(json => json.people)
}
function fetchPersonByURL(relativeURL) {
- return fetchResponseByURL(relativeURL).then(json => json.person);
+ return fetchResponseByURL(relativeURL).then(json => json.person)
}
-const personLoader = new DataLoader(
- urls => Promise.all(urls.map(fetchPersonByURL))
-);
+const personLoader = new DataLoader(urls =>
+ Promise.all(urls.map(fetchPersonByURL))
+)
const { nodeInterface, nodeField } = nodeDefinitions(
globalId => {
- const {type, id} = fromGlobalId(globalId);
- if (type === 'Person') {
- return personLoader.load(`/people/${id}/`);
+ const { type, id } = fromGlobalId(globalId)
+ if (type === "Person") {
+ return personLoader.load(`/people/${id}/`)
}
},
object => {
- if (object.hasOwnProperty('username')) {
- return 'Person';
+ if (object.hasOwnProperty("username")) {
+ return "Person"
}
- },
-);
+ }
+)
const PersonType = new GraphQLObjectType({
- name: 'Person',
- description: 'Somebody that you used to know',
+ name: "Person",
+ description: "Somebody that you used to know",
fields: () => ({
firstName: {
type: GraphQLString,
@@ -455,20 +505,20 @@ const PersonType = new GraphQLObjectType({
type: GraphQLString,
resolve: person => person.last_name
},
- email: {type: GraphQLString},
- id: globalIdField('Person'),
- username: {type: GraphQLString},
+ email: { type: GraphQLString },
+ id: globalIdField("Person"),
+ username: { type: GraphQLString },
friends: {
type: new GraphQLList(PersonType),
resolve: person => personLoader.loadMany(person.friends)
}
}),
interfaces: [nodeInterface]
-});
+})
const QueryType = new GraphQLObjectType({
- name: 'Query',
- description: 'The root of all... queries',
+ name: "Query",
+ description: "The root of all... queries",
fields: () => ({
allPeople: {
type: new GraphQLList(PersonType),
@@ -483,27 +533,43 @@ const QueryType = new GraphQLObjectType({
resolve: (root, args) => personLoader.load(`/people/${args.id}/`)
}
})
-});
+})
export default new GraphQLSchema({
query: QueryType
-});
+})
```
-Now, our pathological query produces the following nicely de-duped set of requests to the REST API:
+Now, our pathological query produces the following nicely de-duped set of
+requests to the REST API:
![De-duped queries to the REST API][dataloader-query]
### Query planning and beyond
-Consider that your REST API might already offer configuration offers that let you eagerly load associations. Maybe to load a person and all of their direct friends you might hit the URL `/people/1/?include_friends`. To take advantage of this in your GraphQL schema you will need the ability to develop a resolution plan based on the structure of the query itself (eg. whether the `friends` field is part of the query or not).
+Consider that your REST API might already offer configuration offers that let
+you eagerly load associations. Maybe to load a person and all of their direct
+friends you might hit the URL `/people/1/?include_friends`. To take advantage of
+this in your GraphQL schema you will need the ability to develop a resolution
+plan based on the structure of the query itself (eg. whether the `friends` field
+is part of the query or not).
-For those interested in the current thinking around advanced resolution strategies, keep an eye on [pull request #304](https://github.com/graphql/graphql-js/pull/304).
+For those interested in the current thinking around advanced resolution
+strategies, keep an eye on
+[pull request #304](https://github.com/graphql/graphql-js/pull/304).
## Thanks for reading
-I hope that this demonstration has torn down some of the barriers between you and a functional GraphQL endpoint, and has inspired you to experiment with GraphQL and Relay on an existing project.
-
-[rest-api-people]: /img/blog/20160502-rest-api-graphql-wrapper/rest-api-people.png "A REST API that exposes an index of people"
-[pathological-query]: /img/blog/20160502-rest-api-graphql-wrapper/pathological-query.png "Duplicate queries to the REST API"
-[dataloader-query]: /img/blog/20160502-rest-api-graphql-wrapper/dataloader-query.png "De-duped queries to the REST API"
+I hope that this demonstration has torn down some of the barriers between you
+and a functional GraphQL endpoint, and has inspired you to experiment with
+GraphQL and Relay on an existing project.
+
+[rest-api-people]:
+ /img/blog/20160502-rest-api-graphql-wrapper/rest-api-people.png
+ "A REST API that exposes an index of people"
+[pathological-query]:
+ /img/blog/20160502-rest-api-graphql-wrapper/pathological-query.png
+ "Duplicate queries to the REST API"
+[dataloader-query]:
+ /img/blog/20160502-rest-api-graphql-wrapper/dataloader-query.png
+ "De-duped queries to the REST API"
diff --git a/src/pages/blog/2016-09-14-production-ready.mdx b/src/pages/blog/2016-09-14-production-ready.mdx
index ee5142455d..352537f19e 100644
--- a/src/pages/blog/2016-09-14-production-ready.mdx
+++ b/src/pages/blog/2016-09-14-production-ready.mdx
@@ -5,18 +5,45 @@ date: 2016-09-14
byline: "Lee Byron"
---
-After over a year of being open sourced we're bringing GraphQL out of "technical preview" and relaunching [graphql.org](/).
-
-For us at Facebook, GraphQL isn't a new technology. GraphQL has been delivering data to mobile News Feed since 2012. Since then it's expanded to support the majority of the Facebook mobile product and evolved in the process.
-
-Early last year when we first [spoke publicly about GraphQL](https://youtube.com/watch?v=9sc8Pyc51uU) we received overwhelming demand to share more about this technology. That sparked an internal project to revisit GraphQL, make improvements, draft a specification, produce a reference implementation you could use to try it out, and build new versions of some of our favorite tools, like [GraphiQL](https://github.com/graphql/graphiql). We moved quickly, and released parts that were ready along the way.
-
-Part of Facebook's open source philosophy is that we want to only open source what is ready for production. While it's true that we had been using GraphQL in production at Facebook for years, we knew that these newly released pieces had yet to be proven. We expected feedback. So we carefully released GraphQL as a "technical preview."
-
-Exactly one year ago, we published graphql.org, with a [formal announcement](/blog/graphql-a-query-language) that GraphQL was open source and ready to be "technically previewed". Since then, we've seen GraphQL implemented [in many languages](/code), and successfully adopted by other companies. That includes today's exciting announcement of the [GitHub GraphQL API](http://githubengineering.com/the-github-graphql-api), the first major public API to use GraphQL.
-
-In recognition of the fact that GraphQL is now being used in production by many companies, we're excited to remove the "technical preview" moniker. GraphQL is production ready.
-
-We've also revamped this website, [graphql.org](/), with clearer and more relevant content in response to some the most common questions we've received over the last year.
-
-We think GraphQL can greatly simplify data needs for both client product developers and server-side engineers, regardless of what languages you're using in either environment, and we're excited to continue to improve GraphQL, support the already growing community, and see what we can build together.
+After over a year of being open sourced we're bringing GraphQL out of "technical
+preview" and relaunching [graphql.org](/).
+
+For us at Facebook, GraphQL isn't a new technology. GraphQL has been delivering
+data to mobile News Feed since 2012. Since then it's expanded to support the
+majority of the Facebook mobile product and evolved in the process.
+
+Early last year when we first
+[spoke publicly about GraphQL](https://youtube.com/watch?v=9sc8Pyc51uU) we
+received overwhelming demand to share more about this technology. That sparked
+an internal project to revisit GraphQL, make improvements, draft a
+specification, produce a reference implementation you could use to try it out,
+and build new versions of some of our favorite tools, like
+[GraphiQL](https://github.com/graphql/graphiql). We moved quickly, and released
+parts that were ready along the way.
+
+Part of Facebook's open source philosophy is that we want to only open source
+what is ready for production. While it's true that we had been using GraphQL in
+production at Facebook for years, we knew that these newly released pieces had
+yet to be proven. We expected feedback. So we carefully released GraphQL as a
+"technical preview."
+
+Exactly one year ago, we published graphql.org, with a
+[formal announcement](/blog/graphql-a-query-language) that GraphQL was open
+source and ready to be "technically previewed". Since then, we've seen GraphQL
+implemented [in many languages](/code), and successfully adopted by other
+companies. That includes today's exciting announcement of the
+[GitHub GraphQL API](http://githubengineering.com/the-github-graphql-api), the
+first major public API to use GraphQL.
+
+In recognition of the fact that GraphQL is now being used in production by many
+companies, we're excited to remove the "technical preview" moniker. GraphQL is
+production ready.
+
+We've also revamped this website, [graphql.org](/), with clearer and more
+relevant content in response to some the most common questions we've received
+over the last year.
+
+We think GraphQL can greatly simplify data needs for both client product
+developers and server-side engineers, regardless of what languages you're using
+in either environment, and we're excited to continue to improve GraphQL, support
+the already growing community, and see what we can build together.
diff --git a/src/pages/blog/2017-11-08-programmable-web.mdx b/src/pages/blog/2017-11-08-programmable-web.mdx
index b69c3213a3..c956ce2a8f 100644
--- a/src/pages/blog/2017-11-08-programmable-web.mdx
+++ b/src/pages/blog/2017-11-08-programmable-web.mdx
@@ -5,6 +5,15 @@ date: 2017-11-08
byline: ProgrammableWeb
---
-GraphQL will now have its own foundation: the [GraphQL Foundation](/foundation). Although GraphQL was initially incubated by Facebook, GraphQL is now utilized heavily by a diverse set of companies including major tech giants (e.g. Twitter, Airbnb, Shopify, etc.). Accordingly, it makes sense that the data query language move to a neutral, open source home. Like many open source projects, the GraphQL Foundation will be hosted by the Linux Foundation. Linux will implement an open governance model similar to many collaborations overseen by Linux. The exact details of the model, and future plans continue to be a work in progress. The current founding members include Airbnb, Apollo, Coursera, Elementl, Facebook, GitHub, Hasura, Prisma, Shopify and Twitter.
+GraphQL will now have its own foundation: the [GraphQL Foundation](/foundation).
+Although GraphQL was initially incubated by Facebook, GraphQL is now utilized
+heavily by a diverse set of companies including major tech giants (e.g. Twitter,
+Airbnb, Shopify, etc.). Accordingly, it makes sense that the data query language
+move to a neutral, open source home. Like many open source projects, the GraphQL
+Foundation will be hosted by the Linux Foundation. Linux will implement an open
+governance model similar to many collaborations overseen by Linux. The exact
+details of the model, and future plans continue to be a work in progress. The
+current founding members include Airbnb, Apollo, Coursera, Elementl, Facebook,
+GitHub, Hasura, Prisma, Shopify and Twitter.
[Read More](https://programmableweb.com/news/graphql-moving-to-neutral-open-source-foundation/brief/2018/11/08)
diff --git a/src/pages/blog/2018-11-06-eweek.mdx b/src/pages/blog/2018-11-06-eweek.mdx
index 7f6163a131..4e8066d883 100644
--- a/src/pages/blog/2018-11-06-eweek.mdx
+++ b/src/pages/blog/2018-11-06-eweek.mdx
@@ -1,10 +1,20 @@
---
-title: "eWeek: GraphQL API Specification Moving Forward with Independent Foundation"
+title:
+ "eWeek: GraphQL API Specification Moving Forward with Independent Foundation"
tags: ["in-the-news"]
date: 2018-11-06
byline: eweek
---
-The Linux Foundation announced on Nov. 6 that it is forming a new foundation to support the open source GraphQL specification, which enables a new generation of APIs. For nearly two decades, REST (Representational State Transfer) has been one of the primary approaches for enabling APIs that help to connect and extend applications and web services. REST however has multiple limitations, which is where GraphQL steps into the picture, finding wide adoption by large web properties. GraphQL was created in 2012 by Facebook and became open source in 2015. The move to create a new vendor-neutral independent foundation under the Linux Foundation will serve to help further advance the development of GraphQL.
+The Linux Foundation announced on Nov. 6 that it is forming a new foundation to
+support the open source GraphQL specification, which enables a new generation of
+APIs. For nearly two decades, REST (Representational State Transfer) has been
+one of the primary approaches for enabling APIs that help to connect and extend
+applications and web services. REST however has multiple limitations, which is
+where GraphQL steps into the picture, finding wide adoption by large web
+properties. GraphQL was created in 2012 by Facebook and became open source
+in 2015. The move to create a new vendor-neutral independent foundation under
+the Linux Foundation will serve to help further advance the development of
+GraphQL.
[Read more](https://eweek.com/development/graphql-api-specification-moving-forward-with-independent-foundation)
diff --git a/src/pages/blog/2018-11-06-infoworld.mdx b/src/pages/blog/2018-11-06-infoworld.mdx
index 8c9f0ad5c6..c767d98b55 100644
--- a/src/pages/blog/2018-11-06-infoworld.mdx
+++ b/src/pages/blog/2018-11-06-infoworld.mdx
@@ -5,8 +5,13 @@ date: 2018-11-06
byline: InfoWorld
---
-The Linux Foundation plans to host a foundation to support the GraphQL API project, with the intent of growing a neutral ecosystem for the technology.
+The Linux Foundation plans to host a foundation to support the GraphQL API
+project, with the intent of growing a neutral ecosystem for the technology.
-GraphQL is a specification for building APIs. It is intended to make cross-platform and mobile development simpler. Providing an alternative to REST, GraphQL lets developers use a strongly typed query language to define requests and responses, letting an application specify what it needs from an API. GraphQL enables access to multiple data sources through a single request.
+GraphQL is a specification for building APIs. It is intended to make
+cross-platform and mobile development simpler. Providing an alternative to REST,
+GraphQL lets developers use a strongly typed query language to define requests
+and responses, letting an application specify what it needs from an API. GraphQL
+enables access to multiple data sources through a single request.
[Read more](https://infoworld.com/article/3318255/apis/graphql-gets-its-own-foundation.html)
diff --git a/src/pages/blog/2018-11-06-linux-foundation-graphql.mdx b/src/pages/blog/2018-11-06-linux-foundation-graphql.mdx
index 73238cbdb0..64489dd3c6 100644
--- a/src/pages/blog/2018-11-06-linux-foundation-graphql.mdx
+++ b/src/pages/blog/2018-11-06-linux-foundation-graphql.mdx
@@ -1,46 +1,145 @@
---
-title: "The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL"
+title:
+ "The Linux Foundation Announces Intent to Form New Foundation to Support
+ GraphQL"
tags: ["announcements"]
date: 2018-11-06
byline: GraphQL Foundation
---
-[The Linux Foundation](https://linuxfoundation.org), the nonprofit organization enabling mass innovation through open source, announces a broad coalition of industry leaders and users have joined forces to create a new open source foundation for the [GraphQL](/) project, which will be dedicated to growing and sustaining a neutral GraphQL ecosystem. Hosted under the Linux Foundation, the [GraphQL Foundation](https://gql.foundation)'s mission will be to enable widespread adoption and help accelerate development of GraphQL and the surrounding ecosystem.
-
-> “As one of GraphQL’s co-creators, I’ve been amazed and proud to see it grow in adoption since its open sourcing. Through the formation of the GraphQL Foundation, I hope to see GraphQL become industry standard by encouraging contributions from a broader group and creating a shared investment in vendor-neutral events, documentation, tools, and support,” said Lee Byron, co-creator of GraphQL.
-
-GraphQL is a next-generation API technology developed internally by Facebook in 2012 before being publicly [open sourced in 2015](https://code.fb.com/core-data/graphql-a-data-query-language/). As application development shifts towards microservices architectures with an emphasis on flexibility and speed to market, tools like GraphQL are redefining API design and client-server interaction to improve the developer experience, increasing developer productivity and minimizing amounts of data transferred. GraphQL makes cross-platform and mobile development simpler with availability in multiple programming languages, allowing developers to create seamless user experiences for their customers.
-
-GraphQL is being used in production by a [variety of high scale companies](https://graphql.org/users/) such as Airbnb, Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New York Times, Twitter, Pinterest and Yelp. GraphQL also [powers hundreds of billions of API calls a day at Facebook](https://code.fb.com/core-data/graphql-a-data-query-language/).
-
-> “We are thrilled to welcome the GraphQL Foundation into the Linux Foundation. This advancement is important because it allows for long-term support and accelerated growth of this essential and groundbreaking technology that is changing the approach to API design for cloud-connected applications in any language,” said Jim Zemlin, Executive Director, the Linux Foundation.
-
-Unlike REST-based APIs, which take advantage of HTTP and existing protocols, GraphQL APIs provide developers with the flexibility to query the exact data they need from a diverse set of cloud data sources, with less code, greater performance and security, and a faster development cycle. Not only does this enable developers to rapidly build top quality apps, it also helps them achieve consistency and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.
-
-The GraphQL Foundation will have an open governance model that encourages participation and technical contribution and will provide a framework for long-term stewardship by an ecosystem invested in GraphQL’s success.
-
-> “At Facebook, our mission is to give people the power to build community and bring the world closer together. We believe open source projects and the communities built around them help accelerate the pace of innovation and bring many minds to bear to solve large-scale challenges. GraphQL is one such project and community and the GraphQL Foundation will help ensure GraphQL continues to solve the real data fetching challenges that developers will face in building the products of tomorrow,” said Killian Murphy, Director, Facebook Open Source.
-
-> “GraphQL has redefined how developers work with APIs and client-server interactions. We look forward to working with the diverse GraphQL community from end users like Facebook to a diverse ecosystem of vendors to become an independent foundation, draft their governance and continue to foster the growth and adoption of GraphQL,” said Chris Aniszczyk, Vice President of Developer Relations, the Linux Foundation.
+[The Linux Foundation](https://linuxfoundation.org), the nonprofit organization
+enabling mass innovation through open source, announces a broad coalition of
+industry leaders and users have joined forces to create a new open source
+foundation for the [GraphQL](/) project, which will be dedicated to growing and
+sustaining a neutral GraphQL ecosystem. Hosted under the Linux Foundation, the
+[GraphQL Foundation](https://gql.foundation)'s mission will be to enable
+widespread adoption and help accelerate development of GraphQL and the
+surrounding ecosystem.
+
+> “As one of GraphQL’s co-creators, I’ve been amazed and proud to see it grow in
+> adoption since its open sourcing. Through the formation of the GraphQL
+> Foundation, I hope to see GraphQL become industry standard by encouraging
+> contributions from a broader group and creating a shared investment in
+> vendor-neutral events, documentation, tools, and support,” said Lee Byron,
+> co-creator of GraphQL.
+
+GraphQL is a next-generation API technology developed internally by Facebook in
+2012 before being publicly
+[open sourced in 2015](https://code.fb.com/core-data/graphql-a-data-query-language/).
+As application development shifts towards microservices architectures with an
+emphasis on flexibility and speed to market, tools like GraphQL are redefining
+API design and client-server interaction to improve the developer experience,
+increasing developer productivity and minimizing amounts of data transferred.
+GraphQL makes cross-platform and mobile development simpler with availability in
+multiple programming languages, allowing developers to create seamless user
+experiences for their customers.
+
+GraphQL is being used in production by a
+[variety of high scale companies](https://graphql.org/users/) such as Airbnb,
+Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New
+York Times, Twitter, Pinterest and Yelp. GraphQL also
+[powers hundreds of billions of API calls a day at Facebook](https://code.fb.com/core-data/graphql-a-data-query-language/).
+
+> “We are thrilled to welcome the GraphQL Foundation into the Linux Foundation.
+> This advancement is important because it allows for long-term support and
+> accelerated growth of this essential and groundbreaking technology that is
+> changing the approach to API design for cloud-connected applications in any
+> language,” said Jim Zemlin, Executive Director, the Linux Foundation.
+
+Unlike REST-based APIs, which take advantage of HTTP and existing protocols,
+GraphQL APIs provide developers with the flexibility to query the exact data
+they need from a diverse set of cloud data sources, with less code, greater
+performance and security, and a faster development cycle. Not only does this
+enable developers to rapidly build top quality apps, it also helps them achieve
+consistency and feature parity across multiple platforms such as web, iOS,
+Android, and embedded and IoT applications.
+
+The GraphQL Foundation will have an open governance model that encourages
+participation and technical contribution and will provide a framework for
+long-term stewardship by an ecosystem invested in GraphQL’s success.
+
+> “At Facebook, our mission is to give people the power to build community and
+> bring the world closer together. We believe open source projects and the
+> communities built around them help accelerate the pace of innovation and bring
+> many minds to bear to solve large-scale challenges. GraphQL is one such
+> project and community and the GraphQL Foundation will help ensure GraphQL
+> continues to solve the real data fetching challenges that developers will face
+> in building the products of tomorrow,” said Killian Murphy, Director, Facebook
+> Open Source.
+
+> “GraphQL has redefined how developers work with APIs and client-server
+> interactions. We look forward to working with the diverse GraphQL community
+> from end users like Facebook to a diverse ecosystem of vendors to become an
+> independent foundation, draft their governance and continue to foster the
+> growth and adoption of GraphQL,” said Chris Aniszczyk, Vice President of
+> Developer Relations, the Linux Foundation.
## Supporting Quotes
-> “Airbnb is making a massive investment in GraphQL, putting it at the center of our API strategy across both our product and internal tools. We are excited to see the Foundation play a key role in cultivating the community around GraphQL and continue to evolve GraphQL as a technology, paving the way for continued innovation of Airbnb’s API.” — Adam Neary, Tech Lead, Airbnb
-
-> “Given GraphQL’s centrality in the modern app development stack, the foundation we’re announcing today is not just necessary, but overdue. As the creators of Apollo, the most widely used implementation of GraphQL, we’re looking forward to working together with the Linux Foundation to define appropriate governance processes for this critical Internet standard.” – Geoff Schmidt, co-founder and CEO of Apollo GraphQL
-
-> “GraphQL, and the strong ecosystem behind it, is leading to a fundamental change in how we build products, and it helps bring together teams and organizations of every size. At Coursera, GraphQL assists us in understanding the massive breadth of our APIs and helps us create transformative educational experiences for everyone, everywhere. We’re excited to see the impact of the GraphQL Foundation in making both the technology and the community stronger.” – Jon Wong, Staff Software Engineer, Coursera
-
-> “GraphQL has come a long way since its creation in 2012. It’s been an honor seeing the technology grow from a prototype, to powering Facebook’s core applications, to an open source technology on the way to becoming a ubiquitous standard across the entire industry. The GraphQL Foundation is an exciting step forward. This new governance model is a major milestone in that maturation process that will ensure a neutral venue and structure for the entire community to drive the technology forward.” – Nick Schrock, Founder, Elementl, GraphQL Co-Creator
-
-> “We created GraphQL at Facebook six years ago to help us build high-performance mobile experiences, so to see it grow and gain broad industry adoption has been amazing. Since Facebook open-sourced GraphQL in 2015, the community has grown to include developers around the world, newly-founded startups, and well-established companies. The creation of the GraphQL Foundation is a new chapter that will create a governance structure we believe will empower the community and provide GraphQL long-term technical success. I’m excited to see its continued growth under the Foundation’s guidance.” – Dan Schafer, Facebook Software Engineer, GraphQL Co-Creator
-
-> “GraphQL has proven to be a valuable, extensible tool for GitHub, our customers, and our integrators over the past two years. The GraphQL Foundation embodies openness, transparency, and community — all of which we believe in at GitHub.” – Kyle Daigle, Director, Ecosystem Engineering, GitHub
-
-> “This is a very welcome announcement, and we believe that this is a necessary step. The GraphQL community has grown rapidly over the last few years, and has reached the point where transparent, neutral governance policies are necessary for future growth. At Hasura, we look forward to helping the Foundation in its work.” – Tanmai Gopal, CEO, Hasura
-
-> “GraphQL has become one of the most important technologies in the modern application development stack and sees rapid adoption by developers and companies across all industries. At Prisma, we’re very excited to support the GraphQL Foundation to enable a healthy community and sustain the continuous development of GraphQL.” – Johannes Schickling, Founder and CEO, Prisma
-
-> “At Shopify, GraphQL powers our core APIs and all our mobile and web clients. We strongly believe in open development and look to the Foundation to help expand the community and nurture its evolution.” – Jean-Michel Lemieux, SVP Engineering, Shopify
-
-> “GraphQL is gaining tremendous adoption as one of the best protocols for remote retrieval of large object graphs. At Twitter, we are looking forward to what’s to come in the GraphQL ecosystem and are very excited to support the GraphQL Foundation.” – Anna Sulkina Sr. Engineering Manager, Core Services Group, Twitter
+> “Airbnb is making a massive investment in GraphQL, putting it at the center of
+> our API strategy across both our product and internal tools. We are excited to
+> see the Foundation play a key role in cultivating the community around GraphQL
+> and continue to evolve GraphQL as a technology, paving the way for continued
+> innovation of Airbnb’s API.” — Adam Neary, Tech Lead, Airbnb
+
+> “Given GraphQL’s centrality in the modern app development stack, the
+> foundation we’re announcing today is not just necessary, but overdue. As the
+> creators of Apollo, the most widely used implementation of GraphQL, we’re
+> looking forward to working together with the Linux Foundation to define
+> appropriate governance processes for this critical Internet standard.” – Geoff
+> Schmidt, co-founder and CEO of Apollo GraphQL
+
+> “GraphQL, and the strong ecosystem behind it, is leading to a fundamental
+> change in how we build products, and it helps bring together teams and
+> organizations of every size. At Coursera, GraphQL assists us in understanding
+> the massive breadth of our APIs and helps us create transformative educational
+> experiences for everyone, everywhere. We’re excited to see the impact of the
+> GraphQL Foundation in making both the technology and the community stronger.”
+> – Jon Wong, Staff Software Engineer, Coursera
+
+> “GraphQL has come a long way since its creation in 2012. It’s been an honor
+> seeing the technology grow from a prototype, to powering Facebook’s core
+> applications, to an open source technology on the way to becoming a ubiquitous
+> standard across the entire industry. The GraphQL Foundation is an exciting
+> step forward. This new governance model is a major milestone in that
+> maturation process that will ensure a neutral venue and structure for the
+> entire community to drive the technology forward.” – Nick Schrock, Founder,
+> Elementl, GraphQL Co-Creator
+
+> “We created GraphQL at Facebook six years ago to help us build
+> high-performance mobile experiences, so to see it grow and gain broad industry
+> adoption has been amazing. Since Facebook open-sourced GraphQL in 2015, the
+> community has grown to include developers around the world, newly-founded
+> startups, and well-established companies. The creation of the GraphQL
+> Foundation is a new chapter that will create a governance structure we believe
+> will empower the community and provide GraphQL long-term technical success.
+> I’m excited to see its continued growth under the Foundation’s guidance.” –
+> Dan Schafer, Facebook Software Engineer, GraphQL Co-Creator
+
+> “GraphQL has proven to be a valuable, extensible tool for GitHub, our
+> customers, and our integrators over the past two years. The GraphQL Foundation
+> embodies openness, transparency, and community — all of which we believe in at
+> GitHub.” – Kyle Daigle, Director, Ecosystem Engineering, GitHub
+
+> “This is a very welcome announcement, and we believe that this is a necessary
+> step. The GraphQL community has grown rapidly over the last few years, and has
+> reached the point where transparent, neutral governance policies are necessary
+> for future growth. At Hasura, we look forward to helping the Foundation in its
+> work.” – Tanmai Gopal, CEO, Hasura
+
+> “GraphQL has become one of the most important technologies in the modern
+> application development stack and sees rapid adoption by developers and
+> companies across all industries. At Prisma, we’re very excited to support the
+> GraphQL Foundation to enable a healthy community and sustain the continuous
+> development of GraphQL.” – Johannes Schickling, Founder and CEO, Prisma
+
+> “At Shopify, GraphQL powers our core APIs and all our mobile and web clients.
+> We strongly believe in open development and look to the Foundation to help
+> expand the community and nurture its evolution.” – Jean-Michel Lemieux, SVP
+> Engineering, Shopify
+
+> “GraphQL is gaining tremendous adoption as one of the best protocols for
+> remote retrieval of large object graphs. At Twitter, we are looking forward to
+> what’s to come in the GraphQL ecosystem and are very excited to support the
+> GraphQL Foundation.” – Anna Sulkina Sr. Engineering Manager, Core Services
+> Group, Twitter
diff --git a/src/pages/blog/2018-11-07-datanami.mdx b/src/pages/blog/2018-11-07-datanami.mdx
index db9ad42d17..e261d8275c 100644
--- a/src/pages/blog/2018-11-07-datanami.mdx
+++ b/src/pages/blog/2018-11-07-datanami.mdx
@@ -5,6 +5,10 @@ date: 2018-11-07
byline: Datanami
---
-Don’t look now but a new language called GraphQL is emerging that could radically simplify how developers use APIs to get data into applications, and potentially provide a graph-like alternative to procedural REST. The company behind the open source software, Apollo, today announced the GraphQL Platform to standardize access to the new technology.
+Don’t look now but a new language called GraphQL is emerging that could
+radically simplify how developers use APIs to get data into applications, and
+potentially provide a graph-like alternative to procedural REST. The company
+behind the open source software, Apollo, today announced the GraphQL Platform to
+standardize access to the new technology.
[Read more](https://www.datanami.com/2018/11/07/will-graphql-become-a-standard-for-the-new-data-economy/)
diff --git a/src/pages/blog/2018-11-07-sd-times.mdx b/src/pages/blog/2018-11-07-sd-times.mdx
index f3a59a85b7..1b70cebee2 100644
--- a/src/pages/blog/2018-11-07-sd-times.mdx
+++ b/src/pages/blog/2018-11-07-sd-times.mdx
@@ -1,12 +1,17 @@
---
-title: "SD Times: The Linux Foundation announces plans to form GraphQL foundation"
+title:
+ "SD Times: The Linux Foundation announces plans to form GraphQL foundation"
tags: ["in-the-news"]
date: 2018-11-07
byline: SD Times
---
-In an effort to grow and sustain the GraphQL ecosystem, The Linux Foundation has announced plans to launch a new open-source foundation for it. GraphQL is an [API](https://sdtimes.com/tag/apis/) technology that was initially developed by Facebook.
+In an effort to grow and sustain the GraphQL ecosystem, The Linux Foundation has
+announced plans to launch a new open-source foundation for it. GraphQL is an
+[API](https://sdtimes.com/tag/apis/) technology that was initially developed by
+Facebook.
-The GraphQL Foundation will be a collaborative effort between industry leaders and users.
+The GraphQL Foundation will be a collaborative effort between industry leaders
+and users.
[Read more](https://sdtimes.com/api/the-linux-foundation-announces-plans-to-form-graphql-foundation/)
diff --git a/src/pages/blog/2018-11-07-the-register.mdx b/src/pages/blog/2018-11-07-the-register.mdx
index 7f871a8840..a44c592d6d 100644
--- a/src/pages/blog/2018-11-07-the-register.mdx
+++ b/src/pages/blog/2018-11-07-the-register.mdx
@@ -1,10 +1,14 @@
---
-title: "The Register: Facebook’s open-source license drama-zone GraphQL gets swanky digs in Linux mansion"
+title:
+ "The Register: Facebook’s open-source license drama-zone GraphQL gets swanky
+ digs in Linux mansion"
tags: ["in-the-news"]
date: 2018-11-07
byline: The Register
---
-GraphQL, a query language for APIs that was on the verge of being shunned last year over software license concerns, has bounced back and landed in the arms of the Linux Foundation.
+GraphQL, a query language for APIs that was on the verge of being shunned last
+year over software license concerns, has bounced back and landed in the arms of
+the Linux Foundation.
[Read more](https://www.theregister.co.uk/2018/11/07/graphql_on_linux/)
diff --git a/src/pages/blog/2018-11-12-channel-futures.mdx b/src/pages/blog/2018-11-12-channel-futures.mdx
index 81fb238de6..feef6ca58e 100644
--- a/src/pages/blog/2018-11-12-channel-futures.mdx
+++ b/src/pages/blog/2018-11-12-channel-futures.mdx
@@ -1,12 +1,22 @@
---
-title: "Channel Futures: GraphQL API Query Language Growing, Gets Own Support Foundation"
+title:
+ "Channel Futures: GraphQL API Query Language Growing, Gets Own Support
+ Foundation"
tags: ["in-the-news"]
date: 2018-11-12
byline: Channel Futures
---
-The growing popularity and use of the open-source GraphQL API language by software developers has inspired the creation of a [GraphQL Foundation](https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/) to promote the technology and help it accelerate its development and footprint in future code.
+The growing popularity and use of the open-source GraphQL API language by
+software developers has inspired the creation of a
+[GraphQL Foundation](https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/)
+to promote the technology and help it accelerate its development and footprint
+in future code.
-The new organization, hosted by the non-profit [Linux Foundation](http://www.linuxfoundation.org/), is made up of a wide range of companies and users that are interested in growing and nurturing the GraphQL API project, which Facebook originally developed internally. After several years of development, Facebook released the code for GraphQL as an opn-source project.
+The new organization, hosted by the non-profit
+[Linux Foundation](http://www.linuxfoundation.org/), is made up of a wide range
+of companies and users that are interested in growing and nurturing the GraphQL
+API project, which Facebook originally developed internally. After several years
+of development, Facebook released the code for GraphQL as an opn-source project.
[Read more](https://www.channelfutures.com/open-source/graphql-api-query-language-growing-gets-own-support-foundation)
diff --git a/src/pages/blog/2019-03-12-joint-development-foundation.mdx b/src/pages/blog/2019-03-12-joint-development-foundation.mdx
index aa92468005..b827f8bfc9 100644
--- a/src/pages/blog/2019-03-12-joint-development-foundation.mdx
+++ b/src/pages/blog/2019-03-12-joint-development-foundation.mdx
@@ -1,58 +1,201 @@
---
-title: The GraphQL Foundation Announces Collaboration with the Joint Development Foundation to Drive Open Source and Open Standards
+title:
+ The GraphQL Foundation Announces Collaboration with the Joint Development
+ Foundation to Drive Open Source and Open Standards
tags: ["announcements"]
date: 2019-03-12
byline: GraphQL Foundation
---
-The [GraphQL Foundation](/foundation/), a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announces it is collaborating with the Joint Development Foundation (JDF), [which recently joined the Linux Foundation to drive adoption of open source and standards](https://www.linuxfoundation.org/press-release/2018/12/jdf-joins-lf-family/), to continue developing the [GraphQL specification](https://github.com/facebook/graphql/).
-
-GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for the data query language. The following companies Apollo, AWS, Butterfly Network, Dgraph Labs, Facebook, Gatsby, GraphZen, Hasura, IBM, Intuit, Neo4j, Novvum, Pipefy, Salsify, Solo.io and Thicit are joining as members to advance GraphQL as an industry specification for designing more effective APIs.
-
-GraphQL powers hundreds of billions of API calls a day at Facebook, which developed the technology in 2012 and played an integral role in helping GraphQL [join the Linux Foundation last year](https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/). Today, virtually every major programming language offers GraphQL support through a variety of open source software libraries.
-
-GraphQL is the first Linux Foundation project to benefit from the JDF and Linux Foundation collaboration, which provides open source projects with a swift path to standardization for open specifications. Developers will have an open GraphQL specification and open source software implementations available for designing conformant APIs.
-
-“We are excited to formally welcome new members and to work closely with them to build out and support a global GraphQL ecosystem. We’re pleased that the GraphQL specification will continue to evolve through the JDF and Linux Foundation partnership. With an easier and faster way to create and advance standards, developers can concentrate on creating applications that make a bigger impact on communities around the world,” said Lee Byron, co-creator of GraphQL.
-
-GraphQL is important for API development as it allows nested objects in a single API request that traditionally would require multiple API requests. The [GraphQL specification](https://github.com/facebook/graphql/), [GraphQL.js](https://github.com/graphql/graphql-js) reference implementation, [DataLoader](https://github.com/facebook/dataloader) library, and [GraphiQL](https://github.com/graphql/graphiql) developer tool are technical projects supported by the GraphQL Foundation. As application development shifts toward microservices architectures with an emphasis on flexibility and speed to market, tools like GraphQL are redefining API design and client-server interaction to improve the developer experience, increasing developer productivity and minimizing amounts of data transferred. GraphQL makes cross-platform and mobile development simpler with availability in multiple programming languages that are consistent and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.
-
-[The Linux Foundation](https://www.linuxfoundation.org/) and the [Facebook Open Source](https://opensource.facebook.com/) team leveraged the JDF’s proven framework to create a lightweight governance structure for specifications — allowing communities to quickly spin-up neutral collaborations.
-
-“We’re thrilled to see GraphQL and the Joint Development Foundation join forces and get to work so quickly to advance open standards,” said Jim Zemlin, executive director of the Linux Foundation. “Working with the JDF, the GraphQL community is able to leverage turnkey infrastructure to create and manage open standards more quickly and nimbly than ever before. This allows developers to continue to break barriers and modernize application development.”
-
-“We are very pleased to have worked closely with the Linux Foundation in creating this novel approach to specification-based collaborations,” said Michael Cheng from the Facebook Open Source team. “By offering open source communities a streamlined path to standardization and nurturing open source implementations, this strategic alignment benefits GraphQL developers, corporate contributors and end users who need both outcomes to succeed.”
-
-“We look forward to working closely with the GraphQL Foundation and we expect many other Linux Foundation projects to work with us this year to accelerate specifications and standards development to advance their mission and drive the creation of innovative technology, ” said David Rudin, president of the Joint Development Foundation.
+The [GraphQL Foundation](/foundation/), a neutral home for the GraphQL community
+to accelerate development of the surrounding ecosystem, today announces it is
+collaborating with the Joint Development Foundation (JDF),
+[which recently joined the Linux Foundation to drive adoption of open source and standards](https://www.linuxfoundation.org/press-release/2018/12/jdf-joins-lf-family/),
+to continue developing the
+[GraphQL specification](https://github.com/facebook/graphql/).
+
+GraphQL Foundation encourages contributions, stewardship, and a shared
+investment from a broad group in vendor-neutral events, documentation, tools,
+and support for the data query language. The following companies Apollo, AWS,
+Butterfly Network, Dgraph Labs, Facebook, Gatsby, GraphZen, Hasura, IBM, Intuit,
+Neo4j, Novvum, Pipefy, Salsify, Solo.io and Thicit are joining as members to
+advance GraphQL as an industry specification for designing more effective APIs.
+
+GraphQL powers hundreds of billions of API calls a day at Facebook, which
+developed the technology in 2012 and played an integral role in helping GraphQL
+[join the Linux Foundation last year](https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/).
+Today, virtually every major programming language offers GraphQL support through
+a variety of open source software libraries.
+
+GraphQL is the first Linux Foundation project to benefit from the JDF and Linux
+Foundation collaboration, which provides open source projects with a swift path
+to standardization for open specifications. Developers will have an open GraphQL
+specification and open source software implementations available for designing
+conformant APIs.
+
+“We are excited to formally welcome new members and to work closely with them to
+build out and support a global GraphQL ecosystem. We’re pleased that the GraphQL
+specification will continue to evolve through the JDF and Linux Foundation
+partnership. With an easier and faster way to create and advance standards,
+developers can concentrate on creating applications that make a bigger impact on
+communities around the world,” said Lee Byron, co-creator of GraphQL.
+
+GraphQL is important for API development as it allows nested objects in a single
+API request that traditionally would require multiple API requests. The
+[GraphQL specification](https://github.com/facebook/graphql/),
+[GraphQL.js](https://github.com/graphql/graphql-js) reference implementation,
+[DataLoader](https://github.com/facebook/dataloader) library, and
+[GraphiQL](https://github.com/graphql/graphiql) developer tool are technical
+projects supported by the GraphQL Foundation. As application development shifts
+toward microservices architectures with an emphasis on flexibility and speed to
+market, tools like GraphQL are redefining API design and client-server
+interaction to improve the developer experience, increasing developer
+productivity and minimizing amounts of data transferred. GraphQL makes
+cross-platform and mobile development simpler with availability in multiple
+programming languages that are consistent and feature parity across multiple
+platforms such as web, iOS, Android, and embedded and IoT applications.
+
+[The Linux Foundation](https://www.linuxfoundation.org/) and the
+[Facebook Open Source](https://opensource.facebook.com/) team leveraged the
+JDF’s proven framework to create a lightweight governance structure for
+specifications — allowing communities to quickly spin-up neutral collaborations.
+
+“We’re thrilled to see GraphQL and the Joint Development Foundation join forces
+and get to work so quickly to advance open standards,” said Jim Zemlin,
+executive director of the Linux Foundation. “Working with the JDF, the GraphQL
+community is able to leverage turnkey infrastructure to create and manage open
+standards more quickly and nimbly than ever before. This allows developers to
+continue to break barriers and modernize application development.”
+
+“We are very pleased to have worked closely with the Linux Foundation in
+creating this novel approach to specification-based collaborations,” said
+Michael Cheng from the Facebook Open Source team. “By offering open source
+communities a streamlined path to standardization and nurturing open source
+implementations, this strategic alignment benefits GraphQL developers, corporate
+contributors and end users who need both outcomes to succeed.”
+
+“We look forward to working closely with the GraphQL Foundation and we expect
+many other Linux Foundation projects to work with us this year to accelerate
+specifications and standards development to advance their mission and drive the
+creation of innovative technology, ” said David Rudin, president of the Joint
+Development Foundation.
## Member Quotes
-> “Given GraphQL’s centrality in the modern app development stack, the foundation we’re launching today is not just necessary, but overdue. As the creators of Apollo, the most widely used implementation of GraphQL, we’re looking forward to working together with the Linux Foundation to define appropriate governance processes and accelerate the adoption of this critical Internet standard.” — Geoff Schmidt, CEO and Co-Founder, Apollo
-
-> “GraphQL is a foundational technology for building APIs that empower frontend developers to deliver the best user experience for their customers. With AWS AppSync and the Amplify Framework, AWS is enabling developers to build and run critical GraphQL workloads at scale, and we are excited to join the Foundation to support and grow the GraphQL community.” — Adrian Cockcroft, Vice President of Cloud Architecture Strategy, AWS
-
-> “GraphQL has been invaluable to Butterfly Network in advancing our mission of democratizing medical imaging. It’s enabled us to build data-efficient APIs to serve healthcare providers in areas with limited broadband internet access, while preserving our ability to quickly develop new API functionality. GraphQL has played a key role in allowing our back end and front end teams to work together with a minimum of friction. We’re excited to support the GraphQL Foundation in its work to further shepherd the standard.” — Jimmy Jia, Principal Scientist, Butterfly Network
-
-> “Dgraph started just a few months after a draft GraphQL spec was released in mid-2015. Unsatisfied with existing graph languages, we decided to bet the future of our distributed graph database on GraphQL. Dgraph is now the only database to natively support a language very close to GraphQL. Considering how easy and intuitive it is for our users, it has been the best decision we made. So, we stand proud with the GraphQL Foundation to help build the next generation of apps on graphs.” – Manish R. Jain, CEO, Dgraph Labs
-
-> “Our goal at Gastby is to provide the best platform for building fast, compelling websites. We use GraphQL to provide a flexible data layer that can be used with different sources. We welcome the establishment of the GraphQL Specification Project and are very excited to be part of it.” — Mikhail Novikov, Software Developer, Gatsby Inc.
-
-> “GraphZen strives to deliver a fantastic developer experience for C# developers building GraphQL APIs and to provide the support and training needed by enterprises to realize the benefits of GraphQL. GraphZen is excited to join the GraphQL Foundation and steward the GraphQL specification in a way that continues to drive innovation and adoption through open standards.” — Craig Smitham, Creator & Founder, GraphZen
-
-> “The GraphQL technology and community is spearheading a much required shift in the API experience for the modern web, especially as applications are becoming more ‘frontend’ heavy. At Hasura, we’re extremely excited about the potential of GraphQL to evolve the way teams organize their codebases, and communicate with each other; especially in relation to the ongoing serverless movement. There could not be a better home for GraphQL projects and events than the GraphQL Foundation, and we are proud to do our bit to help make the technology and community around GraphQL sustainable and open.” — Tanmai Gopal, CEO, Hasura
-
-> “IBM has continued to be an industry leader, helping clients keep pace with the rapidly evolving API technologies landscape. We are pleased to join the new GraphQL Foundation as a founding member to help drive greater open source innovation and adoption of this important data access language and runtime for APIs.” – Juan Carlos Soto, VP Hybrid Cloud Integration and API Economy, IBM
-
-> “Intuit began using GraphQL shortly after it arrived in open source. We have developed a complex schema with over 600 core objects, 1,600 types and thousands of connections between objects. We’ve made major contributions to the open source GraphQL Java library. We look forward to participating in the GraphQL Foundation to advance its capabilities and more directly participate in the thriving community.” — Jeff Brewer, Vice President, Chief Architect, Small Business and Self-Employed Group, Intuit
-
-> “Neo4j is pleased to support GraphQL, due to its unique ability to enable front-end developers, API developers and data architects to all work with the same graph-based data model. Our GraphQL integration and GRANDstack have already helped thousands of developers build graph applications with Neo4j, thanks to the huge developer productivity gain of GraphQL and the graph thinking mindset it brings for both developers and API consumers. The GraphQL Foundation is an important step to cement today’s most relevant standard for building APIs and we’re honored to join as founding members to help steward GraphQL as the ecosystem continues to evolve.” — Emil Eifrem, CEO and Co-Founder, Neo4j
-
-> “We are grateful that Novvum has grown alongside GraphQL and its community over the past four years. We couldn’t be more excited about the future of GraphQL, and look forward to working with the Linux Foundation and GraphQL Foundation to improve the quality and experience of API development for engineers.” — Raj Singh, CEO and Co-Founder, Novvum
-
-> “At Pipefy we are building the lean management platform. Since the beginning, GraphQL has enabled our developers to deliver new features and services more efficiently and with better communication from front-end and back-end teams. After we started using it internally, we decided to build our public API using GraphQL, a choice that enabled us to deliver a better developer experience to the developers who are building on top of our platform. We are excited to contribute to the GraphQL ecosystem and support the GraphQL Foundation.” — Raphael Costa, Head of Platform, Pipefy
-
-> “Salsify provides a data platform that enables the world’s largest brands to deliver compelling product experiences across the retail ecosystem. Our GraphQL powered APIs enable us to support a diverse set of use cases with great developer ergonomics and excellent performance. We look forward to working with the GraphQL Foundation to support the continued evolution of GraphQL.” — Joel Turkel, Chief Software Architect, Salsify
-
-> “[Solo.io](http://solo.io)’s mission is to empower enterprise organizations rapidly adopt innovative technology and extend their existing investments. GraphQL is a powerful way to help “glue” monolith, microservices, and serverless applications with a unified API. Our open-source project, Sqoop, leverages GraphQL and other innovative projects like Envoy to streamline the developer experience, and simply glue together environments without writing a single line of code. We are excited to join the GraphQL Foundation and look forward to working within the GraphQL community” — Idit Levine, CEO & Founder, Solo.io
-
-> “GraphQL, and alongside its tooling, has grown to proof its worth and is here to stay. Time for a power-up supported by many hands and brains through the Joint Development Foundation and Linux Foundation. GraphQL is the glue that keeps your domain data in context, understandable, and always ready to empower the next ideas. Looking forward to new and improved power’s, to evolution.” — Tim Govers, CEO, Thicit
+> “Given GraphQL’s centrality in the modern app development stack, the
+> foundation we’re launching today is not just necessary, but overdue. As the
+> creators of Apollo, the most widely used implementation of GraphQL, we’re
+> looking forward to working together with the Linux Foundation to define
+> appropriate governance processes and accelerate the adoption of this critical
+> Internet standard.” — Geoff Schmidt, CEO and Co-Founder, Apollo
+
+> “GraphQL is a foundational technology for building APIs that empower frontend
+> developers to deliver the best user experience for their customers. With AWS
+> AppSync and the Amplify Framework, AWS is enabling developers to build and run
+> critical GraphQL workloads at scale, and we are excited to join the Foundation
+> to support and grow the GraphQL community.” — Adrian Cockcroft, Vice President
+> of Cloud Architecture Strategy, AWS
+
+> “GraphQL has been invaluable to Butterfly Network in advancing our mission of
+> democratizing medical imaging. It’s enabled us to build data-efficient APIs to
+> serve healthcare providers in areas with limited broadband internet access,
+> while preserving our ability to quickly develop new API functionality. GraphQL
+> has played a key role in allowing our back end and front end teams to work
+> together with a minimum of friction. We’re excited to support the GraphQL
+> Foundation in its work to further shepherd the standard.” — Jimmy Jia,
+> Principal Scientist, Butterfly Network
+
+> “Dgraph started just a few months after a draft GraphQL spec was released in
+> mid-2015. Unsatisfied with existing graph languages, we decided to bet the
+> future of our distributed graph database on GraphQL. Dgraph is now the only
+> database to natively support a language very close to GraphQL. Considering how
+> easy and intuitive it is for our users, it has been the best decision we made.
+> So, we stand proud with the GraphQL Foundation to help build the next
+> generation of apps on graphs.” – Manish R. Jain, CEO, Dgraph Labs
+
+> “Our goal at Gastby is to provide the best platform for building fast,
+> compelling websites. We use GraphQL to provide a flexible data layer that can
+> be used with different sources. We welcome the establishment of the GraphQL
+> Specification Project and are very excited to be part of it.” — Mikhail
+> Novikov, Software Developer, Gatsby Inc.
+
+> “GraphZen strives to deliver a fantastic developer experience for C#
+> developers building GraphQL APIs and to provide the support and training
+> needed by enterprises to realize the benefits of GraphQL. GraphZen is excited
+> to join the GraphQL Foundation and steward the GraphQL specification in a way
+> that continues to drive innovation and adoption through open standards.” —
+> Craig Smitham, Creator & Founder, GraphZen
+
+> “The GraphQL technology and community is spearheading a much required shift in
+> the API experience for the modern web, especially as applications are becoming
+> more ‘frontend’ heavy. At Hasura, we’re extremely excited about the potential
+> of GraphQL to evolve the way teams organize their codebases, and communicate
+> with each other; especially in relation to the ongoing serverless movement.
+> There could not be a better home for GraphQL projects and events than the
+> GraphQL Foundation, and we are proud to do our bit to help make the technology
+> and community around GraphQL sustainable and open.” — Tanmai Gopal, CEO,
+> Hasura
+
+> “IBM has continued to be an industry leader, helping clients keep pace with
+> the rapidly evolving API technologies landscape. We are pleased to join the
+> new GraphQL Foundation as a founding member to help drive greater open source
+> innovation and adoption of this important data access language and runtime for
+> APIs.” – Juan Carlos Soto, VP Hybrid Cloud Integration and API Economy, IBM
+
+> “Intuit began using GraphQL shortly after it arrived in open source. We have
+> developed a complex schema with over 600 core objects, 1,600 types and
+> thousands of connections between objects. We’ve made major contributions to
+> the open source GraphQL Java library. We look forward to participating in the
+> GraphQL Foundation to advance its capabilities and more directly participate
+> in the thriving community.” — Jeff Brewer, Vice President, Chief Architect,
+> Small Business and Self-Employed Group, Intuit
+
+> “Neo4j is pleased to support GraphQL, due to its unique ability to enable
+> front-end developers, API developers and data architects to all work with the
+> same graph-based data model. Our GraphQL integration and GRANDstack have
+> already helped thousands of developers build graph applications with Neo4j,
+> thanks to the huge developer productivity gain of GraphQL and the graph
+> thinking mindset it brings for both developers and API consumers. The GraphQL
+> Foundation is an important step to cement today’s most relevant standard for
+> building APIs and we’re honored to join as founding members to help steward
+> GraphQL as the ecosystem continues to evolve.” — Emil Eifrem, CEO and
+> Co-Founder, Neo4j
+
+> “We are grateful that Novvum has grown alongside GraphQL and its community
+> over the past four years. We couldn’t be more excited about the future of
+> GraphQL, and look forward to working with the Linux Foundation and GraphQL
+> Foundation to improve the quality and experience of API development for
+> engineers.” — Raj Singh, CEO and Co-Founder, Novvum
+
+> “At Pipefy we are building the lean management platform. Since the beginning,
+> GraphQL has enabled our developers to deliver new features and services more
+> efficiently and with better communication from front-end and back-end teams.
+> After we started using it internally, we decided to build our public API using
+> GraphQL, a choice that enabled us to deliver a better developer experience to
+> the developers who are building on top of our platform. We are excited to
+> contribute to the GraphQL ecosystem and support the GraphQL Foundation.” —
+> Raphael Costa, Head of Platform, Pipefy
+
+> “Salsify provides a data platform that enables the world’s largest brands to
+> deliver compelling product experiences across the retail ecosystem. Our
+> GraphQL powered APIs enable us to support a diverse set of use cases with
+> great developer ergonomics and excellent performance. We look forward to
+> working with the GraphQL Foundation to support the continued evolution of
+> GraphQL.” — Joel Turkel, Chief Software Architect, Salsify
+
+> “[Solo.io](http://solo.io)’s mission is to empower enterprise organizations
+> rapidly adopt innovative technology and extend their existing investments.
+> GraphQL is a powerful way to help “glue” monolith, microservices, and
+> serverless applications with a unified API. Our open-source project, Sqoop,
+> leverages GraphQL and other innovative projects like Envoy to streamline the
+> developer experience, and simply glue together environments without writing a
+> single line of code. We are excited to join the GraphQL Foundation and look
+> forward to working within the GraphQL community” — Idit Levine, CEO & Founder,
+> Solo.io
+
+> “GraphQL, and alongside its tooling, has grown to proof its worth and is here
+> to stay. Time for a power-up supported by many hands and brains through the
+> Joint Development Foundation and Linux Foundation. GraphQL is the glue that
+> keeps your domain data in context, understandable, and always ready to empower
+> the next ideas. Looking forward to new and improved power’s, to evolution.” —
+> Tim Govers, CEO, Thicit
diff --git a/src/pages/blog/2019-10-28-interactive-landscape.mdx b/src/pages/blog/2019-10-28-interactive-landscape.mdx
index 03a457646f..1b7dbbd1d6 100644
--- a/src/pages/blog/2019-10-28-interactive-landscape.mdx
+++ b/src/pages/blog/2019-10-28-interactive-landscape.mdx
@@ -1,48 +1,129 @@
---
-title: GraphQL Foundation Launches Interactive Landscape and Welcomes New Members from Open Source Summit Europe
+title:
+ GraphQL Foundation Launches Interactive Landscape and Welcomes New Members
+ from Open Source Summit Europe
tags: ["announcements"]
date: 2019-10-28
byline: GraphQL Foundation
---
-[The GraphQL Foundation](/), a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announced seven new members to support the Foundation's efforts, along with the launch of the [GraphQL Landscape](https://landscape.graphql.org).
-
-The GraphQL Landscape is a dynamically generated tool designed to help explore the burgeoning GraphQL community of projects, adopters and member organizations. Currently, it is comprised of 100+ cards representing a market cap of more than $3.4T.
-
-"When we first created GraphQL, we set out to make product development easier with APIs driven by the needs of mobile and app developers and dramatic simplifications of how APIs are built and maintained," said Lee Byron, Director of the GraphQL Foundation. "I'm thrilled to see this influx of multi-industry support for GraphQL and a commitment to increase developer productivity, showcased throughout the impressive and growing landscape."
-
-"I'm thrilled to help launch the GraphQL Foundation's first landscape, displaying GraphQL's vast range of projects, adopters and members," said Chris Aniszczyk, VP of Developer Relations and CTO of CNCF at the Linux Foundation. "This interactive resource has been a labor of love from and for our community, and I look forward to watching it grow into the same standard for real-time ecosystem information that the CNCF Landscape has been for the cloud native space."
-
-GraphQL is a next-generation API technology developed internally by Facebook in 2012 before being publicly [open sourced in 2015](https://code.fb.com/core-data/graphql-a-data-query-language/). Unlike REST-based APIs, which take advantage of HTTP and existing protocols, GraphQL APIs provide developers with the flexibility to query the exact data they need from a diverse set of cloud data sources, with less code, greater performance and security, and a faster development cycle. Not only does this enable developers to rapidly build top quality apps, it also helps them achieve consistency and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.
-
-Brian Warner of The Linux Foundation has joined the GraphQL Foundation as its Program Director, helping to support the growing community and the project's ongoing needs. "I look forward to working with Lee and the governing board to establish the infrastructure and support needed to ensure the health and sustainability of the vibrant GraphQL community."
-
-GraphQL is being used in production by a [variety of high scale companies](https://graphql.org/users/) such as Airbnb, Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New York Times, Twitter, Pinterest and Yelp. GraphQL also [powers hundreds of billions of API calls a day at Facebook](https://code.fb.com/core-data/graphql-a-data-query-language/).
+[The GraphQL Foundation](/), a neutral home for the GraphQL community to
+accelerate development of the surrounding ecosystem, today announced seven new
+members to support the Foundation's efforts, along with the launch of the
+[GraphQL Landscape](https://landscape.graphql.org).
+
+The GraphQL Landscape is a dynamically generated tool designed to help explore
+the burgeoning GraphQL community of projects, adopters and member organizations.
+Currently, it is comprised of 100+ cards representing a market cap of more than
+$3.4T.
+
+"When we first created GraphQL, we set out to make product development easier
+with APIs driven by the needs of mobile and app developers and dramatic
+simplifications of how APIs are built and maintained," said Lee Byron, Director
+of the GraphQL Foundation. "I'm thrilled to see this influx of multi-industry
+support for GraphQL and a commitment to increase developer productivity,
+showcased throughout the impressive and growing landscape."
+
+"I'm thrilled to help launch the GraphQL Foundation's first landscape,
+displaying GraphQL's vast range of projects, adopters and members," said Chris
+Aniszczyk, VP of Developer Relations and CTO of CNCF at the Linux Foundation.
+"This interactive resource has been a labor of love from and for our community,
+and I look forward to watching it grow into the same standard for real-time
+ecosystem information that the CNCF Landscape has been for the cloud native
+space."
+
+GraphQL is a next-generation API technology developed internally by Facebook in
+2012 before being publicly
+[open sourced in 2015](https://code.fb.com/core-data/graphql-a-data-query-language/).
+Unlike REST-based APIs, which take advantage of HTTP and existing protocols,
+GraphQL APIs provide developers with the flexibility to query the exact data
+they need from a diverse set of cloud data sources, with less code, greater
+performance and security, and a faster development cycle. Not only does this
+enable developers to rapidly build top quality apps, it also helps them achieve
+consistency and feature parity across multiple platforms such as web, iOS,
+Android, and embedded and IoT applications.
+
+Brian Warner of The Linux Foundation has joined the GraphQL Foundation as its
+Program Director, helping to support the growing community and the project's
+ongoing needs. "I look forward to working with Lee and the governing board to
+establish the infrastructure and support needed to ensure the health and
+sustainability of the vibrant GraphQL community."
+
+GraphQL is being used in production by a
+[variety of high scale companies](https://graphql.org/users/) such as Airbnb,
+Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New
+York Times, Twitter, Pinterest and Yelp. GraphQL also
+[powers hundreds of billions of API calls a day at Facebook](https://code.fb.com/core-data/graphql-a-data-query-language/).
## Member Quotes
-"Open source specifications rely on strong collaboration and proper stewardship. 8base loves GraphQL and we joined the GraphQL Foundation to be involved in the specification's future with other leading-edge technology companies. Our hope is that, with our involvement, the surrounding ecosystem continues to flourish at an accelerated pace." - _Albert Santalo, CEO & Founder, 8base_
-
-"It's truly surreal to see GraphQL grow from its conception to spread throughout the entire technology industry. The Foundation provides the infrastructure to make this a true industry standard, backed by stable, trusted, company-neutral governance." - _Nick Schrock, Founder, Elementl_
-
-"At Expedia Group, GraphQL is helping us build better experiences for our travelers. As a rapidly adopted technology in software development, we believe an open and community supported GraphQL specification and ecosystem is critical to its continued success." - _Trevor Livingston, Principal Architect, Expedia Group (VRBO)_
-
-"At Fauna, we have seen first-hand the productivity and architectural benefits GraphQL offers developers. We believe that an open ecosystem and shared specification are a benefit to all. We're excited to contribute to the GraphQL community and collaborate on its continued innovation." - _Matt Freels, CTO, Fauna, Inc._
-
-"We are thrilled to be a part of the GraphQL Foundation. We see GraphQL as one of the most important emerging API technologies and strongly believe in its bright future! We're excited to continue investing in the GraphQL ecosystem and community with tools, events and educational content." - _Johannes Schickling, CEO, Prisma_
-
-"We're deliberate about the technology we build and adopt. That's why we're excited to double-down on our investment in GraphQL as a foundational technology at Shopify. We believe GraphQL provides great tools for our internal teams and app developers to extend our platform and create faster merchant experiences." - _Jean-Michel Lemieux, CTO, Shopify_
-
-"GraphQL plays a key part in helping us serve the public conversation on Twitter by enabling faster product iteration across our teams. As GraphQL is gaining tremendous adoption as one of the best protocols for remote retrieval of large object graphs, we are very excited to support the GraphQL Foundation." - _Anna Sulkina Engineering Director, Core Services Group, Twitter_
+"Open source specifications rely on strong collaboration and proper stewardship.
+8base loves GraphQL and we joined the GraphQL Foundation to be involved in the
+specification's future with other leading-edge technology companies. Our hope is
+that, with our involvement, the surrounding ecosystem continues to flourish at
+an accelerated pace." - _Albert Santalo, CEO & Founder, 8base_
+
+"It's truly surreal to see GraphQL grow from its conception to spread throughout
+the entire technology industry. The Foundation provides the infrastructure to
+make this a true industry standard, backed by stable, trusted, company-neutral
+governance." - _Nick Schrock, Founder, Elementl_
+
+"At Expedia Group, GraphQL is helping us build better experiences for our
+travelers. As a rapidly adopted technology in software development, we believe
+an open and community supported GraphQL specification and ecosystem is critical
+to its continued success." - _Trevor Livingston, Principal Architect, Expedia
+Group (VRBO)_
+
+"At Fauna, we have seen first-hand the productivity and architectural benefits
+GraphQL offers developers. We believe that an open ecosystem and shared
+specification are a benefit to all. We're excited to contribute to the GraphQL
+community and collaborate on its continued innovation." - _Matt Freels, CTO,
+Fauna, Inc._
+
+"We are thrilled to be a part of the GraphQL Foundation. We see GraphQL as one
+of the most important emerging API technologies and strongly believe in its
+bright future! We're excited to continue investing in the GraphQL ecosystem and
+community with tools, events and educational content." - _Johannes Schickling,
+CEO, Prisma_
+
+"We're deliberate about the technology we build and adopt. That's why we're
+excited to double-down on our investment in GraphQL as a foundational technology
+at Shopify. We believe GraphQL provides great tools for our internal teams and
+app developers to extend our platform and create faster merchant experiences." -
+_Jean-Michel Lemieux, CTO, Shopify_
+
+"GraphQL plays a key part in helping us serve the public conversation on Twitter
+by enabling faster product iteration across our teams. As GraphQL is gaining
+tremendous adoption as one of the best protocols for remote retrieval of large
+object graphs, we are very excited to support the GraphQL Foundation." - _Anna
+Sulkina Engineering Director, Core Services Group, Twitter_
## About the GraphQL Foundation
-The GraphQL Foundation is an open, neutral organization that provides oversight of funding, operations, and marketing resources for the GraphQL community to enable widespread adoption and help accelerate development of the broader ecosystem. The [GraphQL specification](https://github.com/graphql/graphql-spec), [GraphQL.js](https://github.com/graphql/graphql-js) reference implementation, [DataLoader](https://github.com/graphql/dataloader) library, and [GraphiQL](https://github.com/graphql/graphiql) developer tool are technical projects supported by the GraphQL Foundation. More details can be found at https://foundation.graphql.org.
+The GraphQL Foundation is an open, neutral organization that provides oversight
+of funding, operations, and marketing resources for the GraphQL community to
+enable widespread adoption and help accelerate development of the broader
+ecosystem. The [GraphQL specification](https://github.com/graphql/graphql-spec),
+[GraphQL.js](https://github.com/graphql/graphql-js) reference implementation,
+[DataLoader](https://github.com/graphql/dataloader) library, and
+[GraphiQL](https://github.com/graphql/graphiql) developer tool are technical
+projects supported by the GraphQL Foundation. More details can be found at
+https://foundation.graphql.org.
## About The Linux Foundation
-The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at www.linuxfoundation.org.
+The Linux Foundation is the organization of choice for the world’s top
+developers and companies to build ecosystems that accelerate open technology
+development and industry adoption. Together with the worldwide open source
+community, it is solving the hardest technology problems by creating the largest
+shared technology investment in history. Founded in 2000, The Linux Foundation
+today provides tools, training and events to scale any open source project,
+which together deliver an economic impact not achievable by any one company.
+More information can be found at www.linuxfoundation.org.
---
-_The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: https://linuxfoundation.org/trademark-usage. Linux is a registered trademark of Linus Torvalds._
+_The Linux Foundation has registered trademarks and uses trademarks. For a list
+of trademarks of The Linux Foundation, please see our trademark usage page:
+https://linuxfoundation.org/trademark-usage. Linux is a registered trademark of
+Linus Torvalds._
diff --git a/src/pages/blog/2019-10-31-linux-foundation-training.mdx b/src/pages/blog/2019-10-31-linux-foundation-training.mdx
index 5d9bd5f7f2..862b3c5b60 100644
--- a/src/pages/blog/2019-10-31-linux-foundation-training.mdx
+++ b/src/pages/blog/2019-10-31-linux-foundation-training.mdx
@@ -1,29 +1,68 @@
---
-title: "Linux Foundation Training Announces a Free Online Course-Exploring GraphQL: A Query Language for APIs"
+title:
+ "Linux Foundation Training Announces a Free Online Course-Exploring GraphQL: A
+ Query Language for APIs"
tags: [announcements]
date: 2019-10-31
byline: GraphQL Foundation
---
-[The Linux Foundation](http://www.linuxfoundation.org/), the nonprofit organization enabling mass innovation through open source, today announced enrollment is now open for a new, free, course – [Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/introduction-to-graphql). This course is offered through [edX](https://www.edx.org/), the trusted platform for learning.
+[The Linux Foundation](http://www.linuxfoundation.org/), the nonprofit
+organization enabling mass innovation through open source, today announced
+enrollment is now open for a new, free, course –
+[Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/introduction-to-graphql).
+This course is offered through [edX](https://www.edx.org/), the trusted platform
+for learning.
-[GraphQL](https://graphql.org) is revolutionizing the way developers are building APIs for web, mobile and even databases. But what exactly is GraphQL? GraphQL is an open source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.
+[GraphQL](https://graphql.org) is revolutionizing the way developers are
+building APIs for web, mobile and even databases. But what exactly is GraphQL?
+GraphQL is an open source data query and manipulation language for APIs, and a
+runtime for fulfilling queries with existing data.
-This course explains what GraphQL is and why it is getting so much attention from software engineers. It covers the advantages over REST, what types of software architectures to use it with, and why it benefits both frontend and backend developers. The student practices GraphQL queries in an interactive playground, and learns advanced topics such as how to implement a GraphQL server on the backend, how to use a GraphQL server with a client, and how to keep the GraphQL server secure. The course content was originally created by [Prisma](https://prisma.io), and updated and maintained by [Novvum](https://novvum.io).
+This course explains what GraphQL is and why it is getting so much attention
+from software engineers. It covers the advantages over REST, what types of
+software architectures to use it with, and why it benefits both frontend and
+backend developers. The student practices GraphQL queries in an interactive
+playground, and learns advanced topics such as how to implement a GraphQL server
+on the backend, how to use a GraphQL server with a client, and how to keep the
+GraphQL server secure. The course content was originally created by
+[Prisma](https://prisma.io), and updated and maintained by
+[Novvum](https://novvum.io).
-"Since open sourcing GraphQL, I have been blown away by the growth of the technology and community. I'm excited to see the introduction of more educational material which I hope will help our community continue to grow and reach developers world-wide." – _Lee Byron, Executive Director, GraphQL Foundation, and GraphQL Co-Creator_
+"Since open sourcing GraphQL, I have been blown away by the growth of the
+technology and community. I'm excited to see the introduction of more
+educational material which I hope will help our community continue to grow and
+reach developers world-wide." – _Lee Byron, Executive Director, GraphQL
+Foundation, and GraphQL Co-Creator_
-This course will help programmers gain the skills needed to use GraphQL for a small project or professionally in production. They will feel comfortable getting started with the right tools for their use case.
+This course will help programmers gain the skills needed to use GraphQL for a
+small project or professionally in production. They will feel comfortable
+getting started with the right tools for their use case.
-For the nontechnical person, this course will help them improve communication with developers and to participate in conversations about GraphQL. They will understand when and why to use GraphQL for a project.
+For the nontechnical person, this course will help them improve communication
+with developers and to participate in conversations about GraphQL. They will
+understand when and why to use GraphQL for a project.
-[Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/introduction-to-graphql) is available at no cost, with content access for up to 7 weeks. Learners may upgrade to the verified track for $99, which includes all graded assessments, unlimited access to the course content and the ability to earn a Verified Certificate upon passing the course.
+[Exploring GraphQL: A Query Language for APIs](https://www.edx.org/course/introduction-to-graphql)
+is available at no cost, with content access for up to 7 weeks. Learners may
+upgrade to the verified track for $99, which includes all graded assessments,
+unlimited access to the course content and the ability to earn a Verified
+Certificate upon passing the course.
## About The Linux Foundation
-The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at https://linuxfoundation.org.
+The Linux Foundation is the organization of choice for the world’s top
+developers and companies to build ecosystems that accelerate open technology
+development and industry adoption. Together with the worldwide open source
+community, it is solving the hardest technology problems by creating the largest
+shared technology investment in history. Founded in 2000, The Linux Foundation
+today provides tools, training and events to scale any open source project,
+which together deliver an economic impact not achievable by any one company.
+More information can be found at https://linuxfoundation.org.
-The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: https://linuxfoundation.org/trademark-usage.
+The Linux Foundation has registered trademarks and uses trademarks. For a list
+of trademarks of The Linux Foundation, please see our trademark usage page:
+https://linuxfoundation.org/trademark-usage.
Linux is a registered trademark of Linus Torvalds.
diff --git a/src/pages/blog/2020-04-02-graphql-annual-report-2019.mdx b/src/pages/blog/2020-04-02-graphql-annual-report-2019.mdx
index a00b056a6d..ca5b291990 100644
--- a/src/pages/blog/2020-04-02-graphql-annual-report-2019.mdx
+++ b/src/pages/blog/2020-04-02-graphql-annual-report-2019.mdx
@@ -5,20 +5,62 @@ date: 2020-04-02
byline: GraphQL Foundation
---
-The GraphQL Foundation recently turned 1 year old and is happy to announce its [first annual report](/foundation/annual-reports/2019/)!
+The GraphQL Foundation recently turned 1 year old and is happy to announce its
+[first annual report](/foundation/annual-reports/2019/)!
-The annual report details the accomplishments of the organization in its first year, along with a forward looking statement for 2020 and beyond from Lee Byron, the GraphQL Foundation Executive Director:
+The annual report details the accomplishments of the organization in its first
+year, along with a forward looking statement for 2020 and beyond from Lee Byron,
+the GraphQL Foundation Executive Director:
-> As the Executive Director of the GraphQL project, I hope I can speak for the whole community when I say we are looking forward to another productive year of GraphQL development. We are putting the final touches on the GraphQL 2020 spec release, and continue to make great progress developing new features, stabilizing existing ones, and exploring beyond core GraphQL.
+> As the Executive Director of the GraphQL project, I hope I can speak for the
+> whole community when I say we are looking forward to another productive year
+> of GraphQL development. We are putting the final touches on the GraphQL 2020
+> spec release, and continue to make great progress developing new features,
+> stabilizing existing ones, and exploring beyond core GraphQL.
>
-> It has been really encouraging to see GraphQL continue to evolve over the past year as a technology and as a community. GraphQL is being used at scale by not only Facebook but now a great number of organizations large and small. As I said when first introducing the project, GraphQL is unapologetically driven by the needs of the client. This has been a critical aspect of GraphQL's success and it is great to see this principle reflect itself in our community, where those more interested in consuming APIs than producing them have come together to support the ongoing sustainability of the project.
+> It has been really encouraging to see GraphQL continue to evolve over the past
+> year as a technology and as a community. GraphQL is being used at scale by not
+> only Facebook but now a great number of organizations large and small. As I
+> said when first introducing the project, GraphQL is unapologetically driven by
+> the needs of the client. This has been a critical aspect of GraphQL's success
+> and it is great to see this principle reflect itself in our community, where
+> those more interested in consuming APIs than producing them have come together
+> to support the ongoing sustainability of the project.
>
-> Since establishing the GraphQL Foundation, we've had an outpouring of support from these companies. This neutral, non-profit home for the GraphQL project has provided a healthy way for users, contributors, and supporters to collaborate and contribute funding in support of our programs and collaborative processes. For example, this support has enabled us to support long-time contributor Ivan Goncharov to focus on crucial development and maintenance of the reference implementation, specification and other community gardening work. It has also allowed us to launch a [free GraphQL edX course](https://edx.org/course/exploring-graphql-a-query-language-for-apis), and has enabled us to take some first steps toward supporting and producing community events.
+> Since establishing the GraphQL Foundation, we've had an outpouring of support
+> from these companies. This neutral, non-profit home for the GraphQL project
+> has provided a healthy way for users, contributors, and supporters to
+> collaborate and contribute funding in support of our programs and
+> collaborative processes. For example, this support has enabled us to support
+> long-time contributor Ivan Goncharov to focus on crucial development and
+> maintenance of the reference implementation, specification and other community
+> gardening work. It has also allowed us to launch a
+> [free GraphQL edX course](https://edx.org/course/exploring-graphql-a-query-language-for-apis),
+> and has enabled us to take some first steps toward supporting and producing
+> community events.
>
-> Development of the GraphQL spec has remained open to all contributors. Over the last year we've brought more rigor and clarity to the development process. I've found it encouraging that contributions have been a healthy mix of aspirational new features and iterative improvements to the stable base. This demonstrates that GraphQL is evolving in meaningful ways to address exciting new use cases while also building confidence and stability around what thousands of companies use in production every day. Both of these are essential for GraphQL's long term success.
+> Development of the GraphQL spec has remained open to all contributors. Over
+> the last year we've brought more rigor and clarity to the development process.
+> I've found it encouraging that contributions have been a healthy mix of
+> aspirational new features and iterative improvements to the stable base. This
+> demonstrates that GraphQL is evolving in meaningful ways to address exciting
+> new use cases while also building confidence and stability around what
+> thousands of companies use in production every day. Both of these are
+> essential for GraphQL's long term success.
>
-> Looking ahead, I have great optimism for GraphQL and see huge opportunities. First, we've been hard at work on the 2020 spec and that release is imminent. Spec development continues to accelerate and exciting advancements and improvements are underway for the 2021 release and beyond. Second, we have been accepted to participate in Google Summer of Code and are looking forward to adding these talented students as project collaborators. Third, the communities around the core GraphQL project are collaborating. For example, GraphiQL and Playground recently announced they will be joining efforts to build better tools for us all.
+> Looking ahead, I have great optimism for GraphQL and see huge opportunities.
+> First, we've been hard at work on the 2020 spec and that release is imminent.
+> Spec development continues to accelerate and exciting advancements and
+> improvements are underway for the 2021 release and beyond. Second, we have
+> been accepted to participate in Google Summer of Code and are looking forward
+> to adding these talented students as project collaborators. Third, the
+> communities around the core GraphQL project are collaborating. For example,
+> GraphiQL and Playground recently announced they will be joining efforts to
+> build better tools for us all.
>
-> Thank you again for your involvement in this project and your support of the GraphQL Foundation. I am pleased with our progress and am looking forward to another productive year.
+> Thank you again for your involvement in this project and your support of the
+> GraphQL Foundation. I am pleased with our progress and am looking forward to
+> another productive year.
>
-> _– **Lee Byron**, Executive Director, GraphQL Foundation, and GraphQL Co-Creator_
+> _– **Lee Byron**, Executive Director, GraphQL Foundation, and GraphQL
+> Co-Creator_
diff --git a/src/pages/blog/2020-04-03-graphiql-graphql-playground.mdx b/src/pages/blog/2020-04-03-graphiql-graphql-playground.mdx
index 1263e334a1..2f3e166c94 100644
--- a/src/pages/blog/2020-04-03-graphiql-graphql-playground.mdx
+++ b/src/pages/blog/2020-04-03-graphiql-graphql-playground.mdx
@@ -1,5 +1,7 @@
---
-title: "Web-based GraphQL IDEs for the win: How & Why Playground & GraphiQL are joining forces"
+title:
+ "Web-based GraphQL IDEs for the win: How & Why Playground & GraphiQL are
+ joining forces"
tags: ["announcements"]
date: 2020-04-03
byline: Rikki Schulte, Jason Kuhrt
@@ -11,36 +13,79 @@ byline: Rikki Schulte, Jason Kuhrt
The initial public commit to GraphiQL was in 2014.
-When [Lee Byron](https://github.com/leebyron), [Hyo Jeong](https://github.com/asiandrummer) and [Angel Gomez](https://github.com/AGS-) first published it, the intention was to create a minimal reference IDE development ecosystem for GraphQL. [Greg Hurrell](https://github.com/wincent) created the streaming `graphql-language-service-parser`, designed to empower the `codemirror-graphql` mode.
-
-The goal was to give people the utility packages they needed to build their own web based or desktop IDE tool, and at its core, a relatively simple tool for folks to start learning and applying the language, and for exploring schemas. At the time, LSP was not yet a commonly accepted standard, and VSCode had yet to become the incredibly popular development tool it is today.
-
-Last year, these original engineers handed over to the graphql foundation three repositories: GraphiQL, `codemirror-graphql` and the `graphql-language-service` packages.
-
-Fast forward to now, and GraphiQL is now used by GraphQL implementations in dozens of languages, as well as hundreds of frameworks and runtimes. It's used for everything from HTTP operations, to querying local schemas, data science tools, and even for data transmission for IOT platforms. You'll find it in the AWS dashboard, GitHub developer tools, and many more places we are honored to see this library used.
+When [Lee Byron](https://github.com/leebyron),
+[Hyo Jeong](https://github.com/asiandrummer) and
+[Angel Gomez](https://github.com/AGS-) first published it, the intention was to
+create a minimal reference IDE development ecosystem for GraphQL.
+[Greg Hurrell](https://github.com/wincent) created the streaming
+`graphql-language-service-parser`, designed to empower the `codemirror-graphql`
+mode.
+
+The goal was to give people the utility packages they needed to build their own
+web based or desktop IDE tool, and at its core, a relatively simple tool for
+folks to start learning and applying the language, and for exploring schemas. At
+the time, LSP was not yet a commonly accepted standard, and VSCode had yet to
+become the incredibly popular development tool it is today.
+
+Last year, these original engineers handed over to the graphql foundation three
+repositories: GraphiQL, `codemirror-graphql` and the `graphql-language-service`
+packages.
+
+Fast forward to now, and GraphiQL is now used by GraphQL implementations in
+dozens of languages, as well as hundreds of frameworks and runtimes. It's used
+for everything from HTTP operations, to querying local schemas, data science
+tools, and even for data transmission for IOT platforms. You'll find it in the
+AWS dashboard, GitHub developer tools, and many more places we are honored to
+see this library used.
## Enter Playground
-Alongside GraphiQL, many of us are familiar with its sibling - the handsome & feature-full [GraphQL Playground](https://github.com/prisma-labs/graphql-playground). Following GraphiQL's lead, it uses our `codemirror-graphql` ([Insomnia](https://insomnia.rest/graphql/), [Altair](https://altair.sirmuel.design/) and many others are also in this club!). This is why there are so many similarities between the direct editing experience of these tools.
+Alongside GraphiQL, many of us are familiar with its sibling - the handsome &
+feature-full
+[GraphQL Playground](https://github.com/prisma-labs/graphql-playground).
+Following GraphiQL's lead, it uses our `codemirror-graphql`
+([Insomnia](https://insomnia.rest/graphql/),
+[Altair](https://altair.sirmuel.design/) and many others are also in this
+club!). This is why there are so many similarities between the direct editing
+experience of these tools.
-Playground is _exactly_ what we wanted to happen. It helped drive the development of our language ecosystem, and gave users an easier option than the more customization-oriented GraphiQL. It provided a ton of excellent features - `graphql-config` support, multiple tabs, i18n, and http server middlewares.
+Playground is _exactly_ what we wanted to happen. It helped drive the
+development of our language ecosystem, and gave users an easier option than the
+more customization-oriented GraphiQL. It provided a ton of excellent features -
+`graphql-config` support, multiple tabs, i18n, and http server middlewares.
## Prisma Donates Playground to GraphQL Foundation
-As many have successfully guessed, **Prisma _is_ donating Playground to the GraphQL Foundation.** Entering 2019 Prisma envisioned an eventual Playground 2.0 but then the advent of a modular GraphiQL 2 project showed an opportunity for great synergy, made all the more natural by Prisma's pivot toward modular database tooling for developers.
-
-Playground 1.x has been a community effort of [dozens of contributors](https://github.com/prisma-labs/graphql-playground/graphs/contributors). Prisma thanks all contributors who helped out along the way. Prisma remains deeply committed to supporting the future of the GraphQL language. For example the [Prisma Labs team](https://github.com/prisma-labs) continues to focus on GraphQL API layer and [recently announced](https://github.com/prisma-labs/nexus/issues/373) the transition of [Nexus](https://nexus.js.org/) from a schema building library into a full [fledged GraphQL API framework](https://www.nexusjs.org).
+As many have successfully guessed, **Prisma _is_ donating Playground to the
+GraphQL Foundation.** Entering 2019 Prisma envisioned an eventual Playground 2.0
+but then the advent of a modular GraphiQL 2 project showed an opportunity for
+great synergy, made all the more natural by Prisma's pivot toward modular
+database tooling for developers.
+
+Playground 1.x has been a community effort of
+[dozens of contributors](https://github.com/prisma-labs/graphql-playground/graphs/contributors).
+Prisma thanks all contributors who helped out along the way. Prisma remains
+deeply committed to supporting the future of the GraphQL language. For example
+the [Prisma Labs team](https://github.com/prisma-labs) continues to focus on
+GraphQL API layer and
+[recently announced](https://github.com/prisma-labs/nexus/issues/373) the
+transition of [Nexus](https://nexus.js.org/) from a schema building library into
+a full [fledged GraphQL API framework](https://www.nexusjs.org).
## The Playground Features you love
-In the interest of parity, we will keep a lot of the same features, whether by introducing them to the core or proving plugins that will ship with the playground preset.
+In the interest of parity, we will keep a lot of the same features, whether by
+introducing them to the core or proving plugins that will ship with the
+playground preset.
- multiple tabs (GraphiQL Core)
- headers tab per operation tab (plugin)
- tracing tab (plugin)
- playground doc explorer (plugin)
- internationalization (GraphiQL Core)
-- `graphql-config` support, with new features thanks to our fantastic colleagues at the [Guild Dev](https://github.com/orgs/the-guild-org/people), who Prisma has entrusted with many other projects.
+- `graphql-config` support, with new features thanks to our fantastic colleagues
+ at the [Guild Dev](https://github.com/orgs/the-guild-org/people), who Prisma
+ has entrusted with many other projects.
- easy to use middlewares
## New Features
@@ -50,24 +95,54 @@ These new features will come with the new `graphql@2.0.0`:
- vscode style command palette (via `monaco-editor`)
- jump to fragment or other type definitions
- generate a collection of operations from your project's source files
-- more customizable network options - default headers per project, as well as headers per-operation
+- more customizable network options - default headers per project, as well as
+ headers per-operation
- helpers for integrating custom authentication flows
-- extensive theme, layout, and component customization abilities (you can start with the playground theme preset and work from there!)
+- extensive theme, layout, and component customization abilities (you can start
+ with the playground theme preset and work from there!)
- custom tabs and panels
-- a first-class `graphiql-explorer` plugin in partnership with the original creators, our colleagues at [OneGraph](https://www.onegraph.com/)
+- a first-class `graphiql-explorer` plugin in partnership with the original
+ creators, our colleagues at [OneGraph](https://www.onegraph.com/)
## How will it be re-implemented?
-Playground 2.0 will be a GraphiQL preset that includes the custom theme as well as the custom playground doc explorer plugin (as an alternative to the new doc explorer proposed by @orta and other users), HTTP headers and tracing tab plugins. You can find more technical detail, ongoing discussion and things to work on the [GraphiQL Plugin API Meta Issue](https://github.com/graphql/graphiql/issues/983) or in [other playground related discussion issues](https://github.com/graphql/graphiql/issues?q=label%3Agraphql-playground-preset) in the GraphiQL monorepo.
-
-While the Playground team's baseline goal will be relative parity with Playground 1.0, the team will be accepting proposals for new features and plugins that build on the existing GraphQL Playground experience. The [Features Roundup](https://github.com/graphql/graphiql/projects/10) project is a great place to see what we have planned already for plugins that Playground's preset can use, or you can also create a proposal if you don't see what you're looking for.
+Playground 2.0 will be a GraphiQL preset that includes the custom theme as well
+as the custom playground doc explorer plugin (as an alternative to the new doc
+explorer proposed by @orta and other users), HTTP headers and tracing tab
+plugins. You can find more technical detail, ongoing discussion and things to
+work on the
+[GraphiQL Plugin API Meta Issue](https://github.com/graphql/graphiql/issues/983)
+or in
+[other playground related discussion issues](https://github.com/graphql/graphiql/issues?q=label%3Agraphql-playground-preset)
+in the GraphiQL monorepo.
+
+While the Playground team's baseline goal will be relative parity with
+Playground 1.0, the team will be accepting proposals for new features and
+plugins that build on the existing GraphQL Playground experience. The
+[Features Roundup](https://github.com/graphql/graphiql/projects/10) project is a
+great place to see what we have planned already for plugins that Playground's
+preset can use, or you can also create a proposal if you don't see what you're
+looking for.
## `graphql-playground` repository next steps
-The existing `graphql-playground` repository will get one or two more maintenance/bugfix releases before it will be archived. You can still fork it of course. You can learn more about this in [the graphql-playground issue](https://github.com/prisma-labs/graphql-playground/issues/1143) we created for this migration.
+The existing `graphql-playground` repository will get one or two more
+maintenance/bugfix releases before it will be archived. You can still fork it of
+course. You can learn more about this in
+[the graphql-playground issue](https://github.com/prisma-labs/graphql-playground/issues/1143)
+we created for this migration.
## Call for Contributors
-We're also looking for contributors to form a team to develop, support and maintain a playground preset. The goal would be for them to help iterate on and stabilize the plugin API effort, as well as work towards the effort of contributing to and maintaining the playground preset and its associated plugins. If you are interested leave comment in the [Call for Contributors Github issue](https://github.com/graphql/graphiql/issues/1443).
-
-You can also follow the [Plugin API Proposal discussion issue](https://github.com/graphql/graphiql/issues/983) for updates, and get involved in our [discord channel](https://discord.gg/EXUYPaY) we've created just for the playground initiative.
+We're also looking for contributors to form a team to develop, support and
+maintain a playground preset. The goal would be for them to help iterate on and
+stabilize the plugin API effort, as well as work towards the effort of
+contributing to and maintaining the playground preset and its associated
+plugins. If you are interested leave comment in the
+[Call for Contributors Github issue](https://github.com/graphql/graphiql/issues/1443).
+
+You can also follow the
+[Plugin API Proposal discussion issue](https://github.com/graphql/graphiql/issues/983)
+for updates, and get involved in our
+[discord channel](https://discord.gg/EXUYPaY) we've created just for the
+playground initiative.
diff --git a/src/pages/blog/2020-06-13-season-of-docs.mdx b/src/pages/blog/2020-06-13-season-of-docs.mdx
index 3b8841ae2c..30a38a3df7 100644
--- a/src/pages/blog/2020-06-13-season-of-docs.mdx
+++ b/src/pages/blog/2020-06-13-season-of-docs.mdx
@@ -5,28 +5,59 @@ date: 2020-06-13
byline: Obinna Ekwuno
---
-Open source communities are one of the best ways to collaborate with a larger scale of developers, it incorporates the best part of learning, mentorship, and collaboration on a large scale.
-**Open-source** software has been proven to create large effective ecosystems of users that improve quality. It has been known for many years that the more a piece of software is used, the quicker bugs **will** be identified. In the **open-source** community when a bug is found, users contribute fixes.
-**GraphQL** is an **open**-**source** data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. **GraphQL** was developed internally by Facebook in 2012 before being publicly released in 2015.
+Open source communities are one of the best ways to collaborate with a larger
+scale of developers, it incorporates the best part of learning, mentorship, and
+collaboration on a large scale. **Open-source** software has been proven to
+create large effective ecosystems of users that improve quality. It has been
+known for many years that the more a piece of software is used, the quicker bugs
+**will** be identified. In the **open-source** community when a bug is found,
+users contribute fixes. **GraphQL** is an **open**-**source** data query and
+manipulation language for APIs, and a runtime for fulfilling queries with
+existing data. **GraphQL** was developed internally by Facebook in 2012 before
+being publicly released in 2015.
## What is Google Season of Docs?
-The Google Season of Docs is the intersection of technical writing, open-source contribution, and mentorship. In this three month program, you will be working closely with maintainers of open source projects to improve on existing documentation and processes to better the community.
+The Google Season of Docs is the intersection of technical writing, open-source
+contribution, and mentorship. In this three month program, you will be working
+closely with maintainers of open source projects to improve on existing
+documentation and processes to better the community.
-For technical writers who are new to open source, the program provides an opportunity to gain experience in contributing to open source projects.
+For technical writers who are new to open source, the program provides an
+opportunity to gain experience in contributing to open source projects.
-For technical writers who're already working in open source, the program provides a potentially new way of working together. Season of Docs also gives open source projects an opportunity to engage more of the technical writing community.
+For technical writers who're already working in open source, the program
+provides a potentially new way of working together. Season of Docs also gives
+open source projects an opportunity to engage more of the technical writing
+community.
## How can I be a part of this?
-Open source organizations apply to be mentor organizations in the Season of Docs which includes a list of documentation project ideas with their applications. Technical writers can look through the list of proposals here are the [project ideas for the GraphQL organization](https://github.com/graphql/foundation/tree/master/mentorship/2020/gsod).
-When you have selected a project you would like to work on, write up a project proposal and submit it to [Season of Docs](https://developers.google.com/season-of-docs). You may continue to refine your proposals until July 9th. If you need clarifications, please contact Ivan Goncharov and Uri Goldshtein by sending a message to mentorship@lists.foundation.graphql.org.
-
-The GraphQL organization will reach out to you after they have evaluated the proposals. The accepted technical writers spend a few months working with mentors from the open-source organizations to complete their projects. At the end of the program, the Google program administrators announce the projects that finished successfully.
-Check out the [official technical writer guide.](https://developers.google.com/season-of-docs/docs/tech-writer-guide)
+Open source organizations apply to be mentor organizations in the Season of Docs
+which includes a list of documentation project ideas with their applications.
+Technical writers can look through the list of proposals here are the
+[project ideas for the GraphQL organization](https://github.com/graphql/foundation/tree/master/mentorship/2020/gsod).
+When you have selected a project you would like to work on, write up a project
+proposal and submit it to
+[Season of Docs](https://developers.google.com/season-of-docs). You may continue
+to refine your proposals until July 9th. If you need clarifications, please
+contact Ivan Goncharov and Uri Goldshtein by sending a message to
+mentorship@lists.foundation.graphql.org.
+
+The GraphQL organization will reach out to you after they have evaluated the
+proposals. The accepted technical writers spend a few months working with
+mentors from the open-source organizations to complete their projects. At the
+end of the program, the Google program administrators announce the projects that
+finished successfully. Check out the
+[official technical writer guide.](https://developers.google.com/season-of-docs/docs/tech-writer-guide)
## How long is this program?
-The technical writing applications started on June 9th, 2020 and will last till July 9th, 2020. The selection process for the proposals submitted to organizations lasts till July 31st, 2020. Then Doc development officially begins September 14th, 2020, and ends December 5th, 2020. For a more detailed timeline check out the [official season of docs timeline](https://developers.google.com/season-of-docs/docs/timeline).
+The technical writing applications started on June 9th, 2020 and will last till
+July 9th, 2020. The selection process for the proposals submitted to
+organizations lasts till July 31st, 2020. Then Doc development officially begins
+September 14th, 2020, and ends December 5th, 2020. For a more detailed timeline
+check out the
+[official season of docs timeline](https://developers.google.com/season-of-docs/docs/timeline).
_– **Obinna Ekwuno**, Software Engineer, DevRel GatsbyJS_
diff --git a/src/pages/blog/2020-06-30-gsoc-2020-naman.mdx b/src/pages/blog/2020-06-30-gsoc-2020-naman.mdx
index 2d29631972..9fd7f8a18c 100644
--- a/src/pages/blog/2020-06-30-gsoc-2020-naman.mdx
+++ b/src/pages/blog/2020-06-30-gsoc-2020-naman.mdx
@@ -7,20 +7,63 @@ byline: Naman Kumar
![GSOC 2020](/img/logos/gsoc.svg)
-> [Naman Kumar](https://naman.sh) is a Computer Science & Engineering student from New Delhi, India and a FullStack Engineer at [ProductHunt](https://producthunt.com). He is selected for Google Summer of Code 2020 - GraphQL Foundation under the mentorship of [Ivan Goncharov](https://github.com/IvanGoncharov). In this post he will share his plans on how he is going to spend his summer contributing to the Graphql Foundation.
+> [Naman Kumar](https://naman.sh) is a Computer Science & Engineering student
+> from New Delhi, India and a FullStack Engineer at
+> [ProductHunt](https://producthunt.com). He is selected for Google Summer of
+> Code 2020 - GraphQL Foundation under the mentorship of
+> [Ivan Goncharov](https://github.com/IvanGoncharov). In this post he will share
+> his plans on how he is going to spend his summer contributing to the Graphql
+> Foundation.
-Hi, GraphQL is a technology I use everyday at my work place and other projects building platforms with 200 to 2 million users. I am surely in love with it, acknowledging how much it improves the development speed and removes the overhead of documentation for starters.
+Hi, GraphQL is a technology I use everyday at my work place and other projects
+building platforms with 200 to 2 million users. I am surely in love with it,
+acknowledging how much it improves the development speed and removes the
+overhead of documentation for starters.
-I have huge respect for Open Source organisations and really inspired by the work the whole graphql community is doing to make lives of developers easier. I have always wanted to participating in GSOC, which I assure you is a dream of every student.
+I have huge respect for Open Source organisations and really inspired by the
+work the whole graphql community is doing to make lives of developers easier. I
+have always wanted to participating in GSOC, which I assure you is a dream of
+every student.
-I got to know about the acceptance of Graphql Foundation under GSOC from Ivan’s [talk](https://www.youtube.com/watch?v=PsXxL1oJLrc&list=PLTRTpHrUcSB9jtvOwnq1yVwZl5k2DdBb2&index=24&t=0s) at GraphQL Asia Submit 2020. I was really excited about having a chance to contribute to the tools which are used not only by me but are powering applications used by billions of people on the planet.
+I got to know about the acceptance of Graphql Foundation under GSOC from Ivan’s
+[talk](https://www.youtube.com/watch?v=PsXxL1oJLrc&list=PLTRTpHrUcSB9jtvOwnq1yVwZl5k2DdBb2&index=24&t=0s)
+at GraphQL Asia Submit 2020. I was really excited about having a chance to
+contribute to the tools which are used not only by me but are powering
+applications used by billions of people on the planet.
-Having a keen interest in compiler design, the project idea of working on the [graphql.js](https://github.com/graphql/graphql-js/) reference parser looked really interesting to me. Fortunately being selected for the program, I am going to spend the summer of 2020 working on Graphql.js reference parser and [GraphiQL parser](https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-parser), to merge the two together. Graphql.js reference parser do not have streaming support or the best error recovery setup. The goal is to take inspiration from the GraphiQL parser and implement the streaming support in the reference parser so that it can be used by IDEs and other development tools.
+Having a keen interest in compiler design, the project idea of working on the
+[graphql.js](https://github.com/graphql/graphql-js/) reference parser looked
+really interesting to me. Fortunately being selected for the program, I am going
+to spend the summer of 2020 working on Graphql.js reference parser and
+[GraphiQL parser](https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-parser),
+to merge the two together. Graphql.js reference parser do not have streaming
+support or the best error recovery setup. The goal is to take inspiration from
+the GraphiQL parser and implement the streaming support in the reference parser
+so that it can be used by IDEs and other development tools.
-I spent the community bonding period getting to know both the people in the graphql community and getting myself familiar with the projects. I explored the code base and solved few minor bugs with the help of Ivan. The graphql.js reference parser which is well maintained has a really good code quality and readability which helped me gain it's understanding really quickly, on the other hand the GraphiQL parser with just 1000 lines of pure “old is gold” code base, implemented 3 years ago, looks difficult to grasp at first but with proper understanding is a very simple and cute state machine.
+I spent the community bonding period getting to know both the people in the
+graphql community and getting myself familiar with the projects. I explored the
+code base and solved few minor bugs with the help of Ivan. The graphql.js
+reference parser which is well maintained has a really good code quality and
+readability which helped me gain it's understanding really quickly, on the other
+hand the GraphiQL parser with just 1000 lines of pure “old is gold” code base,
+implemented 3 years ago, looks difficult to grasp at first but with proper
+understanding is a very simple and cute state machine.
-Ivan and I also spent the time ideating about dividing the whole project into 3 milestones and breaking those into smaller goals. As the graphiql parser is not actively maintained and has zero test coverage it was really important to have the parser fully covered before we make any changes. Our goal was to enable the graphql.js parser be able to used by the IDEs and performance is a major factor we need to care about for that. Considering it, we also decided to do benchmarking of the GraphiQL parser. Ergo the first milestones includes reaching 100% test coverage for the GraphiQL parser and thorough benchmarking.
+Ivan and I also spent the time ideating about dividing the whole project into 3
+milestones and breaking those into smaller goals. As the graphiql parser is not
+actively maintained and has zero test coverage it was really important to have
+the parser fully covered before we make any changes. Our goal was to enable the
+graphql.js parser be able to used by the IDEs and performance is a major factor
+we need to care about for that. Considering it, we also decided to do
+benchmarking of the GraphiQL parser. Ergo the first milestones includes reaching
+100% test coverage for the GraphiQL parser and thorough benchmarking.
-The next steps will be to use the graphql.js reference parser’s lexer in the GraphiQL parser and construct a plan to merge the parsers. Once the graphql.js parser reaches the capabilities as that of the GraphiQL parser, we can migrate the GraphiQL IDE to use graphql.js parser. Near to the completion of the first milestone I am really happy with the new thing I have learned under the mentorship of Ivan and really excited to work on the upcoming tasks.
+The next steps will be to use the graphql.js reference parser’s lexer in the
+GraphiQL parser and construct a plan to merge the parsers. Once the graphql.js
+parser reaches the capabilities as that of the GraphiQL parser, we can migrate
+the GraphiQL IDE to use graphql.js parser. Near to the completion of the first
+milestone I am really happy with the new thing I have learned under the
+mentorship of Ivan and really excited to work on the upcoming tasks.
> – **Naman Kumar**, GSOC 2020, GraphQL Foundation
diff --git a/src/pages/blog/2020-09-11-newsletter-august-2020.mdx b/src/pages/blog/2020-09-11-newsletter-august-2020.mdx
index 753735b2b3..3729dff3a8 100644
--- a/src/pages/blog/2020-09-11-newsletter-august-2020.mdx
+++ b/src/pages/blog/2020-09-11-newsletter-august-2020.mdx
@@ -5,53 +5,106 @@ date: 2020-09-11
byline: GraphQL Foundation
---
-[GraphQL](https://graphql.org) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.
-
-All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.
-
-Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these [call notes](https://docs.google.com/document/d/1_jvxzCkI6VWo2KEobisoiW1n_irJ4dp0aD8Pq9UXuvw/edit#)
+[GraphQL](https://graphql.org) has redefined how developers work with APIs and
+client-server interactions. And as the community works hard to foster the growth
+and adoption of GraphQL, we are excited to share the work of the community and
+discussions via a new monthly GraphQL Foundation newsletter.
+
+All work on GraphQL and related projects, both big and small, is important to
+the growth and maturity of the project, which has already seen adoption from
+many of the world’s largest internet-scale companies.
+
+Many of these items are just in beginning discussions while some are further
+along. The goal of this monthly post is to summarize and share what’s top of
+mind for the community and help others get involved. These are only initial
+discussion topics. For notes on the full discussion during the monthly WG calls
+please refer to these
+[call notes](https://docs.google.com/document/d/1_jvxzCkI6VWo2KEobisoiW1n_irJ4dp0aD8Pq9UXuvw/edit#)
## Updates
### [GraphQL over WebSocket refresh, existing issues and security implications](https://github.com/enisdenjo/graphql-transport-ws/blob/master/PROTOCOL.md)
-This discussion topic proposes taking on the following two critical items of security and bypassing the onConnect event. And possibly re-writing the WebSocket protocol from scratch with full RFCs
+This discussion topic proposes taking on the following two critical items of
+security and bypassing the onConnect event. And possibly re-writing the
+WebSocket protocol from scratch with full RFCs
### [Tagged Type RFC](https://github.com/graphql/graphql-spec/pull/733)
-This is an RFC for a new "Tagged" type to be added to GraphQL, to help address the input polymorphism feature gap. Originally proposed as the @oneField directive, the Tagged type has evolved into an entire new type in the type system, and is currently the lead proposal from the Input Unions Working Group.
+This is an RFC for a new "Tagged" type to be added to GraphQL, to help address
+the input polymorphism feature gap. Originally proposed as the @oneField
+directive, the Tagged type has evolved into an entire new type in the type
+system, and is currently the lead proposal from the Input Unions Working Group.
-A Tagged type defines a list of named member fields each with an associated type (like the fields in Object and Input Object types); but with the stipulation that exactly one of these fields must be present (no more, no less). Depending on the types of the member fields, a Tagged type could be appropriate for input, output, or both, which is proving to be quite controversial; it's possible that the tagged type might be scoped to input only before release. The Tagged type was most recently introduced to the GraphQL Working Group in August and is undergoing feedback and revision before an expected update with the working group in October or November.
+A Tagged type defines a list of named member fields each with an associated type
+(like the fields in Object and Input Object types); but with the stipulation
+that exactly one of these fields must be present (no more, no less). Depending
+on the types of the member fields, a Tagged type could be appropriate for input,
+output, or both, which is proving to be quite controversial; it's possible that
+the tagged type might be scoped to input only before release. The Tagged type
+was most recently introduced to the GraphQL Working Group in August and is
+undergoing feedback and revision before an expected update with the working
+group in October or November.
-If you have use-cases for input polymorphism, please take a look - feedback is very welcome.
+If you have use-cases for input polymorphism, please take a look - feedback is
+very welcome.
### [Standardize naming for Field coordinates](https://github.com/graphql/graphql-spec/issues/735)
This PR proposes the following 2 RFCs
-1. Formalizing the naming and definition of field coordinates (as discussed in [#735](https://github.com/graphql/graphql-spec/issues/735))
-2. Formalizing the way in which a Field Node (and list thereof) contained within a query document can be serialized as field coordinates
+1. Formalizing the naming and definition of field coordinates (as discussed in
+ [#735](https://github.com/graphql/graphql-spec/issues/735))
+2. Formalizing the way in which a Field Node (and list thereof) contained within
+ a query document can be serialized as field coordinates
### [Adding generics to DocumentNode and Source to allow TypeScript type inference](https://github.com/graphql/graphql-js/issues/2727)
-[@dotansimha](https://github.com/dotansimha) from [The Guild](https://the-guild.dev) had recently implemented an improved version of DocumentNode, called TypedDocumentNode, that allows type generics for result type and variable type and contributed it to graphql-js.
+[@dotansimha](https://github.com/dotansimha) from
+[The Guild](https://the-guild.dev) had recently implemented an improved version
+of DocumentNode, called TypedDocumentNode, that allows type generics for result
+type and variable type and contributed it to graphql-js.
-This improved version allows TypeScript to infer the types automatically when an object that matches the signature is used.
+This improved version allows TypeScript to infer the types automatically when an
+object that matches the signature is used.
-You can learn more by reading about it on his [blog post](https://the-guild.dev/blog/typed-document-node).
+You can learn more by reading about it on his
+[blog post](https://the-guild.dev/blog/typed-document-node).
## In Other News
-- We recently welcomed the newest member of the GraphQL Foundation - [The Guild](https://the-guild.dev). [Here](https://foundation.graphql.org/members/) you can find the list of all current members of the foundation.
-- [@hereisnaman](https://github.com/hereisnaman) successfully finished his Google Summer of Code (GSoC) project and is in the process of merging his[PR](https://github.com/graphql/graphql-js/pull/2770). Learn more about it [here](https://foundation.graphql.org/news/2020/06/30/google-summer-of-code-2020-participant-naman/).
-- GraphQL was accepted to the Google Season of Docs (GSoD) and [@carolstran](https://github.com/carolstran) will be working on the [FAQ section](https://developers.google.com/season-of-docs/docs/participants/project-graphql-carolstran) of graphql.org
-- [GraphQL over HTTP](https://github.com/graphql/graphql-over-http) was moved and is now under GraphQL Foundation
-- [@lilianammmatos](https://github.com/lilianammmatos) and [@robrichard have](https://github.com/robrichard) made big progress on `@deferer & @stream`. Yo can learn more by watching their talk about it at the [GraphQL Summit](https://www.youtube.com/watch?v=icv_Pq06aOY):
-- [@andimarek](https://github.com/andimarek) and [@eapache](https://github.com/eapache) started the [GraphQL Scalars](https://github.com/graphql/graphql-scalars/issues) initiative. You can also learn more by watching their talk about it at the [GraphQL Summit](https://www.youtube.com/watch?v=SRGTaYL3h9c).
-- All WG recordings were published on [YouTube](https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA).
+- We recently welcomed the newest member of the GraphQL Foundation -
+ [The Guild](https://the-guild.dev).
+ [Here](https://foundation.graphql.org/members/) you can find the list of all
+ current members of the foundation.
+- [@hereisnaman](https://github.com/hereisnaman) successfully finished his
+ Google Summer of Code (GSoC) project and is in the process of merging
+ his[PR](https://github.com/graphql/graphql-js/pull/2770). Learn more about it
+ [here](https://foundation.graphql.org/news/2020/06/30/google-summer-of-code-2020-participant-naman/).
+- GraphQL was accepted to the Google Season of Docs (GSoD) and
+ [@carolstran](https://github.com/carolstran) will be working on the
+ [FAQ section](https://developers.google.com/season-of-docs/docs/participants/project-graphql-carolstran)
+ of graphql.org
+- [GraphQL over HTTP](https://github.com/graphql/graphql-over-http) was moved
+ and is now under GraphQL Foundation
+- [@lilianammmatos](https://github.com/lilianammmatos) and
+ [@robrichard have](https://github.com/robrichard) made big progress on
+ `@deferer & @stream`. Yo can learn more by watching their talk about it at the
+ [GraphQL Summit](https://www.youtube.com/watch?v=icv_Pq06aOY):
+- [@andimarek](https://github.com/andimarek) and
+ [@eapache](https://github.com/eapache) started the
+ [GraphQL Scalars](https://github.com/graphql/graphql-scalars/issues)
+ initiative. You can also learn more by watching their talk about it at the
+ [GraphQL Summit](https://www.youtube.com/watch?v=SRGTaYL3h9c).
+- All WG recordings were published on
+ [YouTube](https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA).
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](/foundation/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our [member page](/foundation/join). If
+you have questions about membership, please send an email to
+membership@graphql.org.
diff --git a/src/pages/blog/2020-09-21-gsod-2020-carolyn.mdx b/src/pages/blog/2020-09-21-gsod-2020-carolyn.mdx
index f518779d5f..6fd2bf0efa 100644
--- a/src/pages/blog/2020-09-21-gsod-2020-carolyn.mdx
+++ b/src/pages/blog/2020-09-21-gsod-2020-carolyn.mdx
@@ -5,29 +5,82 @@ date: 2020-09-21
byline: Carolyn Stransky
---
-> [Carolyn Stransky](https://workwithcarolyn.com) is a frontend developer and journalist based in Berlin, Germany. She is selected for [Google Season of Docs 2020](https://developers.google.com/season-of-docs) - GraphQL Foundation under the mentorship of [Ivan Goncharov](https://github.com/IvanGoncharov). In this post, she will share her plans on how she is going to spend the next couple of months contributing to the GraphQL Foundation.
+> [Carolyn Stransky](https://workwithcarolyn.com) is a frontend developer and
+> journalist based in Berlin, Germany. She is selected for
+> [Google Season of Docs 2020](https://developers.google.com/season-of-docs) -
+> GraphQL Foundation under the mentorship of
+> [Ivan Goncharov](https://github.com/IvanGoncharov). In this post, she will
+> share her plans on how she is going to spend the next couple of months
+> contributing to the GraphQL Foundation.
-When I first heard about GraphQL three years ago, I thought that it was a programming language that constructed charts or plotted points on graphs. After building my first application with GraphQL, I would have categorized it as React-specific tooling, like Redux or React Router. Months later, I was still convinced it was just another Twitter-fueled programming trend.
+When I first heard about GraphQL three years ago, I thought that it was a
+programming language that constructed charts or plotted points on graphs. After
+building my first application with GraphQL, I would have categorized it as
+React-specific tooling, like Redux or React Router. Months later, I was still
+convinced it was just another Twitter-fueled programming trend.
-Looking back now, it’s clear that my initial perceptions of GraphQL were incorrect… but they weren’t uncommon.
+Looking back now, it’s clear that my initial perceptions of GraphQL were
+incorrect… but they weren’t uncommon.
-Learning a new technology comes with a lot of questions - and GraphQL is no exception. There are so many misconceptions about what GraphQL is and how it can be used. And I wasn’t the only GraphQL newbie holding on to those same, inaccurate beliefs.
+Learning a new technology comes with a lot of questions - and GraphQL is no
+exception. There are so many misconceptions about what GraphQL is and how it can
+be used. And I wasn’t the only GraphQL newbie holding on to those same,
+inaccurate beliefs.
-After gaining a solid understanding of what GraphQL _really_ is, I started giving presentations at conferences about how difficult I found the learning process (literally the talk title was [Life is hard and so is learning GraphQL](https://workwithcarolyn.com/speaking/life-is-hard-and-so-is-learning-graphql)). This talk was cathartic, both for me and the audiences I was presenting to. Through my research, I also realized that while [graphql.org](/) thoroughly covers the core concepts, it doesn’t directly address some of the questions you face as a new learner.
+After gaining a solid understanding of what GraphQL _really_ is, I started
+giving presentations at conferences about how difficult I found the learning
+process (literally the talk title was
+[Life is hard and so is learning GraphQL](https://workwithcarolyn.com/speaking/life-is-hard-and-so-is-learning-graphql)).
+This talk was cathartic, both for me and the audiences I was presenting to.
+Through my research, I also realized that while [graphql.org](/) thoroughly
+covers the core concepts, it doesn’t directly address some of the questions you
+face as a new learner.
-Fortunately, GraphQL has evolved enough that the information is out there and available. It’s more a matter of finding it because that information is scattered throughout various resources and programming communities. That’s why I was excited to see a [Frequently Asked Questions](https://github.com/graphql/faq) (FAQ) page as one of the proposed Season of Docs projects. And as someone who has openly critiqued the GraphQL documentation, I wanted to play a part in actively improving them.
+Fortunately, GraphQL has evolved enough that the information is out there and
+available. It’s more a matter of finding it because that information is
+scattered throughout various resources and programming communities. That’s why I
+was excited to see a
+[Frequently Asked Questions](https://github.com/graphql/faq) (FAQ) page as one
+of the proposed Season of Docs projects. And as someone who has openly critiqued
+the GraphQL documentation, I wanted to play a part in actively improving them.
There are two main goals behind this FAQ page:
-1. **Build a centralized resource for everyone**. As of now, much of the GraphQL ecosystem is focused on JavaScript due to the early ties with Relay and React. But GraphQL is for everyone, regardless of programming language, so this resource should be too. To ensure this, the FAQ content will be framework agnostic and vendor-neutral.
-2. **Become a truly community-owned resource**. GraphQL was initially passed down from Facebook, but it’s no longer maintained solely by Facebook. This should be a resource that everyone is welcome to contribute to and the community feels empowered to change and grow. That way, common questions won’t be left unanswered.
+1. **Build a centralized resource for everyone**. As of now, much of the GraphQL
+ ecosystem is focused on JavaScript due to the early ties with Relay and
+ React. But GraphQL is for everyone, regardless of programming language, so
+ this resource should be too. To ensure this, the FAQ content will be
+ framework agnostic and vendor-neutral.
+2. **Become a truly community-owned resource**. GraphQL was initially passed
+ down from Facebook, but it’s no longer maintained solely by Facebook. This
+ should be a resource that everyone is welcome to contribute to and the
+ community feels empowered to change and grow. That way, common questions
+ won’t be left unanswered.
-The plan for exactly how to tackle this page will morph and evolve throughout the next two and a half months. My hope, though, is that keeping these goals in mind will lead to a new resource that will help both newcomers and seasoned GraphQL users thrive.
+The plan for exactly how to tackle this page will morph and evolve throughout
+the next two and a half months. My hope, though, is that keeping these goals in
+mind will lead to a new resource that will help both newcomers and seasoned
+GraphQL users thrive.
-In preparation for the documentation development part of Season of Docs, I became familiar with the repository behind [graphql.org](/) by triaging issues and reviewing open pull requests. I also helped with the [ongoing migration to Gatsby](https://github.com/graphql/graphql.github.io/issues/875) because I’ll be building the new FAQ page in Gatsby (there are still [open issues](https://github.com/graphql/graphql.github.io/pull/913#issuecomment-687325610) if you want to contribute). You can read more details about the community bonding phase [on my blog](https://workwithcarolyn.com/blog/community-bonding-gsod).
+In preparation for the documentation development part of Season of Docs, I
+became familiar with the repository behind [graphql.org](/) by triaging issues
+and reviewing open pull requests. I also helped with the
+[ongoing migration to Gatsby](https://github.com/graphql/graphql.github.io/issues/875)
+because I’ll be building the new FAQ page in Gatsby (there are still
+[open issues](https://github.com/graphql/graphql.github.io/pull/913#issuecomment-687325610)
+if you want to contribute). You can read more details about the community
+bonding phase
+[on my blog](https://workwithcarolyn.com/blog/community-bonding-gsod).
-The next step is to create the inaugural batch of FAQ content. This will be about 10-15 questions sourced from various areas of the Internet and in consultation with prominent GraphQL teachers. Once those are complete with thorough answers and built into the new Gatsby site, I’ll get feedback from the community (that’s you) and continue to iterate on the content, design, layout - everything!
+The next step is to create the inaugural batch of FAQ content. This will be
+about 10-15 questions sourced from various areas of the Internet and in
+consultation with prominent GraphQL teachers. Once those are complete with
+thorough answers and built into the new Gatsby site, I’ll get feedback from the
+community (that’s you) and continue to iterate on the content, design, layout -
+everything!
-If you have opinions or would like to follow the project’s progress, [open an issue](https://github.com/graphql/graphql.github.io/issues/new) or [lurk around the website repository](https://github.com/graphql/graphql.github.io).
+If you have opinions or would like to follow the project’s progress,
+[open an issue](https://github.com/graphql/graphql.github.io/issues/new) or
+[lurk around the website repository](https://github.com/graphql/graphql.github.io).
> – **Carolyn Stransky**, GSoD 2020, GraphQL Foundation
diff --git a/src/pages/blog/2020-10-15-newsletter-september-2020.mdx b/src/pages/blog/2020-10-15-newsletter-september-2020.mdx
index a4d6748a75..8ce7bb4a5e 100644
--- a/src/pages/blog/2020-10-15-newsletter-september-2020.mdx
+++ b/src/pages/blog/2020-10-15-newsletter-september-2020.mdx
@@ -5,28 +5,55 @@ date: 2020-10-15
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.
-
-All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.
-
-Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these [call notes](https://github.com/graphql/graphql-wg/blob/b1bfe0cee461d752146dc77e5c35a5e8d7921272/notes/2020-09-03.md#allowing-deprecation-of-inputs-10m-evan).
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via a new monthly GraphQL Foundation newsletter.
+
+All work on GraphQL and related projects, both big and small, is important to
+the growth and maturity of the project, which has already seen adoption from
+many of the world’s largest internet-scale companies.
+
+Many of these items are just in beginning discussions while some are further
+along. The goal of this monthly post is to summarize and share what’s top of
+mind for the community and help others get involved. These are only initial
+discussion topics. For notes on the full discussion during the monthly WG calls
+please refer to these
+[call notes](https://github.com/graphql/graphql-wg/blob/b1bfe0cee461d752146dc77e5c35a5e8d7921272/notes/2020-09-03.md#allowing-deprecation-of-inputs-10m-evan).
## WG Updates
### Allowing deprecation of inputs
-Discussed whether the spec should allow deprecating an input that is required. Two concerns: deprecations are intended to be actionable; introspection does not include deprecated things by default - could break tooling that's no longer receiving deprecated inputs as part of their introspection results.
+Discussed whether the spec should allow deprecating an input that is required.
+Two concerns: deprecations are intended to be actionable; introspection does not
+include deprecated things by default - could break tooling that's no longer
+receiving deprecated inputs as part of their introspection results.
-- Regarding case 1: not much of a blocker; the action from deprecation doesn't need to come from a schema (e.g. it could be switch to a new version/endpoint)
-- Regarding case 2: much more of an issue because we could be breaking clients. My suggestion is to return required arguments even if they're deprecated - introspection should always give you what's necessary even if you say you don't want it.
+- Regarding case 1: not much of a blocker; the action from deprecation doesn't
+ need to come from a schema (e.g. it could be switch to a new version/endpoint)
+- Regarding case 2: much more of an issue because we could be breaking clients.
+ My suggestion is to return required arguments even if they're deprecated -
+ introspection should always give you what's necessary even if you say you
+ don't want it.
### `@defer`/`@stream`
-trying to answer the “why we don’t support Defer on field question”. The reasoning for that is the original Apollo implementation was only on fields. We ran into problems in that it’s difficult to coordinate
+trying to answer the “why we don’t support Defer on field question”. The
+reasoning for that is the original Apollo implementation was only on fields. We
+ran into problems in that it’s difficult to coordinate
### Querying Query query queries: "query" ambiguity
-The issue was first raised around the ambiguity of the term "query" as used in the GraphQL spec and ecosystem back in April. In just this title, we've referred to requesting, the Query type, a query operation, and a nested selection set; but that's just some of the ways we use this term, which can make it really hard for people new to GraphQL to get up to speed. Benjie has analyzed the use of the term, and has proposed a consistent set of terminology to use based on other terms used in the GraphQL spec already, this was discussed at the most recent Working Group. See [Spec PR #777](https://github.com/graphql/graphql-spec/pull/777).
+The issue was first raised around the ambiguity of the term "query" as used in
+the GraphQL spec and ecosystem back in April. In just this title, we've referred
+to requesting, the Query type, a query operation, and a nested selection set;
+but that's just some of the ways we use this term, which can make it really hard
+for people new to GraphQL to get up to speed. Benjie has analyzed the use of the
+term, and has proposed a consistent set of terminology to use based on other
+terms used in the GraphQL spec already, this was discussed at the most recent
+Working Group. See
+[Spec PR #777](https://github.com/graphql/graphql-spec/pull/777).
### Other topics discussed
@@ -37,23 +64,52 @@ The issue was first raised around the ambiguity of the term "query" as used in t
## Ecosystem Updates
-Vscode-graphql, which uses the official GraphQL Language Server, has now become the official reference vscode extension! Like GraphiQL, we will work to ensure all new spec language features are introduced here. After making the announcement we gained 30,000 new users! [This blog post](https://rikki.dev/vscode-graphql-lsp-0-3-0/) will tell you more about all the new features.
+Vscode-graphql, which uses the official GraphQL Language Server, has now become
+the official reference vscode extension! Like GraphiQL, we will work to ensure
+all new spec language features are introduced here. After making the
+announcement we gained 30,000 new users!
+[This blog post](https://rikki.dev/vscode-graphql-lsp-0-3-0/) will tell you more
+about all the new features.
## In Other News...
-- Dgraph Labs launched [Slash GraphQL](https://www.producthunt.com/posts/slash-graphql), a product that can help you get a working GraphQL backend in minutes
-- A new library for the WebSocket Protocol has been created. Read more [here](https://the-guild.dev/blog/graphql-over-websockets).
-- The Guild has created a new [GraphQL-ESLint library](https://github.com/dotansimha/graphql-eslint) for linting your GraphQL schemas and operations with community and custom rules. Read more [here](https://the-guild.dev/blog/introducing-graphql-eslint).
-- GraphQL CLI 4.1 has been released. [Read here](https://the-guild.dev/blog/whats-new-in-graphql-cli-4.1.0) about the new functionality.
-- You can now consume WebHooks as GraphQL Subscriptions thanks to the new version of [GraphQL Mesh](https://github.com/urigo/graphql-mesh). Read more [here](https://the-guild.dev/blog/graphql-mesh-subscriptions).
-- Hasura’s [Enterprise GraphQL Conf](https://hasura.io/enterprisegraphql/) is taking place October 20-22. There is still time to register
-- AWS released a new webinar “[Build Modern Serverless Applications with GraphQL APIs and AWS AppSync](https://pages.awscloud.com/Build-Modern-Serverless-Applications-with-GraphQL-APIs-and-AWS-AppSync_2020_0918-MBL_OD.html?&trk=ep_card-el_a131L0000084iG3QAI&trkCampaign=NA-FY20-AWS-DIGMKT-WEBINAR-SERIES-September_2020_0918-MBL&sc_channel=el&sc_campaign=pac_2018-2019_exlinks_ondemand_OTT_evergreen&sc_outcome=Product_Adoption_Campaigns&sc_geo=NAMER&sc_country=mult)”
-- Catch up on recent talks from the [GraphQL Berlin](https://www.youtube.com/watch?v=4UDsR4z2KIY) Meetup
-- [GraphQL Amsterdam](https://www.meetup.com/Amsterdam-GraphQL-Meetup/events/273901137/), [GraphQL Copenhagen](https://www.meetup.com/Copenhagen-GraphQL-Meetup-Group/events/273901144/), React GraphQL Academy and The Guild are collaborating on an online GraphQL Meetup. Check out the details [here](https://twitter.com/reactgqlacademy/status/1313789927834947585?s=20).
-- Apollo created an [Error Handling Visualizer](https://apollo-visualizer.vercel.app/) tool, which provides an interactive playground to visualize the relationship between nullability and error handling in GraphQL, specifically with Apollo Client.
+- Dgraph Labs launched
+ [Slash GraphQL](https://www.producthunt.com/posts/slash-graphql), a product
+ that can help you get a working GraphQL backend in minutes
+- A new library for the WebSocket Protocol has been created. Read more
+ [here](https://the-guild.dev/blog/graphql-over-websockets).
+- The Guild has created a new
+ [GraphQL-ESLint library](https://github.com/dotansimha/graphql-eslint) for
+ linting your GraphQL schemas and operations with community and custom rules.
+ Read more [here](https://the-guild.dev/blog/introducing-graphql-eslint).
+- GraphQL CLI 4.1 has been released.
+ [Read here](https://the-guild.dev/blog/whats-new-in-graphql-cli-4.1.0) about
+ the new functionality.
+- You can now consume WebHooks as GraphQL Subscriptions thanks to the new
+ version of [GraphQL Mesh](https://github.com/urigo/graphql-mesh). Read more
+ [here](https://the-guild.dev/blog/graphql-mesh-subscriptions).
+- Hasura’s [Enterprise GraphQL Conf](https://hasura.io/enterprisegraphql/) is
+ taking place October 20-22. There is still time to register
+- AWS released a new webinar
+ “[Build Modern Serverless Applications with GraphQL APIs and AWS AppSync](https://pages.awscloud.com/Build-Modern-Serverless-Applications-with-GraphQL-APIs-and-AWS-AppSync_2020_0918-MBL_OD.html?&trk=ep_card-el_a131L0000084iG3QAI&trkCampaign=NA-FY20-AWS-DIGMKT-WEBINAR-SERIES-September_2020_0918-MBL&sc_channel=el&sc_campaign=pac_2018-2019_exlinks_ondemand_OTT_evergreen&sc_outcome=Product_Adoption_Campaigns&sc_geo=NAMER&sc_country=mult)”
+- Catch up on recent talks from the
+ [GraphQL Berlin](https://www.youtube.com/watch?v=4UDsR4z2KIY) Meetup
+- [GraphQL Amsterdam](https://www.meetup.com/Amsterdam-GraphQL-Meetup/events/273901137/),
+ [GraphQL Copenhagen](https://www.meetup.com/Copenhagen-GraphQL-Meetup-Group/events/273901144/),
+ React GraphQL Academy and The Guild are collaborating on an online GraphQL
+ Meetup. Check out the details
+ [here](https://twitter.com/reactgqlacademy/status/1313789927834947585?s=20).
+- Apollo created an
+ [Error Handling Visualizer](https://apollo-visualizer.vercel.app/) tool, which
+ provides an interactive playground to visualize the relationship between
+ nullability and error handling in GraphQL, specifically with Apollo Client.
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](/foundation/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our [member page](/foundation/join). If
+you have questions about membership, please send an email to
+membership@graphql.org.
diff --git a/src/pages/blog/2020-11-12-newsletter-october-2020.mdx b/src/pages/blog/2020-11-12-newsletter-october-2020.mdx
index 3569ccc636..5b1503b3e0 100644
--- a/src/pages/blog/2020-11-12-newsletter-october-2020.mdx
+++ b/src/pages/blog/2020-11-12-newsletter-october-2020.mdx
@@ -5,15 +5,27 @@ date: 2020-11-12
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via the monthly GraphQL Foundation newsletter.
## WG Updates
-The [GraphQL Working Group](https://github.com/graphql/graphql-wg) meets monthly, and records [detailed minutes](https://github.com/graphql/graphql-wg/blob/master/notes/2020-10-01.md). You can also listen to the replays of GraphQL technical meetings on [YouTube](https://youtube.graphql.org).
+The [GraphQL Working Group](https://github.com/graphql/graphql-wg) meets
+monthly, and records
+[detailed minutes](https://github.com/graphql/graphql-wg/blob/master/notes/2020-10-01.md).
+You can also listen to the replays of GraphQL technical meetings on
+[YouTube](https://youtube.graphql.org).
### [Query ambiguity: discussion of replacement terms](https://github.com/graphql/graphql-spec/issues/715)
-In the GraphQL ecosystem the term "query" can seem overloaded and ambiguous - sometimes it refers to the query operation type or a query operation, sometimes it refers to a GraphQL request or a GraphQL document containing operations, sometimes it refers to the contents of selection sets (as in "query reuse"), and sometimes it is used as a verb to refer to the generic act of querying a server for information.
+In the GraphQL ecosystem the term "query" can seem overloaded and ambiguous -
+sometimes it refers to the query operation type or a query operation, sometimes
+it refers to a GraphQL request or a GraphQL document containing operations,
+sometimes it refers to the contents of selection sets (as in "query reuse"), and
+sometimes it is used as a verb to refer to the generic act of querying a server
+for information.
The WG discussed the best way to remove this ambiguity and how to move forward.
@@ -23,30 +35,71 @@ The RFC is filed, and the next action is to turn this into an actual spec edit.
### [Tagged type update](https://github.com/graphql/graphql-spec/pull/733)
-This is an RFC for a new "Tagged type" to be added to GraphQL. It replaces the ["@oneField directive"](https://github.com/graphql/graphql-spec/pull/586) proposal following feedback from the Input Unions Working Group. Please note that "Tagged type" is the working name, and may change if we come up with a better name for it.
+This is an RFC for a new "Tagged type" to be added to GraphQL. It replaces the
+["@oneField directive"](https://github.com/graphql/graphql-spec/pull/586)
+proposal following feedback from the Input Unions Working Group. Please note
+that "Tagged type" is the working name, and may change if we come up with a
+better name for it.
-A Tagged type defines a list of named members each with an associated type (like the fields in Object types and Input Object types), but differs from Object types and Input Object types in that exactly one of those members must be present.
+A Tagged type defines a list of named members each with an associated type (like
+the fields in Object types and Input Object types), but differs from Object
+types and Input Object types in that exactly one of those members must be
+present.
-The aim of the Tagged type is to introduce a form of polymorphism in GraphQL that can be symmetric between input and output. In output, it can generally be used as an alternative to Union (the differences will be outlined below). It goes beyond interfaces and unions in that it allows the same type to be specified more than once, which is particularly useful to represent filters such as this pseudocode `{greaterThan: Int} | {lessThan: Int}`.
+The aim of the Tagged type is to introduce a form of polymorphism in GraphQL
+that can be symmetric between input and output. In output, it can generally be
+used as an alternative to Union (the differences will be outlined below). It
+goes beyond interfaces and unions in that it allows the same type to be
+specified more than once, which is particularly useful to represent filters such
+as this pseudocode `{greaterThan: Int} | {lessThan: Int}`.
## In Other News...
-- [Vox Media evaluates Apollo GraphQL Federation and The Guild Schema Stitching](https://product.voxmedia.com/2020/11/2/21494865/to-federate-or-stitch-a-graphql-gateway-revisited) for the best GraphQL platform to manage “a chorus of applications working together to publish modern media”
-- AWS released a “[Decision Guide to GraphQL Implementation](https://aws.amazon.com/graphql/guide/)”
-- [Netflix discusses](https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2) how it scales its API with [Apollo GraphQL](https://www.apollographql.com/) Federation via its next generation architecture, “Studio Edge”, which uses federation as a critical element.
-- [Building a GraphQL server with GraphQL Helix](https://dev.to/danielrearden/building-a-graphql-server-with-graphql-helix-2k44), a newly released library for building GraphQL APIs. The aim of GraphQL Helix is to allow developers to use new features that are not yet supported in other libraries and to prevent vendor lock-in.
-- [GraphQL Tools v7 was released to deliver the next generation GraphQL API Gateway](https://the-guild.dev/blog/graphql-tools-v7), bringing a new way to federate multiple GraphQL servers, focusing on standard spec compliant GraphQ
-- We’ve already announced that The Guild has recently joined the GraphQL Foundation and now [they wrote a blog post about it](https://the-guild.dev/blog/joining-graphql-foundation). Who will be the next to join?
+- [Vox Media evaluates Apollo GraphQL Federation and The Guild Schema Stitching](https://product.voxmedia.com/2020/11/2/21494865/to-federate-or-stitch-a-graphql-gateway-revisited)
+ for the best GraphQL platform to manage “a chorus of applications working
+ together to publish modern media”
+- AWS released a
+ “[Decision Guide to GraphQL Implementation](https://aws.amazon.com/graphql/guide/)”
+- [Netflix discusses](https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2)
+ how it scales its API with [Apollo GraphQL](https://www.apollographql.com/)
+ Federation via its next generation architecture, “Studio Edge”, which uses
+ federation as a critical element.
+- [Building a GraphQL server with GraphQL Helix](https://dev.to/danielrearden/building-a-graphql-server-with-graphql-helix-2k44),
+ a newly released library for building GraphQL APIs. The aim of GraphQL Helix
+ is to allow developers to use new features that are not yet supported in other
+ libraries and to prevent vendor lock-in.
+- [GraphQL Tools v7 was released to deliver the next generation GraphQL API Gateway](https://the-guild.dev/blog/graphql-tools-v7),
+ bringing a new way to federate multiple GraphQL servers, focusing on standard
+ spec compliant GraphQ
+- We’ve already announced that The Guild has recently joined the GraphQL
+ Foundation and now
+ [they wrote a blog post about it](https://the-guild.dev/blog/joining-graphql-foundation).
+ Who will be the next to join?
## Upcoming Events
-- **Nov 17**: [GraphQL Contributor Days](https://www.graphql-meetup.com/#/graphql-contributor-days-november-2020), in partnership with [Hasura](https://hasura.io/), will give important updates to the community, and provide a forum for anyone using GraphQL to have direct access to core contributors and authors of various libraries and frameworks through live chat and an online broadcast.
-- **Dec 2**: [Relay Meetup](https://relaymeetup.com/) is a global, online meetup on Relay, the GraphQL client. This event will feature a conversation about the @defer and @stream directives and why it should be brought to the official GraphQL specification.
-- **Dec 7-8**: [GraphQL Galaxy Conference](https://graphqlgalaxy.com) is a new remote conference focusing on all things [GraphQL](https://twitter.com/search?q=%23GraphQL&src=hashtag_click).
-- Missed Apollo Day on Nov. 10th? Check out some of the great talks on [Twitch](https://www.twitch.tv/apollographql).
+- **Nov 17**:
+ [GraphQL Contributor Days](https://www.graphql-meetup.com/#/graphql-contributor-days-november-2020),
+ in partnership with [Hasura](https://hasura.io/), will give important updates
+ to the community, and provide a forum for anyone using GraphQL to have direct
+ access to core contributors and authors of various libraries and frameworks
+ through live chat and an online broadcast.
+- **Dec 2**: [Relay Meetup](https://relaymeetup.com/) is a global, online meetup
+ on Relay, the GraphQL client. This event will feature a conversation about the
+ @defer and @stream directives and why it should be brought to the official
+ GraphQL specification.
+- **Dec 7-8**: [GraphQL Galaxy Conference](https://graphqlgalaxy.com) is a new
+ remote conference focusing on all things
+ [GraphQL](https://twitter.com/search?q=%23GraphQL&src=hashtag_click).
+- Missed Apollo Day on Nov. 10th? Check out some of the great talks on
+ [Twitch](https://www.twitch.tv/apollographql).
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](/foundation/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our [member page](/foundation/join). If
+you have questions about membership, please send an email to
+membership@graphql.org.
diff --git a/src/pages/blog/2020-12-08-defer-stream.mdx b/src/pages/blog/2020-12-08-defer-stream.mdx
index 94c1967323..2092a05471 100644
--- a/src/pages/blog/2020-12-08-defer-stream.mdx
+++ b/src/pages/blog/2020-12-08-defer-stream.mdx
@@ -5,13 +5,35 @@ date: 2020-12-08
byline: Rob Richard, Liliana Matos
---
-> Rob Richard and Liliana Matos are front-end engineers at [1stDibs.com](https://1stdibs.com). They have been working with the GraphQL Working Group as champions of the `@defer` and `@stream` directives.
-
-The `@defer` and `@stream` directives have been a much anticipated set of features ever since Lee Byron first talked about it at [GraphQL Europe 2016](https://youtu.be/ViXL0YQnioU?t=769). For most of 2020, we have been working with the GraphQL Working Group to standardize this feature. It is now a Stage 2 proposal, but to advance further, we are looking to the GraphQL community to try using these directives and provide feedback. We have released experimental versions of `GraphQL.js` and `express-graphql`. They are published to npm under `graphql@experimental-stream-defer` and `express-graphql@experimental-stream-defer`. We encourage everyone interested in this feature to try out these releases and let us know how it goes in the [issue created for feedback](https://github.com/graphql/graphql-js/issues/2848). Read on to find out more about what this proposal offers.
-
-One of the disadvantages of GraphQL’s request/response model is that the GraphQL response is not returned to clients until the entire request has finished processing. However, not all requested data may be of equal importance, and in some use cases it may be possible for applications to act on a subset of the requested data. An application can speed up its time-to-interactive if the GraphQL server can send the most important data as soon as it’s ready. The new `@defer` and `@stream` directives allow GraphQL servers to do exactly that by returning multiple payloads from a single GraphQL response.
-
-The `@defer` directive can be applied to fragment spreads and inline fragments. It is a declarative way for developers to mark parts of a query as non-essential for immediate return.
+> Rob Richard and Liliana Matos are front-end engineers at
+> [1stDibs.com](https://1stdibs.com). They have been working with the GraphQL
+> Working Group as champions of the `@defer` and `@stream` directives.
+
+The `@defer` and `@stream` directives have been a much anticipated set of
+features ever since Lee Byron first talked about it at
+[GraphQL Europe 2016](https://youtu.be/ViXL0YQnioU?t=769). For most of 2020, we
+have been working with the GraphQL Working Group to standardize this feature. It
+is now a Stage 2 proposal, but to advance further, we are looking to the GraphQL
+community to try using these directives and provide feedback. We have released
+experimental versions of `GraphQL.js` and `express-graphql`. They are published
+to npm under `graphql@experimental-stream-defer` and
+`express-graphql@experimental-stream-defer`. We encourage everyone interested in
+this feature to try out these releases and let us know how it goes in the
+[issue created for feedback](https://github.com/graphql/graphql-js/issues/2848).
+Read on to find out more about what this proposal offers.
+
+One of the disadvantages of GraphQL’s request/response model is that the GraphQL
+response is not returned to clients until the entire request has finished
+processing. However, not all requested data may be of equal importance, and in
+some use cases it may be possible for applications to act on a subset of the
+requested data. An application can speed up its time-to-interactive if the
+GraphQL server can send the most important data as soon as it’s ready. The new
+`@defer` and `@stream` directives allow GraphQL servers to do exactly that by
+returning multiple payloads from a single GraphQL response.
+
+The `@defer` directive can be applied to fragment spreads and inline fragments.
+It is a declarative way for developers to mark parts of a query as non-essential
+for immediate return.
Here’s an example of the `@defer` directive:
@@ -64,9 +86,15 @@ fragment HomeworldFragment on Person {
}
```
-When the GraphQL execution engine encounters the `@defer` directive, it will fork execution and begin to resolve those fields asynchronously. While the deferred payload is still being prepared, the client can receive and act on the initial payload. This is most useful when the deferred data is large, expensive to load, or not on the critical path for interactivity.
+When the GraphQL execution engine encounters the `@defer` directive, it will
+fork execution and begin to resolve those fields asynchronously. While the
+deferred payload is still being prepared, the client can receive and act on the
+initial payload. This is most useful when the deferred data is large, expensive
+to load, or not on the critical path for interactivity.
-Similar to `@defer`, the `@stream` directive also allows the client to receive data before the entire result is ready. `@stream` can be used on list fields. Here’s an example of the `@stream` directive:
+Similar to `@defer`, the `@stream` directive also allows the client to receive
+data before the entire result is ready. `@stream` can be used on list fields.
+Here’s an example of the `@stream` directive:
## `@stream`
@@ -128,9 +156,19 @@ query {
}
```
-When the GraphQL execution engine encounters the `@stream` directive, it will resolve as many list items specified by the `initialCount` argument. The rest will be resolved asynchronously. This is especially useful for an interface where only a few elements can be rendered above the fold. The client can render these elements as soon as possible while the server is still resolving the rest of the data.
-
-While the GraphQL specification doesn’t specify transport protocols, we expect the most common transport for queries with `@defer`/`@stream` to be HTTP with chunked transfer encoding. This allows a GraphQL server to keep a standard HTTP connection open, while streaming each payload to the client as soon as it’s ready. It has low overhead, has been supported by browsers for decades, and can work easily with most infrastructure.
+When the GraphQL execution engine encounters the `@stream` directive, it will
+resolve as many list items specified by the `initialCount` argument. The rest
+will be resolved asynchronously. This is especially useful for an interface
+where only a few elements can be rendered above the fold. The client can render
+these elements as soon as possible while the server is still resolving the rest
+of the data.
+
+While the GraphQL specification doesn’t specify transport protocols, we expect
+the most common transport for queries with `@defer`/`@stream` to be HTTP with
+chunked transfer encoding. This allows a GraphQL server to keep a standard HTTP
+connection open, while streaming each payload to the client as soon as it’s
+ready. It has low overhead, has been supported by browsers for decades, and can
+work easily with most infrastructure.
You can learn more about these directives at:
diff --git a/src/pages/blog/2021-02-15-newsletter-february-2021.mdx b/src/pages/blog/2021-02-15-newsletter-february-2021.mdx
index ef77fdc6ba..8e102d4f37 100644
--- a/src/pages/blog/2021-02-15-newsletter-february-2021.mdx
+++ b/src/pages/blog/2021-02-15-newsletter-february-2021.mdx
@@ -5,35 +5,59 @@ date: 2021-02-15
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via the monthly GraphQL Foundation newsletter.
-GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!
+GraphQL reached new heights in 2020 and is only poised to continue its meteoric
+rise in 2021. Thank you again for your involvement in this project and your
+support of the GraphQL Foundation. We are excited for another productive year!
## Working Group Updates
### [Advancing no introspection at root of Subscription operation](https://github.com/graphql/graphql-spec/pull/776)
-The group decided to disallow since it doesn’t work in the reference implementation. During the graphql-js implementation some issues were discovered around fragments that are being fixed. Read more [here](https://github.com/graphql/graphql-spec/pull/776).
+The group decided to disallow since it doesn’t work in the reference
+implementation. During the graphql-js implementation some issues were discovered
+around fragments that are being fixed. Read more
+[here](https://github.com/graphql/graphql-spec/pull/776).
### [Default value coercion update](https://github.com/graphql/graphql-spec/pull/793)
-Currently this is a case where infinite loops can occur. The WG is working to figure out how to avoid this in the spec [here](https://github.com/graphql/graphql-spec/pull/793#issuecomment-738736539).
+Currently this is a case where infinite loops can occur. The WG is working to
+figure out how to avoid this in the spec
+[here](https://github.com/graphql/graphql-spec/pull/793#issuecomment-738736539).
### [Defer/stream updates](https://github.com/graphql/graphql-spec/blob/main/rfcs/DeferStream.md)
-The official experimental branch of graphql-js/express-graphql. The WG is working to update the initialCount, validation rule in GraphQL.js, and the spec.
+The official experimental branch of graphql-js/express-graphql. The WG is
+working to update the initialCount, validation rule in GraphQL.js, and the spec.
### Schema Coordinates Spec
-The RFC and spec edit have been out for a few months with credit due to everyone who has reviewed those. Last time the field arguments were the discussion there were two main contenders: `Query.business(id:)` versus `Query.business.id`. The WG is looking for consensus. The discussion summarized can be found [here](https://github.com/graphql/graphql-spec/pull/746#issuecomment-740914167).
+The RFC and spec edit have been out for a few months with credit due to everyone
+who has reviewed those. Last time the field arguments were the discussion there
+were two main contenders: `Query.business(id:)` versus `Query.business.id`. The
+WG is looking for consensus. The discussion summarized can be found
+[here](https://github.com/graphql/graphql-spec/pull/746#issuecomment-740914167).
### \_Typename is not valid at subscription root
-`__typename` does not return an async iterator and has been deemed not useful at the root of a subscription operation, yet it is allowed by GraphQL validation. This field has caused some confusion in the community, and the WG has proposed explicitly validating it to prevent the field to catch these issues earlier.
+`__typename` does not return an async iterator and has been deemed not useful at
+the root of a subscription operation, yet it is allowed by GraphQL validation.
+This field has caused some confusion in the community, and the WG has proposed
+explicitly validating it to prevent the field to catch these issues earlier.
### Default value coercion
-There's inconsistency in the handling of default values between user-supplied defaults (i.e. variables in operation documents) and schema-supplied defaults (for arguments or input object fields). The WG discussed ways in which a poorly constructed GraphQL schema can break the type safety guarantees of GraphQL and proposed addressing this by making schema defaults operate in a more expected manner. Next steps are to get an implementation finished so that we can advance the spec changes to stage 2.
+There's inconsistency in the handling of default values between user-supplied
+defaults (i.e. variables in operation documents) and schema-supplied defaults
+(for arguments or input object fields). The WG discussed ways in which a poorly
+constructed GraphQL schema can break the type safety guarantees of GraphQL and
+proposed addressing this by making schema defaults operate in a more expected
+manner. Next steps are to get an implementation finished so that we can advance
+the spec changes to stage 2.
## In Other News...
@@ -42,22 +66,40 @@ There's inconsistency in the handling of default values between user-supplied de
- [How Netflix Scales its API with GraphQL Federation (Part 2)](https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a)
- [Hasura launched a 3 week series of articles, live-streams, and A.M.As for GraphQL beginners and experts.](https://hasura.io/blog/graphql-january-with-hasura/)
- [Prisma announced Nexus 1.0: A Major Release for Type-Safe, Code-First GraphQL APIs](https://www.prisma.io/blog/announcing-the-release-of-nexus-schema-v1-b5eno5g08d0b)
-- ZDNet: [2021 Technology trend review: Cloud, Kubernetes, and GraphQL](https://zdnet.com/article/2021-technology-trend-review-part-1-blockchain-cloud-open-source/)
-- TechTarget: [Enterprise application trends that will impact 2021: GraphQL vs. REST choice steers microservices development](https://searchapparchitecture.techtarget.com/feature/Enterprise-application-trends-that-will-impact)
+- ZDNet:
+ [2021 Technology trend review: Cloud, Kubernetes, and GraphQL](https://zdnet.com/article/2021-technology-trend-review-part-1-blockchain-cloud-open-source/)
+- TechTarget:
+ [Enterprise application trends that will impact 2021: GraphQL vs. REST choice steers microservices development](https://searchapparchitecture.techtarget.com/feature/Enterprise-application-trends-that-will-impact)
- [Top 20 GraphQL Jobs Postings](https://www.dice.com/jobs/q-GraphQL-jobs)
-- GraphQL Galaxy’s talk uploaded online, [check out the Keynote](https://youtu.be/mfg6ZJ2GGRc)!
-- The [new Schema Stitching Handbook was released](https://the-guild.dev/blog/a-new-year-for-schema-stitching), together with examples and video walkthrough with everything you need to know about Federated/Distributed GraphQL Gateways
-- [The Guild announced GraphQL Modules 1.0](https://the-guild.dev/blog/graphql-modules-v1) as a major rewrite after 3 years of experience. The new version includes better simplicity and performance
-- With [GraphQL Mesh](https://graphql-mesh.com/) you can now wrap any existing API and add reactivity to it - check out [this blog post about how to do it](https://the-guild.dev/blog/add-reactivity-to-an-existing-source)
-- [spotify-graphql is approaching v2.0](https://twitter.com/whereischarly/status/1349467930166239232?s=20) as a complete rewrite, instead of manual code it uses GraphQL Mesh under the hood to generate the API
-- Software Engineering Daily: [Podcast with DGraph’s Manit Jain](https://softwareengineeringdaily.com/2021/01/19/dgraph-native-graphql-database-with-manish-jain/)
+- GraphQL Galaxy’s talk uploaded online,
+ [check out the Keynote](https://youtu.be/mfg6ZJ2GGRc)!
+- The
+ [new Schema Stitching Handbook was released](https://the-guild.dev/blog/a-new-year-for-schema-stitching),
+ together with examples and video walkthrough with everything you need to know
+ about Federated/Distributed GraphQL Gateways
+- [The Guild announced GraphQL Modules 1.0](https://the-guild.dev/blog/graphql-modules-v1)
+ as a major rewrite after 3 years of experience. The new version includes
+ better simplicity and performance
+- With [GraphQL Mesh](https://graphql-mesh.com/) you can now wrap any existing
+ API and add reactivity to it - check out
+ [this blog post about how to do it](https://the-guild.dev/blog/add-reactivity-to-an-existing-source)
+- [spotify-graphql is approaching v2.0](https://twitter.com/whereischarly/status/1349467930166239232?s=20)
+ as a complete rewrite, instead of manual code it uses GraphQL Mesh under the
+ hood to generate the API
+- Software Engineering Daily:
+ [Podcast with DGraph’s Manit Jain](https://softwareengineeringdaily.com/2021/01/19/dgraph-native-graphql-database-with-manish-jain/)
## Upcoming Events
-- Asia’s largest [GraphQL conference](https://graphql.asia/) is back! February 24th & 25th
+- Asia’s largest [GraphQL conference](https://graphql.asia/) is back! February
+ 24th & 25th
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](/foundation/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our [member page](/foundation/join). If
+you have questions about membership, please send an email to
+membership@graphql.org.
diff --git a/src/pages/blog/2021-03-31-newsletter-march-2021.mdx b/src/pages/blog/2021-03-31-newsletter-march-2021.mdx
index ed6afe6749..213a64358e 100644
--- a/src/pages/blog/2021-03-31-newsletter-march-2021.mdx
+++ b/src/pages/blog/2021-03-31-newsletter-march-2021.mdx
@@ -5,42 +5,73 @@ date: 2021-03-31
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via the monthly GraphQL Foundation newsletter.
-GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!
+GraphQL reached new heights in 2020 and is only poised to continue its meteoric
+rise in 2021. Thank you again for your involvement in this project and your
+support of the GraphQL Foundation. We are excited for another productive year!
## Working Group Updates
**GraphQL Foundation marketing committee**
-The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the [Foundation](https://foundation.graphql.org/) and the [projects](https://github.com/graphql). They meet regularly, and welcome participation from Foundation and community members.
+The newly created GraphQL Foundation marketing committee is responsible for
+coordinating marketing activities in support of the
+[Foundation](https://foundation.graphql.org/) and the
+[projects](https://github.com/graphql). They meet regularly, and welcome
+participation from Foundation and community members.
-The meeting agendas and minutes are open and available in [meetings/](https://github.com/graphql/marketing/blob/main/meetings). We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact operations@graphql.org.
+The meeting agendas and minutes are open and available in
+[meetings/](https://github.com/graphql/marketing/blob/main/meetings). We
+generally meet on the fourth Thursday of the month at 9am PT. To be added to the
+recurring invite, please contact operations@graphql.org.
**Allowing fields to diverge more**
-This is one of the most complicated validation rules, which is about overlapping fields and not forcing to ensure every field is unique in a query, especially if you compose queries. They have to be merged together and ensure the field is only executed once. There's a rule to ensure this merging can be done.
+This is one of the most complicated validation rules, which is about overlapping
+fields and not forcing to ensure every field is unique in a query, especially if
+you compose queries. They have to be merged together and ensure the field is
+only executed once. There's a rule to ensure this merging can be done.
-The working group has agreed to add prose or a non-normative note to this validation rule to explain this.
+The working group has agreed to add prose or a non-normative note to this
+validation rule to explain this.
**Operation Expressions**
-Operation expressions is an extension to the Schema Coordinates syntax that allows for a host of new use cases. Outlined [here](https://github.com/graphql/graphql-spec/pull/823) are some of the use cases that have been discussed so far, and have iterated on the syntax, but everything in this is very much in flux.
+Operation expressions is an extension to the Schema Coordinates syntax that
+allows for a host of new use cases. Outlined
+[here](https://github.com/graphql/graphql-spec/pull/823) are some of the use
+cases that have been discussed so far, and have iterated on the syntax, but
+everything in this is very much in flux.
**Directions via introspection report**
-Custom directives are not currently introspectable. This has been a big discussion over the years. Recently, graphql-java has implemented (almost merged) the ability to query directive by introspection.
+Custom directives are not currently introspectable. This has been a big
+discussion over the years. Recently, graphql-java has implemented (almost
+merged) the ability to query directive by introspection.
**Oneof Input Objects and Oneof Fields**
-Oneof Input Objects are a special variant of Input Objects where the type system asserts that exactly one of the fields must be set and non-null, all others being omitted. This is represented in introspection with the `__Type.oneField: Boolean` field, and in SDL via the `@oneOf` directive on the input object. The working group has agreed to Contribute syntax thoughts and on the RFC itself, and write an implementation in GraphQL.js
+Oneof Input Objects are a special variant of Input Objects where the type system
+asserts that exactly one of the fields must be set and non-null, all others
+being omitted. This is represented in introspection with the
+`__Type.oneField: Boolean` field, and in SDL via the `@oneOf` directive on the
+input object. The working group has agreed to Contribute syntax thoughts and on
+the RFC itself, and write an implementation in GraphQL.js
## In Other News...
-- ZDNet: [Databases, graphs, and GraphQL: The past, present, and future](https://www.zdnet.com/article/databases-graphs-and-graphql-past-present-and-future/)
-- ZDNet: [Hasura connects GraphQL to the REST of the world](https://www.zdnet.com/article/hasura-connects-graphql-to-the-rest-of-the-world/)
-- ADT Mag: [Netflix Open Sources GraphQL for Spring Boot](https://adtmag.com/articles/2021/02/17/netflix-open-sources-graphql-for-spring-boot.aspx)
-- ProgrammableWeb: [Facebook Adds Relay Hooks for Improved GraphQL Data Fetching](https://www.programmableweb.com/news/facebook-adds-relay-hooks-improved-graphql-data-fetching/brief/2021/03/11)
+- ZDNet:
+ [Databases, graphs, and GraphQL: The past, present, and future](https://www.zdnet.com/article/databases-graphs-and-graphql-past-present-and-future/)
+- ZDNet:
+ [Hasura connects GraphQL to the REST of the world](https://www.zdnet.com/article/hasura-connects-graphql-to-the-rest-of-the-world/)
+- ADT Mag:
+ [Netflix Open Sources GraphQL for Spring Boot](https://adtmag.com/articles/2021/02/17/netflix-open-sources-graphql-for-spring-boot.aspx)
+- ProgrammableWeb:
+ [Facebook Adds Relay Hooks for Improved GraphQL Data Fetching](https://www.programmableweb.com/news/facebook-adds-relay-hooks-improved-graphql-data-fetching/brief/2021/03/11)
- [Dgraph Labs Launches Slash GraphQL, Industry’s First GraphQL-Native Database Backend-As-A-Service](https://www.globenewswire.com/news-release/2020/09/10/2091563/0/en/Dgraph-Labs-Launches-Slash-GraphQL-Industry-s-First-GraphQL-Native-Database-Backend-As-A-Service.html)
- [How Square accelerates product development with Apollo GraphQL](https://www.apollographql.com/blog/how-square-accelerates-product-development-with-apollo-graphql/)
- [Netflix: Beyond REST Rapid Development with GraphQL Microservices](https://netflixtechblog.com/beyond-rest-1b76f7c20ef6)
@@ -48,10 +79,15 @@ Oneof Input Objects are a special variant of Input Objects where the type system
## Upcoming Events
-- The GraphQL community will come together once again for [GraphQL Summit](https://summit.graphql.com) April 7th & 8th
+- The GraphQL community will come together once again for
+ [GraphQL Summit](https://summit.graphql.com) April 7th & 8th
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](https://foundation.graphql.org/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our
+[member page](https://foundation.graphql.org/join). If you have questions about
+membership, please send an email to membership@graphql.org.
diff --git a/src/pages/blog/2021-04-30-newsletter-april-2021.mdx b/src/pages/blog/2021-04-30-newsletter-april-2021.mdx
index fac5182005..2063873b0d 100644
--- a/src/pages/blog/2021-04-30-newsletter-april-2021.mdx
+++ b/src/pages/blog/2021-04-30-newsletter-april-2021.mdx
@@ -5,51 +5,90 @@ date: 2021-04-30
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via the monthly GraphQL Foundation newsletter.
-GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!
+GraphQL reached new heights in 2020 and is only poised to continue its meteoric
+rise in 2021. Thank you again for your involvement in this project and your
+support of the GraphQL Foundation. We are excited for another productive year!
## Working Group Updates
### GraphQL Foundation marketing committee
-The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the [Foundation](https://foundation.graphql.org/) and the [projects](https://github.com/graphql). They meet regularly, and welcome participation from Foundation and community members.
+The newly created GraphQL Foundation marketing committee is responsible for
+coordinating marketing activities in support of the
+[Foundation](https://foundation.graphql.org/) and the
+[projects](https://github.com/graphql). They meet regularly, and welcome
+participation from Foundation and community members.
-The meeting agendas and minutes are open and available in [meetings/](https://github.com/graphql/marketing/blob/main/meetings). We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact [operations@graphql.org](mailto:operations@graphql.org).
+The meeting agendas and minutes are open and available in
+[meetings/](https://github.com/graphql/marketing/blob/main/meetings). We
+generally meet on the fourth Thursday of the month at 9am PT. To be added to the
+recurring invite, please contact
+[operations@graphql.org](mailto:operations@graphql.org).
### Spec cut
-There are few more final phase proposals still waiting on review, as well as updating the version of the legal text). The next step will include having the TSC take a formal vote to cut the draft.
+There are few more final phase proposals still waiting on review, as well as
+updating the version of the legal text). The next step will include having the
+TSC take a formal vote to cut the draft.
### TypeScript migration for GraphQL.js
-Representing almost 6 million downloads per week. TypeScript is in need of additional clean up, including GraphQLList and GraphQLNonNull. The WG decided to drop Flow types, and have a PR for converting to TypeScript. The plan is to incorporate the fixes into the main release, which is very close to being done. Once finished, it will be added to release 16.0.0-alpha.1. Once that is complete it will merge the PR and convert to TypeScript.
+Representing almost 6 million downloads per week. TypeScript is in need of
+additional clean up, including GraphQLList and GraphQLNonNull. The WG decided to
+drop Flow types, and have a PR for converting to TypeScript. The plan is to
+incorporate the fixes into the main release, which is very close to being done.
+Once finished, it will be added to release 16.0.0-alpha.1. Once that is complete
+it will merge the PR and convert to TypeScript.
### Adding descriptions to queries and fragments
-The purpose of this discussion is to add necessary comments for various business use cases. As of now we have to parse SDL data and it's problematic when people add other comments. The WG is working on the best way to solve this issue.
+The purpose of this discussion is to add necessary comments for various business
+use cases. As of now we have to parse SDL data and it's problematic when people
+add other comments. The WG is working on the best way to solve this issue.
### Schema introspection extensions
-First implemented by GraphQL Java,then some issues were found and it was discovered there was some additional work to be done before turning it into an RFC. The Working Group is planning to address these issues shortly.
+First implemented by GraphQL Java,then some issues were found and it was
+discovered there was some additional work to be done before turning it into an
+RFC. The Working Group is planning to address these issues shortly.
## In Other News...
- [Dgraph announces v21.03 - Resilient Rocket Release](https://dgraph.io/blog/post/v2103-release/)
-- Read: [GraphQL API Security best practices with AWS AppSync and Amplify](https://github.com/danilop/graphql-api-security-with-aws-appsync-and-amplify)
-- AWS AppSync is a fully managed service which allows developers to deploy and interact with serverless scalable GraphQL backends on AWS.
+- Read:
+ [GraphQL API Security best practices with AWS AppSync and Amplify](https://github.com/danilop/graphql-api-security-with-aws-appsync-and-amplify)
+- AWS AppSync is a fully managed service which allows developers to deploy and
+ interact with serverless scalable GraphQL backends on AWS.
- [Neo4j announces GraphQL Library Beta Release](https://medium.com/neo4j/announcing-the-neo4j-graphql-library-beta-99ae8541bbe7)
-- TechTarget: [Dgraph GraphQL database users detail graph use cases](https://searchdatamanagement.techtarget.com/news/252499595/Dgraph-GraphQL-database-users-detail-graph-use-cases)
-- Devops.com: [Apollo GraphQL Makes Federated Server More Accessible](https://devops.com/apollo-graphql-makes-federated-server-more-accessible/)
-- The New Stack: [Why Shopify Favors GraphQL over REST for Its APIs](https://thenewstack.io/why-shopify-favors-graphql-over-rest-for-its-apis/)
-- Code Story: [E17: Matt Debergalis, Apollo GraphQL](https://codestory.co/podcast/e17-matt-debergalis-apollo-graphql/)
+- TechTarget:
+ [Dgraph GraphQL database users detail graph use cases](https://searchdatamanagement.techtarget.com/news/252499595/Dgraph-GraphQL-database-users-detail-graph-use-cases)
+- Devops.com:
+ [Apollo GraphQL Makes Federated Server More Accessible](https://devops.com/apollo-graphql-makes-federated-server-more-accessible/)
+- The New Stack:
+ [Why Shopify Favors GraphQL over REST for Its APIs](https://thenewstack.io/why-shopify-favors-graphql-over-rest-for-its-apis/)
+- Code Story:
+ [E17: Matt Debergalis, Apollo GraphQL](https://codestory.co/podcast/e17-matt-debergalis-apollo-graphql/)
## Upcoming Events
-- [Hasura Con '21: The Big Hasura User Conference](https://hasura.io/events/hasura-con-2021/) The 2021 installment of Hasura Con will take place on June 23rd and 24th. The event brings together users from all over the world to celebrate all things Hasura and will feature top-notch speakers and workshops. Sign up today to attend Hasura Con '21 or submit a talk proposal to share your knowledge at the event.
+- [Hasura Con '21: The Big Hasura User Conference](https://hasura.io/events/hasura-con-2021/)
+ The 2021 installment of Hasura Con will take place on June 23rd and 24th. The
+ event brings together users from all over the world to celebrate all things
+ Hasura and will feature top-notch speakers and workshops. Sign up today to
+ attend Hasura Con '21 or submit a talk proposal to share your knowledge at the
+ event.
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](https://foundation.graphql.org/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our
+[member page](https://foundation.graphql.org/join). If you have questions about
+membership, please send an email to membership@graphql.org.
diff --git a/src/pages/blog/2021-06-30-newsletter-june-2021.mdx b/src/pages/blog/2021-06-30-newsletter-june-2021.mdx
index ffc23c75bb..c4bda76d00 100644
--- a/src/pages/blog/2021-06-30-newsletter-june-2021.mdx
+++ b/src/pages/blog/2021-06-30-newsletter-june-2021.mdx
@@ -5,63 +5,107 @@ date: 2021-06-30
byline: GraphQL Foundation
---
-[GraphQL](/) has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.
+[GraphQL](/) has redefined how developers work with APIs and client-server
+interactions. And as the community works hard to foster the growth and adoption
+of GraphQL, we are excited to share the work of the community and discussions
+via the monthly GraphQL Foundation newsletter.
-GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!
+GraphQL reached new heights in 2020 and is only poised to continue its meteoric
+rise in 2021. Thank you again for your involvement in this project and your
+support of the GraphQL Foundation. We are excited for another productive year!
## Working Group Updates
### GraphQL Foundation marketing committee
-The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the [Foundation](https://foundation.graphql.org/) and the [projects](https://github.com/graphql). They meet regularly, and welcome participation from Foundation and community members.
+The newly created GraphQL Foundation marketing committee is responsible for
+coordinating marketing activities in support of the
+[Foundation](https://foundation.graphql.org/) and the
+[projects](https://github.com/graphql). They meet regularly, and welcome
+participation from Foundation and community members.
-The meeting agendas and minutes are open and available in [meetings/](https://github.com/graphql/marketing/blob/main/meetings). We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact [operations@graphql.org](mailto:operations@graphql.org).
+The meeting agendas and minutes are open and available in
+[meetings/](https://github.com/graphql/marketing/blob/main/meetings). We
+generally meet on the fourth Thursday of the month at 9am PT. To be added to the
+recurring invite, please contact
+[operations@graphql.org](mailto:operations@graphql.org).
### [Release plan for next version of GraphQL specification](https://github.com/graphql/graphql-spec/milestone/2)
-The next release is in the final stages of review and is anticipated to be released soon. Details on the release are TBD.
+The next release is in the final stages of review and is anticipated to be
+released soon. Details on the release are TBD.
## Schema Coordinates update
-The WG is evaluating how to use Schema Coordinates (e.g. what can we improve by using schema coordinates, and is Looking for support in advancing from Draft to Accepted.
+The WG is evaluating how to use Schema Coordinates (e.g. what can we improve by
+using schema coordinates, and is Looking for support in advancing from Draft to
+Accepted.
## Full unicode support
-The WG is looking for support in advancing this iteration from Proposal to Draft. Most notably full unicode is already supported today, albeit without having explicit tests for it.
+The WG is looking for support in advancing this iteration from Proposal to
+Draft. Most notably full unicode is already supported today, albeit without
+having explicit tests for it.
-The only new code that is added is the verification of the surrogate pairs. The current implementation allows for invalid surrogate pairs.
+The only new code that is added is the verification of the surrogate pairs. The
+current implementation allows for invalid surrogate pairs.
### Fragment Arguments RFC
-For the past 5+ years, Relay has had the [@arguments directive](https://relay.dev/docs/api-reference/graphql-and-directives/#arguments), which is not spec compliant. In some sense, Relay is a _dual GraphQL client_: there's Relay syntax which is used to resolve data available locally on the client, and then that syntax compiles down into a spec compliant syntax to resolve data from an external source (aka a "server"), which hydrates a graph of "local" data the relay-specific resolvers operate over.
+For the past 5+ years, Relay has had the
+[@arguments directive](https://relay.dev/docs/api-reference/graphql-and-directives/#arguments),
+which is not spec compliant. In some sense, Relay is a _dual GraphQL client_:
+there's Relay syntax which is used to resolve data available locally on the
+client, and then that syntax compiles down into a spec compliant syntax to
+resolve data from an external source (aka a "server"), which hydrates a graph of
+"local" data the relay-specific resolvers operate over.
-This means Relay can get away with having user-written fragments that are freed from operation-defined knowledge: Relay's fragments can be provided with variable values that were never defined at the operation level, to use when resolving arguments.
+This means Relay can get away with having user-written fragments that are freed
+from operation-defined knowledge: Relay's fragments can be provided with
+variable values that were never defined at the operation level, to use when
+resolving arguments.
## Roundtable discussion on `@defer`/`@stream`
-Read the lengthy and informative conversation [here](https://github.com/graphql/graphql-wg/blob/main/notes/2021-06-03.md), or watch on YouTube [here](https://www.youtube.com/watch?v=d4HhIo82Whg&list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb&index=1).
+Read the lengthy and informative conversation
+[here](https://github.com/graphql/graphql-wg/blob/main/notes/2021-06-03.md), or
+watch on YouTube
+[here](https://www.youtube.com/watch?v=d4HhIo82Whg&list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb&index=1).
### graphql-js update on the Typescript migration
-The working group will be converting as much of graphql-js to TypeScript as possible, which will probably need some breaking changes due to default values and other changes. One of the aims is to also be readable so they might release these breaking changes along with the TypeScript migration.
+The working group will be converting as much of graphql-js to TypeScript as
+possible, which will probably need some breaking changes due to default values
+and other changes. One of the aims is to also be readable so they might release
+these breaking changes along with the TypeScript migration.
### Default Value Coercion RFC
-The WG has spent several weeks working to integrate the default value changes into GraphQL Ruby, which has resulted in several architectural discussions and some bug reports.
+The WG has spent several weeks working to integrate the default value changes
+into GraphQL Ruby, which has resulted in several architectural discussions and
+some bug reports.
### Glossary RFC
-The purpose of this RFC is to add clarity and precision, especially after the many meanings of a query. The WG is working to define the terms first, then will revisit extracting it into an appendix.
+The purpose of this RFC is to add clarity and precision, especially after the
+many meanings of a query. The WG is working to define the terms first, then will
+revisit extracting it into an appendix.
### Query Level Nullability RFC
-Used by many including Yelp and Netflix, the proposal is to allow queries that can include a non-null designator (!) to indicate that a field should be treated non-nullable and if it returns null it should escalate following the standard GraphQL error bubbling.
+Used by many including Yelp and Netflix, the proposal is to allow queries that
+can include a non-null designator (!) to indicate that a field should be treated
+non-nullable and if it returns null it should escalate following the standard
+GraphQL error bubbling.
## In Other News...
-- Database, Trends & Applications: [Hasura Adds the Ability to Access Existing Data and Move it with GraphQL API](https://www.dbta.com/Editorial/News-Flashes/Hasura-Adds-the-Ability-to-Access-Existing-Data-and-Move-it-with-GraphQL-API-147680.aspx)
-- InfoQ: [Rebuilding Twitter's Public API](https://www.infoq.com/presentations/twitter-public-api/)
-- ZDNet: [MuleSoft adds DataGraph to Anypoint Platform to streamline API requests](https://www.zdnet.com/article/mulesoft-adds-datagraph-to-anypoint-platform-streamlining-api-requests/)
+- Database, Trends & Applications:
+ [Hasura Adds the Ability to Access Existing Data and Move it with GraphQL API](https://www.dbta.com/Editorial/News-Flashes/Hasura-Adds-the-Ability-to-Access-Existing-Data-and-Move-it-with-GraphQL-API-147680.aspx)
+- InfoQ:
+ [Rebuilding Twitter's Public API](https://www.infoq.com/presentations/twitter-public-api/)
+- ZDNet:
+ [MuleSoft adds DataGraph to Anypoint Platform to streamline API requests](https://www.zdnet.com/article/mulesoft-adds-datagraph-to-anypoint-platform-streamlining-api-requests/)
## Upcoming Events
@@ -69,6 +113,10 @@ Used by many including Yelp and Netflix, the proposal is to allow queries that c
## Get Involved!
-Developers can get involved in the community and contribute to the project at https://github.com/graphql.
+Developers can get involved in the community and contribute to the project at
+https://github.com/graphql.
-Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our [member page](https://graphql.org/foundation/join). If you have questions about membership, please send an email to membership@graphql.org.
+Organizations interested in becoming members of the GraphQL Foundation or the
+GraphQL Specification can learn more on our
+[member page](https://graphql.org/foundation/join). If you have questions about
+membership, please send an email to membership@graphql.org.
diff --git a/src/pages/blog/2022-11-07-graphql-http.mdx b/src/pages/blog/2022-11-07-graphql-http.mdx
index eed5d39dc0..395a0facca 100644
--- a/src/pages/blog/2022-11-07-graphql-http.mdx
+++ b/src/pages/blog/2022-11-07-graphql-http.mdx
@@ -7,7 +7,8 @@ byline: GraphQL Foundation
GraphQL is most commonly served over HTTP. However, despite GraphQL being well
specified, this HTTP transport is not. To correct for this, the GraphQL working
-group has been working on the [GraphQL over HTTP](https://graphql.github.io/graphql-over-http/draft/)
+group has been working on the
+[GraphQL over HTTP](https://graphql.github.io/graphql-over-http/draft/)
specification.
Alongside a specification, we prefer a true implementation to have as a
@@ -15,23 +16,26 @@ reference. This ensures the ideas we specify can be implemented well, and that
as edge-cases arise in software we can ensure their solutions are reflected in
the specification as well.
-For GraphQL over HTTP, this has nominally been [express-graphql](https://github.com/graphql/express-graphql).
-This package makes it easy to create a GraphQL serving endpoint from an express
-server. However, as the Node community has grown over the years, alternatives to
-express have emerged and there is no longer one framework to align to. Also, as
-our maintenance bandwidth has focused on other projects, express-graphql has
-fallen behind.
+For GraphQL over HTTP, this has nominally been
+[express-graphql](https://github.com/graphql/express-graphql). This package
+makes it easy to create a GraphQL serving endpoint from an express server.
+However, as the Node community has grown over the years, alternatives to express
+have emerged and there is no longer one framework to align to. Also, as our
+maintenance bandwidth has focused on other projects, express-graphql has fallen
+behind.
-Luckily, thanks to the focused efforts of [Denis Badurina](https://github.com/enisdenjo),
-we have an alternative in [graphql-http](https://github.com/graphql/graphql-http).
-Denis has been part of the committee working on the GraphQL over HTTP
-specification, and sought to build a dependency-free compliant GraphQL server
-that works with most all existing Node.js and Deno HTTP frameworks.
+Luckily, thanks to the focused efforts of
+[Denis Badurina](https://github.com/enisdenjo), we have an alternative in
+[graphql-http](https://github.com/graphql/graphql-http). Denis has been part of
+the committee working on the GraphQL over HTTP specification, and sought to
+build a dependency-free compliant GraphQL server that works with most all
+existing Node.js and Deno HTTP frameworks.
-The decision was made to adopt the [graphql-http](https://github.com/graphql/graphql-http)
-project into the GraphQL Foundation (with Denis continuing as the lead
-maintainer), as well as to make it the official reference implementation of
-GraphQL over HTTP.
+The decision was made to adopt the
+[graphql-http](https://github.com/graphql/graphql-http) project into the GraphQL
+Foundation (with Denis continuing as the lead maintainer), as well as to make it
+the official reference implementation of GraphQL over HTTP.
-We will be deprecating [express-graphql](https://github.com/graphql/express-graphql)
-as part of this change, and recommending those using it migrate to graphql-http.
+We will be deprecating
+[express-graphql](https://github.com/graphql/express-graphql) as part of this
+change, and recommending those using it migrate to graphql-http.
diff --git a/src/pages/blog/2023-01-14-graphql-scalars.mdx b/src/pages/blog/2023-01-14-graphql-scalars.mdx
index 52fb5e404c..494cdc9d54 100644
--- a/src/pages/blog/2023-01-14-graphql-scalars.mdx
+++ b/src/pages/blog/2023-01-14-graphql-scalars.mdx
@@ -5,11 +5,21 @@ date: 2023-01-14
byline: Andreas Marek, Donna Zhou
---
-We are very happy to announce the official home for contributed GraphQL [custom scalar](https://spec.graphql.org/draft/#sec-Scalars.Custom-Scalars) specifications at [scalars.graphql.org](https://scalars.graphql.org/).
+We are very happy to announce the official home for contributed GraphQL
+[custom scalar](https://spec.graphql.org/draft/#sec-Scalars.Custom-Scalars)
+specifications at [scalars.graphql.org](https://scalars.graphql.org/).
-You are welcome to contribute custom scalar specifications (abbreviated as "specs"). Once your spec is merged in, it will be hosted at `scalars.graphql.org//`. See how to contribute on the [contribution guide](https://scalars.graphql.org/readme-contribution-guide).
+You are welcome to contribute custom scalar specifications (abbreviated as
+"specs"). Once your spec is merged in, it will be hosted at
+`scalars.graphql.org//`. See how to
+contribute on the
+[contribution guide](https://scalars.graphql.org/readme-contribution-guide).
-Our first contributed spec is for [DateTime](https://scalars.graphql.org/andimarek/date-time). You can point users to the spec's URL with the built-in `@specifiedBy` [directive](https://spec.graphql.org/draft/#sec--specifiedBy) in your GraphQL schema.
+Our first contributed spec is for
+[DateTime](https://scalars.graphql.org/andimarek/date-time). You can point users
+to the spec's URL with the built-in `@specifiedBy`
+[directive](https://spec.graphql.org/draft/#sec--specifiedBy) in your GraphQL
+schema.
```graphql
scalar DateTime
@@ -18,20 +28,38 @@ scalar DateTime
## Elevating the GraphQL type system with custom scalars
-Custom scalars have been part of the GraphQL spec since day one. They have the unique ability to extend the GraphQL type system with custom types. While custom scalars are powerful, they were more like a black box for the consumers of the API.
+Custom scalars have been part of the GraphQL spec since day one. They have the
+unique ability to extend the GraphQL type system with custom types. While custom
+scalars are powerful, they were more like a black box for the consumers of the
+API.
-Originally, it was very hard for consumers to understand custom scalars as a GraphQL schema did not provide any information apart from its name. For example, it was difficult to understand the exact format of a `DateTime` custom scalar. It was also difficult to know whether the `DateTime` custom scalar in API A was exactly the same as the `DateTime` in API B.
+Originally, it was very hard for consumers to understand custom scalars as a
+GraphQL schema did not provide any information apart from its name. For example,
+it was difficult to understand the exact format of a `DateTime` custom scalar.
+It was also difficult to know whether the `DateTime` custom scalar in API A was
+exactly the same as the `DateTime` in API B.
-We added the built-in `@specifiedBy` directive some time ago, which assigns a URL for the spec of a custom scalar. This provides a standard way to document custom scalars. The `@specifiedBy` directive is also introspectable.
+We added the built-in `@specifiedBy` directive some time ago, which assigns a
+URL for the spec of a custom scalar. This provides a standard way to document
+custom scalars. The `@specifiedBy` directive is also introspectable.
-However, we have since learned that this was not enough. The burden of writing a custom scalar specs and hosting them was left for each API itself to solve.
+However, we have since learned that this was not enough. The burden of writing a
+custom scalar specs and hosting them was left for each API itself to solve.
-With the custom scalar spec project, we provide templates for writing custom scalar specs and also host the specs at a GraphQL Foundation owned domain [scalars.graphql.org](https://scalars.graphql.org/). This greatly reduces the effort to clearly document and share your custom scalar specs.
+With the custom scalar spec project, we provide templates for writing custom
+scalar specs and also host the specs at a GraphQL Foundation owned domain
+[scalars.graphql.org](https://scalars.graphql.org/). This greatly reduces the
+effort to clearly document and share your custom scalar specs.
-Our hope is that this enables an ecosystem of clearly documented custom scalars and eliminates the need to reinvent popular ones again and again. Ultimately, a popular enough custom scalar will be practically indistinguishable from the built-in ones and elevate the GraphQL type system.
+Our hope is that this enables an ecosystem of clearly documented custom scalars
+and eliminates the need to reinvent popular ones again and again. Ultimately, a
+popular enough custom scalar will be practically indistinguishable from the
+built-in ones and elevate the GraphQL type system.
## Get involved!
-See how to contribute a custom scalar spec on the [contribution guide](https://scalars.graphql.org/readme-contribution-guide).
+See how to contribute a custom scalar spec on the
+[contribution guide](https://scalars.graphql.org/readme-contribution-guide).
-If you have any comments or questions, please open an issue on the [graphql-scalars GitHub repository](https://github.com/graphql/graphql-scalars).
+If you have any comments or questions, please open an issue on the
+[graphql-scalars GitHub repository](https://github.com/graphql/graphql-scalars).
diff --git a/src/pages/blog/2023-02-03-community-gardening.mdx b/src/pages/blog/2023-02-03-community-gardening.mdx
index ed4667b951..e4d1e7aa9b 100644
--- a/src/pages/blog/2023-02-03-community-gardening.mdx
+++ b/src/pages/blog/2023-02-03-community-gardening.mdx
@@ -5,34 +5,32 @@ date: 2023-02-03
byline: Benjie Gillam
---
-> The GraphQL Foundation offers [Community
-> Grants](https://graphql.org/foundation/community-grant/) to help incentivize
-> key technical and community initiatives. As part of the grant, applicants
-> commit to write a blog post report describing their work and its impact on
-> the GraphQL community. The following report was written by successful grant
-> applicant [Benjie Gillam](https://github.com/sponsors/benjie) in August 2022,
-> detailing the community gardening he performed during May, June and July of
-> that year.
+> The GraphQL Foundation offers
+> [Community Grants](https://graphql.org/foundation/community-grant/) to help
+> incentivize key technical and community initiatives. As part of the grant,
+> applicants commit to write a blog post report describing their work and its
+> impact on the GraphQL community. The following report was written by
+> successful grant applicant [Benjie Gillam](https://github.com/sponsors/benjie)
+> in August 2022, detailing the community gardening he performed during May,
+> June and July of that year.
## Backstory
In 2019 I started turning up to GraphQL Working Group meetings regularly and
-helping take [the
-notes](https://github.com/graphql/graphql-wg/tree/main/notes). Back then we had
-a system for filing and reviewing action items, but very few people used it, so
-items would easily get lost. Further, the notes and videos would be uploaded in
-batches every few months, which prevented attendees referring to them in the
-interim.
+helping take [the notes](https://github.com/graphql/graphql-wg/tree/main/notes).
+Back then we had a system for filing and reviewing action items, but very few
+people used it, so items would easily get lost. Further, the notes and videos
+would be uploaded in batches every few months, which prevented attendees
+referring to them in the interim.
Over the next couple years I set about trying to improve these processes. I
-started by filing the [action
-items](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Action+item+%3Aclapper%3A%22)
-myself. After a while, I started categorizing them into [GitHub
-projects](https://github.com/graphql/graphql-wg/projects?type=classic&query=is%3Aopen+sort%3Aupdated-desc),
+started by filing the
+[action items](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Action+item+%3Aclapper%3A%22)
+myself. After a while, I started categorizing them into
+[GitHub projects](https://github.com/graphql/graphql-wg/projects?type=classic&query=is%3Aopen+sort%3Aupdated-desc),
one for each meeting, which made keeping track of them (particularly the old
ones) much easier and helped us to see progress. Later I introduced a new
-["ready for review"
-label](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Ready+for+review+%F0%9F%99%8C%22+)
+["ready for review" label](https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Ready+for+review+%F0%9F%99%8C%22+)
that enabled us to quickly focus on the action items that needed discussion
rather than trying to go over every item (or skip the lot entirely) each
meeting. These processes were very much appreciated by the working group, but
@@ -43,95 +41,90 @@ diminished.
## Funding approved
-In May 2022, the GraphQL Foundation kindly approved my application for a [GraphQL
-Community Grant](https://graphql.org/foundation/community-grant/) to enable me
-to dedicate more time to these tasks. I'm a community-funded open source
-developer, so I rely on [sponsorship](https://github.com/sponsors/benjie) to
-fund my open source endeavors - both on my own open source projects ([the
-Graphile suite](https://github.com/graphile)) and also my contributions to the
-[GraphQL](https://github.com/graphql/graphql-spec/graphs/contributors)
+In May 2022, the GraphQL Foundation kindly approved my application for a
+[GraphQL Community Grant](https://graphql.org/foundation/community-grant/) to
+enable me to dedicate more time to these tasks. I'm a community-funded open
+source developer, so I rely on [sponsorship](https://github.com/sponsors/benjie)
+to fund my open source endeavors - both on my own open source projects
+([the Graphile suite](https://github.com/graphile)) and also my contributions to
+the [GraphQL](https://github.com/graphql/graphql-spec/graphs/contributors)
[Working](https://github.com/graphql/graphql-wg/graphs/contributors)
[Groups](https://github.com/graphql/graphql-over-http/graphs/contributors).
-Since being approved for the grant, I've been better able to execute the role
-of community gardener; let me tell you about some of the ways in which the
+Since being approved for the grant, I've been better able to execute the role of
+community gardener; let me tell you about some of the ways in which the
Foundation's grant has enabled me to better support you, the GraphQL community!
The [main GraphQL working group](https://github.com/graphql/graphql-wg) meets
-each month; and it is recorded on Zoom and made available via [the Foundation's
-YouTube
-channel](https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/playlists).
+each month; and it is recorded on Zoom and made available via
+[the Foundation's YouTube channel](https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/playlists).
Soon after each meeting I've been uploading the videos not just for the main
-meeting but also for the various other subcommittees ([GraphiQL
-WG](https://github.com/graphql/graphiql/tree/main/working-group), [GraphQL.js
-WG](https://github.com/graphql/graphql-js-wg), [GraphQL-over-HTTP
-WG](https://github.com/graphql/graphql-over-http/tree/main/working-group),
-Metadata WG, [Composite Schemas
-WG](https://github.com/graphql/composite-schemas-wg)) that may have met during
-the previous month. Whilst uploading the video of the main meeting, I file its
-notes and the action items, while also categorizing them making sure they're
-assigned to the relevant person. Recently, I've also started adding timestamped
-links to the YouTube video for each action item, so we can hear the original
-instructions rather than just the paraphrased summaries from the notes - I
-think this makes them even more useful!
+meeting but also for the various other subcommittees
+([GraphiQL WG](https://github.com/graphql/graphiql/tree/main/working-group),
+[GraphQL.js WG](https://github.com/graphql/graphql-js-wg),
+[GraphQL-over-HTTP WG](https://github.com/graphql/graphql-over-http/tree/main/working-group),
+Metadata WG,
+[Composite Schemas WG](https://github.com/graphql/composite-schemas-wg)) that
+may have met during the previous month. Whilst uploading the video of the main
+meeting, I file its notes and the action items, while also categorizing them
+making sure they're assigned to the relevant person. Recently, I've also started
+adding timestamped links to the YouTube video for each action item, so we can
+hear the original instructions rather than just the paraphrased summaries from
+the notes - I think this makes them even more useful!
## Empowering other contributors
As part of my aim to document our processes and streamline things, I've created
-[a template repository](https://github.com/graphql/wg-template) that can be
-used whenever a new GraphQL subcommittee is created. This enables all
-subcommittees to adopt the GraphQL meeting practices with minimal effort from
-the committee chair - just [a small list of
-edits](https://github.com/graphql/wg-template#working-group-template) that take
-about 5 minutes when setting up the repository and of course the regular
-scheduling.
+[a template repository](https://github.com/graphql/wg-template) that can be used
+whenever a new GraphQL subcommittee is created. This enables all subcommittees
+to adopt the GraphQL meeting practices with minimal effort from the committee
+chair - just
+[a small list of edits](https://github.com/graphql/wg-template#working-group-template)
+that take about 5 minutes when setting up the repository and of course the
+regular scheduling.
I've also been working with the Linux Foundation to get subcommittee meetings
-scheduled onto [the GraphQL
-calendar](https://calendar.google.com/calendar/embed?src=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com),
+scheduled onto
+[the GraphQL calendar](https://calendar.google.com/calendar/embed?src=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com),
and to expand [EasyCLA](https://docs.linuxfoundation.org/v2/easycla) to the new
-repositories to ensure that everyone contributing has signed the [GraphQL
-Membership
-Agreement](https://github.com/graphql/graphql-wg/tree/main/membership). This
-should make releasing future versions of the spec and any subcommittee
+repositories to ensure that everyone contributing has signed the
+[GraphQL Membership Agreement](https://github.com/graphql/graphql-wg/tree/main/membership).
+This should make releasing future versions of the spec and any subcommittee
deliverables much easier since the intellectual property paperwork is in place
from the start.
Thanks to the new funding I've also been able to be more active on GitHub
-issues, PRs, discussions and in [the GraphQL Discord
-server](https://discord.graphql.org/), enabling me to offer assistance to
-people interested in contributing, and to help moderate these environments.
-This includes [explaining how to become a
-champion](https://github.com/graphql/graphql-spec/issues/174#issuecomment-1129621529),
+issues, PRs, discussions and in
+[the GraphQL Discord server](https://discord.graphql.org/), enabling me to offer
+assistance to people interested in contributing, and to help moderate these
+environments. This includes
+[explaining how to become a champion](https://github.com/graphql/graphql-spec/issues/174#issuecomment-1129621529),
performing timely moderation actions when the Discord server suffers from spam,
and giving guidance on how to improve PRs.
## Extra-curricular activities
-Whilst not technically under the umbrella of the grant, having the time spent
-on the above tasks funded by the GraphQL Grant has freed me up to dedicate more
-time to other key issues in GraphQL - for example I [recently revived the
-GraphQL-over-HTTP
-project](https://github.com/graphql/graphql-over-http/pull/175) and we're well
-on the way towards v1 of that specification. I've also helped kick-start [the
-GraphQL Composite Schemas working
-group](https://github.com/graphql/composite-schemas-wg) for the community to
-collaborate on shared solutions to common problems felt across all the
-different ways of building a GraphQL schema by combining other GraphQL schemas
-together. I've also finally been able [to follow through on my intent to push
-the "GraphQL Metadata" topic
-forward](https://github.com/graphql/graphql-spec/issues/300#issuecomment-1119676731)
-including researching, digesting, and [sharing my analysis of the existing
-solutions and their problems at the GraphQL
-Conference](https://youtu.be/c1oa7p73rTw), and [suggesting a solution of my
-own](https://github.com/graphql/graphql-wg/blob/main/rfcs/AnnotationStructs.md).
-Another thing that this reduced pressure on my time has enabled is the [new
-SpecNews podcast](https://specnewspod.com/) in which my co-host Jem and I
+Whilst not technically under the umbrella of the grant, having the time spent on
+the above tasks funded by the GraphQL Grant has freed me up to dedicate more
+time to other key issues in GraphQL - for example I
+[recently revived the GraphQL-over-HTTP project](https://github.com/graphql/graphql-over-http/pull/175)
+and we're well on the way towards v1 of that specification. I've also helped
+kick-start
+[the GraphQL Composite Schemas working group](https://github.com/graphql/composite-schemas-wg)
+for the community to collaborate on shared solutions to common problems felt
+across all the different ways of building a GraphQL schema by combining other
+GraphQL schemas together. I've also finally been able
+[to follow through on my intent to push the "GraphQL Metadata" topic forward](https://github.com/graphql/graphql-spec/issues/300#issuecomment-1119676731)
+including researching, digesting, and
+[sharing my analysis of the existing solutions and their problems at the GraphQL Conference](https://youtu.be/c1oa7p73rTw),
+and
+[suggesting a solution of my own](https://github.com/graphql/graphql-wg/blob/main/rfcs/AnnotationStructs.md).
+Another thing that this reduced pressure on my time has enabled is the
+[new SpecNews podcast](https://specnewspod.com/) in which my co-host Jem and I
summarize the latest GraphQL Specification Working Group session in just 5-10
minutes.
## Get involved!
If you're interested in contributing to GraphQL and need help getting started,
-feel free to reach out to me, @benjie, on
-[Discord](https://discord.graphql.org) or via a GitHub issue or PR, and I'll do
-my best to help!
+feel free to reach out to me, @benjie, on [Discord](https://discord.graphql.org)
+or via a GitHub issue or PR, and I'll do my best to help!
diff --git a/src/pages/blog/2023-06-20-the-guild-qna-recap.mdx b/src/pages/blog/2023-06-20-the-guild-qna-recap.mdx
index f4a923f24e..b329b1ad49 100644
--- a/src/pages/blog/2023-06-20-the-guild-qna-recap.mdx
+++ b/src/pages/blog/2023-06-20-the-guild-qna-recap.mdx
@@ -5,40 +5,111 @@ date: 2023-06-20
byline: Jory Burson
---
-In the fast-paced world of software development, staying updated with the latest technologies and best practices is crucial. GraphQL, a query language for APIs, has gained immense popularity for its flexibility and efficiency in fetching data. To delve deeper into the realm of GraphQL and its impact, a recent Q&A session with members of [The Guild](https://the-guild.dev/), an organization of open source contributors, provided valuable insights and recommendations. Let's explore the highlights of this session and gain a better understanding of the power of GraphQL.
+In the fast-paced world of software development, staying updated with the latest
+technologies and best practices is crucial. GraphQL, a query language for APIs,
+has gained immense popularity for its flexibility and efficiency in fetching
+data. To delve deeper into the realm of GraphQL and its impact, a recent Q&A
+session with members of [The Guild](https://the-guild.dev/), an organization of
+open source contributors, provided valuable insights and recommendations. Let's
+explore the highlights of this session and gain a better understanding of the
+power of GraphQL.
## Philosophies and structure for open source organizations
-During the Q&A session, The Guild members emphasized that their organization was created for the main purpose of long term open source maintenance. This decision led the organization to structure the group's work in a different way, such as having all of their projects under individual contributors names and not under the Guild’s [GitHub org](https://github.com/the-guild-org/), like [Yoga](https://github.com/dotansimha/graphql-yoga), [Mesh](https://github.com/Urigo/graphql-mesh) and [others](https://the-guild.dev/#platform).
-
-They also focused on hiring people who were already community contributors before joining The Guild, in order to ensure that they support existing open source contributors and reduce bias in the selection process (by focusing on the individual's work, rather than their location or identity). That led into a diverse team from all across the globe, and they have written more about that model [in their about page](https://the-guild.dev/about-us).
-
-During the Q&A, The Guild emphasized their support for local Meetup groups and their history of helping to start new ones. This commitment to community involvement reflects their dedication to fostering knowledge sharing and collaboration, which is essential for sustainable open source projects.
+During the Q&A session, The Guild members emphasized that their organization was
+created for the main purpose of long term open source maintenance. This decision
+led the organization to structure the group's work in a different way, such as
+having all of their projects under individual contributors names and not under
+the Guild’s [GitHub org](https://github.com/the-guild-org/), like
+[Yoga](https://github.com/dotansimha/graphql-yoga),
+[Mesh](https://github.com/Urigo/graphql-mesh) and
+[others](https://the-guild.dev/#platform).
+
+They also focused on hiring people who were already community contributors
+before joining The Guild, in order to ensure that they support existing open
+source contributors and reduce bias in the selection process (by focusing on the
+individual's work, rather than their location or identity). That led into a
+diverse team from all across the globe, and they have written more about that
+model [in their about page](https://the-guild.dev/about-us).
+
+During the Q&A, The Guild emphasized their support for local Meetup groups and
+their history of helping to start new ones. This commitment to community
+involvement reflects their dedication to fostering knowledge sharing and
+collaboration, which is essential for sustainable open source projects.
## Authorization and Shielding with Envelop
-The Guild team recommended using [Envelop](https://the-guild.dev/blog/introducing-envelop), a plugin system that manipulates the execution flow, for [authorization and shielding in GraphQL APIs](https://the-guild.dev/blog/graphql-authentication-with-envelop-and-auth0). This approach provides a powerful alternative to directly wrapping resolvers, ensuring robust security measures are in place. By leveraging Envelop, developers can enhance the authorization control in their GraphQL APIs.
+The Guild team recommended using
+[Envelop](https://the-guild.dev/blog/introducing-envelop), a plugin system that
+manipulates the execution flow, for
+[authorization and shielding in GraphQL APIs](https://the-guild.dev/blog/graphql-authentication-with-envelop-and-auth0).
+This approach provides a powerful alternative to directly wrapping resolvers,
+ensuring robust security measures are in place. By leveraging Envelop,
+developers can enhance the authorization control in their GraphQL APIs.
## Granular Authorization Control with Postgres' Row-Level Security
-In addition to Envelop, the discussion highlighted the use of Postgres' Row-Level Security as a means of achieving more granular authorization control. This feature allows developers to define security policies at the database level, ensuring that only authorized users can access specific rows of data. By incorporating Postgres' Row-Level Security, developers can further fortify their GraphQL APIs against unauthorized access.
+In addition to Envelop, the discussion highlighted the use of Postgres'
+Row-Level Security as a means of achieving more granular authorization control.
+This feature allows developers to define security policies at the database
+level, ensuring that only authorized users can access specific rows of data. By
+incorporating Postgres' Row-Level Security, developers can further fortify their
+GraphQL APIs against unauthorized access.
## The Advantages of "Non-Spec" GraphQL and Envelop/Yoga plugins
-The discussion also touched upon the benefits of using "non-spec" GraphQL features. With Envelop, you can safely use [advanced GraphQL features](https://the-guild.dev/graphql/envelop/v3/guides/using-graphql-features-from-the-future) before they are included in the official spec, which releases less frequently.
+The discussion also touched upon the benefits of using "non-spec" GraphQL
+features. With Envelop, you can safely use
+[advanced GraphQL features](https://the-guild.dev/graphql/envelop/v3/guides/using-graphql-features-from-the-future)
+before they are included in the official spec, which releases less frequently.
-These tools offer additional functionalities and optimizations, enabling developers to maximize the potential of GraphQL in their projects. The Guild team emphasized the value of exploring these options to enhance performance and streamline development processes while also giving valuable feedback from real production usage to the [GraphQL Working Group](https://graphql.org/community/developers/#the-graphql-working-group) about these features.
+These tools offer additional functionalities and optimizations, enabling
+developers to maximize the potential of GraphQL in their projects. The Guild
+team emphasized the value of exploring these options to enhance performance and
+streamline development processes while also giving valuable feedback from real
+production usage to the
+[GraphQL Working Group](https://graphql.org/community/developers/#the-graphql-working-group)
+about these features.
## Caching GraphQL Operations
-Participants in the session raised intriguing points about caching GraphQL operations. The Guild team acknowledged the potential advantages of adding caching to GraphQL requests, optimizing response times and reducing unnecessary network traffic. The point was raised that one can achieve more granular caching with GraphQL than with REST, and a primary reason people think caching is harder in GraphQL is the lack of knowledge about tools like [Stellate](https://stellate.co) and [Yoga’s response caching support](https://the-guild.dev/graphql/yoga-server/docs/features/response-caching).
+Participants in the session raised intriguing points about caching GraphQL
+operations. The Guild team acknowledged the potential advantages of adding
+caching to GraphQL requests, optimizing response times and reducing unnecessary
+network traffic. The point was raised that one can achieve more granular caching
+with GraphQL than with REST, and a primary reason people think caching is harder
+in GraphQL is the lack of knowledge about tools like
+[Stellate](https://stellate.co) and
+[Yoga’s response caching support](https://the-guild.dev/graphql/yoga-server/docs/features/response-caching).
## GraphQL Workflows at scale
-In discussing larger-scale usage of GraphQL, The Guild participants referenced some of their work helping large teams manage GraphQL APIs using workflows and tools using tools such as [GraphQL Hive](https://the-guild.dev/graphql/hive), an open source schema registry. Some of the [new features recently released to Hive](https://the-guild.dev/blog/tag/graphql-hive), such as the [schema policy feature](https://the-guild.dev/blog/hive-introducing-schema-policy), enable organizations to enforce best practices and schema rules across many different teams automatically.
+In discussing larger-scale usage of GraphQL, The Guild participants referenced
+some of their work helping large teams manage GraphQL APIs using workflows and
+tools using tools such as [GraphQL Hive](https://the-guild.dev/graphql/hive), an
+open source schema registry. Some of the
+[new features recently released to Hive](https://the-guild.dev/blog/tag/graphql-hive),
+such as the
+[schema policy feature](https://the-guild.dev/blog/hive-introducing-schema-policy),
+enable organizations to enforce best practices and schema rules across many
+different teams automatically.
## Community Stewardship and Future Collaborations
-The Guild team acknowledged the importance of community contributions and discussed their efforts to improve and simplify the [GraphQL community website](/), and emphasized the importance of fostering a vibrant and inclusive GraphQL community. The Q&A session with The Guild offered a wealth of knowledge and insights into the world of GraphQL. Furthermore, the session highlighted areas for improvement and opportunities for community members to contribute. For more information check out [The Guild’s projects](https://the-guild.dev/#platform) and [blog](https://the-guild.dev/blog) and our [GraphQL official community page](https://graphql.org/community).
-
-As the GraphQL ecosystem continues to evolve, sessions like these provide valuable guidance and foster a sense of community among developers, paving the way for innovation and growth in our exciting ecosystem. Please [join us on June 28](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=N25ycGVoaXViOHZxdXFzN3Y5dWNiaGY2OGsgbGludXhmb3VuZGF0aW9uLm9yZ19pazc5dDl1dWoycDMyaTNyMjAzZGd2NW1vOEBn&tmsrc=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com) for our next [Discord Q&A](http://discord.graphql.org) session featuring engineering leaders from Hasura.
+The Guild team acknowledged the importance of community contributions and
+discussed their efforts to improve and simplify the
+[GraphQL community website](/), and emphasized the importance of fostering a
+vibrant and inclusive GraphQL community. The Q&A session with The Guild offered
+a wealth of knowledge and insights into the world of GraphQL. Furthermore, the
+session highlighted areas for improvement and opportunities for community
+members to contribute. For more information check out
+[The Guild’s projects](https://the-guild.dev/#platform) and
+[blog](https://the-guild.dev/blog) and our
+[GraphQL official community page](https://graphql.org/community).
+
+As the GraphQL ecosystem continues to evolve, sessions like these provide
+valuable guidance and foster a sense of community among developers, paving the
+way for innovation and growth in our exciting ecosystem. Please
+[join us on June 28](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=N25ycGVoaXViOHZxdXFzN3Y5dWNiaGY2OGsgbGludXhmb3VuZGF0aW9uLm9yZ19pazc5dDl1dWoycDMyaTNyMjAzZGd2NW1vOEBn&tmsrc=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com)
+for our next [Discord Q&A](http://discord.graphql.org) session featuring
+engineering leaders from Hasura.
diff --git a/src/pages/blog/2023-07-06-youtube-updated.mdx b/src/pages/blog/2023-07-06-youtube-updated.mdx
index 0d63a8bd8d..0fe5952755 100644
--- a/src/pages/blog/2023-07-06-youtube-updated.mdx
+++ b/src/pages/blog/2023-07-06-youtube-updated.mdx
@@ -5,9 +5,19 @@ date: 2023-07-06
byline: Jory Burson
---
-Have you been missing out on recent GraphQL Working Group meetings? Want to catch up on the latest conversations about Incremental Delivery, GraphQL over HTTP, and Input Unions?
-Thanks to [Benjie Gillam](https://github.com/benjie), now you can!
+Have you been missing out on recent GraphQL Working Group meetings? Want to
+catch up on the latest conversations about Incremental Delivery, GraphQL over
+HTTP, and Input Unions? Thanks to [Benjie Gillam](https://github.com/benjie),
+now you can!
-Benjie has done the onerous job of updating the GraphQL Foundation’s YouTube playlists with all the latest recordings of GraphQL Working Group meetings, which are now available for you to view here: https://youtube.com/@GraphQLFoundation/playlists
+Benjie has done the onerous job of updating the GraphQL Foundation’s YouTube
+playlists with all the latest recordings of GraphQL Working Group meetings,
+which are now available for you to view here:
+https://youtube.com/@GraphQLFoundation/playlists
-GraphQL technical working group meetings are open to the public, and can be found on our calendar at https://calendar.graphql.org. Community members can subscribe to the whole calendar or to a specific meeting series for personal updates. For those who can’t make it, we encourage you to [subscribe to the YouTube channel](https://youtube.com/@GraphQLFoundation) to get notified when working group meetings are posted.
+GraphQL technical working group meetings are open to the public, and can be
+found on our calendar at https://calendar.graphql.org. Community members can
+subscribe to the whole calendar or to a specific meeting series for personal
+updates. For those who can’t make it, we encourage you to
+[subscribe to the YouTube channel](https://youtube.com/@GraphQLFoundation) to
+get notified when working group meetings are posted.
diff --git a/src/pages/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering.mdx b/src/pages/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering.mdx
index 748524185b..6ee3af67a7 100644
--- a/src/pages/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering.mdx
+++ b/src/pages/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering.mdx
@@ -5,113 +5,229 @@ date: 2023-08-01
byline: Jamie Barton
---
-As the adage goes, unity is strength. The premier GraphQL EU "unconference", held in Berlin, is a testament to this belief. This phenomenal event was the result of immense collaboration between various companies and providers within our vibrant ecosystem. The partnership among these key players, backed by the tireless efforts of the [GraphQL Foundation](/foundation/), truly highlighted the strength of our community and the unity we foster.
-
-Such dedication from all corners reinforces our commitment to growing and strengthening the global GraphQL community. We understand that a robust community is not built on grand events alone, but through localized meetups and smaller gatherings that allow enthusiasts and experts to exchange knowledge and ideas on a more intimate level.
-
-To that end, we encourage and are excited to support local contributors eager to organize GraphQL meetups. A shining example of a successful local event was the recent gathering in Amsterdam, which saw a vibrant mix of participants sharing their GraphQL journeys, learning from each other, and expanding their networks. Now, with the backing of the GraphQL Foundation, anyone with the zeal and passion to bring the GraphQL community together at a local level can do so with our full support.
+As the adage goes, unity is strength. The premier GraphQL EU "unconference",
+held in Berlin, is a testament to this belief. This phenomenal event was the
+result of immense collaboration between various companies and providers within
+our vibrant ecosystem. The partnership among these key players, backed by the
+tireless efforts of the [GraphQL Foundation](/foundation/), truly highlighted
+the strength of our community and the unity we foster.
+
+Such dedication from all corners reinforces our commitment to growing and
+strengthening the global GraphQL community. We understand that a robust
+community is not built on grand events alone, but through localized meetups and
+smaller gatherings that allow enthusiasts and experts to exchange knowledge and
+ideas on a more intimate level.
+
+To that end, we encourage and are excited to support local contributors eager to
+organize GraphQL meetups. A shining example of a successful local event was the
+recent gathering in Amsterdam, which saw a vibrant mix of participants sharing
+their GraphQL journeys, learning from each other, and expanding their networks.
+Now, with the backing of the GraphQL Foundation, anyone with the zeal and
+passion to bring the GraphQL community together at a local level can do so with
+our full support.
## GraphQL EU
![Promotional banner promoting the date, time and place for GraphQL EU](/img/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering/banner.jpg)
-The "unconference" format encourages an open dialogue; it provides a platform for all participants to express their ideas, facilitating enriching discussions about their daily experiences with GraphQL, both the victories and the challenges.
+The "unconference" format encourages an open dialogue; it provides a platform
+for all participants to express their ideas, facilitating enriching discussions
+about their daily experiences with GraphQL, both the victories and the
+challenges.
-After everyone had gathered and invigorated themselves with coffee and croissants (it was a tad too early for currywurst), we proceeded to convene in the main hall.
+After everyone had gathered and invigorated themselves with coffee and
+croissants (it was a tad too early for currywurst), we proceeded to convene in
+the main hall.
### The Day
-The day kicked off with brief presentations from all sponsors - [Mirumee Software](https://mirumee.com/), [The Guild Software](https://the-guild.dev/), [Stellate](https://stellate.co/), [Saleor Commerce](https://saleor.io/), [Hasura](https://hasura.io/), [Escape](https://escape.tech/). Far from being standard sponsor speeches, each speaker conveyed an inspiring experience that would later spark a day brimming with engaging discussions.
+The day kicked off with brief presentations from all sponsors -
+[Mirumee Software](https://mirumee.com/),
+[The Guild Software](https://the-guild.dev/), [Stellate](https://stellate.co/),
+[Saleor Commerce](https://saleor.io/), [Hasura](https://hasura.io/),
+[Escape](https://escape.tech/). Far from being standard sponsor speeches, each
+speaker conveyed an inspiring experience that would later spark a day brimming
+with engaging discussions.
-After the sponsor presentations concluded, [Van Riper](https://twitter.com/vanriper) did an outstanding job outlining the subsequent plan of action, ensuring we kept to the allocated timetable!
+After the sponsor presentations concluded,
+[Van Riper](https://twitter.com/vanriper) did an outstanding job outlining the
+subsequent plan of action, ensuring we kept to the allocated timetable!
-Each participant was given a card to jot down their discussion topic, followed by a 20-second slot on stage to present it. Once we deciphered the correct usage of sticky tape, these cards were affixed to the whiteboards. This interactive activity essentially laid down the structure for the remainder of the day's events.
+Each participant was given a card to jot down their discussion topic, followed
+by a 20-second slot on stage to present it. Once we deciphered the correct usage
+of sticky tape, these cards were affixed to the whiteboards. This interactive
+activity essentially laid down the structure for the remainder of the day's
+events.
![A whiteboard of attendee-provided topics for discussion](/img/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering/whiteboard.jpg)
### Round 1
-The moment had come to choose a topic and dive right in! We were allocated approximately an hour to join a section of the hall for in-depth topic discussions.
+The moment had come to choose a topic and dive right in! We were allocated
+approximately an hour to join a section of the hall for in-depth topic
+discussions.
-Given the multitude of subjects presented on various whiteboards, selecting just one posed quite a challenge.
+Given the multitude of subjects presented on various whiteboards, selecting just
+one posed quite a challenge.
-I chose to participate in the conversation at location **R1/D**, which encompassed three related topics:
+I chose to participate in the conversation at location **R1/D**, which
+encompassed three related topics:
1. **Enhancing the GraphQL Developer Experience**
2. **Simplifying GraphQL Servers (with a gateway)**
3. **Identifying missing elements in GraphQL Developer Tooling**
-Even though the discussion adhered to the set time limit, it undoubtedly contained a wealth of material.
-
-The primary conclusion drawn from this conversation was the pressing need for additional standards, or even better, detailed specifications for GraphQL implementation on both the server and client side. Developers frequently find themselves reapplying identical logic across different languages due to a lack of standardization. This often results in using one language as a foundation for the next.
-
-However, if there's a deviation from the original, it could negatively impact the developer experience, especially for those working with numerous languages across different stacks.
-
-Creating a specification doesn't have to be a complex process, nor does it need the sanction of anyone to be beneficial. Several years ago, [Jayden Seric](https://github.com/jaydenseric/graphql-multipart-request-spec) introduced the GraphQL multipart request specification. Anyone who is implementing multipart uploads will appreciate the guidance and insights offered by such a singular specification, allowing developers to concentrate on the tasks of building and delivering their applications.
-
-During the first round's intermission, I had the chance to observe Uri Goldshtein guiding the Beyond GraphQL group. This intriguing dialogue explored how GraphQL's concepts could be integrated with other tools and standards, including OpenAPI and gRPC. The group also pondered over the existing divide and potential ways to bridge these specifications, aiming for a more unified landscape where the right tool can be chosen for the job.
-
-The discussion, under Uri's skillful moderation, took an exciting turn as they probed the potential for repurposing existing APIs using GraphQL by means of automation. Numerous organizations and tools like GraphQL Mesh, Grafbase, SOFA, Hasura, and Wundergraph are already navigating these waters. They invite and appreciate the participation of anyone interested in contributing to this evolving domain through open-source projects.
-
-In his concluding remarks, Uri underscored, "The moment has arrived for the discourse within the GraphQL ecosystem to evolve beyond the 'GraphQL vs. REST' debate. Instead, we should focus on how we can apply GraphQL's robust features to enrich other existing APIs."
+Even though the discussion adhered to the set time limit, it undoubtedly
+contained a wealth of material.
+
+The primary conclusion drawn from this conversation was the pressing need for
+additional standards, or even better, detailed specifications for GraphQL
+implementation on both the server and client side. Developers frequently find
+themselves reapplying identical logic across different languages due to a lack
+of standardization. This often results in using one language as a foundation for
+the next.
+
+However, if there's a deviation from the original, it could negatively impact
+the developer experience, especially for those working with numerous languages
+across different stacks.
+
+Creating a specification doesn't have to be a complex process, nor does it need
+the sanction of anyone to be beneficial. Several years ago,
+[Jayden Seric](https://github.com/jaydenseric/graphql-multipart-request-spec)
+introduced the GraphQL multipart request specification. Anyone who is
+implementing multipart uploads will appreciate the guidance and insights offered
+by such a singular specification, allowing developers to concentrate on the
+tasks of building and delivering their applications.
+
+During the first round's intermission, I had the chance to observe Uri
+Goldshtein guiding the Beyond GraphQL group. This intriguing dialogue explored
+how GraphQL's concepts could be integrated with other tools and standards,
+including OpenAPI and gRPC. The group also pondered over the existing divide and
+potential ways to bridge these specifications, aiming for a more unified
+landscape where the right tool can be chosen for the job.
+
+The discussion, under Uri's skillful moderation, took an exciting turn as they
+probed the potential for repurposing existing APIs using GraphQL by means of
+automation. Numerous organizations and tools like GraphQL Mesh, Grafbase, SOFA,
+Hasura, and Wundergraph are already navigating these waters. They invite and
+appreciate the participation of anyone interested in contributing to this
+evolving domain through open-source projects.
+
+In his concluding remarks, Uri underscored, "The moment has arrived for the
+discourse within the GraphQL ecosystem to evolve beyond the 'GraphQL vs. REST'
+debate. Instead, we should focus on how we can apply GraphQL's robust features
+to enrich other existing APIs."
### Round 2
-Choosing the next discussion to attend proved to be quite a difficult task that saw me staring at a board of topic cards longer than I would like to admit. I was torn between the following topics:
+Choosing the next discussion to attend proved to be quite a difficult task that
+saw me staring at a board of topic cards longer than I would like to admit. I
+was torn between the following topics:
- **Relay**
- **Federation in Practice / Combining and Extending GraphQL APIs**
-Given my day-to-day role involves guiding and assisting developers to excel in extending GraphQL APIs with [Grafbase](https://grafbase.com), I felt a strong inclination towards this topic. However, my intuition, coupled with the palpable growing support for Relay, guided my decision in the end.
+Given my day-to-day role involves guiding and assisting developers to excel in
+extending GraphQL APIs with [Grafbase](https://grafbase.com), I felt a strong
+inclination towards this topic. However, my intuition, coupled with the palpable
+growing support for Relay, guided my decision in the end.
-Hearing from [Denis Badurina](https://twitter.com/enisdenjo), [Marion Schleifer](https://twitter.com/rubydwarf), [Stephan Schneider](https://twitter.com/zcei_GER), and others about their experiences with Relay was enlightening.
+Hearing from [Denis Badurina](https://twitter.com/enisdenjo),
+[Marion Schleifer](https://twitter.com/rubydwarf),
+[Stephan Schneider](https://twitter.com/zcei_GER), and others about their
+experiences with Relay was enlightening.
-I openly admitted to the group that it had been several years since my last encounter with Relay (which, admittedly, was not entirely successful), but I was eager to understand the current usage patterns and share some of the narratives I've come across in my GraphQL journey regarding why developers often don't select Relay as their first choice.
+I openly admitted to the group that it had been several years since my last
+encounter with Relay (which, admittedly, was not entirely successful), but I was
+eager to understand the current usage patterns and share some of the narratives
+I've come across in my GraphQL journey regarding why developers often don't
+select Relay as their first choice.
-As the session neared its end, it became evident that there were some common reasons why Relay wasn't the first choice for developers:
+As the session neared its end, it became evident that there were some common
+reasons why Relay wasn't the first choice for developers:
-- A perceived steep learning curve, mainly resulting from the mental model shift surrounding components and data dependencies.
+- A perceived steep learning curve, mainly resulting from the mental model shift
+ surrounding components and data dependencies.
- Setting up the compiler configuration was frequently a tedious task.
**Interestingly, those developers who do use Relay are indeed very fond of it!**
### Round 3
-As the day was nearing its conclusion, it was time to choose a topic that would potentially ignite conversations even during the evening reception drinks. And I must say, I certainly opted for such a topic!
+As the day was nearing its conclusion, it was time to choose a topic that would
+potentially ignite conversations even during the evening reception drinks. And I
+must say, I certainly opted for such a topic!
-The subject at **R3/C** centred around **the role of GraphQL in the era of TRPC and RSC**. I commend [Bogdan](https://twitter.com/soarebo) for his audacity to bring up such a contentious topic. But then again, we were at a GraphQL event, so the reactions wouldn't have been as fiery as they would have been if this topic had emerged on a tweet.
+The subject at **R3/C** centred around **the role of GraphQL in the era of TRPC
+and RSC**. I commend [Bogdan](https://twitter.com/soarebo) for his audacity to
+bring up such a contentious topic. But then again, we were at a GraphQL event,
+so the reactions wouldn't have been as fiery as they would have been if this
+topic had emerged on a tweet.
-All participants were given the opportunity to express their opinions and explain why the topic stirred up so much controversy. [Uri Goldshtein](https://twitter.com/UriGoldshtein) introduced some impressive open source projects within the community, particularly [Garph](https://garph.dev/)/[GQty](https://gqty.dev/), which aim to close the gap and simplify the process of generating types for end-to-end type safety.
+All participants were given the opportunity to express their opinions and
+explain why the topic stirred up so much controversy.
+[Uri Goldshtein](https://twitter.com/UriGoldshtein) introduced some impressive
+open source projects within the community, particularly
+[Garph](https://garph.dev/)/[GQty](https://gqty.dev/), which aim to close the
+gap and simplify the process of generating types for end-to-end type safety.
-The omnipresence of React is no secret. Its adoption is surging across the board, a trend further amplified by the significant influence that Next.js has exerted within the ecosystem.
+The omnipresence of React is no secret. Its adoption is surging across the
+board, a trend further amplified by the significant influence that Next.js has
+exerted within the ecosystem.
> [State of JavaScript 2022: Front-end Frameworks](https://2022.stateofjs.com/en-US/libraries/front-end-frameworks)
-It's also well-known that the rise of Next.js and RSC is stirring up numerous concerns and questions, and encountering some challenges, as it propels the community forward with their runtime implementation of **React Server Components**. I believe GraphQL is also at a crossroads, trying to determine its ideal niche within this evolving React ecosystem.
+It's also well-known that the rise of Next.js and RSC is stirring up numerous
+concerns and questions, and encountering some challenges, as it propels the
+community forward with their runtime implementation of **React Server
+Components**. I believe GraphQL is also at a crossroads, trying to determine its
+ideal niche within this evolving React ecosystem.
-However, it's crucial to remember that while React and Next.js are prevalent choices, there are many other languages and frameworks that can leverage GraphQL. As a community, we sometimes overlook these alternatives.
+However, it's crucial to remember that while React and Next.js are prevalent
+choices, there are many other languages and frameworks that can leverage
+GraphQL. As a community, we sometimes overlook these alternatives.
-If you haven't yet used [Houdini GraphQL](https://www.houdinigraphql.com) and Svelte, you're in for a treat. Houdini offers a refreshing approach to constructing type-safe web applications powered by GraphQL.
+If you haven't yet used [Houdini GraphQL](https://www.houdinigraphql.com) and
+Svelte, you're in for a treat. Houdini offers a refreshing approach to
+constructing type-safe web applications powered by GraphQL.
-Overall, it seemed that GraphQL was continuing to expand, but its applications were shifting. Developers who are building web and mobile applications seem to be moving towards simpler routing mechanisms, like Tanstack and React Router, coupled with Relay for client-side data loading and caching.
+Overall, it seemed that GraphQL was continuing to expand, but its applications
+were shifting. Developers who are building web and mobile applications seem to
+be moving towards simpler routing mechanisms, like Tanstack and React Router,
+coupled with Relay for client-side data loading and caching.
## Key Insights from GraphQL EU
-While I couldn't be part of every conversation, a myriad of topics were undoubtedly discussed during the reception after-party, and even the after-after-party.
+While I couldn't be part of every conversation, a myriad of topics were
+undoubtedly discussed during the reception after-party, and even the
+after-after-party.
Below are the main insights I jotted down in my Notes App throughout the day:
-- Despite its initial complexity and paradigm shift, Relay is increasingly adopted by those with more GraphQL experience, especially due to its ability to co-locate fragments with their respective components.
-- While tRPC is attractive, not all companies have total control over their tech stacks and rely on external GraphQL APIs. Consequently, more developers are utilizing gateway or federation methods to integrate these APIs.
-- Ensuring GraphQL APIs are versionless is vital for mobile applications to function smoothly, given users frequently lag in updating their apps.
-- For SPAs or mobile apps, where client fetching is preferable, GraphQL still offers a superior experience. React Server Components (RSC), particularly with Next.js, doesn't provide much scope for GraphQL, and that's acceptable.
-- For server-rendered applications, GraphQL remains a viable choice. As a simple function or network call, it can facilitate integration with multiple APIs more efficiently than having to install numerous SDKs.
+- Despite its initial complexity and paradigm shift, Relay is increasingly
+ adopted by those with more GraphQL experience, especially due to its ability
+ to co-locate fragments with their respective components.
+- While tRPC is attractive, not all companies have total control over their tech
+ stacks and rely on external GraphQL APIs. Consequently, more developers are
+ utilizing gateway or federation methods to integrate these APIs.
+- Ensuring GraphQL APIs are versionless is vital for mobile applications to
+ function smoothly, given users frequently lag in updating their apps.
+- For SPAs or mobile apps, where client fetching is preferable, GraphQL still
+ offers a superior experience. React Server Components (RSC), particularly with
+ Next.js, doesn't provide much scope for GraphQL, and that's acceptable.
+- For server-rendered applications, GraphQL remains a viable choice. As a simple
+ function or network call, it can facilitate integration with multiple APIs
+ more efficiently than having to install numerous SDKs.
## What's next for GraphQL?
-As significant as this event was, we are set to surpass it with the official [GraphQL Conf](https://graphql.org/conf), scheduled for September 19-21 in San Francisco. If you thought this event was insightful, I guarantee you that the upcoming conference is going to be a game-changer!
+As significant as this event was, we are set to surpass it with the official
+[GraphQL Conf](https://graphql.org/conf), scheduled for September 19-21 in San
+Francisco. If you thought this event was insightful, I guarantee you that the
+upcoming conference is going to be a game-changer!
-You wouldn't want to miss out, so grab your tickets soon! I look forward to seeing many familiar faces and meeting new ones at the conference.
+You wouldn't want to miss out, so grab your tickets soon! I look forward to
+seeing many familiar faces and meeting new ones at the conference.
- [Buy a Ticket!](/conf/2023#attend)
- [See the schedule](/conf/2023/schedule)
@@ -119,6 +235,9 @@ You wouldn't want to miss out, so grab your tickets soon! I look forward to seei
## Get involved
-Though the aforementioned reflections encapsulate my journey, I encourage you to contribute your unique experiences to our collective narrative. [Connect with us on Discord](https://discord.graphql.org) and enrich the GraphQL community with your insights.
+Though the aforementioned reflections encapsulate my journey, I encourage you to
+contribute your unique experiences to our collective narrative.
+[Connect with us on Discord](https://discord.graphql.org) and enrich the GraphQL
+community with your insights.
See you in San Francisco!
diff --git a/src/pages/blog/2023-08-24-announcing-the-schedule-for-graphqlconf.mdx b/src/pages/blog/2023-08-24-announcing-the-schedule-for-graphqlconf.mdx
index 8f5cddcb02..b8b996c55a 100644
--- a/src/pages/blog/2023-08-24-announcing-the-schedule-for-graphqlconf.mdx
+++ b/src/pages/blog/2023-08-24-announcing-the-schedule-for-graphqlconf.mdx
@@ -5,35 +5,79 @@ date: 2023-08-24
byline: Jory Burson
---
-_The inaugural event for the GraphQL Foundation, GraphQLConf, delivers the best GraphQL content available._
-
-**SAN FRANCISCO, August 24, 2023** – The GraphQL Foundation, dedicated to promoting widespread adoption and accelerating development of the surrounding ecosystem, today announced the schedule for [GraphQLConf 2023](https://graphql.org/conf/). The conference will be held in the San Francisco Bay area, CA, September 19-21, 2023.
-
-GraphQLConf brings together the creators of some of the most important technologies behind GraphQL. Speakers from a wide range of organizations working with GraphQL at enterprise scale will share their experience, insights and knowledge as they discuss the challenges facing the growing GraphQL ecosystem. The program was developed by a community-led committee, which selected over 60 sessions after an open CFP that produced a large and diverse set of submissions that span topics from technical challenges and deep dives to end-user stories and introductory content.
-
-“This event is a truly special moment for the GraphQL community,” said Lee Byron, Co-creator of GraphQL and Executive Director of the GraphQL Foundation. “GraphQLConf is the only vendor-agnostic, community-focused conference for developers. We’re thrilled to bring everyone together and celebrate big milestones for our projects and the spec.”
-
-The GraphQLConf community-curated [schedule](https://graphql.org/conf/schedule/) will feature talks from leaders in the industry, and will focus on the most important and relevant topics facing the ecosystem, such as new specifications and features, GraphQL Gateways, GraphQL Security, interoperability between GraphQL and other API protocols, Generative AI and GraphQL performance, caching and no-code tools.
-
-Keynote sessions from developer-entrepreneurs Idit Levine, Marc-Andre Giroux, Tanmai Gopal, and Theo Browne will be featured, along with workshops and breakout sessions on using GraphQL across tech stacks, languages, and deployment technologies. There will also be community-driven unconference sessions held on Sept. 19.
+_The inaugural event for the GraphQL Foundation, GraphQLConf, delivers the best
+GraphQL content available._
+
+**SAN FRANCISCO, August 24, 2023** – The GraphQL Foundation, dedicated to
+promoting widespread adoption and accelerating development of the surrounding
+ecosystem, today announced the schedule for
+[GraphQLConf 2023](https://graphql.org/conf/). The conference will be held in
+the San Francisco Bay area, CA, September 19-21, 2023.
+
+GraphQLConf brings together the creators of some of the most important
+technologies behind GraphQL. Speakers from a wide range of organizations working
+with GraphQL at enterprise scale will share their experience, insights and
+knowledge as they discuss the challenges facing the growing GraphQL ecosystem.
+The program was developed by a community-led committee, which selected over 60
+sessions after an open CFP that produced a large and diverse set of submissions
+that span topics from technical challenges and deep dives to end-user stories
+and introductory content.
+
+“This event is a truly special moment for the GraphQL community,” said Lee
+Byron, Co-creator of GraphQL and Executive Director of the GraphQL Foundation.
+“GraphQLConf is the only vendor-agnostic, community-focused conference for
+developers. We’re thrilled to bring everyone together and celebrate big
+milestones for our projects and the spec.”
+
+The GraphQLConf community-curated [schedule](https://graphql.org/conf/schedule/)
+will feature talks from leaders in the industry, and will focus on the most
+important and relevant topics facing the ecosystem, such as new specifications
+and features, GraphQL Gateways, GraphQL Security, interoperability between
+GraphQL and other API protocols, Generative AI and GraphQL performance, caching
+and no-code tools.
+
+Keynote sessions from developer-entrepreneurs Idit Levine, Marc-Andre Giroux,
+Tanmai Gopal, and Theo Browne will be featured, along with workshops and
+breakout sessions on using GraphQL across tech stacks, languages, and deployment
+technologies. There will also be community-driven unconference sessions held on
+Sept. 19.
## Registration
-GraphQLConf will be held at the Hyatt Regency SFO September 19-21 and registration is open at https://graphql.org/conf. Attendees are encouraged to [register](https://graphql.org/conf/#attend) for in-person attendance by September 4 before prices increase.
+GraphQLConf will be held at the Hyatt Regency SFO September 19-21 and
+registration is open at https://graphql.org/conf. Attendees are encouraged to
+[register](https://graphql.org/conf/#attend) for in-person attendance by
+September 4 before prices increase.
## Thank You to Our Sponsors
-GraphQLConf is made possible with support from our Diamond Sponsors: [Hasura](https://hasura.io), [Postman](https://postman.com), and [The Guild](https://the-guild.dev), Platinum Sponsors: [Hygraph](https://hygraph.com) and [Solo.io](https://solo.io), and Gold Sponsors: [StepZen](https://stepzen.com), [Inigo](https://inigo.io), and [The Graph](https://thegraph.com).
+GraphQLConf is made possible with support from our Diamond Sponsors:
+[Hasura](https://hasura.io), [Postman](https://postman.com), and
+[The Guild](https://the-guild.dev), Platinum Sponsors:
+[Hygraph](https://hygraph.com) and [Solo.io](https://solo.io), and Gold
+Sponsors: [StepZen](https://stepzen.com), [Inigo](https://inigo.io), and
+[The Graph](https://thegraph.com).
## About the GraphQL Foundation
-The GraphQL Foundation is a neutral foundation founded by global technology and application development companies. The GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for GraphQL.
+The GraphQL Foundation is a neutral foundation founded by global technology and
+application development companies. The GraphQL Foundation encourages
+contributions, stewardship, and a shared investment from a broad group in
+vendor-neutral events, documentation, tools, and support for GraphQL.
-GraphQL was created in 2012 and open sourced by Facebook in 2015. In 2019, Facebook and others created the GraphQL Foundation as a neutral, non-profit home for the GraphQL assets and ongoing collaboration, and hosted by The Linux Foundation. The GraphQL Foundation is a fully neutral home for the GraphQL trademark, and provides a means of collecting and distributing membership dues to support core community infrastructure and programs. For more information about the GraphQL Foundation, please visit https://graphql.org.
+GraphQL was created in 2012 and open sourced by Facebook in 2015. In 2019,
+Facebook and others created the GraphQL Foundation as a neutral, non-profit home
+for the GraphQL assets and ongoing collaboration, and hosted by The Linux
+Foundation. The GraphQL Foundation is a fully neutral home for the GraphQL
+trademark, and provides a means of collecting and distributing membership dues
+to support core community infrastructure and programs. For more information
+about the GraphQL Foundation, please visit https://graphql.org.
---
-The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page. Linux is a registered trademark of Linus Torvalds.
+The Linux Foundation has registered trademarks and uses trademarks. For a list
+of trademarks of The Linux Foundation, please see our trademark usage page.
+Linux is a registered trademark of Linus Torvalds.
Media Contact
diff --git a/src/pages/blog/2024-01-17-announcing-grant-awardees.mdx b/src/pages/blog/2024-01-17-announcing-grant-awardees.mdx
index 07b7295dda..86eafc9312 100644
--- a/src/pages/blog/2024-01-17-announcing-grant-awardees.mdx
+++ b/src/pages/blog/2024-01-17-announcing-grant-awardees.mdx
@@ -1,40 +1,118 @@
---
-title: "Announcing the GraphQL Foundation's Grant Awardees: Benefitting a GraphQL Ecosystem for All"
+title:
+ "Announcing the GraphQL Foundation's Grant Awardees: Benefitting a GraphQL
+ Ecosystem for All"
tags: ["blog"]
date: 2024-01-17
byline: Jory Burson and Benjie Gillam
---
-We are thrilled to announce the recipients of grants from the GraphQL Foundation, which were selected from an application process initiated in late 2022. Awardees were selected after an extensive review and vote of the GraphQL TSC. These grant awards recognize and support important projects that advance GraphQL technologies, particularly in the realms of GraphQL over HTTP and the GraphQL Language Service Server.
+We are thrilled to announce the recipients of grants from the GraphQL
+Foundation, which were selected from an application process initiated in
+late 2022. Awardees were selected after an extensive review and vote of the
+GraphQL TSC. These grant awards recognize and support important projects that
+advance GraphQL technologies, particularly in the realms of GraphQL over HTTP
+and the GraphQL Language Service Server.
**Bolstering GraphQL over HTTP — Denis Badurina**
-The first grant has been awarded to a project focussed on increasing interoperability between the various implementations of GraphQL clients and servers using HTTP as the transport layer. The [GraphQL–over–HTTP subcommittee](https://github.com/graphql/graphql-over-http) was formed with the goal of writing a specification to increase interoperability between clients and servers that expose GraphQL schemas via HTTP endpoints. At a [recent GraphQL Working Group](https://github.com/graphql/graphql-wg/blob/main/notes/2023/2023-11.md#graphql-over-http-is-advancing-to-stage-2-5m-benjie), the GraphQL–over–HTTP spec was advanced to Stage 2 (Draft) status. This achievement was thanks in a large part to [Denis Badurina](https://github.com/enisdenjo)'s development and maintenance of the reference implementation of the GraphQL–over–HTTP specification: [graphql-http](https://github.com/graphql/graphql-http) and the associated [testing tool](https://graphql-http.com/). This tool can be used to test if any GraphQL API is compliant with the GraphQL–over–HTTP specification, no matter what language it is written in. Denis has worked tirelessly with maintainers of various servers to ensure that the tool, the server, and the specification are aligned.
-
-This grant will enable Denis to continue to invest into maintenance and development of this important project for GraphQL interoperability and collaboration. When informed he was to be a grant awardee, Denis said: "this is awesome news! I'll start by saying thank you. I am very humbled, excited and happy that my work has a worthwhile impact on the GraphQL ecosystem. Thank you for choosing me, I will continue doing my best."
+The first grant has been awarded to a project focussed on increasing
+interoperability between the various implementations of GraphQL clients and
+servers using HTTP as the transport layer. The
+[GraphQL–over–HTTP subcommittee](https://github.com/graphql/graphql-over-http)
+was formed with the goal of writing a specification to increase interoperability
+between clients and servers that expose GraphQL schemas via HTTP endpoints. At a
+[recent GraphQL Working Group](https://github.com/graphql/graphql-wg/blob/main/notes/2023/2023-11.md#graphql-over-http-is-advancing-to-stage-2-5m-benjie),
+the GraphQL–over–HTTP spec was advanced to Stage 2 (Draft) status. This
+achievement was thanks in a large part to
+[Denis Badurina](https://github.com/enisdenjo)'s development and maintenance of
+the reference implementation of the GraphQL–over–HTTP specification:
+[graphql-http](https://github.com/graphql/graphql-http) and the associated
+[testing tool](https://graphql-http.com/). This tool can be used to test if any
+GraphQL API is compliant with the GraphQL–over–HTTP specification, no matter
+what language it is written in. Denis has worked tirelessly with maintainers of
+various servers to ensure that the tool, the server, and the specification are
+aligned.
+
+This grant will enable Denis to continue to invest into maintenance and
+development of this important project for GraphQL interoperability and
+collaboration. When informed he was to be a grant awardee, Denis said: "this is
+awesome news! I'll start by saying thank you. I am very humbled, excited and
+happy that my work has a worthwhile impact on the GraphQL ecosystem. Thank you
+for choosing me, I will continue doing my best."
**Future–proofing the GraphQL Language Service Server — Rikki Schulte**
-The second grant recognizes a project that is vital for consumers of GraphQL. One of the most popular tools in the GraphQL toolbox is [GraphiQL](https://github.com/graphql/graphiql/blob/a80801970e095e493eb0fda7687766f103bf701e/packages/graphiql/README.md) — our in–browser IDE that enables exploring and querying a GraphQL API. It's often the first experience that potential users have with GraphQL, and very quickly helps them to "[grok](https://dictionary.cambridge.org/dictionary/english/grok)" some core concepts such as the built in documentation, type safety, and only receiving what you ask for. Underlying this beautifully simple interface is a powerful and complex combination of tools and libraries which also power other projects such as alternative GraphQL IDEs and code editor integrations. Key to this is the GraphQL Language Server and associated libraries.
-
-[Rikki Schulte](https://github.com/acao), one of the long term maintainers of GraphiQL and the associated projects, is the recipient of this second grant. The grant will support her to improve the stability and maintainability of the GraphQL Language Server by providing a more comprehensive end–to–end test suite which should enable an overhaul of its aging architecture. Building on the Language Server's existing schema–aware auto–complete, jump to definition, and real–time error feedback; the ultimate goal of the Language Server project is to give all GraphQL programmers access to advanced features such as support for more languages and sophisticated refactoring tools whilst keeping astride of advances to the GraphQL specification itself.
-
-What makes this project particularly exciting is its commitment to making GraphQL development more accessible and efficient. By providing tools that integrate seamlessly into existing development environments, Rikki hopes to lower the barrier to entry for new GraphQL developers and increase productivity for seasoned professionals. Rikki commented:
-
-"I'm thrilled to receive this grant, as it will help me to focus on improving the stability and maintainability of the LSP server and vscode reference implementation, so that we can refactor for improved performance and contributor experience, and to introduce new exciting features with greater confidence. I owe it all to the GraphQL community!"
+The second grant recognizes a project that is vital for consumers of GraphQL.
+One of the most popular tools in the GraphQL toolbox is
+[GraphiQL](https://github.com/graphql/graphiql/blob/a80801970e095e493eb0fda7687766f103bf701e/packages/graphiql/README.md)
+— our in–browser IDE that enables exploring and querying a GraphQL API. It's
+often the first experience that potential users have with GraphQL, and very
+quickly helps them to
+"[grok](https://dictionary.cambridge.org/dictionary/english/grok)" some core
+concepts such as the built in documentation, type safety, and only receiving
+what you ask for. Underlying this beautifully simple interface is a powerful and
+complex combination of tools and libraries which also power other projects such
+as alternative GraphQL IDEs and code editor integrations. Key to this is the
+GraphQL Language Server and associated libraries.
+
+[Rikki Schulte](https://github.com/acao), one of the long term maintainers of
+GraphiQL and the associated projects, is the recipient of this second grant. The
+grant will support her to improve the stability and maintainability of the
+GraphQL Language Server by providing a more comprehensive end–to–end test suite
+which should enable an overhaul of its aging architecture. Building on the
+Language Server's existing schema–aware auto–complete, jump to definition, and
+real–time error feedback; the ultimate goal of the Language Server project is to
+give all GraphQL programmers access to advanced features such as support for
+more languages and sophisticated refactoring tools whilst keeping astride of
+advances to the GraphQL specification itself.
+
+What makes this project particularly exciting is its commitment to making
+GraphQL development more accessible and efficient. By providing tools that
+integrate seamlessly into existing development environments, Rikki hopes to
+lower the barrier to entry for new GraphQL developers and increase productivity
+for seasoned professionals. Rikki commented:
+
+"I'm thrilled to receive this grant, as it will help me to focus on improving
+the stability and maintainability of the LSP server and vscode reference
+implementation, so that we can refactor for improved performance and contributor
+experience, and to introduce new exciting features with greater confidence. I
+owe it all to the GraphQL community!"
**A Commitment to Ecosystem and Community Growth**
-Both projects embody the GraphQL Foundation's commitment to open source and community–driven development. By supporting these initiatives, the foundation is not only investing in individual technologies but also in the broader GraphQL community. These grants will facilitate collaboration, knowledge sharing and innovation, fostering a vibrant ecosystem around GraphQL.
-
-In recognition of the work required to tend to such an ecosystem, the GraphQL Foundation together with the TSC has also funded [Benjie Gillam](https://github.com/benjie) to support the crucial “gardening” work that helps keep the GraphQL community moving forward, together. Benjie will continue to serve as our Community Manager in 2024 on contract with the Foundation, commenting:
-
-"It has been a joy and a privilege helping to cultivate the vibrant ecosystem of the GraphQL community, and this support from the GraphQL Foundation will help me to continue this work: welcoming new members, fostering collaboration across the Foundation's own projects and beyond, and helping the wheels of progress to keep turning smoothly. Thank you GraphQL community!"
+Both projects embody the GraphQL Foundation's commitment to open source and
+community–driven development. By supporting these initiatives, the foundation is
+not only investing in individual technologies but also in the broader GraphQL
+community. These grants will facilitate collaboration, knowledge sharing and
+innovation, fostering a vibrant ecosystem around GraphQL.
+
+In recognition of the work required to tend to such an ecosystem, the GraphQL
+Foundation together with the TSC has also funded
+[Benjie Gillam](https://github.com/benjie) to support the crucial “gardening”
+work that helps keep the GraphQL community moving forward, together. Benjie will
+continue to serve as our Community Manager in 2024 on contract with the
+Foundation, commenting:
+
+"It has been a joy and a privilege helping to cultivate the vibrant ecosystem of
+the GraphQL community, and this support from the GraphQL Foundation will help me
+to continue this work: welcoming new members, fostering collaboration across the
+Foundation's own projects and beyond, and helping the wheels of progress to keep
+turning smoothly. Thank you GraphQL community!"
**Looking Forward**
-As we celebrate the recipients of this year's grants, we also look forward to the impact their work will have on the GraphQL community and the tech industry at large. Their projects are not just about advancing individual technologies; they are about shaping the future of how we build and interact with GraphQL APIs.
+As we celebrate the recipients of this year's grants, we also look forward to
+the impact their work will have on the GraphQL community and the tech industry
+at large. Their projects are not just about advancing individual technologies;
+they are about shaping the future of how we build and interact with GraphQL
+APIs.
-The GraphQL Foundation is proud to support these talented individuals and teams, and we are excited to see their projects come to fruition. We believe their work will be instrumental in driving the next wave of innovation in GraphQL technology.
+The GraphQL Foundation is proud to support these talented individuals and teams,
+and we are excited to see their projects come to fruition. We believe their work
+will be instrumental in driving the next wave of innovation in GraphQL
+technology.
-Stay tuned for updates on these projects and their contributions to the GraphQL ecosystem. We are just at the beginning of a new chapter in GraphQL's story, and the best is yet to come!
+Stay tuned for updates on these projects and their contributions to the GraphQL
+ecosystem. We are just at the beginning of a new chapter in GraphQL's story, and
+the best is yet to come!
diff --git a/src/pages/blog/2024-01-23-graphql-tsc-election-results.mdx b/src/pages/blog/2024-01-23-graphql-tsc-election-results.mdx
index c8916a6aa9..2795be2281 100644
--- a/src/pages/blog/2024-01-23-graphql-tsc-election-results.mdx
+++ b/src/pages/blog/2024-01-23-graphql-tsc-election-results.mdx
@@ -5,30 +5,69 @@ date: 2024-01-23
byline: Jory Burson and Benjie Gillam
---
-We are pleased to announce the results of this year's GraphQL Technical Steering Committee (TSC) elections. Every year, five of the ten TSC seats are up for election, and this year has seen some changes in the committee lineup.
+We are pleased to announce the results of this year's GraphQL Technical Steering
+Committee (TSC) elections. Every year, five of the ten TSC seats are up for
+election, and this year has seen some changes in the committee lineup.
## Outgoing Member: Marc-André Giroux
-Firstly, we would like to extend our gratitude to [Marc-André Giroux](https://github.com/xuorig), who chose not to seek re–election this year. Marc-André has been a valuable member of the TSC, contributing significantly to the GraphQL ecosystem. We appreciate his dedication to the GraphQL Foundation!
+Firstly, we would like to extend our gratitude to
+[Marc-André Giroux](https://github.com/xuorig), who chose not to seek
+re–election this year. Marc-André has been a valuable member of the TSC,
+contributing significantly to the GraphQL ecosystem. We appreciate his
+dedication to the GraphQL Foundation!
## Continuing Members: Benjie Gillam, Ivan Goncharov, Matt Mohoney, and Michael Staib
-We are pleased to announce that the four other TSC members whose seats were up for election — [Benjie Gillam](https://github.com/benjie), [Ivan Goncharov](https://github.com/IvanGoncharov), [Matt Mohoney](https://github.com/mjmahone), and [Michael Staib](https://github.com/michaelstaib) — have been re–elected and will continue to serve on the TSC. Their ongoing commitment and expertise will undoubtedly contribute to the continued success of GraphQL.
+We are pleased to announce that the four other TSC members whose seats were up
+for election — [Benjie Gillam](https://github.com/benjie),
+[Ivan Goncharov](https://github.com/IvanGoncharov),
+[Matt Mohoney](https://github.com/mjmahone), and
+[Michael Staib](https://github.com/michaelstaib) — have been re–elected and will
+continue to serve on the TSC. Their ongoing commitment and expertise will
+undoubtedly contribute to the continued success of GraphQL.
## Welcoming Denis Badurina
-Joining the TSC this year is [Denis Badurina](https://github.com/enisdenjo), who will be filling the seat vacated by Marc-André Giroux. You may know Denis from his work on the `graphql-http` project, the reference implementation of GraphQL-over-HTTP and a test suite to help ensure compliance across all the servers in the ecosystem. Denis brings a wealth of experience and a fresh perspective to the committee, and we look forward to working with him to shape the future of GraphQL.
+Joining the TSC this year is [Denis Badurina](https://github.com/enisdenjo), who
+will be filling the seat vacated by Marc-André Giroux. You may know Denis from
+his work on the `graphql-http` project, the reference implementation of
+GraphQL-over-HTTP and a test suite to help ensure compliance across all the
+servers in the ecosystem. Denis brings a wealth of experience and a fresh
+perspective to the committee, and we look forward to working with him to shape
+the future of GraphQL.
## About the GraphQL TSC
-Composed of ten elected members and led by Executive Director Lee Byron, the [GraphQL Technical Steering Committee](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md) is responsible for technical oversight for all of the GraphQL Foundation's open source projects, both software and specifications. However, we believe in the power of collaboration and recognize that impactful contributions can come from all corners of our community. While the TSC plays a crucial role in overseeing the technical aspects of our projects, we want to emphasize that one doesn't need to be a TSC member to make a significant impact.
+Composed of ten elected members and led by Executive Director Lee Byron, the
+[GraphQL Technical Steering Committee](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md)
+is responsible for technical oversight for all of the GraphQL Foundation's open
+source projects, both software and specifications. However, we believe in the
+power of collaboration and recognize that impactful contributions can come from
+all corners of our community. While the TSC plays a crucial role in overseeing
+the technical aspects of our projects, we want to emphasize that one doesn't
+need to be a TSC member to make a significant impact.
-We actively encourage working groups to manage themselves autonomously, fostering a sense of ownership and innovation within each group. The TSC is here to provide support and guidance, and to perform administrative actions that cannot be delegated. We value the diverse talents and expertise within our community, and we believe that every individual has the potential to contribute meaningfully to the success of our projects.
+We actively encourage working groups to manage themselves autonomously,
+fostering a sense of ownership and innovation within each group. The TSC is here
+to provide support and guidance, and to perform administrative actions that
+cannot be delegated. We value the diverse talents and expertise within our
+community, and we believe that every individual has the potential to contribute
+meaningfully to the success of our projects.
## Expressing Gratitude
-We would like to express our gratitude to everyone who participated in the election process, especially the candidates who stepped forward — your involvement is vital to the success of the GraphQL ecosystem.
+We would like to express our gratitude to everyone who participated in the
+election process, especially the candidates who stepped forward — your
+involvement is vital to the success of the GraphQL ecosystem.
## Looking Ahead
-As we move forward, the GraphQL TSC remains dedicated to fostering collaboration, inclusivity, and technical excellence within the GraphQL community. We are excited about the future of GraphQL and the continued impact it will have on API development and beyond; if you're interested in helping us on this mission then [get involved in the GraphQL Working Group](https://github.com/graphql/graphql-wg/blob/main/JoiningAMeeting.md) and maybe even consider nominating yourself for a TSC position in the December election!
+As we move forward, the GraphQL TSC remains dedicated to fostering
+collaboration, inclusivity, and technical excellence within the GraphQL
+community. We are excited about the future of GraphQL and the continued impact
+it will have on API development and beyond; if you're interested in helping us
+on this mission then
+[get involved in the GraphQL Working Group](https://github.com/graphql/graphql-wg/blob/main/JoiningAMeeting.md)
+and maybe even consider nominating yourself for a TSC position in the December
+election!
diff --git a/src/pages/blog/2024-03-07-graphql-community-grant-refresh.mdx b/src/pages/blog/2024-03-07-graphql-community-grant-refresh.mdx
index 82632ddba1..c958058728 100644
--- a/src/pages/blog/2024-03-07-graphql-community-grant-refresh.mdx
+++ b/src/pages/blog/2024-03-07-graphql-community-grant-refresh.mdx
@@ -11,13 +11,12 @@ core projects!
## Improved process
-We've revamped the application process to accept submissions
-year-round, ensuring your innovative ideas get the attention they deserve
-promptly. Our focus is sharper than ever, with grants specifically aimed at
-projects tied closely to the GraphQL Foundation's efforts, including
-code and documentation contributions to [our repositories on
-GitHub](https://github.com/graphql) and enhancements to the
-[graphql.org](https://graphql.org) website.
+We've revamped the application process to accept submissions year-round,
+ensuring your innovative ideas get the attention they deserve promptly. Our
+focus is sharper than ever, with grants specifically aimed at projects tied
+closely to the GraphQL Foundation's efforts, including code and documentation
+contributions to [our repositories on GitHub](https://github.com/graphql) and
+enhancements to the [graphql.org](https://graphql.org) website.
Rather than our previous twice-annual review process, our new process will
perform basic appropriateness checks on a much higher cadence, and will pass
@@ -33,9 +32,10 @@ advocacy, or improving the user experience on our platforms, we're looking for
your unique contributions. Don't miss this chance to make an impact on the
GraphQL ecosystem.
-For a detailed overview of the grant scope, application guidelines, and how
-your project can contribute to the GraphQL community, we invite you to visit
+For a detailed overview of the grant scope, application guidelines, and how your
+project can contribute to the GraphQL community, we invite you to visit
[our dedicated program page](https://graphql.org/foundation/community-grant/).
-Join us in shaping the future of GraphQL; [apply
-today](https://graphql.org/foundation/community-grant/) and make your mark!
+Join us in shaping the future of GraphQL;
+[apply today](https://graphql.org/foundation/community-grant/) and make your
+mark!
diff --git a/src/pages/blog/2024-03-12-welcome-copilot.mdx b/src/pages/blog/2024-03-12-welcome-copilot.mdx
index 765613c616..88eb49f887 100644
--- a/src/pages/blog/2024-03-12-welcome-copilot.mdx
+++ b/src/pages/blog/2024-03-12-welcome-copilot.mdx
@@ -5,10 +5,21 @@ date: 2024-03-12
byline: Jory Burson
---
-We're thrilled to announce that Copilot Travel is now a General Member of the GraphQL Foundation. This partnership underscores our shared commitment to driving innovation and collaboration within the GraphQL ecosystem.
+We're thrilled to announce that Copilot Travel is now a General Member of the
+GraphQL Foundation. This partnership underscores our shared commitment to
+driving innovation and collaboration within the GraphQL ecosystem.
-With Copilot Travel's expertise in leveraging cutting-edge technologies to enhance the travel experience, their involvement will undoubtedly enrich our community. Together, we anticipate active participation in working groups, contributions to open-source projects, and collaborative efforts to advance GraphQL adoption across various industries.
+With Copilot Travel's expertise in leveraging cutting-edge technologies to
+enhance the travel experience, their involvement will undoubtedly enrich our
+community. Together, we anticipate active participation in working groups,
+contributions to open-source projects, and collaborative efforts to advance
+GraphQL adoption across various industries.
-At the GraphQL Foundation, we recognize the transformative power of collaboration in shaping the future of technology. With Copilot Travel on board, we're excited to embark on this journey of exploration and innovation, unlocking new possibilities for GraphQL in the connected travel industry.
+At the GraphQL Foundation, we recognize the transformative power of
+collaboration in shaping the future of technology. With Copilot Travel on board,
+we're excited to embark on this journey of exploration and innovation, unlocking
+new possibilities for GraphQL in the connected travel industry.
-Check out our Landscape to learn more about our [Member organizations](https://graphql.org/foundation/members/) and how other companies leverage GraphQL: https://landscape.graphql.org/
+Check out our Landscape to learn more about our
+[Member organizations](https://graphql.org/foundation/members/) and how other
+companies leverage GraphQL: https://landscape.graphql.org/
diff --git a/src/pages/blog/2024-03-28-announcing-graphqlconf-2024.mdx b/src/pages/blog/2024-03-28-announcing-graphqlconf-2024.mdx
index 3746a645b2..a59e328416 100644
--- a/src/pages/blog/2024-03-28-announcing-graphqlconf-2024.mdx
+++ b/src/pages/blog/2024-03-28-announcing-graphqlconf-2024.mdx
@@ -5,37 +5,77 @@ date: 2024-03-28
byline: GraphQL Conference & Event Committee
---
-Inviting innovators, decision-makers, and GraphQL aficionados alike! GraphQL Foundation are thrilled to announce the return of [GraphQLConf](/conf/2024), the much-anticipated official conference for anyone working with GraphQL. After a very successful inaugural conference last year, we are setting the stage for an even bigger event, returning once again to San Francisco — but this time to the heart of this vibrant city! Mark your calendars for September 10-12, 2024, as we invite you to join us at the stunning JW Marriott in San Francisco Union Square for a three-day celebration of learning, innovation, networking, and community.
+Inviting innovators, decision-makers, and GraphQL aficionados alike! GraphQL
+Foundation are thrilled to announce the return of [GraphQLConf](/conf/2024), the
+much-anticipated official conference for anyone working with GraphQL. After a
+very successful inaugural conference last year, we are setting the stage for an
+even bigger event, returning once again to San Francisco — but this time to the
+heart of this vibrant city! Mark your calendars for September 10-12, 2024, as we
+invite you to join us at the stunning JW Marriott in San Francisco Union Square
+for a three-day celebration of learning, innovation, networking, and community.
## 🌟 What To Expect?
-* **Production Insights:** Gain exclusive insights into how leading companies of all sizes are leveraging GraphQL to drive innovation, streamline operations, and enhance their tech stack's efficiency.
-* **Access to Innovators:** GraphQLConf offers a rare opportunity to meet the visionaries and maintainers behind GraphQL's groundbreaking projects. Engage with the minds shaping the future of API technology.
-* **Interactive Workshops:** By popular demand, we’re bringing back a dedicated hands-on workshop day, allowing you to dive deep into practical GraphQL applications and techniques firsthand.
-* **Diverse Perspectives:** If GraphQL is on your radar, this is the place to sharpen your understanding, evaluate its impact, and envision its role in your organization’s future. Whether you're CTO, architect, system integrator, API developer or frontend engineer, if it's about GraphQL, we want to hear from you!
-* **Prime Location:** We're moving from the outskirts to the beating heart of San Francisco! We’ll have the city's dynamic vibe as our backdrop, with plenty of space for gathering, meeting, and collaborating.
+- **Production Insights:** Gain exclusive insights into how leading companies of
+ all sizes are leveraging GraphQL to drive innovation, streamline operations,
+ and enhance their tech stack's efficiency.
+- **Access to Innovators:** GraphQLConf offers a rare opportunity to meet the
+ visionaries and maintainers behind GraphQL's groundbreaking projects. Engage
+ with the minds shaping the future of API technology.
+- **Interactive Workshops:** By popular demand, we’re bringing back a dedicated
+ hands-on workshop day, allowing you to dive deep into practical GraphQL
+ applications and techniques firsthand.
+- **Diverse Perspectives:** If GraphQL is on your radar, this is the place to
+ sharpen your understanding, evaluate its impact, and envision its role in your
+ organization’s future. Whether you're CTO, architect, system integrator, API
+ developer or frontend engineer, if it's about GraphQL, we want to hear from
+ you!
+- **Prime Location:** We're moving from the outskirts to the beating heart of
+ San Francisco! We’ll have the city's dynamic vibe as our backdrop, with plenty
+ of space for gathering, meeting, and collaborating.
## 🔭 Navigating API Innovation
-For technology leaders navigating the complexities of modern API architectures, GraphQLConf 2024 is more than just a conference. It's a strategic platform to foresee industry trends, meet the pioneers, and evaluate how GraphQL can fit into and enhance your technology strategy. Whether you're assessing GraphQL for your next project, looking to optimize existing infrastructures, or keen to foster innovation within your team, GraphQLConf promises a wealth of knowledge and networking opportunities to help steer your decisions in the right direction.
+For technology leaders navigating the complexities of modern API architectures,
+GraphQLConf 2024 is more than just a conference. It's a strategic platform to
+foresee industry trends, meet the pioneers, and evaluate how GraphQL can fit
+into and enhance your technology strategy. Whether you're assessing GraphQL for
+your next project, looking to optimize existing infrastructures, or keen to
+foster innovation within your team, GraphQLConf promises a wealth of knowledge
+and networking opportunities to help steer your decisions in the right
+direction.
## 📢 Call for Proposals (CFP) is OPEN!
-Do you have a big idea, a transformative project, or an insightful case study? We want you on our stage! [The CFP is officially open](/conf/2024), and we’re on the lookout for speakers who can bring fresh perspectives and valuable knowledge to our community. Don't miss this chance to showcase your expertise and contribute to the collective learning of the GraphQL ecosystem. Submit your proposal now—CFP closes on May 22, 2024, at 11:59 pm PDT.
+Do you have a big idea, a transformative project, or an insightful case study?
+We want you on our stage! [The CFP is officially open](/conf/2024), and we’re on
+the lookout for speakers who can bring fresh perspectives and valuable knowledge
+to our community. Don't miss this chance to showcase your expertise and
+contribute to the collective learning of the GraphQL ecosystem. Submit your
+proposal now—CFP closes on May 22, 2024, at 11:59 pm PDT.
## 🎟️ Snag Your Early Bird Tickets!
-Early birds get the worm, or in this case, the best deal on tickets! Early bird registration is open until May 22, offering you the chance to secure your spot at a special rate. Don't wait too long, though - we anticipate a sold-out event!
+Early birds get the worm, or in this case, the best deal on tickets! Early bird
+registration is open until May 22, offering you the chance to secure your spot
+at a special rate. Don't wait too long, though - we anticipate a sold-out event!
## 📅 Mark Your Calendars
-* **CFP Deadline:** May 22, 2024, at 11:59 pm PDT
-* **Early Bird Registration Ends:** May 22, 2024
-* **Schedule Announcement:** June 26, 2024
-* **Event Dates:** September 10-12, 2024
+- **CFP Deadline:** May 22, 2024, at 11:59 pm PDT
+- **Early Bird Registration Ends:** May 22, 2024
+- **Schedule Announcement:** June 26, 2024
+- **Event Dates:** September 10-12, 2024
## 🤝 Get Ready to Connect and Collaborate
-[GraphQLConf 2024](/conf/2024) is not just another tech conference; it's a gathering of diverse and vibrant community members who are passionate about pushing the boundaries of GraphQL and building the future of APIs together. Whether you're a seasoned GraphQL user, or just looking to understand how GraphQL can help your business, GraphQLConf is a can’t-miss opportunity to be part of this ecosystem.
+[GraphQLConf 2024](/conf/2024) is not just another tech conference; it's a
+gathering of diverse and vibrant community members who are passionate about
+pushing the boundaries of GraphQL and building the future of APIs together.
+Whether you're a seasoned GraphQL user, or just looking to understand how
+GraphQL can help your business, GraphQLConf is a can’t-miss opportunity to be
+part of this ecosystem.
-We can't wait to see you in San Francisco! Stay tuned for more updates, and don't forget to check out our conference page [here](/conf/2024) for the latest news and announcements.
+We can't wait to see you in San Francisco! Stay tuned for more updates, and
+don't forget to check out our conference page [here](/conf/2024) for the latest
+news and announcements.
diff --git a/src/pages/blog/2024-05-16-composite-schemas-announcement.mdx b/src/pages/blog/2024-05-16-composite-schemas-announcement.mdx
index 0b6949ae76..0e4e464afe 100644
--- a/src/pages/blog/2024-05-16-composite-schemas-announcement.mdx
+++ b/src/pages/blog/2024-05-16-composite-schemas-announcement.mdx
@@ -2,13 +2,49 @@
title: "Announcing the Composite Schemas Working Group"
tags: ["announcements"]
date: 2024-05-16
-byline: Jeff Auriemma, Benjie Gillam, Michael Staib, Kamil Kisiela, Praveen Durairaju
+byline:
+ Jeff Auriemma, Benjie Gillam, Michael Staib, Kamil Kisiela, Praveen Durairaju
---
-In 2019, Apollo introduced GraphQL Federation as a way of splitting the task of building a GraphQL schema along team boundaries. It proposed a compelling alternative to prior techniques such as schema stitching and delegation, focussing on addressing the collaboration problems inherent in building a coherent schema within a large organization. Federation clearly filled a need and was adopted widely by platform engineers and API developers, a compelling way to compose microservices into a single access layer while retaining service boundaries and team ownership. Solutions from other vendors arose, tackling the same problems in similar ways but with different trade-offs, and some of the world’s largest enterprises have adopted these various patterns and are betting on GraphQL to solve some of their biggest pain points.
+In 2019, Apollo introduced GraphQL Federation as a way of splitting the task of
+building a GraphQL schema along team boundaries. It proposed a compelling
+alternative to prior techniques such as schema stitching and delegation,
+focussing on addressing the collaboration problems inherent in building a
+coherent schema within a large organization. Federation clearly filled a need
+and was adopted widely by platform engineers and API developers, a compelling
+way to compose microservices into a single access layer while retaining service
+boundaries and team ownership. Solutions from other vendors arose, tackling the
+same problems in similar ways but with different trade-offs, and some of the
+world’s largest enterprises have adopted these various patterns and are betting
+on GraphQL to solve some of their biggest pain points.
-Adopting this style of collaboration has become a standard way of creating API platforms, with wide support from an array of vendors. Common patterns and best practices have been established around the various implementations and the underlying architecture has proven effective at scale. Today there are many approaches to collaborative GraphQL schema design, requiring different ways of defining the underlying schemas and composing the resulting architecture; for example Federation and Fusion take an approach that optimizes for collaborative schema composition, whereas Mesh and Hasura prioritize flexibility with a variety of heterogenous services or even databases. API architects are having to make hard decisions early on in their projects, deciding which of the many patterns to follow.
+Adopting this style of collaboration has become a standard way of creating API
+platforms, with wide support from an array of vendors. Common patterns and best
+practices have been established around the various implementations and the
+underlying architecture has proven effective at scale. Today there are many
+approaches to collaborative GraphQL schema design, requiring different ways of
+defining the underlying schemas and composing the resulting architecture; for
+example Federation and Fusion take an approach that optimizes for collaborative
+schema composition, whereas Mesh and Hasura prioritize flexibility with a
+variety of heterogenous services or even databases. API architects are having to
+make hard decisions early on in their projects, deciding which of the many
+patterns to follow.
-Organizations large and small are making huge investments in GraphQL, and those investments are even more sound when they are underwritten by open standards. That’s why the GraphQL Specification Working Group is proud to announce that the Composite Schemas Subcommittee re-convened earlier this year and is making steady progress toward a common specification describing composition and distributed execution across multiple collaborative GraphQL services. The focus is on standardizing common aspects to enable interoperability whilst leaving significant room for innovation so consumers can find the best solution for their needs. Engineers from a wide variety of organizations including Apollo GraphQL, ChilliCream, Google, Graphile, The Guild, Hasura, and IBM have brought their valuable insights to meetings so far; and the community is abuzz with possibilities!
+Organizations large and small are making huge investments in GraphQL, and those
+investments are even more sound when they are underwritten by open standards.
+That’s why the GraphQL Specification Working Group is proud to announce that the
+Composite Schemas Subcommittee re-convened earlier this year and is making
+steady progress toward a common specification describing composition and
+distributed execution across multiple collaborative GraphQL services. The focus
+is on standardizing common aspects to enable interoperability whilst leaving
+significant room for innovation so consumers can find the best solution for
+their needs. Engineers from a wide variety of organizations including Apollo
+GraphQL, ChilliCream, Google, Graphile, The Guild, Hasura, and IBM have brought
+their valuable insights to meetings so far; and the community is abuzz with
+possibilities!
-As with any GraphQL Working Group, anyone is welcome to join and contribute! To get involved, add yourself to an [upcoming agenda](https://github.com/graphql/composite-schemas-wg/tree/main/agendas) or watch all former meetings on the [official YouTube channel](https://www.youtube.com/playlist?list=PLP1igyLx8foFjxyTg6wPn4pUkZwuAk2GR).
+As with any GraphQL Working Group, anyone is welcome to join and contribute! To
+get involved, add yourself to an
+[upcoming agenda](https://github.com/graphql/composite-schemas-wg/tree/main/agendas)
+or watch all former meetings on the
+[official YouTube channel](https://www.youtube.com/playlist?list=PLP1igyLx8foFjxyTg6wPn4pUkZwuAk2GR).
diff --git a/src/pages/blog/2024-06-11-announcing-new-graphql-website/index.mdx b/src/pages/blog/2024-06-11-announcing-new-graphql-website/index.mdx
index 4e1c6d522b..c6e6520daa 100644
--- a/src/pages/blog/2024-06-11-announcing-new-graphql-website/index.mdx
+++ b/src/pages/blog/2024-06-11-announcing-new-graphql-website/index.mdx
@@ -9,8 +9,9 @@ Hi, everyone! I'm [Dimitri Postolov](https://x.com/dimaMachina_) from
[The Guild](https://the-guild.dev), and today I'm excited to announce the new
[graphql.org](/) website.
-2 months ago, we released a new GraphQL website after 8 weeks period of development, we're excited
-to share with you the reasons behind the changes and what you can expect going forward.
+2 months ago, we released a new GraphQL website after 8 weeks period of
+development, we're excited to share with you the reasons behind the changes and
+what you can expect going forward.
## A Little Dive into History
@@ -67,18 +68,18 @@ website's performance and developer experience.
This migration was the final part before releasing the upcoming Nextra version.
You can read my blog post about Nextra 3 in
[The Guild blog](https://the-guild.dev/blog/nextra-3). Recently, we migrated all
-The Guild documentation websites to Nextra 3, so we know it's stable
-for production.
+The Guild documentation websites to Nextra 3, so we know it's stable for
+production.
-While migrating this website, I started work on the
-future Nextra 4 version with [app router support](https://nextjs.org/docs/app).
-Once the first Nextra 4 alpha is out, `graphql.org` will be updated to it!
+While migrating this website, I started work on the future Nextra 4 version with
+[app router support](https://nextjs.org/docs/app). Once the first Nextra 4 alpha
+is out, `graphql.org` will be updated to it!
### New Search Engine
Search was migrated from Algolia to Nextra's built-in search
-[Flexsearch](https://github.com/nextapps-de/flexsearch), providing users
-with realtime results and improved privacy.
+[Flexsearch](https://github.com/nextapps-de/flexsearch), providing users with
+realtime results and improved privacy.
### Light and Dark Themes
@@ -98,8 +99,8 @@ and Libraries". You can read in the
[GitHub repo](https://github.com/graphql/graphql.github.io/blob/source/notes/ContributingToCodePage.md)
how to contribute to this page and add your library or tool.
-[The community](/community) page was redesigned and restructured; now you
-can find all community resources in one place.
+[The community](/community) page was redesigned and restructured; now you can
+find all community resources in one place.
### New [/conf](/conf) Page for GraphQLConf 2024
@@ -111,9 +112,10 @@ More info can be read on [GraphQLConf 2024 page](/conf/2024) or in
## Conclusion
-When I started to learn GraphQL in 2018, I could never have imagined that one day I
-would be working on this migration! I am excited to be a part of this journey
-and to have finally released the new website, a significant improvement over the old one! 🥳
+When I started to learn GraphQL in 2018, I could never have imagined that one
+day I would be working on this migration! I am excited to be a part of this
+journey and to have finally released the new website, a significant improvement
+over the old one! 🥳
Subscribe to me in [X](https://x.com/dimaMachina_) and
[GitHub](https://github.com/dimaMachina) and see you at GraphQLConf 2024 🚀.
diff --git a/src/pages/blog/2024-07-22-jovi-de-croock-graphqljs.mdx b/src/pages/blog/2024-07-22-jovi-de-croock-graphqljs.mdx
index a3d0aca94f..3435002063 100644
--- a/src/pages/blog/2024-07-22-jovi-de-croock-graphqljs.mdx
+++ b/src/pages/blog/2024-07-22-jovi-de-croock-graphqljs.mdx
@@ -5,15 +5,28 @@ date: 2024-07-22
byline: Jory Burson & Benjie Gillam
---
-We are thrilled to announce that Jovi De Croock [@JoviDeCroock](https://github.com/JoviDeCroock) has been approved as a co-maintainer of GraphQL.js!
-Jovi brings a wealth of experience and a deep passion for the GraphQL ecosystem, making him an invaluable addition to the team.
+We are thrilled to announce that Jovi De Croock
+[@JoviDeCroock](https://github.com/JoviDeCroock) has been approved as a
+co-maintainer of GraphQL.js! Jovi brings a wealth of experience and a deep
+passion for the GraphQL ecosystem, making him an invaluable addition to the
+team.
-GraphQL.js is a fundamental library in the GraphQL ecosystem, serving as the reference implementation of the GraphQL specification.
-It provides essential building blocks for defining GraphQL schemas, executing queries, and validating data, making it a critical tool for developers building GraphQL APIs in JavaScript/TypeScript and acting as the backbone of many GraphQL-based applications and services.
-As the reference implementation, it aids anyone wishing to implement GraphQL in another programming language.
-These roles make GraphQL.js pivotal in driving the adoption and evolution of GraphQL technology across the web development community.
+GraphQL.js is a fundamental library in the GraphQL ecosystem, serving as the
+reference implementation of the GraphQL specification. It provides essential
+building blocks for defining GraphQL schemas, executing queries, and validating
+data, making it a critical tool for developers building GraphQL APIs in
+JavaScript/TypeScript and acting as the backbone of many GraphQL-based
+applications and services. As the reference implementation, it aids anyone
+wishing to implement GraphQL in another programming language. These roles make
+GraphQL.js pivotal in driving the adoption and evolution of GraphQL technology
+across the web development community.
-The GraphQL.js maintainers ensure the project's health by managing contributions, reviewing code, addressing issues, and guiding its evolution alongside the GraphQL specification.
-The maintainer role is vital in ensuring the quality, security, and relevance of the software, fostering a collaborative environment, and engaging with the community.
+The GraphQL.js maintainers ensure the project's health by managing
+contributions, reviewing code, addressing issues, and guiding its evolution
+alongside the GraphQL specification. The maintainer role is vital in ensuring
+the quality, security, and relevance of the software, fostering a collaborative
+environment, and engaging with the community.
-Please join us in welcoming Jovi De Croock to the GraphQL.js team, and join us for an upcoming [GraphQL.js Working Group meeting](https://github.com/graphql/graphql-js-wg/blob/main/README.md)!
+Please join us in welcoming Jovi De Croock to the GraphQL.js team, and join us
+for an upcoming
+[GraphQL.js Working Group meeting](https://github.com/graphql/graphql-js-wg/blob/main/README.md)!
diff --git a/src/pages/blog/2024-09-19-codegen.mdx b/src/pages/blog/2024-09-19-codegen.mdx
index 83aee20e5e..9d7a724381 100644
--- a/src/pages/blog/2024-09-19-codegen.mdx
+++ b/src/pages/blog/2024-09-19-codegen.mdx
@@ -5,9 +5,12 @@ date: 2024-09-19
byline: Martin Bonnin
---
-A GraphQL endpoint usually returns a JSON payload. While you can use the result as a dynamic object, the GraphQL type system gives us a lot of information about what is inside that JSON payload.
+A GraphQL endpoint usually returns a JSON payload. While you can use the result
+as a dynamic object, the GraphQL type system gives us a lot of information about
+what is inside that JSON payload.
-If you're not using code generation, you're missing out on a lot, especially if you're using a type-safe language such as TypeScript, Swift or Kotlin.
+If you're not using code generation, you're missing out on a lot, especially if
+you're using a type-safe language such as TypeScript, Swift or Kotlin.
By using code generation, you get:
@@ -16,9 +19,14 @@ By using code generation, you get:
All of that without having to write and maintain types manually!
-For simplicity, this post uses TypeScript for code blocks but the same concepts can be applied to Swift/Kotlin.
+For simplicity, this post uses TypeScript for code blocks but the same concepts
+can be applied to Swift/Kotlin.
-A common mistake is to attempt to use the GraphQL schema directly for type generation, but this is not type-safe since GraphQL only returns the fields that you ask for, and allows you to alias fields in the response. Instead, types should be generated based on the GraphQL operations (requests) that you issue. Here's an illustration of the issue:
+A common mistake is to attempt to use the GraphQL schema directly for type
+generation, but this is not type-safe since GraphQL only returns the fields that
+you ask for, and allows you to alias fields in the response. Instead, types
+should be generated based on the GraphQL operations (requests) that you issue.
+Here's an illustration of the issue:
## Problem: Generating code from schema types loses nullability information
@@ -44,7 +52,6 @@ type Product {
price: Float
}
-
type Query {
products: [Product!]!
}
@@ -55,14 +62,15 @@ A translation to TypeScript might yield the following:
```typescript
// First attempt at generating code from the product type
type Product = {
- id: string;
- name: string;
- description: string | null;
- price: string | null
+ id: string
+ name: string
+ description: string | null
+ price: string | null
}
```
-Pretty neat, right? Typescript and GraphQL look really similar... Unfortunately, this is not type safe!
+Pretty neat, right? Typescript and GraphQL look really similar... Unfortunately,
+this is not type safe!
Let's perform a query that doesn't request the product name:
@@ -87,7 +95,8 @@ Returned product:
}
```
-It's now impossible to map that returned value to our type because `name` must be non-null.
+It's now impossible to map that returned value to our type because `name` must
+be non-null.
We can also apply aliases:
@@ -113,15 +122,20 @@ Returned product:
}
```
-Note that the `productName`, despite being non-null, does not match up with the expected `name` field.
+Note that the `productName`, despite being non-null, does not match up with the
+expected `name` field.
-We simply cannot safely use the schema types to represent requests unless we fetch every single field on every single type, which would go against GraphQL's very nature!
+We simply cannot safely use the schema types to represent requests unless we
+fetch every single field on every single type, which would go against GraphQL's
+very nature!
-Thankfully, we can solve this by generating code based on operations instead (queries, mutations, and subscriptions).
+Thankfully, we can solve this by generating code based on operations instead
+(queries, mutations, and subscriptions).
## Solution: Generating code from GraphQL operations
-By generating code from GraphQL operations, we are now certain that the TypeScript fields always represent GraphQL fields that have been requested.
+By generating code from GraphQL operations, we are now certain that the
+TypeScript fields always represent GraphQL fields that have been requested.
Reusing our first example:
@@ -153,18 +167,27 @@ type GetProductData_products = {
With this `GetProductData_products` type:
-* `name` is not present in the generated type because it was not queried.
-* `id` is not-nullable, as intended. A product always has an `id`.
-* `description` and `price` are nullable, as intended. If `null`, it means the product doesn't have a description/price.
+- `name` is not present in the generated type because it was not queried.
+- `id` is not-nullable, as intended. A product always has an `id`.
+- `description` and `price` are nullable, as intended. If `null`, it means the
+ product doesn't have a description/price.
This is what we expected!
## Conclusion
-By using code generation based on operations, you get type safety from your backend all the way to your UI. On top of that, your IDE can use the generated code to provide autocomplete and a better experience overall.
+By using code generation based on operations, you get type safety from your
+backend all the way to your UI. On top of that, your IDE can use the generated
+code to provide autocomplete and a better experience overall.
-All the major code generators ([graphql-code-generator](https://github.com/dotansimha/graphql-code-generator), [Relay](https://relay.dev/), [Apollo iOS](https://github.com/apollographql/apollo-ios), [Apollo Kotlin](https://github.com/apollographql/apollo-kotlin), ...) generate code based on operations.
+All the major code generators
+([graphql-code-generator](https://github.com/dotansimha/graphql-code-generator),
+[Relay](https://relay.dev/),
+[Apollo iOS](https://github.com/apollographql/apollo-ios),
+[Apollo Kotlin](https://github.com/apollographql/apollo-kotlin), ...) generate
+code based on operations.
If you have not already, try them out!
-And look out for a new post soon on the improvements we're hoping to bring to GraphQL nullability!
+And look out for a new post soon on the improvements we're hoping to bring to
+GraphQL nullability!
diff --git a/src/pages/blog/2024-10-08-graphql-conf-2024-wrap/index.mdx b/src/pages/blog/2024-10-08-graphql-conf-2024-wrap/index.mdx
index 3c3c88adcc..01ccb40702 100644
--- a/src/pages/blog/2024-10-08-graphql-conf-2024-wrap/index.mdx
+++ b/src/pages/blog/2024-10-08-graphql-conf-2024-wrap/index.mdx
@@ -5,39 +5,91 @@ date: 2024-10-08
byline: GraphQL Events Committee
---
-We’re (almost) recuperated from all the excellent talks, socializing, and networking that went down at [GraphQL Conf 2024](https://graphql.org/conf/2024/). It was an event that celebrated the community, and brought GraphQL contributors, Working Group members, and nearly every single TSC member together under one roof for the first time in… a while. Read on for a round-up of the biggest news and takeaways from the conference.
+We’re (almost) recuperated from all the excellent talks, socializing, and
+networking that went down at
+[GraphQL Conf 2024](https://graphql.org/conf/2024/). It was an event that
+celebrated the community, and brought GraphQL contributors, Working Group
+members, and nearly every single TSC member together under one roof for the
+first time in… a while. Read on for a round-up of the biggest news and takeaways
+from the conference.
![Photo of GraphQL Conf Audience Members](./audience.jpg)
## GraphQL Is Still Expanding
-Although GraphQL was originally created to solve the needs of the front-end developer, it has proven its staying power as a tool for all kinds of applications and use cases. For example, GraphQL naturally complements LLMs - several talks highlighted applications for generative AI, AI integrations, and data mesh networks. As Lee Byron noted in his [welcoming keynote](https://youtu.be/ZJHSCyZCup4), GraphQL reached ubiquity and continues to expand as developers discover new ways to apply it to new contexts.
+
+Although GraphQL was originally created to solve the needs of the front-end
+developer, it has proven its staying power as a tool for all kinds of
+applications and use cases. For example, GraphQL naturally complements LLMs -
+several talks highlighted applications for generative AI, AI integrations, and
+data mesh networks. As Lee Byron noted in his
+[welcoming keynote](https://youtu.be/ZJHSCyZCup4), GraphQL reached ubiquity and
+continues to expand as developers discover new ways to apply it to new contexts.
![Photo of a speaker addressing the audience](./speaker.jpg)
## Distributed GraphQL has arrived
-Distributed GraphQL including Federation was the talk of the conference. We heard about the state of distributed GraphQL from TSC leaders, case studies on production deployment from end-users, and design principles for federated GraphQL from core contributors. Expect to hear a lot more about distributed GraphQL deployments over the next year.
+
+Distributed GraphQL including Federation was the talk of the conference. We
+heard about the state of distributed GraphQL from TSC leaders, case studies on
+production deployment from end-users, and design principles for federated
+GraphQL from core contributors. Expect to hear a lot more about distributed
+GraphQL deployments over the next year.
![Photo of the Unconference Topics board](./unconf.jpg)
## Have You Heard the Word About Trusted Documents
-Data and application security are as relevant as ever. Our own plucky, GraphQL Community Gardener Benjie Gillam was on hand to tell attendees about one easy thing they can do to harden their GraphQL security posture and boost performance - use Trusted Documents! If you’re already using Trusted Documents, check out [Top 10 GraphQL Security Checks for Every Developer](https://youtu.be/fA81OFu9BVY).
+
+Data and application security are as relevant as ever. Our own plucky, GraphQL
+Community Gardener Benjie Gillam was on hand to tell attendees about one easy
+thing they can do to harden their GraphQL security posture and boost
+performance - use Trusted Documents! If you’re already using Trusted Documents,
+check out
+[Top 10 GraphQL Security Checks for Every Developer](https://youtu.be/fA81OFu9BVY).
![Photo from a GraphQL workshop](./workshop.jpg)
-## Our Community had an Amazing Time
-Between the excellent content and workshops, focused unconference sessions, Working Group member chats, TSC and Board meetings, and quality bond-building between attendees, we made the most out of our short time together. We can’t wait to do it again, and are so thankful for our sponsors and attendees for making it all happen. In the words of a few of our attendees:
+## Our Community had an Amazing Time
-*“As a beginner in GraphQL, it was very helpful to see real use cases and honest accounts of the challenges along the way. I learned a lot about performance and security and had a great opportunity to network with other participants and potential vendors." - Nicolai Draslov, Danish Agency for Digital Government*
+Between the excellent content and workshops, focused unconference sessions,
+Working Group member chats, TSC and Board meetings, and quality bond-building
+between attendees, we made the most out of our short time together. We can’t
+wait to do it again, and are so thankful for our sponsors and attendees for
+making it all happen. In the words of a few of our attendees:
-*"Great community. It's the first conference I've been to where multiple people remembered me from previous conferences."*
+_“As a beginner in GraphQL, it was very helpful to see real use cases and honest
+accounts of the challenges along the way. I learned a lot about performance and
+security and had a great opportunity to network with other participants and
+potential vendors." - Nicolai Draslov, Danish Agency for Digital Government_
-*"GraphQL is evolving to new use cases every day and it's really a competitive advantage to experience them first hand with everyone that matters. I look forward the next edition!" - Vincent Desmares, Teamstarter*
+_"Great community. It's the first conference I've been to where multiple people
+remembered me from previous conferences."_
-*"GraphQLConf 24 was a well organized event that empowered new and existing organizations to adopt GraphQL, navigating how to rollout GraphQL within their organizations by building understanding of eco-system." - Satish Chitnis*
+_"GraphQL is evolving to new use cases every day and it's really a competitive
+advantage to experience them first hand with everyone that matters. I look
+forward the next edition!" - Vincent Desmares, Teamstarter_
+
+_"GraphQLConf 24 was a well organized event that empowered new and existing
+organizations to adopt GraphQL, navigating how to rollout GraphQL within their
+organizations by building understanding of eco-system." - Satish Chitnis_
## GraphQL Conf 2025 is coming to Europe!
-Lee Byron shared that the GraphQL Foundation Board is committed to hosting the next edition of GraphQL Conf somewhere in Europe in 2025. Planning is still in the early stages, so stay tuned, but this was welcome news for the dozens of community members who flew in from as far away as Belgium to join us in San Francisco.
+
+Lee Byron shared that the GraphQL Foundation Board is committed to hosting the
+next edition of GraphQL Conf somewhere in Europe in 2025. Planning is still in
+the early stages, so stay tuned, but this was welcome news for the dozens of
+community members who flew in from as far away as Belgium to join us in San
+Francisco.
**Interested in getting involved? Drop a line to graphqlconf@graphql.org!**
-If you want to relive the experience of GraphQL Conf or just re-watch and share a favorite talk, you can check out all the [photos](https://www.flickr.com/photos/linuxfoundation/albums/72177720320386221/) and [videos](https://graphql.org/conf/2024/schedule/) on our conference website. Subscribe to our [Working Group YouTube](https://www.youtube.com/@GraphQLFoundation), new [Foundation Events YouTube](https://www.youtube.com/@GraphQLFoundationTalks), [X](https://twitter.com/graphql), and [LinkedIn](https://www.linkedin.com/company/graphql-foundation/) channels to get content you may have missed and find out when we launch the new GraphQL Conf 2025 website!
+If you want to relive the experience of GraphQL Conf or just re-watch and share
+a favorite talk, you can check out all the
+[photos](https://www.flickr.com/photos/linuxfoundation/albums/72177720320386221/)
+and [videos](https://graphql.org/conf/2024/schedule/) on our conference website.
+Subscribe to our
+[Working Group YouTube](https://www.youtube.com/@GraphQLFoundation), new
+[Foundation Events YouTube](https://www.youtube.com/@GraphQLFoundationTalks),
+[X](https://twitter.com/graphql), and
+[LinkedIn](https://www.linkedin.com/company/graphql-foundation/) channels to get
+content you may have missed and find out when we launch the new GraphQL Conf
+2025 website!
diff --git a/src/pages/blog/announcing-graphqlconf-2025-amsterdam-awaits.mdx b/src/pages/blog/announcing-graphqlconf-2025-amsterdam-awaits.mdx
index a5efcfb460..dc989ac168 100644
--- a/src/pages/blog/announcing-graphqlconf-2025-amsterdam-awaits.mdx
+++ b/src/pages/blog/announcing-graphqlconf-2025-amsterdam-awaits.mdx
@@ -5,9 +5,15 @@ date: 2024-12-18
byline: GraphQL Foundation
---
-Mark your calendars - **GraphQLConf** is set to take place in the vibrant and historic city of **Amsterdam, Netherlands**, on **September 8-10, 2025**!
+Mark your calendars - **GraphQLConf** is set to take place in the vibrant and
+historic city of **Amsterdam, Netherlands**, on **September 8-10, 2025**!
-After a successful 2024 event, we’re thrilled to announce that GraphQLConf is heading to Europe for the very first time in 2025! This milestone reflects an overwhelming interest and passion from the European developer community, making GraphQL more accessible for developers and innovators worldwide. Get ready to immerse yourself in three days of learning, connecting, and celebrating the GraphQL ecosystem with a truly diverse, international community.
+After a successful 2024 event, we’re thrilled to announce that GraphQLConf is
+heading to Europe for the very first time in 2025! This milestone reflects an
+overwhelming interest and passion from the European developer community, making
+GraphQL more accessible for developers and innovators worldwide. Get ready to
+immerse yourself in three days of learning, connecting, and celebrating the
+GraphQL ecosystem with a truly diverse, international community.
---
@@ -15,45 +21,68 @@ After a successful 2024 event, we’re thrilled to announce that GraphQLConf is
#### **🚀 High-Quality Content**
-Hear from the pioneers of GraphQL and influential thought leaders shaping the future of APIs and developer experience. From the original creators to cutting-edge contributors, our stage will host the best minds in the industry.
+Hear from the pioneers of GraphQL and influential thought leaders shaping the
+future of APIs and developer experience. From the original creators to
+cutting-edge contributors, our stage will host the best minds in the industry.
#### **💡 Hands-On Workshops**
-Level up your GraphQL skills with immersive, hands-on workshops. Whether you're a beginner or a seasoned pro, we’ll have sessions tailored to help you build faster, query smarter, and optimize better.
+Level up your GraphQL skills with immersive, hands-on workshops. Whether you're
+a beginner or a seasoned pro, we’ll have sessions tailored to help you build
+faster, query smarter, and optimize better.
#### **🌐 Community Connections**
-Network with developers, maintainers, and contributors from around the world. The conference will feature meetups, collaboration zones, and plenty of space to share ideas.
+Network with developers, maintainers, and contributors from around the world.
+The conference will feature meetups, collaboration zones, and plenty of space to
+share ideas.
#### **🎉 A Memorable Venue**
-Amsterdam offers a perfect blend of historic charm and modern innovation. From the canals to the cutting-edge tech scene, the city provides an inspiring backdrop for this year’s event.
+Amsterdam offers a perfect blend of historic charm and modern innovation. From
+the canals to the cutting-edge tech scene, the city provides an inspiring
+backdrop for this year’s event.
---
### **Why Amsterdam?**
-As one of Europe’s most tech-forward cities, Amsterdam is an innovative environment with a thriving GraphQL developer community. Its central location makes it easily accessible for attendees from across Europe and beyond. Plus, its rich culture and welcoming vibe ensure you’ll leave with more than just new knowledge—you’ll have memories to last a lifetime.
+As one of Europe’s most tech-forward cities, Amsterdam is an innovative
+environment with a thriving GraphQL developer community. Its central location
+makes it easily accessible for attendees from across Europe and beyond. Plus,
+its rich culture and welcoming vibe ensure you’ll leave with more than just new
+knowledge—you’ll have memories to last a lifetime.
---
### **Save the Date & Get Your Ticket**
-📅 **When?** September 8-10, 2025
+📅 **When?** September 8-10, 2025
- 📍 **Where?** [Pakhuis de Zwijger](https://maps.app.goo.gl/FoJG5KrjrM7U9Pva6) - Amsterdam, Netherlands
+📍 **Where?** [Pakhuis de Zwijger](https://maps.app.goo.gl/FoJG5KrjrM7U9Pva6) -
+Amsterdam, Netherlands
-Mark your calendars and secure your spot at the best rates - [early bird registration](https://cvent.me/PBNYEe) is a great way to spend any remaining 2024 budget!
+Mark your calendars and secure your spot at the best rates -
+[early bird registration](https://cvent.me/PBNYEe) is a great way to spend any
+remaining 2024 budget!
---
### **Get Involved**
-Want to help shape the GraphQLConf 2025 experience? Here’s how you can participate:
+Want to help shape the GraphQLConf 2025 experience? Here’s how you can
+participate:
-* **[Speak at the Event](https://forms.gle/jRsE2u8pokLX93RGA)**: We’re looking for diverse voices to share innovative ideas, technical insights, and real-world GraphQL success stories. Our CFP will open in early 2025.
-* **[Become a Sponsor](https://events.linuxfoundation.org/wp-content/uploads/2024/12/sponsor_GraphQLConf_2025.pdf)**: Align your brand with the global GraphQL community and connect with influential developers. As a GraphQLConf sponsor, you’ll be an authoritative voice on cutting edge API topics.
-* **[Join the Community Team](https://forms.gle/jRsE2u8pokLX93RGA)**: Help us make the event unforgettable and highly relevant by volunteering with our programming committee or hosting local meetups leading up to the conference.
+- **[Speak at the Event](https://forms.gle/jRsE2u8pokLX93RGA)**: We’re looking
+ for diverse voices to share innovative ideas, technical insights, and
+ real-world GraphQL success stories. Our CFP will open in early 2025.
+- **[Become a Sponsor](https://events.linuxfoundation.org/wp-content/uploads/2024/12/sponsor_GraphQLConf_2025.pdf)**:
+ Align your brand with the global GraphQL community and connect with
+ influential developers. As a GraphQLConf sponsor, you’ll be an authoritative
+ voice on cutting edge API topics.
+- **[Join the Community Team](https://forms.gle/jRsE2u8pokLX93RGA)**: Help us
+ make the event unforgettable and highly relevant by volunteering with our
+ programming committee or hosting local meetups leading up to the conference.
Questions about getting involved? Send us a note at graphqlconf@graphql.org.
@@ -61,6 +90,10 @@ Questions about getting involved? Send us a note at graphqlconf@graphql.org.
### **Follow for Updates**
-Stay connected for announcements about speakers, schedules, and registration. Follow us on [Bluesky](https://bsky.app/profile/graphql.org), [Twitter/X](https://twitter.com/GraphQLConf) and[LinkedIn](https://linkedin.com/company/graphqlconf) and join the conversation with #GraphQLConf2025.
+Stay connected for announcements about speakers, schedules, and registration.
+Follow us on [Bluesky](https://bsky.app/profile/graphql.org),
+[Twitter/X](https://twitter.com/GraphQLConf)
+and[LinkedIn](https://linkedin.com/company/graphqlconf) and join the
+conversation with #GraphQLConf2025.
We can’t wait to see you in Amsterdam!
diff --git a/src/pages/brand.mdx b/src/pages/brand.mdx
index 243a23271c..fdb8482292 100644
--- a/src/pages/brand.mdx
+++ b/src/pages/brand.mdx
@@ -1,80 +1,87 @@
-import { Rubik } from 'next/font/google'
-import NextImage from 'next-image-export-optimizer'
-import { useState } from 'react'
-import graphqlLogo from '../../public/img/logo.svg'
-import graphqlLogoWhite from '../../public/img/brand/logos/logo-white.svg'
-import graphqlLogoBlack from '../../public/img/brand/logos/logo-black.svg'
-import graphqlLogoDontColor from '../../public/img/brand/logo-dont/dont-color.svg'
-import graphqlLogoDontGradient from '../../public/img/brand/logo-dont/dont-gradient.svg'
-import graphqlLogoDontWordmark from '../../public/img/brand/logo-dont/dont-color-wordmark.svg'
+import { Rubik } from "next/font/google"
+import NextImage from "next-image-export-optimizer"
+import { useState } from "react"
+import graphqlLogo from "../../public/img/logo.svg"
+import graphqlLogoWhite from "../../public/img/brand/logos/logo-white.svg"
+import graphqlLogoBlack from "../../public/img/brand/logos/logo-black.svg"
+import graphqlLogoDontColor from "../../public/img/brand/logo-dont/dont-color.svg"
+import graphqlLogoDontGradient from "../../public/img/brand/logo-dont/dont-gradient.svg"
+import graphqlLogoDontWordmark from "../../public/img/brand/logo-dont/dont-color-wordmark.svg"
export const font = Rubik({
- weight: ['300'],
- subsets: ['latin']
+ weight: ["300"],
+ subsets: ["latin"]
})
# GraphQL Logo & Brand Guidelines
-Here you'll find dos and don’ts for use of the GraphQL brand and
-GraphQL logo files in supported arrangement and colors.
+Here you'll find dos and don’ts for use of the GraphQL brand and GraphQL logo
+files in supported arrangement and colors.
-"GraphQL" is a trademark managed by the [GraphQL Foundation](/foundation).
-Use of the trademark and logo are subject to the
+"GraphQL" is a trademark managed by the [GraphQL Foundation](/foundation). Use
+of the trademark and logo are subject to the
[LF Projects trademark policy](https://lfprojects.org/policies/trademark-policy).
Certain fair use of the GraphQL mark are pre-approved, such as factual
-references to the project. Others require permission first, such as
-apparel for sale or any other commercial purpose, using the word
-GraphQL in domain names, or using the mark on printed materials, to
-name a few. You can find a more comprehensive list in the trademark
-policy.
+references to the project. Others require permission first, such as apparel for
+sale or any other commercial purpose, using the word GraphQL in domain names, or
+using the mark on printed materials, to name a few. You can find a more
+comprehensive list in the trademark policy.
-Please email [info@graphql.org](mailto:info@graphql.org?subject=Trademark%20Request) with any questions or requests.
+Please email
+[info@graphql.org](mailto:info@graphql.org?subject=Trademark%20Request) with any
+questions or requests.
## The GraphQL™ Trademark
-The word "GraphQL" may only be used to refer to the GraphQL project
-and technologies which conform to the [GraphQL specification](https://spec.graphql.org).
+The word "GraphQL" may only be used to refer to the GraphQL project and
+technologies which conform to the
+[GraphQL specification](https://spec.graphql.org).
-
-- _Do_ keep the "GraphQL" word consistent, with the first letter and QL capitalized.
-- _Do_ use "GraphQL" to clearly describe the GraphQL project or a conforming technology.
- - GraphQL for Go
- - Quick Start to GraphQL by <company>
-- _Do_ provide clear attribution for projects, services and events, balancing "GraphQL" with your own brand.
- - <service> for GraphQL by <company>
- - Seattle GraphQL Meetup hosted by <company>
-
-
-- _Don't_ lowercase or abbreviate "GraphQL" (for example "Graphql" or "GQL").
-- _Don't_ directly combine “GraphQL” with another trademark or generic term.
- - Go GraphQL
- - GraphQL Quick Start by <company>
-- _Don't_ use "GraphQL" in a way that could imply partnership, sponsorship, or endorsement by the GraphQL project or GraphQL Foundation either directly or by omission.
-- _Don't_ use the GraphQL brand disparagingly or in any other way that violates our [code of conduct](/codeofconduct).
-
+
+ - _Do_ keep the "GraphQL" word consistent, with the first letter and QL
+ capitalized. - _Do_ use "GraphQL" to clearly describe the GraphQL project or
+ a conforming technology. - GraphQL for Go - Quick Start to GraphQL by
+ <company> - _Do_ provide clear attribution for projects, services and
+ events, balancing "GraphQL" with your own brand. - <service> for
+ GraphQL by <company> - Seattle GraphQL Meetup hosted by
+ <company>
+
+
+ - _Don't_ lowercase or abbreviate "GraphQL" (for example "Graphql" or
+ "GQL"). - _Don't_ directly combine “GraphQL” with another trademark or
+ generic term. - Go GraphQL - GraphQL Quick Start by <company> -
+ _Don't_ use "GraphQL" in a way that could imply partnership, sponsorship, or
+ endorsement by the GraphQL project or GraphQL Foundation either directly or
+ by omission. - _Don't_ use the GraphQL brand disparagingly or in any other
+ way that violates our [code of conduct](/codeofconduct).
+
## Color & Typeface
@@ -83,100 +90,128 @@ Our core color is called Rhodamine.
The GraphQL wordmark and headlines are set in Rubik Light.
-
-
-Rhodamine
-
-
P3
0.8824, 0, 0.5961
-
RGB
225, 0, 152 / #E10098
-
PMS
[Rhodamine Red C](https://pantone.com/color-finder/Rhodamine-Red-C)
+ [Open Font
+ License](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)
+
+
+
GraphQL ÅBCørm123
+
-
-- _Do_ use Rhodamine alongside grayscale or neutral colors.
-- _Do_ prefer the P3 wide gamut color over RGB in digital; the PMS spot color over CMYK process in print.
-- _Do_ use Rubik Light with optical kerning and standard letter spacing.
-
-
-- _Don't_ use Rhodamine for large background areas.
-- _Don't_ directly combine Rhodamine with other bright or saturated colors.
-- _Don't_ bold, italicize, or alter the letter spacing of the GraphQL wordmark.
-
+
+ - _Do_ use Rhodamine alongside grayscale or neutral colors. - _Do_ prefer
+ the P3 wide gamut color over RGB in digital; the PMS spot color over CMYK
+ process in print. - _Do_ use Rubik Light with optical kerning and
+ standard letter spacing.
+
+
+ - _Don't_ use Rhodamine for large background areas. - _Don't_ directly
+ combine Rhodamine with other bright or saturated colors. - _Don't_ bold,
+ italicize, or alter the letter spacing of the GraphQL wordmark.
+
## GraphQL Logo & Hexagraph
-Our logomark is called the "hexagraph". The GraphQL logo is composed
-of the hexagraph and the GraphQL wordmark set in Rubik Light.
+Our logomark is called the "hexagraph". The GraphQL logo is composed of the
+hexagraph and the GraphQL wordmark set in Rubik Light.
-
-
- <>![GraphQL logo](/img/brand/logos/logo.svg)>
+
+
+ <>![GraphQL logo](/img/brand/logos/logo.svg)>
-
+
<>![GraphQL logo with wordmark](/img/brand/logos/logo-wordmark.svg)>
- <>![GraphQL Foundation logo wordmark](/img/brand/logos/logo-foundation-wordmark.svg)>
+ <>
+ ![GraphQL Foundation logo
+ wordmark](/img/brand/logos/logo-foundation-wordmark.svg)
+ >
<>![GraphQL logo stacked](/img/brand/logos/logo-stacked.svg)>
- <>![GraphQL Foundation logo stacked](/img/brand/logos/logo-foundation-stacked.svg)>
+ <>
+ ![GraphQL Foundation logo
+ stacked](/img/brand/logos/logo-foundation-stacked.svg)
+ >
-- _Do_ prefer the horizontal logo, but use the stacked logo at larger sizes.
-- _Do_ use the provided assets, don't redraw the hexgraph.
+ - _Do_ prefer the horizontal logo, but use the stacked logo at larger sizes. -
+ _Do_ use the provided assets, don't redraw the hexgraph.
--
_Don't_ rotate or stretch the hexagraph. Position the inner triangle pointing upwards.
### Spacing
-Give the logo some space to breathe. Keep a clear space of at least
-half the height of the hexagraph along on all sides.
+Give the logo some space to breathe. Keep a clear space of at least half the
+height of the hexagraph along on all sides.
-
### Color use
-The GraphQL logo should appear in Rhodamine, white, or black. It may
-appear on any color background with the appropriate logo color.
+The GraphQL logo should appear in Rhodamine, white, or black. It may appear on
+any color background with the appropriate logo color.
-
+
@@ -187,40 +222,45 @@ appear on any color background with the appropriate logo color.
-- _Do_ prefer Rhodamine on a white background, our default color combination.
-- _Do_ otherwise prefer use the white logo on most backgrounds unless contrast requires use of black.
+ - _Do_ prefer Rhodamine on a white background, our default color combination.
+ - _Do_ otherwise prefer use the white logo on most backgrounds unless contrast
+ requires use of black.
-
+
-
+
-- _Don't_ use black on a background of Rhodamine.
-- _Don't_ use Rhodamine on a color or patterned background; use white instead.
-- _Don't_ use different colors or apply gradients to the logo.
-- _Don't_ use different colors for elements of the logo. Always use the same color for the hexagraph and wordmark.
+ - _Don't_ use black on a background of Rhodamine. - _Don't_ use Rhodamine on a
+ color or patterned background; use white instead. - _Don't_ use different
+ colors or apply gradients to the logo. - _Don't_ use different colors for
+ elements of the logo. Always use the same color for the hexagraph and
+ wordmark.
- );
+ )
}
diff --git a/src/pages/codeofconduct.mdx b/src/pages/codeofconduct.mdx
index 5de3333795..0bcf626b8b 100644
--- a/src/pages/codeofconduct.mdx
+++ b/src/pages/codeofconduct.mdx
@@ -6,11 +6,17 @@ title: Code of Conduct
## Our Pledge
-In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, sex characteristics, gender identity and
+expression, level of experience, education, socio-economic status, nationality,
+personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
-Examples of behavior that contributes to creating a positive environment include:
+Examples of behavior that contributes to creating a positive environment
+include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
@@ -20,28 +26,64 @@ Examples of behavior that contributes to creating a positive environment include
Examples of unacceptable behavior by participants include:
-- The use of sexualized language or imagery and unwelcome sexual attention or advances
+- The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
-- Publishing others’ private information, such as a physical or electronic address, without explicit permission
-- Other conduct which could reasonably be considered inappropriate in a professional setting
+- Publishing others’ private information, such as a physical or electronic
+ address, without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
## Our Responsibilities
-GraphQL Specification members, project participants and contributors (collectively, "participants") are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
-
-The steering committee of the GraphQL Specification has the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any participant for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
-
-All participants have determined that The Linux Foundation is the most optimal organization to shepherd the development of this project. Participants acknowledge and agree to The Linux Foundation's exclusive right to use "GraphQL" and any other names and trademarks associated with the GraphQL open source project and GraphQL Specification and to authorize others’ use of the marks, establish guidelines for such use, and to delegate these responsibilities. Participants agree not to take any action inconsistent with such rights and to cooperate in any action which The Linux Foundation deems necessary or desirable to prevent confusion or establish or preserve these rights. Participants will not independently adopt, use, or attempt to register any trademarks or trade names that are confusingly similar to these names.
+GraphQL Specification members, project participants and contributors
+(collectively, "participants") are responsible for clarifying the standards of
+acceptable behavior and are expected to take appropriate and fair corrective
+action in response to any instances of unacceptable behavior.
+
+The steering committee of the GraphQL Specification has the right and
+responsibility to remove, edit, or reject comments, commits, code, wiki edits,
+issues, and other contributions that are not aligned to this Code of Conduct, or
+to ban temporarily or permanently any participant for other behaviors that they
+deem inappropriate, threatening, offensive, or harmful.
+
+All participants have determined that The Linux Foundation is the most optimal
+organization to shepherd the development of this project. Participants
+acknowledge and agree to The Linux Foundation's exclusive right to use "GraphQL"
+and any other names and trademarks associated with the GraphQL open source
+project and GraphQL Specification and to authorize others’ use of the marks,
+establish guidelines for such use, and to delegate these responsibilities.
+Participants agree not to take any action inconsistent with such rights and to
+cooperate in any action which The Linux Foundation deems necessary or
+desirable to prevent confusion or establish or preserve these rights.
+Participants will not independently adopt, use, or attempt to register any
+trademarks or trade names that are confusingly similar to these names.
## Scope
-This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
## Enforcement
-Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Executive Director, or, if the complaint involves the Executive Director, a member of the steering committee. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Participants who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by the steering committee.
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the Executive Director, or, if the complaint involves the
+Executive Director, a member of the steering committee. All complaints will be
+reviewed and investigated and will result in a response that is deemed necessary
+and appropriate to the circumstances. The project team is obligated to maintain
+confidentiality with regard to the reporter of an incident. Further details of
+specific enforcement policies may be posted separately. Participants who do not
+follow or enforce the Code of Conduct in good faith may face temporary or
+permanent repercussions as determined by the steering committee.
## Attribution
-This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://contributor-covenant.org/version/1/4/code-of-conduct. For answers to common questions about this code of conduct, see https://contributor-covenant.org/faq.
+This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
+available at https://contributor-covenant.org/version/1/4/code-of-conduct. For
+answers to common questions about this code of conduct, see
+https://contributor-covenant.org/faq.
diff --git a/src/pages/community/contribute/development.mdx b/src/pages/community/contribute/development.mdx
index 64cdd2af3f..ef40ec3e1a 100644
--- a/src/pages/community/contribute/development.mdx
+++ b/src/pages/community/contribute/development.mdx
@@ -1,17 +1,34 @@
# Participating in Development
-GraphQL is developed in the open, through [GitHub](https://github.com/graphql) and working group meetings that are open for anyone to attend (so long as they are covered under the [free membership agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership)). In addition, anybody is welcome to view the [recordings of our meetings on YouTube](https://youtube.graphql.org)
+GraphQL is developed in the open, through [GitHub](https://github.com/graphql)
+and working group meetings that are open for anyone to attend (so long as they
+are covered under the
+[free membership agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership)).
+In addition, anybody is welcome to view the
+[recordings of our meetings on YouTube](https://youtube.graphql.org)
## First steps
-If you want to get involved in GraphQL, add yourself to the meeting agenda for one of our [working groups or implementations](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#about-the-graphql-specification-project), sign the document if you haven't already, and show up! Or, if you prefer, just open a PR against our projects as this will also initiate the spec membership signature process.
+If you want to get involved in GraphQL, add yourself to the meeting agenda for
+one of our
+[working groups or implementations](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#about-the-graphql-specification-project),
+sign the document if you haven't already, and show up! Or, if you prefer, just
+open a PR against our projects as this will also initiate the spec membership
+signature process.
We welcome your participation!
## Getting up to speed
-All of our work [happens in the open](https://github.com/graphql). In addition, we record our workgroups' meetings on [YouTube](https://youtube.graphql.org). If you are interested in quickly getting up to speed on what's happening in a working group, the meeting minutes and [replays](https://youtube.graphql.org) are a great place to begin.
+All of our work [happens in the open](https://github.com/graphql). In addition,
+we record our workgroups' meetings on [YouTube](https://youtube.graphql.org). If
+you are interested in quickly getting up to speed on what's happening in a
+working group, the meeting minutes and [replays](https://youtube.graphql.org)
+are a great place to begin.
## Asking questions
-The best place to ask a development-related question is in a working group meeting, or by opening a GitHub issue. Please note that if you have an implementation question, you may get a faster answer by [asking in one of the channels more geared toward users](/community/resources/official-channels/).
+The best place to ask a development-related question is in a working group
+meeting, or by opening a GitHub issue. Please note that if you have an
+implementation question, you may get a faster answer by
+[asking in one of the channels more geared toward users](/community/resources/official-channels/).
diff --git a/src/pages/community/contribute/essential-links.mdx b/src/pages/community/contribute/essential-links.mdx
index d24ffe98b1..69c6266422 100644
--- a/src/pages/community/contribute/essential-links.mdx
+++ b/src/pages/community/contribute/essential-links.mdx
@@ -6,7 +6,7 @@ import {
CodeIcon,
TextIcon,
GoogleCalendarIcon,
- YouTubeIcon,
+ YouTubeIcon
} from "../../../icons"
# Essential Links
@@ -16,43 +16,43 @@ import {
{
icon: TextIcon,
title: "The GraphQL Specification",
- link: "https://spec.graphql.org",
+ link: "https://spec.graphql.org"
},
{
icon: CodeIcon,
title: "GraphQL Reference Implementation",
- link: "https://graphql.org/code",
+ link: "https://graphql.org/code"
},
{
icon: GitHubIcon,
title: "The official GraphQL GitHub org",
- link: "https://github.com/graphql",
+ link: "https://github.com/graphql"
},
{
icon: DiscordIcon,
title: "The official GraphQL Discord",
- link: "https://discord.graphql.org",
+ link: "https://discord.graphql.org"
},
{
icon: GoogleCalendarIcon,
title: "The GraphQL Project Calendar",
- link: "https://calendar.graphql.org",
+ link: "https://calendar.graphql.org"
},
{
icon: GitHubIcon,
title: "GraphQL Specification Membership Agreement",
link: "https://github.com/graphql/graphql-wg/tree/HEAD/membership",
- description: "",
+ description: ""
},
{
icon: YouTubeIcon,
title: "GraphQL YouTube Channel",
- link: "https://youtube.graphql.org",
+ link: "https://youtube.graphql.org"
},
{
icon: ,
title: "The GraphQL Community Grant Program",
- link: "https://graphql.org/foundation",
- },
+ link: "https://graphql.org/foundation"
+ }
]}
/>
diff --git a/src/pages/community/contribute/governance.mdx b/src/pages/community/contribute/governance.mdx
index 2698f29dbe..12cfbd9536 100644
--- a/src/pages/community/contribute/governance.mdx
+++ b/src/pages/community/contribute/governance.mdx
@@ -1,18 +1,41 @@
# GraphQL Project Governance
-GraphQL was open sourced by Facebook in 2015, and became a neutrally governed project managed by the Linux Foundation in 2019. In keeping with best practices, the technical governance of the GraphQL project is separate and distinct from the financial and policy governance of the [GraphQL Foundation](/foundation).
+GraphQL was open sourced by Facebook in 2015, and became a neutrally governed
+project managed by the Linux Foundation in 2019. In keeping with best practices,
+the technical governance of the GraphQL project is separate and distinct from
+the financial and policy governance of the [GraphQL Foundation](/foundation).
## Technical governance
-The GraphQL project is a chartered under the [Joint Development Foundation](https://www.jointdevelopment.org/) (JDF). JDF is a part of the Linux Foundation family, and is an organization specifically dedicated to making open standards easier to manage.
-
-The GraphQL specification, the GraphQL Working Group, and all other sub-working groups and implementations in the [GraphQL GitHub organization](https://github.com/graphql) are governed by the [GraphQL project charter](https://technical-charter.graphql.org).
-
-The [Technical Steering Committee](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md), or TSC, is established in the [technical charter](https://technical-charter.graphql.org) as the top technical decision-making body. It consists of [representatives from the GraphQL technical community](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#tsc-voting-members) and is responsible for overseeing specification and development work, and approving new releases. TSC members serve a two-year term.
+The GraphQL project is a chartered under the
+[Joint Development Foundation](https://www.jointdevelopment.org/) (JDF). JDF is
+a part of the Linux Foundation family, and is an organization specifically
+dedicated to making open standards easier to manage.
+
+The GraphQL specification, the GraphQL Working Group, and all other sub-working
+groups and implementations in the
+[GraphQL GitHub organization](https://github.com/graphql) are governed by the
+[GraphQL project charter](https://technical-charter.graphql.org).
+
+The
+[Technical Steering Committee](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md),
+or TSC, is established in the
+[technical charter](https://technical-charter.graphql.org) as the top technical
+decision-making body. It consists of
+[representatives from the GraphQL technical community](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#tsc-voting-members)
+and is responsible for overseeing specification and development work, and
+approving new releases. TSC members serve a two-year term.
## Financial and policy governance
-The [GraphQL Foundation](/foundation) provides financial support for the GraphQL project. In keeping with best practices, the Foundation is a separate organization, which helps to ensure that technical decisions are made upon their own merit and independent of financial contributions. The GraphQL Foundation uses the funds raised through [membership dues](/foundation/join) to support the work of the GraphQL Project through investments in infrastructure, coordination support services, developer grants, and mentorship programs.
-
-The [GraphQL Foundation](/foundation) is supported entirely by [membership dues](/foundation/join), from [companies](/foundation/members) who wish to support the long-term sustainability of the GraphQL ecosystem.
-
+The [GraphQL Foundation](/foundation) provides financial support for the GraphQL
+project. In keeping with best practices, the Foundation is a separate
+organization, which helps to ensure that technical decisions are made upon their
+own merit and independent of financial contributions. The GraphQL Foundation
+uses the funds raised through [membership dues](/foundation/join) to support the
+work of the GraphQL Project through investments in infrastructure, coordination
+support services, developer grants, and mentorship programs.
+
+The [GraphQL Foundation](/foundation) is supported entirely by
+[membership dues](/foundation/join), from [companies](/foundation/members) who
+wish to support the long-term sustainability of the GraphQL ecosystem.
diff --git a/src/pages/community/contribute/grant.mdx b/src/pages/community/contribute/grant.mdx
index cacd71234d..e327a42b6c 100644
--- a/src/pages/community/contribute/grant.mdx
+++ b/src/pages/community/contribute/grant.mdx
@@ -1,3 +1,8 @@
# Community Grant Program
-The [GraphQL Foundation](/foundation) funds a [Community Grant](/foundation/community-grant) program that is administered by the [GraphQL TSC](/community/contribute/governance/#technical-governance). The goal of the community grant program is to provide support to individuals working on initiatives that benefit the core technical project and the community at large.
+The [GraphQL Foundation](/foundation) funds a
+[Community Grant](/foundation/community-grant) program that is administered by
+the [GraphQL TSC](/community/contribute/governance/#technical-governance). The
+goal of the community grant program is to provide support to individuals working
+on initiatives that benefit the core technical project and the community at
+large.
diff --git a/src/pages/community/contribute/how-graphql-is-developed.mdx b/src/pages/community/contribute/how-graphql-is-developed.mdx
index 210b471a7d..be92cc7d81 100644
--- a/src/pages/community/contribute/how-graphql-is-developed.mdx
+++ b/src/pages/community/contribute/how-graphql-is-developed.mdx
@@ -1,24 +1,37 @@
import { Cards } from "../../../components/cards"
-import {
- GitHubIcon,
- GoogleCalendarIcon,
- YouTubeIcon,
-} from "../../../icons"
+import { GitHubIcon, GoogleCalendarIcon, YouTubeIcon } from "../../../icons"
# How GraphQL Is Developed
-At its core, the GraphQL project is organized around the [specification](https://spec.graphql.org), with a wide variety of supporting implementations and tools.
+At its core, the GraphQL project is organized around the
+[specification](https://spec.graphql.org), with a wide variety of supporting
+implementations and tools.
-GraphQL has an active and mutually beneficial relationship with its many implementations. The GraphQL specification is continuously evolving under the care of the [GraphQL Working Group](https://github.com/graphql/graphql-wg), which consists of GraphQL spec experts, contributors to public [reference implementations](/code), and implementers. At any given time, GraphQL specification updates are a combination of anticipatory planning with documentation of patterns and behaviors that are already proven in production, sometimes at very large scale.
+GraphQL has an active and mutually beneficial relationship with its many
+implementations. The GraphQL specification is continuously evolving under the
+care of the [GraphQL Working Group](https://github.com/graphql/graphql-wg),
+which consists of GraphQL spec experts, contributors to public
+[reference implementations](/code), and implementers. At any given time, GraphQL
+specification updates are a combination of anticipatory planning with
+documentation of patterns and behaviors that are already proven in production,
+sometimes at very large scale.
## Working Groups
-The GraphQL specification, sub-specifications, and official reference implementations are developed using the working group model. The working groups meet monthly or as-needed in order to review ideas and plan their work.
+The GraphQL specification, sub-specifications, and official reference
+implementations are developed using the working group model. The working groups
+meet monthly or as-needed in order to review ideas and plan their work.
### The GraphQL Working Group
- The [GraphQL Working Group](https://github.com/graphql/graphql-wg) is the main group that plans and implements changes to the [GraphQL specification](https://spec.graphql.org). It meets actively and is the default place for discussion for topics which do not have a separate breakout working group (breakout working groups include the [Input Union WG](https://github.com/graphql/graphql-spec/blob/main/rfcs/InputUnion.md) and the [GraphQL-over-HTTP WG](https://github.com/graphql/graphql-over-http)).
+The [GraphQL Working Group](https://github.com/graphql/graphql-wg) is the main
+group that plans and implements changes to the
+[GraphQL specification](https://spec.graphql.org). It meets actively and is the
+default place for discussion for topics which do not have a separate breakout
+working group (breakout working groups include the
+[Input Union WG](https://github.com/graphql/graphql-spec/blob/main/rfcs/InputUnion.md)
+and the [GraphQL-over-HTTP WG](https://github.com/graphql/graphql-over-http)).
- **IMPORTANT:** Your PR against the agenda **must** be merged before you can attend. If the EasyCLA bot says you are not covered, you need to follow the links in the bot's comment to sign the [GraphQL Specification Membership agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership) before you can attend.
+ **IMPORTANT:** Your PR against the agenda **must** be merged before you can
+ attend. If the EasyCLA bot says you are not covered, you need to follow the
+ links in the bot's comment to sign the [GraphQL Specification Membership
+ agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership) before
+ you can attend.
-If you have questions about this process, please ask [operations@graphql.org](mailto:operations@graphql.org).
+If you have questions about this process, please ask
+[operations@graphql.org](mailto:operations@graphql.org).
## GraphQL Working Group / TSC meeting
-The [GraphQL Working Group](https://github.com/graphql/graphql-wg) meets on the first Thursday of each month. When there are topics to address, the [GraphQL Technical Steering Committee (TSC)](https://github.com/graphql/graphql-wg/blob/HEAD/GraphQL-TSC.md) may meet briefly prior to the start of the Working Group meeting.
+The [GraphQL Working Group](https://github.com/graphql/graphql-wg) meets on the
+first Thursday of each month. When there are topics to address, the
+[GraphQL Technical Steering Committee (TSC)](https://github.com/graphql/graphql-wg/blob/HEAD/GraphQL-TSC.md)
+may meet briefly prior to the start of the Working Group meeting.
-The goal of the working group meeting is to discuss current work and future plans for the GraphQL specification. The Working Group meeting is also the place to coordinate between other GraphQL working groups and reference implementations.
+The goal of the working group meeting is to discuss current work and future
+plans for the GraphQL specification. The Working Group meeting is also the place
+to coordinate between other GraphQL working groups and reference
+implementations.
-To join, add yourself to an [upcoming meeting agenda](https://github.com/graphql/graphql-wg/tree/HEAD/agendas).
+To join, add yourself to an
+[upcoming meeting agenda](https://github.com/graphql/graphql-wg/tree/HEAD/agendas).
## GraphQL.js Working Group meeting
-The [GraphQL.js working group](https://github.com/graphql/graphql-js-wg) meets the second Tuesday of each month. The goal is to plan development work and resolve issues with [GraphQL.js](https://github.com/graphql/graphql-js).
+The [GraphQL.js working group](https://github.com/graphql/graphql-js-wg) meets
+the second Tuesday of each month. The goal is to plan development work and
+resolve issues with [GraphQL.js](https://github.com/graphql/graphql-js).
-To join, add yourself to an [upcoming meeting agenda](https://github.com/graphql/graphql-js-wg/tree/HEAD/agendas).
+To join, add yourself to an
+[upcoming meeting agenda](https://github.com/graphql/graphql-js-wg/tree/HEAD/agendas).
diff --git a/src/pages/community/contribute/project-resources.mdx b/src/pages/community/contribute/project-resources.mdx
index c487e7ea44..9c511401cf 100644
--- a/src/pages/community/contribute/project-resources.mdx
+++ b/src/pages/community/contribute/project-resources.mdx
@@ -1,71 +1,116 @@
# Project Resources
-The following resources are intended to help official GraphQL projects understand what resources are available to them, and how to correctly run meetings.
+The following resources are intended to help official GraphQL projects
+understand what resources are available to them, and how to correctly run
+meetings.
## Types of GraphQL projects
-The GraphQL community is incredibly broad, with a large number of reference implementations which are developed and evolving in parallel to the GraphQL project. Many of them are listed [here](/code).
+The GraphQL community is incredibly broad, with a large number of reference
+implementations which are developed and evolving in parallel to the GraphQL
+project. Many of them are listed [here](/code).
-The primary distinction between official GraphQL projects and other implementations is that GraphQL projects are managed under the [GraphQL technical charter](https://technical-charter.graphql.org) and [GraphQL Code of Conduct](https://code-of-conduct.graphql.org).
+The primary distinction between official GraphQL projects and other
+implementations is that GraphQL projects are managed under the
+[GraphQL technical charter](https://technical-charter.graphql.org) and
+[GraphQL Code of Conduct](https://code-of-conduct.graphql.org).
-We welcome and encourage community members and third-parties to maintain their own implementations.
+We welcome and encourage community members and third-parties to maintain their
+own implementations.
> ### Making an independent project official
>
-> If you maintain a tool or reference implementation that you'd like to transfer to the [GraphQL GitHub org](https://github.com/graphql), or if you are planning to start a new workgroup or implementation within the official GraphQL project, please add your name to the agenda of an upcoming [GraphQL Working Group meeting](https://github.com/graphql/graphql-wg/tree/HEAD/agendas) to introduce your idea.
+> If you maintain a tool or reference implementation that you'd like to transfer
+> to the [GraphQL GitHub org](https://github.com/graphql), or if you are
+> planning to start a new workgroup or implementation within the official
+> GraphQL project, please add your name to the agenda of an upcoming
+> [GraphQL Working Group meeting](https://github.com/graphql/graphql-wg/tree/HEAD/agendas)
+> to introduce your idea.
>
-> Should your proposal meet with approval, a few things will then need to happen. For example, we will work with you to adopt our policies and neutral governance, and help you transfer the project and its assets (generally the domain name and any trademarks) so that they are neutrally held at the Linux Foundation. If you'd like to explore the idea before making a proposal, please reach out to [operations@graphql.org](mailto:operations@graphql.org)
+> Should your proposal meet with approval, a few things will then need to
+> happen. For example, we will work with you to adopt our policies and neutral
+> governance, and help you transfer the project and its assets (generally the
+> domain name and any trademarks) so that they are neutrally held at the Linux
+> Foundation. If you'd like to explore the idea before making a proposal, please
+> reach out to [operations@graphql.org](mailto:operations@graphql.org)
## Running project meetings
-Because GraphQL is a [Joint Development Foundation](https://www.jointdevelopment.org/) project, all meeting participants and contributors must complete the GraphQL specification membership agreement prior to participating.
+Because GraphQL is a
+[Joint Development Foundation](https://www.jointdevelopment.org/) project, all
+meeting participants and contributors must complete the GraphQL specification
+membership agreement prior to participating.
Each **technical meeting** must:
-- Have an agenda Markdown document in the project repo published at least a week before the call.
-- Have an "Attendees" section where people can open a PR and add their own names in advance.
-- Optional, but encouraged: Use the GraphQL Zoom account so that we can easily post the meeting recording to [YouTube](https://youtube.graphql.org).
+- Have an agenda Markdown document in the project repo published at least a week
+ before the call.
+- Have an "Attendees" section where people can open a PR and add their own names
+ in advance.
+- Optional, but encouraged: Use the GraphQL Zoom account so that we can easily
+ post the meeting recording to [YouTube](https://youtube.graphql.org).
Each **attendee** must:
- Add their name to the agenda prior to the meeting.
-- Pass the EasyCLA check by signing the agreement as an individual, or asking their company to add them to the list.
+- Pass the EasyCLA check by signing the agreement as an individual, or asking
+ their company to add them to the list.
The **person running the call** must:
-- Merge all appropriate attendance and agenda PRs with passing checks prior to the meeting.
+- Merge all appropriate attendance and agenda PRs with passing checks prior to
+ the meeting.
- Verify that everyone who connects to the meeting appears on the list.
-- If someone joins who is not on the list, they need to disconnect until they can PR themselves onto the attendee list with all checks passing.
+- If someone joins who is not on the list, they need to disconnect until they
+ can PR themselves onto the attendee list with all checks passing.
- Notify all attendees the meeting is being recorded, and record to the cloud.
-- Keep minutes, or have a volunteer to write them. Minutes should be published to the project repo.
+- Keep minutes, or have a volunteer to write them. Minutes should be published
+ to the project repo.
## Resources for projects
### Zoom
-Official GraphQL projects and workgroups are welcome and encouraged to use the GraphQL zoom. Please contact [operations@graphql.org](mailto:operations@graphql.org) to get the credentials.
+Official GraphQL projects and workgroups are welcome and encouraged to use the
+GraphQL zoom. Please contact
+[operations@graphql.org](mailto:operations@graphql.org) to get the credentials.
### GitHub
-Official GraphQL projects can host their repos in the [graphql organization](https://github.com/graphql). This includes code repos, spec repos, and workgroup coordination repos. Please contact [operations@graphql.org](mailto:operations@graphql.org) for details.
+Official GraphQL projects can host their repos in the
+[graphql organization](https://github.com/graphql). This includes code repos,
+spec repos, and workgroup coordination repos. Please contact
+[operations@graphql.org](mailto:operations@graphql.org) for details.
### YouTube playlist
-Wherever possible, we record meetings and post them to a playlist on the [GraphQL YouTube channel](https://youtube.graphql.org). If your project does not have a playlist, please contact [operations@graphql.org](mailto:operations@graphql.org) and we can set you up.
+Wherever possible, we record meetings and post them to a playlist on the
+[GraphQL YouTube channel](https://youtube.graphql.org). If your project does not
+have a playlist, please contact
+[operations@graphql.org](mailto:operations@graphql.org) and we can set you up.
### GraphQL calendar
-Project meetings should be added to the [GraphQL calendar](https://calendar.graphql.org), so that people can easily find them.
+Project meetings should be added to the
+[GraphQL calendar](https://calendar.graphql.org), so that people can easily find
+them.
### GraphQL domain registration and DNS management
-The Linux Foundation holds the top-level graphql.org domain, and a number of others. If you need to register a domain for your project (particularly if it includes the word "graphql") or need to manage DNS for a registered domain, please contact [operations@graphql.org](mailto:operations@graphql.org).
+The Linux Foundation holds the top-level graphql.org domain, and a number of
+others. If you need to register a domain for your project (particularly if it
+includes the word "graphql") or need to manage DNS for a registered domain,
+please contact [operations@graphql.org](mailto:operations@graphql.org).
### Trademark guidance
-The GraphQL trademark is managed by LF Projects. GraphQL projects are able to use the GraphQL name and marks in accordance with the [trademark policy](https://lfprojects.org/policies/trademark-policy/). If your project has questions about how you or others can use the mark, please contact [trademark@graphql.org](mailto:trademark@graphql.org).
+The GraphQL trademark is managed by LF Projects. GraphQL projects are able to
+use the GraphQL name and marks in accordance with the
+[trademark policy](https://lfprojects.org/policies/trademark-policy/). If your
+project has questions about how you or others can use the mark, please contact
+[trademark@graphql.org](mailto:trademark@graphql.org).
### All other questions
-If you have a question not covered here, please reach out to [operations@graphql.org](mailto:operations@graphql.org).
-
+If you have a question not covered here, please reach out to
+[operations@graphql.org](mailto:operations@graphql.org).
diff --git a/src/pages/community/events.mdx b/src/pages/community/events.mdx
index 91153aa71d..5f9f4e8be6 100644
--- a/src/pages/community/events.mdx
+++ b/src/pages/community/events.mdx
@@ -14,45 +14,45 @@ import { meetups } from "../../components/meetups"
import { events } from "../../components/events"
import "leaflet/dist/leaflet.css"
import pinkCircle from "./pink-circle.svg"
-import { Button } from '../../app/conf/_components/button'
+import { Button } from "../../app/conf/_components/button"
export function EventCard({ href, date, city, name, meta }) {
return (
{date && (
-