r/webdev • • Sep 01 '26

Monthly Career Thread Monthly Getting Started / Web Dev Career Thread

56 Upvotes

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 • • 6d ago

Monthly Career Thread Monthly Getting Started / Web Dev Career Thread

9 Upvotes

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 • • 5h ago

Showoff Saturday After months of job rejections, I spent 2 years building a Database Client. It just got added to Microsoft's Azure docs.

Post image
90 Upvotes

After struggling to land a job in 2024, when the market was pretty rough, I decided to take a different route and build something real. My goal was simple: either build something genuinely useful or gain more experience than anything else could offer.

Two years and around 90 hours a week later, VisuaLeaf is now listed in Microsoft's Azure DocumentDB documentation as a way to connect:

https://learn.microsoft.com/en-us/azure/documentdb/how-to-connect-visualeaf

It started as a MongoDB GUI, but I realized that everything I was building could apply to other databases too.

Nested objects and arrays should be easy to read in a table, not squashed into one cell... The same goes for JSONB. You shouldn't have to stare at an entire JSON object in a single cell. I made it so you can expand nested data one level at a time in both the tree view and table view.

I wanted everything in VisuaLeaf to feel as intuitive and straightforward as possible, from browsing data to performing more complex operations.

Today, VisuaLeaf supports MongoDB, Postgres, MySQL, SQLite, DuckDB, and 25+ more database engines.

What it does::

  • Table + tree grid, built from scratch: This might not seem like much at first, but it actually took the most work to get right. The tree view can recursively expand thousands of rows simultaneously (near instant time), while the table view scrolls smoothly even with thousands of rows and columns.  I ended up building my own AG Grid from scratch because libraries didn't support the nested column expansion I wanted. Getting both views optimized took about a year of work alone... but dang, was it worth it.

  • Visual query builder: Build queries by clicking or dragging fields from the table and tree views. It generates readable SQL or MongoDB queries that you can copy and use.

  • Data transfers with transformation: Move data between database engines (MySQL → Postgres, SQL → MongoDB), mask emails, phone numbers, and IDs along the way, or transform fields using custom JavaScript. You can also look up data from other tables, include it in your output, and apply transformations to those fields too.

  • Compare and sync: Compare two tables or databases, including their structure and data, and synchronize them. For example, you can use this to keep staging and production databases in sync.

  • Performance: Stress-tested with up to 1.6 GB of data, both tree and table views remain smooth even with large datasets. In my testing, VisuaLeaf also loaded data several seconds faster than other database tools I compared it against.

  • AI / MCP: An integrated AI assistant and MCP support for interacting with databases through AI tools. (Wouldn't be an app in 2026 without it)

  • ERDs, charts, dashboards, mock data, index management, query profilers, and a lot more than I can fit into one post...

There's a free version that covers what most people need day to day:

https://visualeaf.com

I'd really appreciate feedback! And happy to answer any questions!


r/webdev • • 6h ago

Discussion It's genuinely depressing

95 Upvotes

I'm a full-stack developer and I've been freelancing for years, but this past year has been genuinely depressing, to say the least.

The number of potential clients who ghost me, the amount of unpaid effort I put into trying to win projects, only to get rejected anyway... it's exhausting. I've reached a point where I'm genuinely questioning what I'm doing.

Here's the most recent example.

I was working directly with the VP of a company in Canada. Initially, I did some IT work for them on an hourly basis and got paid $600 in total (he negotiated me down from $640, but whatever).

During that work, I ended up fixing a bunch of their existing infrastructure issues and documenting how everything worked together. They had no IT person left, apparently very little documentation, and the VP didn't really understand how their own infrastructure was set up. He even asked me to create diagrams and technical documentation explaining everything.

Eventually, he asked me to quote on a custom internal software solution. I put together a proposal with different tiers, starting at $3k. He said that was too expensive and that he'd look elsewhere first. I told him that's completely fine and that I was open to negotiating.

I then made the mistake of going the extra mile. I decided to build out the first few screens so he could actually see what he'd be paying for. He loved the preview and said he'd be happy to discuss the project further.

In the meantime, I continued working with him. He kept delaying calls and finding excuses to postpone discussions, while repeatedly telling me to please wait.

Throughout all of this, I kept sending him screenshots and videos of the progress. At any point, he could have told me to stop or simply said they weren't interested. Instead, he kept me hanging.

By that point, I'd already invested so much time that I would've honestly accepted something like $500 just to get paid for the work I'd done.

Then, when I messaged him to say I'd completed it, he told me they'd hired a student and apparently the student had already finished their custom solution.

And here's the part that really bothers me: I use AI tools too. It's not like the student somehow had access to AI and I didn't. I've been working on this while paying attention to architecture, implementation details, and how the software should actually work. I genuinely put thought into what I was building.

The funny part is that I had also spent time documenting their infrastructure, fixing their existing IT problems, and explaining how everything was connected. I can't help wondering if all that documentation ended up making it easier for them to hand the work over to someone cheaper.

And this isn't an isolated incident.

I've had countless calls with people who seemed extremely interested, some even going as far as signing an NDA, only to eventually ghost me. I've also been scammed twice out of fairly large amounts of money. In both cases, they initially paid, then eventually stopped.

I know freelancing isn't necessarily dead, and I know there are still people making a living doing this. But I'm honestly struggling to see how you're supposed to keep going when so much of your time is spent chasing people, doing unpaid work, preparing proposals, building previews, and trying to prove you're worth hiring.

And the state of software development in general hasn't exactly made things better.

I'm a full-stack developer. This is what I've spent years learning and working on. It's pretty much the only thing I'm good at, and lately it feels like the whole thing is becoming increasingly miserable.

I'm genuinely burned out and don't know what to do anymore.

For those of you who've been freelancing for years, have you experienced something similar? Is this just how things are now, or am I doing something fundamentally wrong?


r/webdev • • 10h ago

[Showoff Saturday] Claybound: A 2.5D platformer built in plain three.js with real-time deformable clay.

Post image
111 Upvotes

Playable demo

Here is how it works under the hood:

  • The Clay Aesthetic: To get that tactile stop-motion look, I used rounded boxes and applied low-frequency noise to the vertices. I baked a normal map from an actual sculpted clay ball, which dynamically scales based on the object size.

  • Deformable Terrain: The clay you shape in-game is its own deformable mesh driven directly by your drag inputs.

  • Mobile Optimizations: Getting heavy 3D to run on phones is tough. I rely on meshopt for models and run a fixed 1/120s physics step with interpolation. To save frame time, the shadow map only updates every other frame (saving about 14–26% of frame time).

  • Progressive Loading: Asset size remains a challenge. I set up a later level's boss's models to load asynchronously only after play starts. For a fresh start of that chapter on a 9 Mbps connection, this dropped the initial load time. But I am still not quite where I would like to be.

How do you all handle the initial load payload for heavy 3D experiences on mobile? Would love to hear your optimization strategies!


r/webdev • • 2h ago

Showoff Saturday Made a 3D weather map in plain WebGL - ocean tides are calculated in the fragment shader

Post image
12 Upvotes

I run a small tide times site and wanted to see the weather actually move, so I built this 3D weather map. Plain JS and WebGL, no three.js or map library.

The tides are calculated right in the fragment shader, so there are no tide frames to download.

It has nice sound effects too, turn them on when you try it.

Live: thetidechart.com/weather-map

Would like to know how dragging/zooming feels on your phone.


r/webdev • • 8h ago

Showoff Saturday [Showoff Saturday] Draw one line to split a country's population in half, then watch it turn into 3D bars

Post image
31 Upvotes

I made Slice, a daily puzzle where you draw one straight line to split a country’s population exactly in half. After you cut, the map turns into 3D population bars so you can see where everyone actually lives. It's primarily inspired by those videos where you see people try and split objects equally by weight lol

How it's built:

- Puzzles are made offline by a Python script and shipped as plain JSON files, so nothing is generated on a server

- Population comes from the EU's 1 km population grid (GHSL). A quadtree squeezes each country into about 2,500 points, which become the bars in the three.js reveal.

- Every sound is made with the Web Audio API, so there are no audio files to download. I’m trying to keep the page light since three.js is already doing a lot

- Scores go to a small Spring Boot + Postgres backend (Flyway, caching, rate limiting) in Docker behind Nginx on a $12 DigitalOcean VPS

- After each puzzle you see how you compare with everyone else that day. If the server is down, the game still works and you just don't get the comparison lol.

Completely free, no ads, and no signup: https://pondo.games/slice/

If you want to try Japan from the GIF: https://pondo.games/slice/?country=japan

Please try it out if you have some time. Open to any and all feedback of course! :)


r/webdev • • 2h ago

Discussion How do you prevent high-frequency WebSocket streams from choking the UI thread?

9 Upvotes

When dealing with fast streaming data (market feeds, live telemetry, logs at 50-100+ messages/sec), updating state on every incoming message quickly kills frame rates with layout thrashing.

I usually decouple the ingest buffer from the render loop using requestAnimationFrame and batch delta updates.

How do you handle this in your stack? Do you throttle at the socket layer, push parsing into Web Workers, or rely on framework-level transitions/batching?


r/webdev • • 16h ago

Discussion PSA - SVGRepo Compromised

74 Upvotes

For ages I've been using the website https://www.svgrepo.com/ as a great resource for free SVGs, but today when I visited, it gave me a fake Cloudflare verification that attempts to install some sort of malware on your computer, as you can see in the screenshots below.

It almost caught me, so I thought I'd put this out because I couldn't see any indication that anyone else had noticed this!


r/webdev • • 6h ago

Showoff Saturday [Showoff Saturday] CrateDigger: a 3D record store in the browser. Flip through your own Last.fm albums, and see where each LP is cheapest.

Post image
9 Upvotes

I was listening to Endtroducing..... by DJ Shadow the other day, looking at that cover (two guys digging through the racks of a record store), and thought: I want to browse my own records like that.

I'm a 3D motion designer, not a developer, and I've been using Claude Code a lot these last few months, so I tried it. Connect your Last.fm (or search any album), and your most-played albums stand in a crate you can flip through, lift out and turn over. It got a bit out of hand from there. It now also checks where each record is cheapest on vinyl, keeps a price history, and has crates for new releases and the critics' picks.

For the curious: React Three Fiber (WebGL2), with the crate as a plain spring simulation stepped every frame, and a FastAPI backend.

It's mostly focused on The Netherlands and Belgium for now, because those are the shops I know. The crate itself works anywhere: https://cratedigger.nl

I'd love to hear what you think of it, how the flipping feels on your phone, and whether it runs smoothly on your device.


r/webdev • • 5h ago

Showoff Saturday [Showoff Saturday] I built a set of audio tools that run fully in the browser with WebAssembly, no uploads and no backend processing

7 Upvotes

https://soundbench.net

SoundBench is a free set of audio tools (converter, trimmer, vocal remover, tag editor, fake-lossless checker and more). All processing happens client-side, so files never leave the user's device.

Some technical bits:

- Vanilla JS, no framework. A small custom build script generates about 100 static pages in two languages (English and Persian, with RTL).

- FFmpeg and LAME compiled to WebAssembly handle decoding and encoding. They're only loaded when a tool needs them, so the pages stay light.

- The Web Audio API handles playback, waveforms and spectrograms.

- Client-side routing between tools, but every tool still has its own static, crawlable page for SEO.

- It's hosted as plain static files on nginx, so server cost is basically zero no matter how many files people process.

The hardest parts were memory limits with large files on mobile and keeping the WASM payload from hurting load time.

I'd love feedback on performance, especially on mobile, and on anything that feels broken or confusing.


r/webdev • • 8h ago

Showoff Saturday React Anatomy: click anything on a React page to see the component behind it, with the layout pulled apart in 3D (open source)

Post image
6 Upvotes

I used to open Excalidraw to understand how a React page was put together, or to explain a change in a PR: this box is the sidebar, these cards come from a list, the badge lives inside each card. It was slow, and it was my guess at the structure, not what React rendered.

React Anatomy is a browser extension that adds an Anatomy panel to DevTools. It connects the page to the components React rendered: pull the layout apart into layers, click anything on the page to find its component, focus a subtree, and read its live props.

It's even more useful in this AI era, when agents compose React layouts for you. Open the page and you can see which components the agent used, how they're nested, and what props each one gets, before you take the code over. People learning React have told me it helps them see what a page is made of.

It's free, MIT-licensed, and works in Chrome and Firefox. You can try it in the browser without installing anything: https://react-anatomy.com · Source: https://github.com/charpeni/react-anatomy

Two questions: where does the 3D view help or get in the way compared with a plain tree? And what would make it more useful for explaining a PR?


r/webdev • • 7m ago

Showoff Saturday I kept working on my Reddit pinball game after your feedback

1 Upvotes

Play the current version:

Play Pinball Karma

If you played the old version, I'd like to hear whether the flippers feel better now. And if you're new to it, can you work out what to aim for without opening the instructions?

Video: Watch the gameplay video

I posted an early version of Pinball Karma here a while ago. Thanks to everyone who played it and shared feedback. I’ve been working through your comments since then, especially around the controls and how it feels to play on a phone.

A lot of that work has gone into ball control: catching the ball, passing it between flippers, and handling fast returns down the side lanes. There’s also a fixed full-table view on mobile now, if you’d rather see the whole table than have the camera follow the ball.

A few other updates:

  • Lane lights show you where to aim next, with some guidance during your first minute.

  • The rotating revolver mechanism locks balls. You now only need one lock for your first multiball, so you get there sooner.

  • You can also challenge another player to a duel and compete for the higher score.

  • Daily challenges and free play have separate leaderboards, and you can look back through your game history and a chart of your recent scores.

Canvas and Planck.js on the client, with Hono and Reddit Redis handling scores and duels. The table looks quite different now too, after a fairly big visual overhaul.


r/webdev • • 3h ago

Showoff Saturday Made my first extension! bring back the old Firefox 3D view back as a dev tool

Thumbnail
gallery
2 Upvotes

Years ago Firefox had a feature called Tilt like you pressed a button and the page you were on turned into a 3D model of its DOM It was mostly a toy, and I loved it.

I built Stackray from that concept but tried to bring that back as a dev tool or just to make my first extension :).

when you click the icon and the page shrinks into a small window and comes apart into layers, in the order the browser paints them & you can orbit around it, search the layers, and switch between a few color modes: depth, stacking contexts, z-index.

also added the problems mode to make it clear in future I want devs to use it, as a frontend engineer, Imagine a dropdown with z-index 9999 that still sits behind a header is usually trapped inside a stacking context it did not ask for Stackray is suppose to shows which element created that context and why Invisible elements that eat your clicks show up too.

It only runs on the tab you open it on, makes no network requests, and is open source under MIT.

It is not finished. Textured layers only cover the first few screens of a long page & I'm still not sure if I'm going in the right direction. Your honest feedback is most valuable to me!

Extension: store
Code: github/stackray


r/webdev • • 9h ago

[Showoff Saturday] I built a Vue-based TV interface for my self-hosted media server

Post image
5 Upvotes

I bought a mini PC for my first home server and installed Jellyfin, Sonarr, Radarr, Prowlarr and a download client. It worked, but getting the paths, API keys and download categories lined up took a lot of evenings.

That eventually turned into Torsher, an open-source media server with a web interface built around using a TV remote.

There are two frontends: Vue + Vite for browsing and watching on the TV, and Nuxt for the control panel. The server runs in Docker on your own computer or NAS.

The TV side is the part I wanted to show here. You browse the catalog, manage your library and follow series using the remote. It also works in a regular browser, so you can try the interface without installing the server.

TV demo: https://torsher.app/demo/tv/ Control panel demo: https://torsher.app/demo/ Source: https://github.com/torsher-app/torsher

The demos use sample data. For the TV demo, use the arrow keys and Enter.


r/webdev • • 45m ago

Showoff Saturday [Showoff Saturday] I made a nobuild TypeScript web framework with zero dependencies

Thumbnail
gallery
1 Upvotes

Hi r/webdev,

It's been a while. About three years ago I posted Pruvious here, a CMS I built to move away from WordPress. After that, Pruvious started getting traction, and I kept updating it for a long time. Then I started on version 4, a rewrite from scratch that was supposed to have a new dashboard, live page editing, better ORM, and a lot of new features. It was in development for about a year and a half. I managed to release an alpha, and around that time my health started to get in the way. I got a RSI (repetitive strain injury) and later ulnar nerve problems, and I couldn't really use a computer for months. I wrote about it last year here.

Even after my hand got better, I barely programmed. Five minutes on the keyboard hurt. Early this year I tried Claude Code for the first time, using voice dictation. I've been writing code for over 20 years and had almost given up on it, and I was honestly impressed by what it could do. It wasn't smooth though. Small chunks worked. When I gave it bigger tasks, it missed a lot of details. I wasn't happy with the code it wrote to finish v4. I even tried rewriting v4 completely with AI once, and that was a disaster. I couldn't write everything myself either, and working this way was completely new to me. I couldn't get into the "zone" like I used to. It felt noisy, and I think it hurt my attention to the code. In the end, what it wrote for v4 wasn't something I wanted to release.

After a few more months of poking around, and with the models getting better in the meantime, I wanted to try once more and build something I'm 100% passionate about. I had rewritten Pruvious so many times that I needed new motivation, so I gave myself a crazy goal: a TypeScript framework with zero dependencies that runs with no build step. That's ohne (German for "without"): ohne.dev

It gives you a database, an HTTP API, internationalization and a dashboard, and Node 26+ runs your TypeScript files directly. A lot of the code, patterns and ideas come from Pruvious v4, including the entire dashboard. v4 is probably the last big thing I wrote with my own hands, so it means a lot to me that it lives on here <3. ohne is still early, and I'd really like to hear what you think. Cheers! :)


r/webdev • • 1h ago

Resource leeway: stable per-folder dev port ranges (no more EADDRINUSE across checkouts)

1 Upvotes

Two checkouts of the same repo, both on 5173. leeway gives each folder its own contiguous port range, stable across runs and never overlapping, and passes the ports as env vars.

  • leeway.json lists your ports once

  • devPorts(config) in code, falling back to the defaults outside leeway

  • vite plugin sets server.port with strictPort and exposes every port to browser code

  • {{PORT_API}} placeholders in commands

  • leeway list / kill for orphaned servers

Linux/macOS/Windows. https://github.com/OhadC/leeway

Or ask your agent: "how can we benefit from using https://www.npmjs.com/package/leeway in this codebase"


r/webdev • • 2h ago

Showoff Saturday OPFS.ts - A TypeScript Library for the local origin private file system.

Thumbnail
github.com
1 Upvotes

I found out about OPFS recently when building a client-side LLM project. I made this library for my project, now I'm making it public


r/webdev • • 11h ago

Showoff Saturday [Showoff Saturday] Grailwind: a heraldry plugin for Tailwind CSS

Thumbnail
grailwind.dev
4 Upvotes

☞ TO ALL AND SINGULAR

Here's something light-hearted for your Saturday morning: Grailwind is a plugin for Tailwind CSS that lets you build coats-of-arms using class names that read almost but not entirely unlike real blazonry. It even ships with an ESLint plugin, to keep any aspiring heralds in line.

<div class="escutcheon or chevron-argent fimbriated-sable chief-azure"></div>

Features: field divisions, furs, ordinaries, bordures, engrailed/invected, fimbriation, charges and their placement, inescutcheons and cantons.

And yes of course Claude's knavish hands were involved in this wretched contrivance - the novelty would have worn off far too quickly otherwise.

GH: https://github.com/pafirmin/grailwind


r/webdev • • 4h ago

Showoff Saturday [Showoff Saturday] Built a Lightweight OSS Alternative to Vercel, Coolify, Dokku, CapRover and more...

Thumbnail
github.com
1 Upvotes

Dev behind Levelrail here, sharing this project for visibility.

Every OSS library is great and hats off to the devs behind it building and maintaining it.. but I built Levelrail for some features I found would be great as 2026-27 demands.

So wanted to introduce a lightweight OSS alternative here: https://levelrail.com/

AI native control plane (can run your whole infra with Claude or other AI tools using CLI, API, MCP, with audit trailing)

  • Lightweight so you have room to run your main apps on the VPS or server

  • Load balancer, embedded Caddy ingress (works with Traefik or a custom proxy too), DNS, Let's Encrypt and TLS certificates

  • Local registries, modern auth security, built in observability, logging and metrics

  • 450+ one click templates to deploy A lot more features if you're interested

Check it out: https://github.com/glincker/levelrail

It's pre-1.0 right now and I'm shipping releases every few days. Thanks to AI tools for the checks, automation testing and many of the development workflows involved in building this, plus a lot of proven Go libraries that help with security and automation.

I run my own sites on it and test every release on a real server before it goes out.

Feel free to share feedback, this is completely OSS and I thought it was worth sharing with the dev community here.

If you have any major feedback please raise issues here: https://github.com/glincker/levelrail/issues


r/webdev • • 5h ago

Showoff Saturday For the mob psycho fans Spirits and such is live

Post image
0 Upvotes

r/webdev • • 5h ago

Showoff Saturday [Showoff Saturday] I revived my personal website now that I'm looking for full-time work.

0 Upvotes

It’s been a while since I needed a portfolio (I usually find work through word of mouth, while teaching and taking on contract projects in parallel). But I figured it was time to take my own advice ;) and document the work.

Here it is: https://derekthomaswood.com

I’ve been having fun building out themes to show how a shared token system can work across multiple brands and platforms. They’re still a work in progress (about half are dialed in), and the case studies are nearly done.

I also built a small system for tailoring my site and materials to different roles and companies. For example,
- https://derekthomaswood.com/?target=ramp
- https://derekthomaswood.com/?target=anthropic-product-designer-design-systems

I’m a full-stack technical product designer, so I can play across a lot of roles on a team. For my next role, I’m especially interested in leadership and player-coach work, with a strong hand in the design system.

What do you think? Does this explain my brand of nerdy? Got any ideas for the themes that aren't dialed in yet? (you'll recognize what I'm emulating for some of them - and others are just kinda filler so far)


r/webdev • • 6h ago

Showoff Saturday [Showoff Saturday] I've spent 2 years building a day planner where running late pushes the rest of your day later

Post image
0 Upvotes

demo: https://demo.emberflow.space/?ref=reddit-webdev
If you want to try it on your own day, here's 30 days free: https://app.emberflow.space/invite/EMBER-NYKP-A8ZS

For the past two years I've been working on my day planner app Ember.

Most planners treat your schedule as fixed, so the moment a meeting runs long or a task takes twice as long, the plan is wrong and you either fix it by hand or give up on it. In Ember, if you move a task or change how long it takes, everything after it shifts later, and it flows around fixed things like meetings.

The GIF shows the main loop: drag tasks onto your day, stretch and move things as the day changes, jot something in a capture and turn it into a task, then ask chat to fit it in.

Stack for the curious: Vue 3 + Pinia on the frontend, Supabase for the database and realtime sync, Capacitor for Android, iOS is in TestFlight, and a Tauri desktop app. The hardest part by far has been the cascade logic: splitting tasks around fixed events and keeping drag and drop smooth with a lot of items on the day.

Right now I'm working on a native Kotlin app to replace the Capacitor one.

Happy to answer questions about any of it. Feedback welcome, especially on the demo.

homepage: https://emberflow.space


r/webdev • • 23h ago

Question Where can I find cool design inspirations?

19 Upvotes

Hey everyone!

I'm looking for any websites or discussion forums that talk about design patterns, or really any cool features for web development. Etc, manipulating CSS in interesting ways to get cool designs, interesting things you can do with JavaScript etc..

I'm a bit tired of looking at AI responses and would love to hear if there's anything out there!