Skip to content
@jacobparis-insiders

Jacob Paris Insiders

An organisation available to all free jacobparis.com email subscribers.

Hi there 👋

This org is for all of my websites, code examples, and open source projects.

Previously, it was locked to newsletter subscribers only, but now everything is publicly available.

Get in touch

I spend most of my life on Twitter and the rest of it in the Remix Discord.

Remix Image Upload Example (like Slack)

This is an example replicating Slack's message input in Remix.

  • You can drag and drop images, or upload them, onto the message input.
  • They show immediately in a pending "upload" state while they're uploaded in the background to the cloud.
  • Once the upload completes, they're replaced with the uploaded image and can be submitted with your form.

The draft message and any images in it is fully persisted to the server, so you can start a message on one device and finish it on another.

Optimistic Image Uploads In Remix

Multi-step form demo with animated route transitions example

This is an example demonstrating forms that cross many pages, inspired by Linear's onboarding

  • Data is submitted at every step to a form session object
  • Users can navigate forward and backward through the form
  • Users can jump to pages in the form out of order
  • The server can infer, based on data in form session, whether a user should be allowed to access a certain page, and redirect them to the appropriate route if not

Each page loads with animated route transitions

Multi-step form demo with animated route transitions

Show active user presence (like Google Docs or Figma) example

This example covers how to show a presence indicator with a list of the users who are currently viewing a page

  • Create a form with an emoji picker
  • Use a cookie session storage to save the user's name and emoji.
  • Create a full stack component to control the presence widget.
  • Use event streams to update the presence widget in real time.

Websockets are also a viable solution here, but that requires setting up a separate websocket server. Server-sent events are easy and widely supported.

Show active user presence (like Google Docs or Figma)

Show toast notifications on form submit with Remix

This is an example demonstrating how to show a toast message after a form is submitted.

Show toast notifications on form submit with Remix

Building a markdown input with a preview tab (like GitHub and Stack Overflow)

This is an example replicating GitHub's markdown preview input in Remix

Building a markdown input with a preview tab

Autosave form inputs on change or blur example

This is an example demonstrating forms that persist automatically

  • useFetcher instead of submit so changes aren't lost on navigation

TODO: update to use the useDebounceFetcher hook TODO: Add landing page + Get started button to create a custom ID so users changes don't conflict

Stream BullMQ Job Progress

This is an example of streaming progress updates for a pending BullMQ job

Stream Progress Updates

This is a simpler example of streaming progress for a long-running task (no Redis or BullMQ)

Popular repositories Loading

  1. sly sly Public

    Monorepo for Sly CLI

    TypeScript 169 14

  2. remix-custom-routes remix-custom-routes Public

    A package to make custom routes easier in Remix

    TypeScript 71 4

  3. jacobparis.com jacobparis.com Public

    MDX 29 4

  4. remix-defer-streaming-progress remix-defer-streaming-progress Public

    This is an example of how to use Remix's Defer feature in combination with an EventStream to stream progress updates to the client.

    TypeScript 21 1

  5. remix-defer-streaming-bullmq remix-defer-streaming-bullmq Public

    TypeScript 12 1

  6. moulton moulton Public

    TypeScript 3

Repositories

Showing 8 of 8 repositories
  • jacobparis-insiders/jacobparis.com’s past year of commit activity
    MDX 29 4 2 1 Updated Oct 25, 2024
  • sly Public

    Monorepo for Sly CLI

    jacobparis-insiders/sly’s past year of commit activity
    TypeScript 169 14 12 3 Updated Oct 24, 2024
  • moulton Public
    jacobparis-insiders/moulton’s past year of commit activity
    TypeScript 3 0 0 0 Updated Jul 21, 2024
  • remix-custom-routes Public

    A package to make custom routes easier in Remix

    jacobparis-insiders/remix-custom-routes’s past year of commit activity
    TypeScript 71 MIT 4 3 0 Updated Jul 12, 2024
  • .github Public
    jacobparis-insiders/.github’s past year of commit activity
    0 0 0 0 Updated Aug 15, 2023
  • jacobparis-insiders/twitter-hotkey-hints’s past year of commit activity
    TypeScript 0 0 0 0 Updated Jun 3, 2023
  • jacobparis-insiders/remix-defer-streaming-bullmq’s past year of commit activity
    TypeScript 12 1 0 0 Updated Mar 13, 2023
  • remix-defer-streaming-progress Public

    This is an example of how to use Remix's Defer feature in combination with an EventStream to stream progress updates to the client.

    jacobparis-insiders/remix-defer-streaming-progress’s past year of commit activity
    TypeScript 21 1 0 0 Updated Mar 6, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…