examples
remix
examples | remix | |
---|---|---|
5 | 44 | |
892 | 27,371 | |
4.7% | 1.3% | |
8.7 | 9.9 | |
6 days ago | 5 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
examples
-
Using Remix or NextJS
Real time data update: Remix supports Server Sent Events e.g. https://github.com/remix-run/examples/tree/main/_official-realtime-app https://github.com/remix-run/remix/discussions/2622
-
Server Actions, databases, and the future of data handling
Check out the official Xata template in this Remix example.
-
Is React Router V6 over-engineered?
Combobox example (from remix but the code is the same - remix is just react-router running on the server rather than the browser)
-
Starchart: Playwright and Chakra UI Setup
Setting up Chakra UI was relatively simple. I followed their instructions for the most part. I also found this example to be really helpful. My process for this went like this: I looked at the instructions in Chakra UI docs for the client, server and root files, and compared them with the existing code in starchart. Then, I also referenced them against the example code.
-
Svelte CSS Image Slider: with Bouncy Overscroll
import { error } from '@sveltejs/kit'; import { createReadStream, statSync } from 'node:fs'; import type { Readable } from 'node:stream'; import { PassThrough } from 'node:stream'; import { join } from 'path'; import sharp from 'sharp'; import type { RequestHandler } from './$types'; async function metadata( source: string ): Promise<{ format?: string; width?: number; error?: string }> { try { const image = sharp(source); const { format, width } = await image.metadata(); if (format) { return { format, width }; } } catch (error: unknown) { console.error(`Error reading image metadata: ${source}: ${error}`); } return { error: `Error reading image metadata: ${source}` }; } function resize(imageStream: Readable, width: number, format: string): ReturnType { let sharpTransforms; switch (format) { case 'jpeg': sharpTransforms = sharp().resize(width).jpeg({ mozjpeg: true }); break; case 'avif': sharpTransforms = sharp().resize(width).avif({ quality: 80 }); break; case 'webp': sharpTransforms = sharp().resize(width).webp({ quality: 80 }); break; default: sharpTransforms = sharp(); } const passthroughStream = new PassThrough(); imageStream.pipe(sharpTransforms).pipe(passthroughStream); // @ts-expect-error respond with passthrough stream return new Response(passthroughStream as unknown); } // Based on: https://github.com/remix-run/examples/blob/main/image-resize/app/routes/assets/resize/%24.ts export const GET: RequestHandler = async function get({ params, url, setHeaders }) { try { const { filename } = params; const srcPath = join('src/assets', filename); const fileStat = statSync(srcPath); if (!fileStat) { throw error(404, 'Not found'); } const metadataPromise = metadata(srcPath); const readStream = createReadStream(srcPath); const { format, width } = await metadataPromise; if (!format || !readStream || !width) { throw error(404, 'Not found'); } const { searchParams } = url; const outputWidthString = searchParams.get('w'); const outputWidth = outputWidthString ? Math.min(parseInt(outputWidthString, 10), width) : width; const outputFormat = searchParams.get('format') ?? format; setHeaders({ 'Content-Type': `image/${outputFormat}`, 'Content-Disposition': `filename= ${filename.split('.')[0]}.${outputFormat}`, 'Cache-Control': 'public, max-age=31536000, immutable' }); return resize(readStream, outputWidth, outputFormat); } catch (err: unknown) { const httpError = err as { status: number; message: string }; if (httpError.status && httpError.message) { throw error(httpError.status, httpError.message); } const { pathname } = url; const message = `Error in load function for path "${pathname}": ${err as string}`; console.error(message); throw error(500, message); } };
remix
-
Learning spell: using cloudflare's AI to improve speaking skills
Also, Remix sourcemaps didn't work with Cloudflare Workers, but it seems that it should be working already. I should double-check it!
-
Inlang / ParaglideJS blew my mind 🤯
Then in this Github issue, I found something new and flashy, Paraglide JS.
-
My 2023 Year in Review
Relates to https://github.com/remix-run/remix/pull/3104
-
What I've Learned By Building DEV Analytics Dashboard 💡
The main goal of this project was to learn something new in a fun way, so I've decided to use Remix for it, and oh my - it was perfect. I was amazed by how powerful it is by using just standard web features such as cookies, query parameters, and forms. Just remember to be cautious when picking a starter template for your project. I picked the default one, and later found out it wasn't supported by Netlify. As a result, I had to delete the entire repository and start the configuration process again. 🙈
- Just use vite! · remix-run/remix · Discussion #7632 · GitHub
-
Using Remix or NextJS
Real time data update: Remix supports Server Sent Events e.g. https://github.com/remix-run/examples/tree/main/_official-realtime-app https://github.com/remix-run/remix/discussions/2622
-
How to Write a Good Issue: Tips for Effective Communication in Open Source
Sometimes the best way to learn is by looking at examples, so we’re going to walk through this Remix issue from Nick Taylor.
-
Dan Abramov responds to React critics
You don't need NextJS for SSR. There are less opinionated alternatives like Remix that was built by the React Router team and is backed by Shopify now, you can use something like Razzle or one of its alternatives for semi-opinionated pure SSR or follow the Vite Docs and just do it yourself with express.
- Remix adds HMR support in 1.14.0
-
Remix or Nextjs? Why?
- I've found Remix's configurable routes helps to split very large Remix projects into independent features that scales well, when multiple server output bundles drops this will scale the deployments across serverless functions also. RFC. PR.
What are some alternatives?
epic-stack - This is a Full Stack app starter with the foundational things setup and configured for you to hit the ground running on your next EPIC idea.
SvelteKit - web development, streamlined
blues-stack - The Remix Stack for deploying to Fly with PostgreSQL, authentication, testing, linting, formatting, etc.
redux - A JS library for predictable global state management
starchart - A self-serve tool for managing custom domains and certificates [Moved to: https://github.com/DevelopingSpace/starchart]
redwood - The App Framework for Startups
2022-css-day_oh-snap
Blitz - ⚡️ The Missing Fullstack Toolkit for Next.js
chakra-ui - ⚡️ Simple, Modular & Accessible UI Components for your React Applications
fresh - The next-gen web framework.
Playwright - Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Next.js - The React Framework