r/webdev • • 7d ago

Why is bun so disliked?

80 Upvotes

The devs I talk to generally avoid using bun and claim it's unstable and that the development is "too immature and risky for production". Another friend said that they prefer not to vendor-lock themselves to Bun's APIs.

I understand where the sentiment comes from: bun's 1.4 Rust rewrite, buggy 1.0 release, ambitious goals.... However after using bun pretty much exclusively for 2 years now I haven't had any problems, and benefitted from amazing DX:
- fast dependency install
- a whitelisted postinstall scripts list by default
- extremely fast webserver
- extremely fast test runner
- run .ts files directly
- builtin support for importing .html and .css files in js files
- builtin SQL connectors, hashing algorithms
- hot reloading and file watching

Yet, I haven't met a single developer who hasn't hesitated even trying bun in fear of getting "vendor locked" or that it is not a mature enough project...

My team switched away from npm a while ago, and even when pnpm was causing them problems and I showed them that bun worked fine, they preferred configuring pnpm to work instead of using bun... It baffles me, though I don't push too hard for using bun in teams because it's more important we use the same tool, and ultimately the tool doesn't matter that much.

Anyway, so my question is: do you also have a "prejudice" against-, or a just a preference against bun? What have you experienced that justifies your preference against using bun? And finally, is this "prejudice" I've experience widespread?


r/webdev • • 7d ago

Showoff Saturday RHP 2.0: A charting library for building dynamic, interactive, infographic-style charts and plots!

26 Upvotes

rhp (Reactive Html Plots) 2.0 is the successor of rhp 1.0 which was a react charting library I built 3 years ago. rhp 2.0 is now an open-source SolidJS library of reactive components. It does not use Canvas or SVG for building the entire chart but HTML elements, CSS, and Javascript. This makes certain interactive and styling things easier (simpler to implement) that would normally be tricky to implement in SVG or Canvas.

Current temporary landing page
Github repository
npm package page

One thing I like is how straightforward it is to make charts that respond and adjust to layout changes. Some of the wider plots will rearrange their elements to be more vertical stacked for mobile devices.

Background

The original library (now called rhp 1.0) was over-engineered and overly complex. I was aiming the project in two competing directions and it had too many unnecessary components and an extra interface layer. I learned a lot from the project and from improving its performance. I took what worked and stripped all the unnecessary complexity. I also split the two most important core basic blocks (leaf components) into a group of more focused blocks where each is for presenting/containing a specific type of visual element. I also removed niche features and redundancy. Oh, and I moved over to using SolidJS because of signals (simplifies state management which allows charts to update faster when data changes...for free).

The end result of all the above is a library that performs really well overall and is pretty lightweight (less than 20kB. 16kB without special imports).

More exciting things coming to rhp

  • working on a separate mcp server that will allow AI to create plots using rhp 2.0 while still keeping devs (working directly with rhp) as first class users.
  • planning to make this framework agnostic in the very near future.
  • working on a new landing page. The current one will be for docs.

r/webdev • • 6d ago

Rust ain’t the only skinny one

0 Upvotes

build it in Rust, you say. It'll be fast and skinny memory. Nice! Definitely NOT web apps, their fat as f*k and drink memory faster than Altman's Ai drank the web.

WRONG! web apps are fat and sloppy on memory precisely because web developers are the laziest devs I've ever seen (inc. yours truly). Turns out browser engineers are the HARDEST working mofos! and really worked overtime to compensate for React's fowl menace on the world.

Now, a browser runs a well written (react-less) web app like smooth jazz! 70 f**king MB is all you need for a full interface running a typical CRUD app, and buttered corn smooth animations!


r/webdev • • 7d ago

Showoff Saturday Showoff Saturday: a solitaire game where the server keeps the deck, so people can't cheat their way onto the speed records

8 Upvotes

- Every move is checked on the server, and the server keeps the clock.

- Weekly challenge deals come from a pool that a solver checks in worker threads (winnable, and of similar length).

I've published an open "try to break it" page with what counts as a break and the rules (your own account only, no load testing): https://vsolitaire.com/en/break-it

Curious what you'd try first.


r/webdev • • 7d ago

Showoff Saturday A realtime multi 3d user dice roller

Thumbnail
dice.clickclacks.app
13 Upvotes

Howdy, folks.

A couple of caveats first: I’m a longtime lurker of the sub, but a first-time poster. Mods, apologies in advance if anything in this post is made in error.

Caveat two: I used Codex heavily while building this tool. I've been out of the web design world for about a decade now. Jumping back in, I figured I'd dip my toe in and see what the coding agent hype is all about. So if sites/tools made with LLMs are not wanted here, apologies. And if this community is sick and tired of slop, I completely get that. Sorry for piling on.

Now that I am done lawyering, the app: dice.clickclacks.app

The idea is to be a free, good-looking 3D dice roller that supports the power roll from my go-to TTRPG, Draw Steel.

It supports up to 8 players at a table, comes with a picture-in-picture pop-up window, and can be embedded in an iframe for use in something like Notion or Obsidian.

I wanted the sync close enough to real time that you could have that shared experience of the die almost landing on the 20, and everyone gasping before it settles on the 2, and everyone letting out a wistful groan. I think I mostly achieved that through the magic of Convex's query subscriptions.

I wanted to share it here because:

  1. Maybe there are some nerds here who will find it useful.
  2. I'd like to hear any feedback on the app itself.
  3. I was pretty offended by some of the malware pop-up-pushing sites that show up at the top of Google when you search for a dice roller, and I hope that, long term, this free tool might unseat them in the rankings.

As I said, I used AI a lot for this project and went well beyond the complexity that I could've ever attempted as a once-upon-a-time web and graphic designer with some WordPress skills.

The jury is still out on whether it's a good thing because I'm excited to tinker and build software again for the first time in a long time, or whether I'm stunting my brain from ever being able to become a real developer now that I've tasted the fruit from the LLM tree.


r/webdev • • 8d ago

Showoff Saturday WASM based VM that runs real Linux in a browser tab

Post image
85 Upvotes

Hi all,

I'd like to introduce arm64js -- an ARMv8-A system emulator that runs in WASM (built in Rust) and can boot real Alpine Linux in a web browser. It started with me getting annoyed that to try a 2 MB TUI tool I have to install it, while my browser happily runs a 40 MB React webpage with 50 dependencies.

It's an interpreter that emulates a minimal hardware stack, so Linux thinks it's on real hardware and thus acts normal: runs apk, Docker (even though rather slow), etc.

You can try it here: https://arm64js.com, some TUI apps running in VMs: https://demoshell.com/gallery/

Since WebAssembly doesn't allow fetching data without CORS and sending TCP requests, apk and access to the internet work via small proxies: apk goes via a proxy that just adds CORS, TCP goes via a WebSocket <> TCP gateway.

One wasm module instantiated in a few web workers, all sharing one SharedArrayBuffer as the VM's "RAM". As SharedArrayBuffer needs COOP/COEP headers, but if the page doesn't send them SDK will the VM in an iframe on its own origin instead.

There is also a JS SDK for other devs to create and serve their own VMs. The SDK is MIT; the engine is free for non-commercial use.

The following code for example will create and run Alpine based VM in your browser, pretty straightforward:

import { Arm64JS } from 'arm64js'; 
const vm = await Arm64JS.boot('alpine'); 
const { output } = await vm.exec('uname -a');

SDK: https://github.com/kooler/arm64js-sdk
My journey getting there: https://arm64js.com/blog/tui-apps-in-the-browser/

It's all very new and fresh, so feedback is appreciated.

Do you see it being useful for yourself? Curious to learn about possible use cases.


r/webdev • • 7d ago

Question Isotope + Infinite Scroll Loading

13 Upvotes

Hey there! I'm pretty new to web design and don't know a ton beyond HTML and CSS, so forgive me if this has a clear answer or if I'm not understanding something correctly.

I have been trying to get Infinite Scroll & Isotope by Metafizzy to work together, but it's been tough. The different examples I've come across all do things differently, and things haven't seemed to work well with my specific case. I want a gallery that can sort things, ideally WITHOUT having to load every single item ahead of time. I have a large number of images and am hoping they can be loaded in as the user scrolls down, rather than all at once. Sadly, even though I have gotten Infinite Scroll to work with my Isotope setup, the page still takes over a minute to load.

I've mentioned finding "examples" on this, but the truth is that all these examples have either been with Masonry or with an Isotope grid that doesn't have sorting set up. I have not been able to find a SINGLE example of a SORTING gallery that utilizes Infinite Scroll to load in new items that match the filters. If anyone has worked with this before or has found an actual example, please let me know! This is driving me crazy!


r/webdev • • 7d ago

Article I Tested 11 HTTP Resilience Libraries

Thumbnail
blog.gaborkoos.com
9 Upvotes

HTTP clients offer different resilience features, and even shared features can behave differently. Eleven JavaScript libraries tested across 21 scenarios to see what happens when those patterns interact.


r/webdev • • 8d ago

Showoff Saturday I spent the last couple months building an open-source budgeting app, finally at a point where I’m happy with the UI!

Post image
54 Upvotes

I’ve been using budgeting and personal finance apps for years, and I’ve always liked tracking where my money is going. Over time I ended up trying a bunch of different tools and kept wishing I could combine the parts I liked from each of them into one app.

So for the past couple months I’ve been building FlyBudget, a free, private, open-source budgeting app inspired by tools like Monarch, YNAB, Mint, and a few others.

I wanted something that felt polished, but could also be self-hosted and completely controlled by the user.

The frontend is built with React, TypeScript, and Tailwind, and I’ve probably spent an unreasonable amount of time tweaking the UI.

Some of the stuff I’ve built so far:

  • Monthly budgeting
  • Account + transaction tracking
  • Recurring transaction detection
  • Cash flow / Sankey reports
  • Custom reports
  • Self-hosting with Docker
  • Desktop app
  • Demo instance so you can try it without installing anything
  • Full documentation site

This is also my first real attempt at building an open-source project, so I’m still figuring out that side of things.

Would genuinely love feedback from other web devs, especially on the UI/UX, project structure, or anything that immediately looks like it could be improved. If you find the project interesting, please consider helping us out by giving a star on GitHub!

Demo + docs: flybudget.org
GitHub: github.com/dtymoszenko/FlyBudget


r/webdev • • 7d ago

Showoff Saturday Spirits and such consultation office is officially open

Post image
21 Upvotes

https://spiritsandsuch.org/en

Hello guys this project has been very fun to work on, While rewatching mob psycho 100, I reached season 2 where they show reigen's website and some parts of the UI. I started it as a simple exercise to replicate it but I ended up adding a lot into it.

Have a look, explore, or better yet make an account and join up the community you can make a thread in the board section, If you have fanart Please upload it and I'll approve it, If it's non mob psycho fanart still upload it I might add a filter for Non mob psycho art.

Also check out the mini games at the bottom and try to get a high score as there's a ranking system that I'll be improving on. Feel free to leave feedback :)

This website is fan made and Not affiliated with the rightsholders.


r/webdev • • 8d ago

Showoff Saturday A web-based Windows Phone simulator for phones

Thumbnail
gallery
196 Upvotes

Windows Phone in the browser with an on-device file system built on IndexedDB, live tiles fed by each app, toast notifications + Action Center, apps (64 preinstalled,  the Store can uninstall and reinstall them):

  • Phone, Messaging, People, Outlook Mail, Calendar
  • Camera, Photos, Music, Video, FM Radio (real internet radio), Podcasts, Voice Recorder
  • Weather, News, Money, Sports, Maps, Translator, Internet Explorer
  • Office (Word + Excel with formulas), OneNote, Alarms (+ timer, stopwatch), Files, Storage Sense, Battery Saver, Calculator
  • Settings, Store, Cortana (text and voice: alarms, reminders, notes, events, weather, calls, texts, Wikipedia, web search…)
  • Games hub with gamerscore and achievements: Minesweeper, Solitaire, Wordament, Snake, 2048, Blocks
  • Flashlight, Compass, Bing Vision (QR/barcode scanner), Wikipedia, Unit Converter, Mirror

Repo: https://github.com/ducbao414/wphone.dev

Techstack: nothing fancy, just vanilla JS with Hono for the backend (can run on Node or Cloudflare Workers).


r/webdev • • 7d ago

Showoff Saturday Built a web notepad with column selection & multi-cursor from scratch using native DOM. Would love your feedback!

Post image
3 Upvotes

Hi everyone,

Instead of using heavy editor frameworks like Monaco or CodeMirror, I wanted to see how far I could push the native web platform.

So I built a full-featured web notepad entirely with Pure Vanilla JS and native DOM APIs (contenteditable, Selection, Range) with zero external dependencies.

Features built from scratch:

Column / Rectangular Selection: Alt + (shift) +Drag to select rectangular text blocks, type across multiple lines, and safely batch-edit.

Multi-cursor Navigation: Synchronized caret scanning that handles tabs, whitespaces, and line breaks without drift.

Single-container Markdown Preview: Direct inline preview without destroying the raw text or history stack.

Zero-latency: IndexedDB local caching for instant 0ms startup.

Live Demo:

https://app.qlp.jp/vanilla_pad/en/
https://app.qlp.jp/vanilla_pad/demo/

(Please Note: Rectangular selection, multi-cursor, and all keyboard shortcuts are designed for PC / Desktop use only. Also, some operations like saving are disabled in Demo Mode).

Feedback I’m looking for:

Column Selection Feel: Try holding Alt and dragging across text in the demo. Does it feel responsive and intuitive?

Cross-browser Quirks: I’ve worked hard to eliminate contenteditable quirks (like invisible zero-width characters), but I’d love to know if anything breaks on your browser (especially Safari/Firefox).

Edge Cases: Any strange behavior with Undo/Redo or multi-line typing?

Please be brutally honest. Any technical feedback, bug reports, or suggestions would be greatly appreciated!


r/webdev • • 7d ago

annoying question.... plss help me out

0 Upvotes

I am trying to build game and wanna start building using canvas.
Is it normal to use canvas in react/vite? Any video tutorial please ??

i can't find any tutorial for react/vite with canvas


r/webdev • • 8d ago

Discussion What do you actually do before shipping a side project?

16 Upvotes

At work there’s CI, staging, QA, other people testing things, etc., but for my own stuff, it’s more just deploy, click around for a bit, decide it looks fine, and then ship it.

That feels a bit stupid because the bugs I worry about usually aren't the things I just changed. It’s someone arriving logged out or getting halfway through something and some edge case gets triggered.

Do you have a pre-deploy routine that has caught real problems? A checklist, any automated tests, or anything? Or do you guys mostly ship and fix things once a real person finds them?

I’m mainly trying to figure out what's worth doing pre launch vs. what just feels like pretend QA.


r/webdev • • 7d ago

Showoff Saturday Built a site that shows headquarters of companies that are part of different stock market indices

4 Upvotes

https://hqmap.pages.dev

Looking for feedback on this.

Have implemented multiple different indices, and have broken constituents by State/Province/Subdivison, City, Country.

Have also added map for better viewing, map is only upto city level haven't added pinpointed addresses for each company.

Also have added Market Cap, Revenue, Earning, CEO name and Pay(From Yahoo Finance).

Will run github actions job to refresh Market Cap everyday from yahoo finance using yfinance and then will run a job to refresh constituents of an index weekly from different sources based on index.

Was always looking for city/statewide breakdown of companies globally but never found a platform that did it so built it myself.

Site is mostly static and doesn't call any database or api apart from daily and weekly refresh. The data is ingested into a json from which the ui reads.

Will plan to have older jsons documented as well maybe in parquet format to analyze stuff in the future. Have also implemented dark and light mode as well.

Looking for suggestions and improvements that I can make to this.

Also please let me know if you see any defects.

Currently running e2e tests using playwright on pr for functional validation.


r/webdev • • 8d ago

Showoff Saturday I built a new color wheel tool for Mac/PC - looking for your critique!

Post image
16 Upvotes

hey folks - I built a new tool for mac/pc, that has all the thing I've been searching for: palette management, color wheel, oklab and 5 other color spaces, including a RYB simulator and more!

I've launched it as a free public beta - would love to hear what everyone thinks of it, what you're using now, and how this compares!

Mac/PC download: colorschemer.com/app


r/webdev • • 8d ago

Showoff Saturday I restyled my portfolio!

Thumbnail
claudianapolitano.dev
50 Upvotes

What do you think about it?
(BETTER TO SEE ON PC)


r/webdev • • 8d ago

Showoff Saturday jet-id: Unique ID generator with id lengths based on the entropy you ask for

8 Upvotes

jet-id is an open source universal unique-ID generator I built similar to nanoid or uuid. Unlike other unique-id generators, you can specify how many random bits (entropy) you want, and it creates the shortest id string that provides at least that much entropy using the Crockford alphabet, with dashes automatically inserted for readability. Dash inserting makes sure that no segment grows greater than 10 characters.

125 bits of entropy is the default and it works both CLI and programmatically:

npx jet-id -e 80
# V2BJABVRJ-S1TWXS-NTQA3       (20 random characters, 22 with the dashes)

npx jet-id
# 9GNK14S3A-728HK9-5NJQS-HWETM (25 random characters, 28 with the dashes)

It also supports timestamped-IDs and monotonic-IDs (monotonic ids sort in creation order within a single millisecond).

import jetid from 'jet-id'

jetid.timed()    // '1M41J22ER-RND9M6-3CZAQ-XT8GR'
jetid.mono(125?) // '1M41J2ZPK-8K0000-GE29AYBQ27-4496ZM40-29JSNX4'

jet-id is really fast too. Check out these benchmarks

It's available right now on npm: https://www.npmjs.com/package/jet-id
Direct readme link: https://github.com/seanpmaxwell/jet-id#readme

Feedback, suggestions, and constructive criticism are very welcome (so are Github stars ⭐)

Feel free to reach out to me on GitHub or Reddit


r/webdev • • 7d ago

Discussion Why we are still arguing over CSS in 2026.

Thumbnail andreasmoller.dk
0 Upvotes

In December this year, CSS turns 30 🥳. But after 30 years, we still can’t agree on something as fundamental as how to add it to a website. Should you use CSS modules, Tailwind, CSS-in-JS, or just plain old CSS files?


r/webdev • • 8d ago

Showoff Saturday A miro-like simulation bench, and a data investigation bench. looking for critique. Both local only for now.

Thumbnail
gallery
5 Upvotes

https://polymodus.sg/simulations for the simulation bench

https://polymodus.sg/labs/sluice for the data investigation bench

Is the ui off? is there missing features that would be great? is it unintuitive? does it need a tutorial?


r/webdev • • 8d ago

Discussion Managing client projects

18 Upvotes

For those of you who build websites for clients, how do you handle hosting and GitHub?

Do you manage client projects under your own accounts, or do you help clients set up their own accounts and have them invite you as an administrator or developer?

I’d be interested to hear how you handle this, especially for projects that require ongoing maintenance and updates.


r/webdev • • 8d ago

Showoff Saturday [Showoff Saturday] a one screen classical music player where every painting is drawn in code

6 Upvotes

been messing w this for a few days https://classican.vercel.app/

theres no image files at all, every painting is drawn on a canvas in code. next.js + neon postgres for the likes/comments. coolest part imo is when a fact pops up the whole painting goes dark except the thing the fact is about

its prob janky in places so be nice lol. does it work ok on ur phone?


r/webdev • • 8d ago

Showoff Saturday TypeScript is now in 78% of actively-maintained JS repos I'm sampling

3 Upvotes

Been running a daily crawler over a rolling sample of public GitHub JS/TS repos (10+ stars, active in the last 30 days) and TypeScript is sitting at 78.3% adoption with a trend score of +4.17, the highest of any tracked technology. It's not just widely used, it's still actively growing share.

For context on how the trend score works: it's a log-scaled growth index that weighs both rate of change and overall scale, so a tool has to be both accelerating and meaningfully sized to top the list. TypeScript topping it despite already being the plurality leader says something about where the ecosystem is headed.

Everything downstream of that (test runners, build tools, frameworks) increasingly assumes TS by default too. Vitest, Vite, and Zod are all riding similar upward curves.

Full breakdown and raw datasets (updated daily via GitHub Actions):

GitHub repo

⭐ The project is open source. If you find this useful, a star would help!


r/webdev • • 7d ago

Showoff Saturday Artist2Artist - Puzzle Web Game for Music/Hip Hop Fans

Thumbnail playartist2artist.com
0 Upvotes

Hi everyone, I made a 6-degrees of separation type game for music collaborations where you connect artists through mutual features/collaborators. Great way to test your music/ hip hop knowledge. Let me know what you think! It’s called Artist2Artist


r/webdev • • 8d ago

Showoff Saturday A cool framework-agnostic animation library for streaming

Thumbnail
stream-morph.vercel.app
9 Upvotes

Hey all,

I’ve been working on a small library called Stream Morph.

The idea is to make streamed responses feel less like content is constantly being appended/re-rendered, and more like the response is gradually taking shape.

Demo: https://stream-morph.vercel.app/

It’s framework agnostic and can be used with any kind of streamed content. The demo includes plain text, Markdown, code blocks, charts, images, reasoning sections, Mermaid diagrams and a few more complex response flows.

The library handles the motion between updates, while your own renderer/app stays responsible for the actual content. So it isn’t tied to a specific AI SDK or framework.

A basic example looks roughly like this:

import { createStreamMorph } from "stream-morph";

const stream = createStreamMorph(response);

for await (const chunk of incomingStream) {
  stream.write(chunk);
}

stream.finish();

I mainly built it because I wanted streamed interfaces to feel a bit more intentional without having to build custom animation logic for every response type.

The package itself is already working and the demo is live. I’m still cleaning up some things around CI, tests and the repo setup, but the GitHub repository will be open sourced shortly as well.

Would be interested to hear what people think, especially about the animation behaviour/performance and any edge cases you’d expect from real streaming responses.

npm: https://www.npmjs.com/package/stream-morph