With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more â
Top 23 esbuild Open-Source Projects
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
mdx-bundler
ðĶĪ Give me MDX/TSX strings and I'll give you back a component you can render. Supports imports!
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
template.js
A javascript template engine, simple, easy & extras, support webpack, rspack, vite, rollup, esbuild, parcel, browserify, fis and gulp.
-
minification-benchmarks
ðââïļðââïļð JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify
-
bundlejs
An online tool to quickly bundle & minify your projects, while viewing the compressed bundle size, all running locally on your browser. A quick and easy way to bundle, minify, and compress (gzip and brotli) your ts, js, jsx and npm projects all online, with the bundle file size.
-
esbuild-runner
âĄïļ Super-fast on-the-fly transpilation of modern JS, TypeScript and JSX using esbuild
-
xdm
Just a *really* good MDX compiler. No runtime. With esbuild, Rollup, and webpack plugins (by wooorm)
-
create-react-app-esbuild
Use esbuild in your create-react-app for faster compilation, development and tests
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
At this point, you will have a setup which relies on tsx to understand TypeScript, and jsx-async-runtime to understand JSX/TSX templates.
/* eslint-disable @typescript-eslint/ban-ts-comment */ // Follow this setup guide to integrate the Deno language server with your editor: // https://deno.land/manual/getting_started/setup_your_environment // This enables autocomplete, go to definition, etc. import { corsHeaders } from "../_shared/cors.ts"; import { createClient } from "https://esm.sh/@supabase/[email protected]"; import randomSample from "https://esm.sh/@stdlib/[email protected]"; import Replicate from "https://esm.sh/[email protected]"; import { base64 } from "https://cdn.jsdelivr.net/gh/hexagon/base64@1/src/base64.js"; const supabaseClient = createClient( Deno.env.get("SUPABASE_URL") ?? "", Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") ?? "" ); const replicate = new Replicate({ auth: Deno.env.get("REPLICATE_API_TOKEN") ?? "", }); // @ts-expect-error Deno.serve(async (req) => { if (req.method === "OPTIONS") { return new Response("ok", { headers: corsHeaders }); } const { record } = await req.json(); const thought_id = record.id; if (!thought_id) { return new Response("Missing thought_id", { status: 400, headers: { "Content-Type": "application/json", ...corsHeaders }, }); } const allObjectIDsResponse = await fetch( "https://collectionapi.metmuseum.org/public/collection/v1/objects?departmentIds=11", { method: "GET", headers: { "Content-Type": "application/json", Accept: "application/json", }, } ); const { objectIDs } = await allObjectIDsResponse.json(); const listOfArtworks = []; const addedIDs: number[] = []; while (listOfArtworks.length < 80) { const randomObjectID = randomSample(objectIDs, { size: 1 })[0]; if (addedIDs.includes(randomObjectID)) continue; const res = await fetch( `https://collectionapi.metmuseum.org/public/collection/v1/objects/${randomObjectID}`, { method: "GET", headers: { "Content-Type": "application/json", Accept: "application/json", }, } ); const artwork = await res.json(); if (!artwork.primaryImageSmall) continue; addedIDs.push(artwork.objectID); listOfArtworks.push({ image_url: artwork.primaryImageSmall, artist_name: artwork.artistDisplayName, title: artwork.title, is_main: listOfArtworks.length === 0, is_variant: false, thought_id, }); } const mainImage = listOfArtworks[0]; const output = await replicate.run( "yorickvp/llava-13b:b5f6212d032508382d61ff00469ddda3e32fd8a0e75dc39d8a4191bb742157fb", { input: { image: mainImage.image_url, top_p: 1, prompt: "Describe this painting by " + mainImage.artist_name, max_tokens: 1024, temperature: 0.2, }, } ); const file = await fetch(mainImage.image_url).then((res) => res.blob()); const promises = []; for (let i = 0; i < 8; i++) { const body = new FormData(); body.append( "prompt", output.join("") + `, a painting by ${mainImage.artist_name}` ); body.append("output_format", "jpeg"); body.append("mode", "image-to-image"); body.append("image", file); body.append("strength", clamp(Math.random(), 0.4, 0.7)); const request = fetch( `${Deno.env.get( "STABLE_DIFFUSION_HOST" )}/v2beta/stable-image/generate/sd3`, { method: "POST", headers: { Accept: "application/json", Authorization: `Bearer ${Deno.env.get("STABLE_DIFFUSION_API_KEY")}`, }, body, } ); promises.push(request); } const results = await Promise.all(promises); const variants = await Promise.all(results.map((res) => res.json())); await supabaseClient.from("artworks").insert(listOfArtworks); for (let i = 0; i < variants.length; i++) { const variant = variants[i]; const randomId = Math.random(); await supabaseClient.storage .from("variants") .upload( `${thought_id}/${randomId}.jpeg`, base64.toArrayBuffer(variant.image), { contentType: "image/jpeg", } ); await supabaseClient.from("artworks").insert({ image_url: `${Deno.env.get( "SUPABASE_URL" )}/storage/v1/object/public/variants/${thought_id}/${randomId}.jpeg`, artist_name: mainImage.artist_name, is_main: false, is_variant: true, thought_id, }); } await supabaseClient .from("thoughts") .update({ generating: false }) .eq("id", thought_id); return new Response(JSON.stringify({ main: mainImage }), { headers: { "Content-Type": "application/json", ...corsHeaders }, }); }); function clamp(value: number, min: number, max: number) { return Math.min(Math.max(value, min), max); }
Project mention: PSA: Storybook sends telemetry data, opt-in by default | news.ycombinator.com | 2023-09-21
Personally using https://github.com/kentcdodds/mdx-bundler
Project mention: Coming here from svelteland... is there a way to put CSS module inside JS? | /r/solidjs | 2023-06-03I recently encountered Vue Macros and it inspired me to create a compile-time macro library for CSS modules, unfortunately I haven't even started and am not planning to do so any time soon. I like having the entire component in a single file but honestly just having COMPONENT_NAME.module.css for each component is not bad at all. I'd just avoid doing the COMPONENT_NAME/style.module.css, this gets very tedious
Project mention: Finally, a guide for Node.js and TypeScript and ESM that works | news.ycombinator.com | 2023-11-21Love this project, used it quite a bit. However I always opt for using esno[1] instead, merely because of the name; having two tools share the same name throws me off.
[1] https://github.com/esbuild-kit/esno
Minifiers are used to reduce the size of the bundle. They can remove unused code, shorten expressions, and so on. And Now there are already several popular minifiers, and they continue to appear: more familiar ones - written in JavaScript - Terser and UglifyJS, even Babel has its own version of the minifier, there are also more modern SWC (written in Rust) and ESBuild (written in Go), and a bunch of other lesser-known minifiers. And I recommend you to look at this repository. It contains up-to-date test results of various popular minifiers.
Congrats on the release to the Django community!
If anyone is curious, I updated my Django / Docker starter kit app to use Django 5.0 at: https://github.com/nickjj/docker-django-example
It pulls together gunicorn, Celery, Redis, Postgres, esbuild and Tailwind with Docker Compose. It's set up to run in both development and production.
Project mention: Bridgetown: Progressive site generator and fullstack framework, powered by Ruby | news.ycombinator.com | 2024-01-27
I took a 13,000 line Rails 7.0 app and updated it to 7.1. I had to change 1 line of test configuration code to make everything work.
I would say that's a success for having an easy upgrade path. Now the fun part is going back to refactor some of the code to use the new features in 7.1.
If anyone is curious, I updated my Rails / Docker example app to use 7.1 too https://github.com/nickjj/docker-rails-example. Even though Rails 7.1 comes with a Dockerfile, there's still a lot of opinions you can add such as using Docker Compose to have a fully working out of the box experience that works in development and production -- complete with Postgres, Redis, Action Cable, Sidekiq and more.
esbuild related posts
-
Making Eleventy Data Traceable with TSX and Zod
-
Micro Frontends with Native Federation ðŋ
-
Finally, a guide for Node.js and TypeScript and ESM that works
-
Show HN: esbuild-config â Config files for esbuild
-
Extremely reducing the size of NPM package
-
The esm/cjs situation...
-
How is everyone monetizing their frontend skills?
-
A note from our sponsor - SurveyJS
surveyjs.io | 29 May 2024
Index
What are some of the best open-source esbuild projects? This list will help you:
Project | Stars | |
---|---|---|
1 | tsx | 8,036 |
2 | esbuild-loader | 3,521 |
3 | esm.sh | 2,885 |
4 | unplugin | 2,845 |
5 | ladle | 2,480 |
6 | mdx-bundler | 1,708 |
7 | vue-macros | 1,626 |
8 | esno | 1,552 |
9 | template.js | 1,308 |
10 | minification-benchmarks | 1,222 |
11 | docker-django-example | 1,116 |
12 | Bridgetown | 1,099 |
13 | estrella | 1,093 |
14 | docker-rails-example | 926 |
15 | bundlejs | 715 |
16 | esbuild-node-tsc | 708 |
17 | esbuild-runner | 703 |
18 | react-multistep | 647 |
19 | typescript-boilerplate | 597 |
20 | xdm | 589 |
21 | react-native-esbuild | 585 |
22 | unconfig | 570 |
23 | create-react-app-esbuild | 560 |
Sponsored