Confetti patternConfetti pattern

Lessons from the trenches

Get coding tips and tricks from our team that solve real-world problems, and help you optimize your development workflow.

Confetti patternConfetti pattern
  • Add types to your AWS lambda handler

    Lambdas handlers can be invoked with many different, but always complex, event arguments. Add to that the context, callback, matching return type and you basically start listing all the different ways that your function can fail in production.

  • How to expose a local service to the internet

    From time to time you might need to expose your locally running service to the external world - for example you might want to test a webhook that calls your service. To speed up the test/development feedback loop it would be great to be able to point that webhook to your local machine.

  • For loops in JavaScript (vs _.times)

    From time to time I still see a for loop in JavaScript codebases. Linters are frequently angry about them. Let's see how we can replace them.

  • Sharing scalars between modules with Chimp

    Simplify your Chimp-based project even further with a new @predefined Scalar directive.

  • Adding TypeScript to the official Apollo Platform Tutorial app

    In today's video I go through a preparation of the official Apollo Platform Tutorial App for adding Chimp to it. I decided to divide that task into two steps - first is adding TypeScript to the codebase. Watch me work, struggle, fly through code, hopefully you will learn some tricks :)

  • AWS CDK Lambda and DynamoDB dependency management

    A discussion about issues we've stumbled upon and a solution that simplified our CDK workflow.

  • cypress-cucumber-preprocessor 4.1.0 - TSX and Multiline Step Arguments support

    We've just released a new version of the cypress-cucumber-preprocessor package with TSX/React testing and Multiline Step Arguments.

  • Chimp 4.0 - resolvers for extended federated types

    The Chimp 3.0 and previous versions always generated resolveReferences resolvers for all federated types. It turned out to be excessive, so we make it configurable.

  • Better way to use useReducer with TypeScript

    Introducing useComplexState hook, - a small wrapper combining Redux Toolkit, useReducer with some extra syntax sugar to make things even simpler and more to-the-point.

  • Dealing with randomness in tests

    A few patterns to help you deal with randomness in your codebase.

  • How to deal with the yarn link "There's already a package called x registered" error

    Short discussion about helpful error messages, and a solution to the problem

  • Choosing between useState and useReducer

    A simple example that demonstrates when useState is no longer a good idea, and how to make useReducer less scary to work with.

  • GraphQL Federation example updated to Chimp 3.0

    We are happy to announce that the example showing many advanced patterns related to GraphQL usage is updated to Chimp 3.0

  • Rapid Prototyping with JavaScript

    I'm sharing my day-to-day pattern for prototyping with JavaScript

  • How to fix the annoying "Ensure there is only one instance of graphql" error

    If you have been doing serious work with GraphQL over the last few years, you surely saw the "more than one instance of GraphQL error". Let me help you deal with it.

  • Adding chimp 3 to an existing Application

    We will show you how to add chimp to an existing application based on our simple example

  • Updating from Chimp 2 to 3

    We've rewrote Chimp, simplified the setup and fixed some defaults. We hope you will enjoy the new development experience!

  • How to deal with inferred TypeScript types and stop using any

    What do you do when you are in need to figure out a complex type? Many just give up - they either make a use of any or jump through a lot of hoops that in the end makes their code less maintainable.. but at least they didn't have to figure out the types, right? :)

  • How to never add WebStorm .idea folder to git ever again

    Simple git trick to have a global .gitignore file

  • How to pass a class to a function in TypeScript

    TypeScript documentation generously helps us with an example, that, usually does not work out of the box.

  • Testing with DynamoDB Toolbox

  • Creating Tables with DynamoDB Toolbox

  • Instantly update your Lambda functions (development)

  • Centralize your AWS Lambda Errors

  • Make Oh My Zsh history play nicely with WebStorm / IntelliJ

  • How to easily develop and deploy TypeScript Lambda functions

  • DynamoDB nodejs Testing Tool

  • Chimp v2.3.0 released. Custom Prefixes for Monorepos

  • How to mock files with TestDouble, TypeScript and Jest

  • Why so loud, jest?

  • Generate your Apollo DataSources

  • Comparison of the GraphQL Workflow with/without Chimp

  • Apollo Composable with Vue Storybook Stories

  • Adding Semantic Release to an old Babel Plugin [Live] (2/2)

  • Automated Testing with Apollo Federation

    Learn how to write automate tests for your federated GQL µservices