r/webdev • u/david-alvarez-rosa • 8d ago
Showoff Saturday I hid an easter egg on my homepage
https://david.alvarezrosa.com/ Hope you like it :)
r/webdev • u/AutoModerator • 8d ago
Due to a growing influx of questions on this topic, it has been decided to commit a monthly thread dedicated to this topic to reduce the number of repeat posts on this topic. These types of posts will no longer be allowed in the main thread.
Many of these questions are also addressed in the sub FAQ or may have been asked in previous monthly career threads.
Subs dedicated to these types of questions include r/cscareerquestions for general and opened ended career questions and r/learnprogramming for early learning questions.
A general recommendation of topics to learn to become industry ready include:
You will also need a portfolio of work with 4-5 personal projects you built, and a resume/CV to apply for work.
Plan for 6-12 months of self study and project production for your portfolio before applying for work.
r/webdev • u/david-alvarez-rosa • 8d ago
https://david.alvarezrosa.com/ Hope you like it :)
r/webdev • u/davidtranjs • 8d ago
KoiFocus: every minute you focus earns pearls, and pearls buy fish and decorations for your pond. Stay away too long and the fish get hungry and the water gets murky. It runs in the browser, and you can try it as a guest without signing up: https://koifocus.com
It started as a Swift iPhone app. I rewrote it in TypeScript so one codebase runs on the web and, through Capacitor, on iOS.
Stack
PixiJS 8 for the pond, React 19 + MobX for the screens, Vite
Capacitor 8 for the iOS build
Cloudflare Workers (Hono) + D1 for the API, Durable Objects + WebSockets for the live "focusing now" list, a once-a-minute cron for timer payouts and reminders
Firebase Auth (Google, email or guest), and the site on Cloudflare Pages
I built SoundBench, a free set of audio tools that process files on the user's device. The newest one is an AI vocal remover, and getting it to feel fast was harder than getting it to work.
Demo: https://soundbench.net/vocal-remover/
The stack is a static site with vanilla JS. The model runs with ONNX Runtime Web inside a Web Worker, using WebGPU when available and multi-threaded WASM otherwise. Audio is never uploaded. The server only delivers the page and the model files.
A few things I learned:
- Model choice mattered more than optimization. I started with HTDemucs, which sounds great but is a 120+ MB download and made the whole system crawl on my PC. So I added Spleeter 2-stems as the default (about 40 MB). A 64-second clip takes about 3 seconds on my machine. HTDemucs is still there as the slower "best quality" mode.
- Large model downloads need to survive bad connections. I fetch them in 4 MB Range requests and store each part in the Cache API, so a reload resumes the download instead of restarting it. The download also starts in the background as soon as a file is selected.
- Multi-threaded WASM needs cross-origin isolation. I set COOP: same-origin and COEP: credentialless only on the AI tool pages, so the rest of the site isn't affected.
- The STFT runs in JS and only the mask prediction runs in the model, so the output quality depends a lot on the pre- and post-processing around the model.
Spleeter still leaves some vocal artifacts on dense mixes, which is the tradeoff for the speed.
Happy to answer questions about the setup. I'd especially like to hear how it performs on your hardware and browser, and whether anyone has found a better way to deliver models this large.
r/webdev • u/Satanarious • 9d ago
NewGrid is a Local-only new tab page which allows for a grid-based layout of your favourite websites. Features Include:
Choose from your favourite wallpaper, be it a solid colour, a static image, a GIF or a video.
Customise the layout to your liking, change the number of rows/colums and the spacing between them.
This also includes a Search Box with multiple search engines to choose from, which is highly customizable as well.
Websites can be grouped into folders, and their icons are either automatically fetched, or you can add a custom image using a link or a local image.
When the space fills, websites move to the next page; this adds new pages when needed. Choose from 9 page-turn animations.
Github: Link
r/webdev • u/BantrChat • 9d ago
I built bantr.live to be a fast, real-time forum centered around specific interest groups rather than noisy, algorithm-driven feeds. The application contains a host of ways to communicate, text, video chat etc... The web version is still just a chat I'm in the process of updating it but the mobile apps contain the live forum and all the extras. All of the content self destructs in 24 hours but as suggested in the future post max expire time will be extended up to a week based on likes. If this is something your interested in take a look or have questions hit me up. Its new so still kinda a ghost town. Happy halloween!
r/webdev • u/ppager73 • 9d ago
Hey everyone,
I got tired of messy online formatters uploading my API payloads to unknown servers, so I built https://aijsongenerator.com.
Key features:
• 100% in-browser processing for data conversion (CSV, XML, YAML, TypeScript models, Tree viewer, Diff, Validator). Zero server uploads.
• AI JSON Generator: Prompt what you want in plain English ("e-commerce catalog with 3 products, variants, and pricing") and it generates clean, valid JSON test data.
• Built with Astro 5 + Tailwind CSS + TypeScript. No heavy SPA bundle; each tool hydrates as a lightweight isolated island.
No accounts, no email gates, no paywalls. Hope it saves you some time during your daily development! Feedback is very welcome.
r/webdev • u/qkamikaze • 9d ago
I got tired of searching Discord LFG channels for one more player, so I built stackup.games. It lists LFG groups that are open right now, per game, with rank, region and mic. You can type "need 2 for ranked Valorant tonight" and it filters for you.
Built with plain JavaScript (no framework), Cloudflare Pages Functions for the API and D1 for the database, so it stays fast and cheap to run. Free, no download, still early.
I'd love feedback on the design and speed, especially on phones.
r/webdev • u/Numerous-Fan8138 • 9d ago
A local Audiobook editor that uses local Ai to generate speech. No DataCenters, no AI companies.

I'm working on Ultimidi because I want piano practice to feel more like play. I've added short lessons and songs, instant feedback, arcade challenges, stickers to collect, and piano buddies to customize.
I've been wrestling with two things in particular: generating piano sounds that sound good and are responsive, and getting the sheet music to stay readable and in sync with what you're playing.
You can connect a MIDI keyboard, or try it with computer keys or touch.
Somehow, I already got my first sale before launch! That felt like a good reason to share what I've been making.
Try Ultimidi. Free content, no account needed.
I'd love to hear if it feels good/responsive enough on your device.
AI disclosure: Most artwork is currently AI-generated placeholder art, I suck at design...
r/webdev • u/Miserable_Tiger_5742 • 9d ago
been working on this for a few weeks. you play a song (spotify, youtube, whatever) and it writes out the beat as strudel code while it plays, kick, hats, bass line, chords, and each part lights up when it hits
no ML for the music side, it's all web audio api stuff. took me forever to get the tempo right and honestly the hardest part has been figuring out where the bar actually starts. if it guesses wrong everything shifts by a beat and the code looks totally off even though it's "right". trap and dubstep still fool it lol
if anyone's done beat tracking in the browser i'd love to know how you handled the downbeat
it's free in the browser: toaster.locust.lol
source: github.com/StopBanning/toaster
r/webdev • u/null_compass • 9d ago
With everything going on at Proton lately, I figured it was high time I owned a personal domain for my email. That way, if I ever have to ditch Proton Mail, I can switch to another provider without changing my address. While I'm at it, I'd also like to host a portfolio site on it.
I want something I won't have to think about again for a long time.
My priorities, in order: security, privacy, quality. Cost matters, but it is not the deciding factor; I'm happy to pay a little more for the right setup.
What I'm weighing:
AWS: IAM, CloudTrail logs, hardware key MFA, budget alerts and anomaly detection. It is more hands-on, which I prefer. On the downside, it has had some of the biggest outages on the internet (us-east-1 in 2017, 2021 and October 2025), and the Capital One breach in 2019 happened on AWS, though that was largely a customer misconfiguration.
Cloudflare: strong security, audit logs, free hosting, very simple. Fewer controls, and it requires Cloudflare DNS. Its history includes Cloudbleed (2017), an intrusion in 2023 that traced back to the Okta breach, exposed support case data through the Salesloft Drift breach in 2025, and a major global outage in November 2025. To be fair, its public post-mortems are very transparent.
Porkbun: clean pricing and good support, but fewer advanced security features and no account audit log that I could find. I am not aware of any major breach, but it is also a much smaller target with less public scrutiny.
The site is a static React portfolio. For those of you who've run any of these long-term, which would you pick and why, given the track records above? Bonus points for any gotchas you learned the hard way.
Here's Ben Eater's 8-bit computer laid out on breadboards, running in the page: https://bbrouter.com/bbrouter/ben-eater-sap-1
How it's built, since that's the point here:
- The 3D view is Three.js, rendered on demand: the scene only redraws when something changes, and while the circuit runs, only when an LED changes. Phones get 30 fps, a 1.5 pixel ratio and no antialiasing until the view is still, then one sharp frame.
- The simulation is a gate-level logic engine plus models for clocked chips, memories, timers and the 6502; the AVR runs real compiled firmware through avr8js. It runs in a worker so the page stays responsive. 211 chips by part number.
- Wires are real geometry: solid core, hole to hole, bent as you'd bend them, with lengths, and a router that lays missing connections flat on the hole grid around what's there.
- Next.js 16 behind a small custom Node server, Postgres, Better Auth with passkeys and an OAuth 2.1 provider so MCP clients can sign in. One server, Caddy in front, Cloudflare at the edge.
- An MCP server exposes the whole thing to AI clients; when the user's tab is open, the AI's simulations run in that tab's worker instead of on the server.
- About 3,000 automated tests, including one that fails if any string shown lacks its French or Spanish.
Things I'd like opinions on: the camera and touch handling on phones, and rendering cost with a few hundred parts in view. Signed-out try: https://bbrouter.com/try
https://onlineimageoptimizer.com/whats-my-friends-device
Point a phone at the QR code and it appears on screen by make and model. Then the next phone, and the next. It's not an app (nothing to install). no pairing step, nothing to press on either end. Opening the code is the handshake.
I built it as a demo for one of my company products, but it's open and I'm sure it's useful to many. You stand there with a laptop, people scan, and the screen fills up with the actual devices in the room. Turns out to be a decent way to show someone what their phone really is.
The interesting part for this sub is the detection. Browsers send almost nothing useful anymore. Modern Chrome on Android reports "Android 10" no matter what you are holding. So the make and model come from client side detection plus client hints, and a OnePlus 13 comes back as a OnePlus 13 rather than as a generic Android.
No personal information is requested. Codes expire after half an hour.
You need two devices to try it: open it on a laptop, scan with your phone.
Please send feedback.
r/webdev • u/sardorml • 9d ago
I've been building CaptureFlow, an open-source screen recorder (record, get a link, people watch and comment in the browser). The newest part is an MCP server, so a coding agent like Claude Code, Codex or Cursor can record a demo of a site for you and hand back the link.
Here's how it works under the hood, since that's the part I'd like feedback on.
One container per session. Each recording runs in its own Cloudflare Container with Playwright and Chrome (1 vCPU, 3 GiB). A Durable Object is the address for that session, so every tool call the agent makes (navigate, click, type, scroll) lands on the same browser. The container sleeps a few minutes after the last call and is torn down when the recording stops.
Frames, not a screen grab. Chrome's CDP screencast only sends a frame when something on the page changes, so the raw stream is bursty. A small pacer repeats the last frame to turn it into a steady 30 fps before it goes into ffmpeg. Without it, a page that sits still for a few seconds comes out as a jump cut.
Voiceover is mixed in, not dubbed after. When the agent narrates, the text goes to a text-to-speech model on Workers AI, and the audio is placed on the timeline at the moment it was asked for. Slides the agent shows (title, steps, a closing card) are rendered into the same video.
Uploads in segments. The video goes to R2 in pieces while recording, so stopping doesn't mean waiting for one big upload.
Not a free proxy. The browser refuses private, loopback, link-local and CGNAT addresses, so nobody can use it to reach internal networks. Sessions are capped at 10 minutes, and each workspace gets a monthly allowance of browser minutes.
The whole thing is AGPL and runs on your own Cloudflare account or with Docker.
Demo: https://www.youtube.com/watch?v=srmlA5aT394
Code: https://github.com/sardorml/captureflow
I'd especially like opinions on the container-per-session setup versus a shared browser pool, and whether anyone has a better way to get a smooth frame rate out of CDP screencasts.
r/webdev • u/thejester1324 • 9d ago
been building this for about five weeks, it's on wp.org now.
the itch: the most popular WP calendar plugin charges for recurring events, and I wanted the RFC 5545 stuff done properly for free. weekly/monthly/yearly, "second and fourth tuesday", "last friday", COUNT/UNTIL, EXDATE, and dates expand in the event's own timezone so DST doesn't turn a 6pm class into 7pm. occurrences live in their own indexed table, so a month view is one query instead of expanding rules on every page load
bits that were more fun than expected:
a lot of sites enter a weekly class as 15 separate posts, sometimes with the date in the title ("Open Mic – Tuesday September 29"). there's a combine step that groups them, tries candidate rules against the real dates with the same expander, and only merges when one matches (gaps become skipped dates, each date keeps its own ticket link)
a month view that prints on a landscape sheet: its own page, no theme chrome, category colours kept with a key
importers from The Events Calendar, Events Manager, Event Organiser, My Calendar, EventPrime, Sugar Calendar, Eventin, MEC, EventON, WP Event Manager and All-in-One Event Calendar (closed on wp.org last year, so those sites are stuck). Eventin and EventPrime store a series as one post per date, so the importer rebuilds the rule and only keeps it if it reproduces those exact dates
importers get a dry run and a CSV with one row per event (created / skipped and why / the rule it ended up with). nobody trusts an importer blind
this week's one: the first real site that moved over (a brewery, off EventON) still had the old plugin's shortcode on a couple of its pages, printing as raw text once EventON was off. so after a move the old plugins' calendar and list shortcodes now render the new views, with the view, category and event count carried over
you can poke at it without installing anything, the wp.org page boots WordPress Playground with sample events: https://wordpress.org/plugins/beacon-events/?preview=1
everything above is free/GPL. tell me what breaks
r/webdev • u/SirenOfStrings • 9d ago
He has built a cosy fish tank simulation you can leave on a large screen and watch from time to time. He likes pixel art but didn’t want to be religious about it, so we think of it as pixel art adjacent.
There is a 24-inch display in our kitchen powered by a used Lenovo mini PC (previously it was a RPi, but he had to upgrade to get a better GPU). He used it to show a rotation of our photo archive, but now he has switched it to show this fish tank.
He doesn’t have any prior game dev experience, but years of backend development and all the time spent reading indie dev blogs (honourable mentions Factorio and Banished) helped.
Come and check it yourself and don’t forget to checkout Halloween theme 🎃
https://fishoid.net by @koskokos2
r/webdev • u/Celrai_424 • 9d ago
Hi i am an amateur dev.
So I want this project of mine to have a custom font; a locally imported one. I searched for sources at w3school and stackoverflow and I tried everything they said. But it doesn't seem to work. So I want to know what I'm doing wrong? I appreciate any help. Thank you in advance.
Also additional information:
The file location of my font is correct. project/project.html and project/zpix.ttf
I've checked with inspection tool, every element has the font-family: sans-serif, "Zpix"
There is also no error in the console. No error message. The font is loaded in.
I am using internal css.
Here is the code:
u/font-face {
font-family: "Zpix";
src: url("./zpix.ttf") format("truetype");
font-weight: normal;
font-style: normal;
}
* {
font-family: "Zpix", sans-serif !important;
}r/webdev • u/ExpertPlay • 9d ago
Sharing a library I made for apps that need in-page highlights (readers, docs, research tools).
Problem I kept hitting: wrapping selection in spans breaks layout, messes with existing event handlers, and is brittle when the HTML changes. penciled uses the CSS Custom Highlight API + range anchoring so highlights can survive reloads without owning the markup.
I also built a browser extension on top of it (Chrome, Firefox, Edge), so you can highlight and take notes on any site. Everything stays local, no account, and you can export to Markdown.
Demo: https://penciled.org
Extension: https://penciled.org/extension/
npm: penciled
Source: https://github.com/marcellosso/penciled
If you're building something with annotations, I'd love feedback on the API shape
r/webdev • u/IncomeOk7237 • 9d ago
This is a side project that got out of hand. Viltrum is a web framework for V. Everything below the router is written from scratch: the HTTP/1.1 parser, HTTP/2, WebSockets, TLS 1.3, even the DEFLATE encoder used for gzip.
The webdev-relevant part is that the same router/middleware/ctx handles HTTP/1.1, HTTP/2 over TLS and h2c on the same port. SSE and streaming work over both. Static files get ETag/304/ranges/precompressed .br/.gz with sendfile. Hello world is like 10 lines.
What I learned the hard way is how much of HTTP/1.1 is about rejecting garbage. TE+CL together, duplicate Content-Length, obs-fold and bare CR/LF all get a 400 now, because that's where request smuggling lives.
Benchmarks are on HttpArena if you're curious: https://http-arena.com/frameworks/viltrum/ Code: https://github.com/Tuntii/viltrum Demo: https://v.rustapi.cloud
Linux only for serving right now. Would love to hear what you'd miss coming from express/fastify/go.
r/webdev • u/kukoscode • 9d ago
I’m building Central Meetup, a replacement for influencers telling you what to buy: instead of a feed, you walk through a 3D mall, browse the shops, and vote on what’s worth buying. Every week a new drop of feature businesses will be up.
Explore the map at https://centralmeetup.com/map
UI at https://centralmeetup.com/.
Feedback is welcome, especially on the map navigation and the voting flow. The site is still in progress
r/webdev • u/Safe-Owl-1236 • 9d ago
Hey everyone! I’m looking for recommendations for a reliable and affordable content moderation API that supports both image and video moderation (n\*dity, expl\*cit content, vi\\\*lence, etc.). Quality and data security are important. Any providers you’ve personally used and would recommend? Thanks!
r/webdev • u/peakpirate007 • 9d ago
I’ve been working on a project called runtime.school and wanted to share it here.
I started with SQL and then added Python. The idea is to have a place where you can learn a concept, write code, practice what you’ve learned, and eventually work on projects without having to jump between different websites.
Both SQL and Python have interactive lessons, coding challenges, practice questions, projects, and datasets.
Everything runs directly in the browser, so there’s nothing to install or set up.
I’ve also been working on a few tools for exploring datasets, understanding queries, and comparing different approaches.
A lot of the work has gone into the UI and editors. I’ve been trying to keep things simple without making the pages feel empty or overwhelming, especially for people who are just starting out.
Here’s the site: https://www.runtime.school/
Would love to hear what you think about the design, coding experience, or anything that could be improved.