-
Notifications
You must be signed in to change notification settings - Fork 12
Redesign GraphQL.org's homepage #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I would switch order of 2&3 and 5 & 6. |
Something I have missed in almost every value proposition section about GraphQL ever are the pillars of GraphQL. These really paint a good picture about expectations and make clear that GraphQL focusses on the product, it's not just any query language, it's a query language for your product, regardless what medium that product runs on. |
First, what I like about this outline is the thought that has gone into it and how useful it is for discussion. There's a good balance between educational content and marketing/promotion of GraphQL. I, also, find that I have opinions. :-) I would delete Section 5, because most decisions that are made of what technology to use aren't based upon this technology versus that technology for building APIs. From what I've observed across teams and customers is that often a technology is selected because the team that implemented it wanted to use it. They may have personal opinions about the ease of adoption for REST, or they have never deployed GraphQL before, so choose it for that reason (i.e., new shiny thing). Larger enterprises most frequently have all available technologies represented on their network as various teams across many years have made different choices. Rather than a chart of competition between API styles, I would love to see information on how API styles can be used together or complimentary to one another. I think it is important for GraphQL to be more forward thinking as the realities and complexities of modern data requirements have changed. Would it be possible to update graphql.org in stages? This thought occurs to me because, if we were to collect information from across the community and more broadly across adopters representing different industries, corporate sizes and uses cases, this information would inform what would be most helpful to add in sections of the website. There are new developments and uses for GraphQL developing as knowledge graphs become a critical piece of systems using AI/LLMs particularly for large enterprises. GraphQL is being implemented and integrated in new and complimentary ways across blockchain systems. New protocols are being developed to enable communication between AI agents and APIs. Questions to be answered include how well does the GraphQL spec and tools support all of these new uses. Perhaps? The data can direct us. I love @martinbonnin 's discussion of building a survey #30 . A survey that is thoughtfully constructed and well promoted would give us not only a excellent way to engage and broaden exposure of the community to more adopters, but also create a wealth of content to clip and share across all GraphQL Foundation channels including the website over many months. Maybe even to new channels. Section 6 and 7 we might consider combining these, but only after gathering data from a large survey effort and a collection of adopter case studies. More about this soon, I hope. Section 8 is chef's kiss - perfection! |
@JoviDeCroock Love it! @doc-jones about section 5 - I knew its going to be controversial :) About the stages - of course - the website is always a moving and evolving project. Excited on making progress here! P.S. |
Can we have a big "TRY IT OUT" call to action with a GraphiQL embed on the main page? I know we have it in other pages but:
|
I'd love to see that big "try it out" somehow integrated with the component based model of rendering, demonstrating clearly the value of fragments. I think too many people sleep on fragments, we don't do a good job of selling them up front, and too many people think they need to select everything manually and build massive "mega fragments" that all their different components use even though each component may only need a couple of the fields. |
Dropping in just to say I'd love for this to have some nuance around GraphQL doesn't necessarily replace your other APIs (REST, GRPC, etc) but rather can be a great way to augment and magnify the investments you've made into those APIs. So much of the problematic "debates" and GraphQL-hate often stems from this "comparison" of which one is "better" when in reality where we see the most success in large enterprises adopting GraphQL is to use GraphQL as the "middle" layer between the UI and service layer... using them together instead of pitting them against each other. In my opinion, this message of "better together" is a much more productive, de-escalating, and winning message for GraphQL than "why is GraphQL better than REST". This talk from API World is a great discussion on this exact topic: https://www.youtube.com/watch?v=5DVi99KPALo |
@benjie do you have an idea on how to best demonstrate these points visually and textually? |
@andrewmcgivery wow, that's one of the best talks I've seen, thank you so much for sharing! I very much agree with everything you said in your comment and the messages in the video. Looking at the table, let's say we change the format of it, but keep the point there, some are related also to the points from the talk, how do we present them in the best way? Some thoughts on replacing section 6, I wrote while watching the talk:
![]() ![]() Taking points from the table, that we might drop or integrate as they are related to this part:
|
Expanding on @benjie's comment
In my opinion, we need to motivate fragment use differently. Many newcomers to GraphQL are not aware of the best practice of UI-Component-driven queries. We don't do a good job at all of selling the synergies between GraphQL and the actual frontend hierarchy. Otherwise, we would not see so many people expecting GraphQL to just be a database-like query language for API queries, or implementations using GraphQL like a rest API - heavily abstracted away from the view and fetches split up into many queries. From a very critical perspective, the learn page reads like an introduction to SQL, not like the introduction to a powerful tool that can revolutionize the way you define, consume and utilize APIs to build next-generation apps. Part of this is due to our strive to be as vendor- & tech-neutral on the main pages selling GraphQL. The aforementioned synergies are mainly enabled by tooling, no matter if open-source or by vendors. We are going to have a hard time showing the intuition of fragment-driven queries if we abstract away from the hands-on intuitiveness that a concrete example brings. Is this complete abstraction away from implementation a point we could put up for discussion? I'd personally favor a well-balanced approach that sprinkles concrete technology examples into the page, while staying neutral in that we don't unfairly position any tooling over other options. This is mainly something to discuss for the other subpages, but it could very-well affect small portions of our landing page. I'd be curious to hear your opinions on this intentionally challenging take 🙂 |
@erikwrede I think you are right and I also think this today is a generally agreed upon idea by the leaders of the community I don't think that the reason its not highlighted right now is because of vendor- & tech-neutral thing.. I think the main reason is just that nobody did it yet :) So let's split that into two things:
|
I don't think we have to be particularly vendor-specific in this - React, Vue, Angular, SwiftUI/UIKit and Jetpack Compose (I think?) are all component-based systems that would pair nicely with fragments. I think we can show component-based UI and GraphQL fragments without needing to be vendor specific at all; but I'm afraid I don't have the design skills to actually pull something like that off. |
Thanks for clarifying @Urigo 😊 Regarding
|
@Urigo If we could boil down the key points in that first video (but modernised and not Relay-specific) into our homepage I think that'd be amazing! Honestly this diagram itself is quite effective at demonstrating the concept behind fragments: I really like Erik's v0 mocks too, though if the fragments are concrete I'd want to see something representing the data from the fragments within the components too, to make it more real. |
100%! The v0 mocks worked better than expected. Maybe we can create an evaluation prototype for the entire page for the next wg so everyone can give feedback on structure, layout and content and then work on a proper design that actually looks professional. Does anyone here have a v0 pro subscription, or a similar tool with unlimited access? And going back to that video is an awesome idea. |
Just dropping by to say that AI demo looks neat 🤩 . And the Android reactive UI-framework is Jetpack Compose indeed (not to be confused with the Compose compiler). |
Thank you so much everyone for bringing so many good ideas and feedback! I'm happy to share that we have a first version of the new design, ready for your feedback! A couple of notes:
Here is the link to the prototype: Here is a link to a video walkthrough by @ursusmeles (note that the Colocation animation was not ready there, so you'll just see the components without the animation - but on the prototype you can!): A link to the Figma file: |
2c. Suggestions for improvement
Instead of defining GraphQL as merely a query language, I propose something like those below. Limiting the title to "a query language" places too much emphasis on FE only. Designed for Composability. Powered by the Community.GraphQL is more than a query language — it’s an ecosystem of open source tools and best practices for building and consuming APIs. Alternatively........... A Strongly Typed, Open Specification for Declarative APIs.GraphQL enables precise, flexible data access — with a growing ecosystem of open tools for API producers and consumers. .....more comments to come with more time available. |
The "powered by community" section feels a little like an after thought at the moment. I hope there is room in the future to highlight our community initiatives like the local gatherings, the grants program and one day the ambassador program. It feels like the main audience target is enterprise (with it being highlighted in a dark pink block unlike the rest of the page), is this the correct messaging? |
I love the new color scheme. It's both "new" and "old". The pink ensures continuity and the green is very refreshing, very good balance IMO 🤩 My main feedback, (and I guess you saw me coming at this point 😄) is: Can we replace the "learn more" button with a "try it now" button? This page has plenty of links to learn more already, there's even a "learn" tab on top. Or viewers could just keep scrolling to learn more. But I really really want them to try GraphQL and let the technology speak for itself. I'm prepared to die on the "try it out button" hill! |
Do we have a timeline/rough goal? Like before/after GraphQL conf? |
Where things are just text copy I'm generally not going to worry about feeding back on them since we can edit that ourselves later (one small example: "A GraphQL Query" outlines a schema, query and response; but the title makes it seem like the person writing the query must also "Describe your data" - this is easy to fix later by rewording the header). Main feedback - I like it:
This third bullet I've included in 2.a because the current website does not have a strong bias towards size of adopter, but I don't think it'd take much to fix to remove that bias. One last point, have we checked how well this design works for colourblind people?
I think "Versionless" should be added as one of GraphQL's pillars. |
Thank you all for all of the valuable and deep feedback so far!
A general question - do you think we are in a state where we can also the designers to also start looking beyond the landing page and get designs for other sections? |
I might find it difficult to convey my thoughts exactly as I am only a beginner when it comes to marketing and messaging. With the heavy focus on enterprise in the body of the page, the "powered by community" section at the end feels a little like an after thought. Often, when seeing it added like that, what you find is that the open source part of the project is just there as a way to allow people to self host, but the company heavily up-sells you on a closed source cloud service. This is not the feeling we should be conveying. Is there a way to weave the idea that GraphQL is an open source, foundation backed project (with a community behind it) throughout the entire page? For example, one of the concerns enterprise bring to us at Graphile is how sustainable is the project? How is it funded? If there's a way to allude to that higher up in the page that might not only address the question of sustainability, but also give the correct impression of the GraphQL community. Edit: For example, the community and governance model are mentioned as one of the "selling points" of Async API: Is this a useful advantage for the Enterprise audience? I think so, though I am not experienced enough to know for sure. |
yes I think I get your point, we have a superpower of a community and it needs to be shown! Together with that, my thoughts here are that everyone that comes here are first and foremost looking for a solution to their problems, not necessarily a community So I think there is a lot to add about the community in the landing page, but I still thinking we should start with the problems GraphQL is solving I would love to hear about possible solutions to this, I agree its important Thank you @jemgillam ! |
This is important and should be reflected more prominently in the website, but it's not the whole reality of GraphQL adoption. GraphQL has become a critical piece of enterprise infra, namely as "the data layer" between internal services and public or partner clients: web apps, mobile apps, REST APIs, and so on. Both will be important to communicate to the global GraphQL community. |
Hey @benjie, great question! We checked the design across 6 different color vision deficiencies and all sections that could have been problematic turned out OK. See attached screenshot |
Thanks for confirming, @ursusmeles! |
Thank you @ursusmeles! Color blindness runs in my family so it's something I often pick up on too. I was worried about the pink/green contrast but it looks fine. So long as we aren't using only color to differentiate important information (eg while not using labels or symbols as well) then there's no issue at all |
The Guild were at a retreat so sorry for the lack of updates |
ok I have some great updates to share, the design team has accomplished a lot by the time we were at the retreat:
Next steps:
|
The conference site feels really fresh, the green is growing on me! It's great to see this design applied to more pages, I have a better feel for it now. I trust contrast has been checked, especially on the lime green sections with black text. I don't think I have any other notes, aside from I like it! |
Uh oh!
There was an error while loading. Please reload this page.
Find our new messaging for GraphQL in order to put it on the main homepage
Current thinking:
Add to the homepage not only what GraphQL is but also its value proposition.
The text was updated successfully, but these errors were encountered: