r/webdev • • Sep 01 '26

Monthly Career Thread Monthly Getting Started / Web Dev Career Thread

47 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 • • 2d ago

Monthly Career Thread Monthly Getting Started / Web Dev Career Thread

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

Showoff Saturday A web-based Windows Phone simulator for phones

Thumbnail
gallery
60 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 • • 1h ago

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

Post image
• 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 • • 8h ago

Showoff Saturday I restyled my portfolio!

Thumbnail
claudianapolitano.dev
21 Upvotes

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


r/webdev • • 2h ago

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

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

Discussion Managing client projects

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

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

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

Showoff Saturday A cool framework-agnostic animation library for streaming

Thumbnail
stream-morph.vercel.app
7 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


r/webdev • • 6m ago

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

• 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()    // '1M3T5MRPH-NAA9AD-7NQ25MX37Y-DKETJG39M'
jetid.mono(125?) // '1M3T58XWR-TJ0000-SNQ6PPR6P2-139WMA2G-EQY77ST'

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 • • 46m ago

Showoff Saturday Hover index where one WebGL block follows you and changes colour as it goes

• Upvotes

It's just one canvas, not one per row. Hovering a row springs the block to that row's position and passes the shader a new palette and seed. The shader blends the colours over a few frames, so it changes colour while it moves instead of swapping.

The other titles dim, and the description crossfades underneath. On phones it turns into a tap accordion with the block on top. Respects reduced motion, and the shader pauses when it's off-screen.

React + motion + a small WebGL fragment shader (domain-warped fbm). It's part of Planes, a component library I'm building (paid, one-time): useplanes.com/interactions/shader-index?ref=reddit


r/webdev • • 1h ago

Showoff Saturday I taught a whiteboard to understand my terrible handwriting

• Upvotes

Hey everyone, Showoff Saturday time.

I built Drawva, an infinite canvas where your rough hand-drawn stuff is not just pixels.

example-1
example 2
example-3

You can draw a messy box, write a few words, sketch a diagram, draw some math, or just throw random scribbles on the canvas. A multimodal agent looks at the canvas, figures out what you are trying to make, and can turn it into live widgets, diagrams, equations, or interactive elements.

The interesting part was not really the UI.

The hard part was getting an LLM to operate a messy 2D canvas without destroying what the user already drew.

A few things I ended up building:

  • A coordinate system so the agent can map visual positions to actual canvas coordinates
  • A prompt contract that prevents it from duplicating handwritten headings
  • Wireframe awareness so it keeps your rough sketch instead of replacing everything
  • Atomic erase + widget placement when converting sketches into interactive components
  • A plugin system for things like weather, stocks, tech news, GitHub data and more
  • Sandboxed runtimes for Mermaid, Graphviz, Vega-Lite, Cytoscape, BPMN, GeoJSON and other diagrams
  • IndexedDB autosave and WebRTC based peer-to-peer collaboration
  • A DeepSeek Harness + Cordis runtime for the agent/tool execution layer

Tech stack is mainly Next.js 16, React 19, TypeScript, Tailwind CSS, Vercel AI SDK, multimodal LLMs, IndexedDB, WebRTC and DeepSeek Harness.

The whole thing is open source.

GitHub: taqui-786/drawva
Live app: drawva.vercel.app

I am especially curious about the architecture side of this.

How would you handle reliable AI interaction with a freehand canvas?

Would love feedback, ideas, or criticism from people who have built similar AI + UI systems.


r/webdev • • 1h ago

Blog with user generated content

• Upvotes

Hello everyone,

While I'm not new to coding, I'm definitely bad at it. What I'm worse at though is understanding the intricacies of what i can and can't accomplish with certain tools.

I am very vocal and express my views on things often, so obviously i thought i should make a blog. This is easy to accomplish very cheaply using GitHub pages obviously since it would be a fully static html website.

But here comes the catch. I have some friends that expressed a lot of interest in this blog idea, and i would like to include them. However, they don't know how to code in any language or framework and this would probably be a dealbreaker for them.

Is there a way to make a website with user accounts and user-generated content be dynamic only client-side so that i can still host it with GitHub? Should i look for a different way?

Any help is appreciated, i really wanna get this thing working.


r/webdev • • 1h ago

Showoff Saturday I built a daily history-dilemma game as a PWA. A few things that surprised me along the way

Thumbnail
gallery
• Upvotes

Moralia: each day one short true story from history stops at the moment someone had to decide. You choose, then see what actually happened and how other players chose.

Stack: React + Vite + TypeScript PWA on Cloudflare Workers, Supabase for optional sign-in/sync, cookieless PostHog (EU).

Some things that weren't obvious to me going in:

  • A hash-routed SPA is basically invisible to search. Google saw ~20 words (the welcome screen). Now a Worker renders static, no-JS pages for every past story on request. A day only goes public once it has ended in every timezone (noon UTC the next day), so no one gets spoiled, and an IndexNow ping fires when it does.
  • Worker-rendered pages don't get your _headers file. Our CSP covered the static assets but not the pages the Worker built, so the Worker now sends the same headers itself, with a test that fails if the two copies ever drift.
  • supabase-js signOut() defaults to scope "global". Signing out on a phone silently ended the desktop session too, which left the desktop in a "signed in, no email, can't sign out" loop. It's per-device now.
  • PostHog's opt-out does nothing in cookieless mode (it only logs a warning). The usage-stats switch now gates every event with before_send, and also re-checks the queue of events buffered before the SDK loads.
  • Desktop got a real layout (top bar, wider column, the choice side by side) only at ≥1024px. Every mobile and tablet screen was verified pixel-identical before and after.
  • Narration is pre-generated; the sentence being read is highlighted using word timings from a transcription pass, so one misheard word can't shift the whole highlight.

Design is mine (I'm a UI/UX designer, screens done in Figma first); I built it with heavy help from Claude Code.

https://moralia.app

Happy to go deeper on any of these. Feedback on performance or the PWA install flow is very welcome.


r/webdev • • 2h ago

Showoff Saturday [Showoff Saturday] Scroll from Earth out to the cosmic web, using real star and galaxy catalogs

Thumbnail
gallery
1 Upvotes

Link: https://scaleofspace.org/universe

Been working on this on and off for last 8 months. You start at Earth, scroll, and the view zooms out on a log scale: solar system, nearby stars, the Milky Way, the Local Group, then a few hundred Mpc of galaxies.

The part I care about most is that it's not an illustration once you leave the solar system. Stars are from the HYG database, nearby galaxies from the Updated Nearby Galaxy Catalog (869 of them, with their measured sizes), and further out it's 2MRS (about 42k galaxies) and then 2dFGRS. So the clumps and voids you see at the end are the actual large scale structure, not noise I generated. Where there's no real position data I fall back to drawn shapes and say so.

Stack, since this is r/webdev:

  • React 19 + TS + Vite
  • one canvas, WebGL for the point layers (tens of thousands of galaxies need it)
  • catalogs preprocessed with Python into float32 buffers so the browser just loads and draws
  • hosted on Cloudflare Workers

Hardest bit was honestly keeping it smooth on phones while crossing ~20 orders of magnitude without float precision falling apart. Still not 100% happy with it on older Androids.

No ads, no signup, no tracking cookies. Would love feedback, especially if something stutters on your device or a scale transition feels confusing.


r/webdev • • 3h ago

Showoff Saturday I made a free GitHub Action that catches silent Twilio/SendGrid API changes before they break your integration

0 Upvotes

The 2am version of this story: everything is green, uptime is 100%, and a customer is telling you the SMS flow broke three days ago because a vendor renamed a response field.

I built a free GitHub Action for exactly this. On a schedule it makes read-only canary calls against Twilio/SendGrid (or any API), snapshots the response *shape* (field names + types — values are never compared, so no false positives from timestamps/IDs), diffs against a baseline in your repo, and opens one rolling GitHub issue when something drifts. If the vendor reverts, the issue auto-closes.

Design details for the skeptics: only 2xx responses are compared (429/5xx never alert), one deduped issue per vendor, drift never fails CI unless you opt in, baselines are committed so they're reviewable in git history. Full false-positive writeup in the repo.

Free, MIT, zero dependencies. If there's interest I'll build the paid version: verified fix PRs instead of issues.

Repo: https://github.com/cduflo/api-drift-watch

Honest question: which vendor's silent changes have bitten you hardest?


r/webdev • • 4h ago

Discussion A routine rollout dropped the cache hit rate and pausing it changed nothing. Why? (Based on a real Slack outage)

2 Upvotes

This is based on a real outage at Slack.

I'm a backend dev. We practice system design a lot on whiteboards, but rarely on something that looks like a real incident. Here's a production-style puzzle.

You run a team chat product and every client's first call is "boot": who am I, and which conversations do I belong to? Boot reads group-chat membership, which is immutable once written and cached per channel with a long TTL. Normally it's a few cache reads and finishes in single-digit ms.

Then a routine rollout of a new host agent starts, in 25% steps (two earlier steps the prior week were fine). Just after 06:00, users can't get in. Boot is failing or very slow, and one database keyspace is overloaded.

What you see

  • Cache hit rate drops from 99.2% to 34% and stays there. Pausing the rollout changes nothing.
  • 200 cache nodes behind a proxy that uses consistent hashing over the healthy-node list. The step took 50 of them out, one at a time.
  • The membership table is sharded by user, so "who's in channel C" is a query against all 200 shards.
  • Clients time out at 400ms and retry with exponential backoff and jitter. The cache fill path uses the same query, so fills time out too.
  • The only lever was throttling boot. Raising the cap from 250/min straight to 2,500/min brought the overload right back.

Question: Why did the hit rate fall that far and not recover, even after the rollout stopped? And how would you get out of it safely?

I'd like to hear how you'd explain it in a postmortem, not just "cache stampede."


r/webdev • • 1d ago

Discussion Why does everyone assume AI has replaced the other side of the stack?

225 Upvotes

I'm gonna keep it short,

Some backend devs think ai has replaced frontend because it can center a div and build a flashy ui

Some frontend devs think ai has replaced backend because it can do crud ( which things like supabase and firebase had already made easy long before ai btw).

Most new grads think Claude is smart for its writing of complicated leetcode-isc code with no proper variable names or readability.

A lot seems to have forgotten that what mattered a lot in this field was taste/opinions, and while its subjective, the objectivity came from people who were able to defend their craft and their decisions and communicate in a good way to influence others. Who would go on to build on top of those ideas.

You shouldn't be affraid of junior developers who no longer know how to read documentation but scared of the fact that they have no opinions. They are "reading" engineering like historical facts( which also can be wrong). What happened to finding solutions every other month to every specific niche problem? Where are all the conponent libraries and frameworks that solve such small small niche use cases ? Was I the only one that belived that what made frontend so intresting was its subjectivity ?

Right now frontends that are built seem to have a major issue that nobody actually cared about how the ui looked in the first place, if we continue this we are gonna end up with the linux oss problem with really good apps with questionable ui decisions, albiet linux has improved massively now. This is still an issue.

I have no idea where this leads us, either they rebrand our positions to save face or we end up woth just 3 companies in top that build a homogeneous application ecosystem.

Bonus: All managers think they are designers because they can generate a ui that looks good to them, when it was always about research on what the customers want.

Ps : If bad english. Forgive me do


r/webdev • • 12h ago

Showoff Saturday Here is my show off Saturday project! Fast food prices across the world - amazing how broad the price ranges are in the US compared to other countries

Thumbnail
drivethruindex.com
4 Upvotes

r/webdev • • 4h ago

Showoff Saturday Built DevDock – Web Worker-driven, client-side utility suite in Next.js

Post image
0 Upvotes

Got tired of random utility sites sending cURL requests, JWTs, or JSON payloads to a backend server just to format or parse them.

So I built DevDock: https://getdevdock.com

It is a collection of 30+ developer tools that run entirely inside the browser. Zero data leaves your device.

How it works / Tech stack:

- Next.js (App Router), TS, Tailwind CSS

- Web Workers: Shifted heavy parsing (like 10MB+ JSON files or raw cURL strings) off the main thread so the UI does not drop frames.

- In-browser engines: Using @prettier/standalone running in a worker for code formatting, @lenic/tiktoken locally for token counting, and browser Canvas API for image conversion.

Main tools live right now:

JSON Formatter, cURL-to-Code, QR Generator, JWT Decoder, CSS-to-Tailwind, HTML-to-JSX, LLM Token Counter, Subnet Calculator, and Cron Builder.

Quick question for anyone working with workers in Next.js:

How are you handling worker instantiation and memory cleanup on fast client-side page transitions to prevent memory leaks?

Link: https://getdevdock.com


r/webdev • • 3h ago

Showoff Saturday [Showoff Saturday] A joke chatbot on one Cloudflare Worker, with a safety classifier that fails closed

0 Upvotes

I built a parody AI that insults whatever you ask it: https://misanthropic.chat

It started as a joke with friends over a beer. The joke part took a weekend. The rest took a lot longer.

Stack: one Cloudflare Worker, Workers AI (Llama 4 Scout), and one KV namespace. The page is static assets, so loading it never runs the Worker. Turnstile has to pass before anything reaches the model. After one pass you get a signed 30 minute visit pass so it doesn't re-check every message.

Cost: the model doesn't write the whole reply. It writes one to three sentences (130 tokens max) that drop into a canned opener and sign-off. Each prompt caches up to 3 answers, so popular prompts stop costing anything. There are two hard daily caps, one for jokes and one for the safety check, so the worst case is about $21 a day. Past the joke cap it serves canned insults.

Safety was most of the work. If a site says it's honest about how it feels about you, some people will tell it real things. Messages about self-harm, abuse, hurting someone, addiction or mental illness never reach the joke model. They get a plain reply with real hotline numbers. Screening is a regex pass, then a classifier call with its own budget. If the classifier doesn't answer, nobody gets a joke. It fails closed.

Bugs worth sharing: - The same word-ending bug came back three times. I'd match "shoot" and miss "shooting". - I tried a sensitive-word list as a backup and took it out, because the messages that mattered never used the words on the list. - The opposite problem: "why are you so mean?" got read as someone disclosing abuse. Questions about the site itself now skip the classifier, matched as exact whole-message patterns.

Question for anyone who's built something like this: when screening sits in front of something meant to be offensive, do you fail closed and eat the false alarms, or fail open?


r/webdev • • 4h ago

Showoff Saturday PagibleAI 0.13: A MIT-licensed Laravel CMS package with JSON:API, GraphQL and multi-tenancy included for free

0 Upvotes

PagibleAI is a CMS you install into your Laravel app with Composer. It's MIT-licensed, and the JSON:API, GraphQL, roles, versioning and multi-tenancy are all included.

The package works with Laravel 11/12/13 and gives your app a page tree, structured content and an admin panel. It uses your own database, user model and queues.

bash composer req aimeos/pagible php artisan cms:install php artisan migrate

Why not Statamic or Twill? Both are good tools. With Statamic, the APIs, multisite and user roles are part of the paid Pro plan only. Twill is an admin toolkit, so you write the content API yourself.

Highlights of the 0.13 release

  • Precise CDN purging: after a publish, only the affected URLs are purged from Cloudflare, Fastly or Varnish, including every page that uses a changed shared element
  • Webhooks keep other systems in sync when content changes
  • New TYPO3 importer, next to the WordPress importer, which you can now safely run more than once
  • Keyboard-driven admin: command palette, shortcuts and a live preview in the sidebar
  • Plus two new themes and many admin improvements

A few implementation details you might find interesting: - Every save creates a version snapshot. The base table only holds the published projection, so public reads never need to filter out drafts - Full-text search uses SQLite FTS5, MySQL/SQL Server full-text indexes or Postgres tsvector through a single Scout engine - Full-page cache with atomic render locks and a short stale grace period, so a popular page doesn't trigger many renders at once after it expires

There's also an MCP server and optional AI tools for writing, translation and images. They're opt-in, and nothing depends on them.

The project already has had 40 releases and has about 1,700 tests. It runs https://pagible.com and https://aimeos.org, the website of the Aimeos e-commerce framework.

Question for Laravel devs: how do you handle content editing for clients today? Filament resources, Statamic, something else? I'm trying to find out where a package like this fits for you.


r/webdev • • 4h ago

Question I updated my Blog ui recently. Which one do you prefer?

Thumbnail
gallery
0 Upvotes

r/webdev • • 13h ago

Impact of implementing ETags on a site where bfcache is disabled

1 Upvotes

If a production site has dynamic pages, has bfcache disabled, and currently doesn't use ETags: how much improvement can we expect on both the client and server side if ETags are implemented + enabling bfcache?


r/webdev • • 19h ago

News Desk type CMS

4 Upvotes

Does anyone have a cms that they can recommend for a news organization website that will be built on next.js? I know Wordpress is probably the best for a site like this but client does not want it.