Logo
    Search

    Using GraphQL queries in Remix loader functions

    enMay 17, 2022

    About this Episode

    Hey Kent! We've been using Hasura to generate CRUD APIs for our small team. Our existing web applications are all using Next.js, and consume the GraphQL API via Apollo Client and TypeScript hooks generated from the remote schema using graphql-code-generator. This workflow has saved us a lot of time, particularly in API development, and I love the generated type-safe hooks. After watching your new Remix content, we're very excited to try Remix as an alternative to Next, mostly to leverage the performance benefits and the effortless error boundaries within nested routes. Do you have some best practices for utilizing GraphQL queries in Remix loader functions? It would be great for us to continue to take advantage of code generation, if possible. Thank you so much!

    Links:

    Recent Episodes from The Call Kent Podcast

    A Button Per form or One Form with Multiple Buttons

    A Button Per form or One Form with Multiple Buttons

    Hi Kent,

    It's Jan 👋

    When creating a dropdown menu (e.g. to pick a role in an organization), would you wrap the whole menu in a form tag and then render multiple buttons within that form (one for each role)? Or would you render multiple forms (one for each role) with each having their own submit button?

    Thanks a ton if you answer!

    Best regards, Jan

    A Button Per form or One Form with Multiple Buttons

    Toasts in Remix

    Toasts in Remix

    Hi Kent,

    It's Jan.

    I'm currently working on implementing toasts in a Remix app. I was using the Epic Stack as a reference.

    BTW, thank you for creating it, it's so nice to take some features and functionalities from it when you need them!

    Anyways, it looks like the implementation of the toast in the Epic Stack does NOT work with JavaScript disabled. But theoretically, you could make toasts in Remix progressively enhanced by giving the close button a form and prevent default when JavaScript is enabled.

    It looks like the library you're using in the Epic Stack - Sonner - does NOT expose the close button, so you can't progressively enhance it.

    Was it a conscious decision to make the toast JavaScript only? Or let me ask the decision more openly, what are your thoughts on this?

    As always, thanks a ton!

    Toasts in Remix

    Unpaid internships and indentured servitude

    Unpaid internships and indentured servitude

    So, recently I started looking for my first software job. The first offer I received was from a company looking for an intern. The internship had the following conditions: 1) the first 3 months of it are unpaid 2) you have to sign a contract after the 1st month of it that obligates you to stay at the company 2 years after the internship is ended. I rejected it because I felt like you never know what that company may turn out to be. For example, it may try to exploit you and pay you the bare minimum for the job you're doing preventing your career growth and your only option may be to wait for that contract to expire and then start looking for a higher position at another company. I'd like to ask your opinion about:

    • unpaid internships
    • internships that obligate you to stay at the company for 1 or 2 years once the internship is ended
    • companies that follow both of these practices
    Unpaid internships and indentured servitude

    It's fine to re-render

    It's fine to re-render

    My question is around the optimization techniques that a lot of people apply to React apps. I see very often how devs focus on executing their components only once or twice. What I think matters at the end is if there any changes in the actual DOM tree. If not they in theory should be ok to see your functional components fired many times.

    It's fine to re-render