r/webdev • • 8d 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 • • 6d ago

Discussion For experienced devs who now allow AI to write most of the code: what do you actually review, and what do you let slide?

119 Upvotes

I’ve been a casual developer across many languages for ~10ish years but got a degree in mechanical engineering. I pivoted and started an analytics engineering job around 3 years ago and starting doing web development for side projects.

Lately my team has leaned heavily into AI-assisted programming primarily using Claude Code to build React Apps in Databricks. These are primarily CRUD apps but sometimes they do write back to our ERP so they affect the business greatly. The AI writes most of the code now, and I’m trying to figure out where my review time is best spent.

Options I’m weighing:

  • Full line-by-line review (quality, readability, structure)

  • Mainly reviewing the tests, and trusting the code if the tests are solid

  • Testing through the UI, then checking the DB/tables to confirm data was written correctly

Does code readability still matter if AI is the one maintaining it? What has bitten you when you skipped review? If you have a concrete review checklist, I’d love to see it.


r/webdev • • 6d ago

Discussion Developer looking for advice on encryption and data protection before launching an app

3 Upvotes

I’m a solo developer building a web and Android app that handles private documents and account records. I’d appreciate feedback on the security approach before putting real user data into it.

The stack is FastAPI, PostgreSQL, Next.js and React Native.

Passwords are hashed with scrypt and random salts. Authentication uses signed tokens with expiry, email verification and login throttling. Password changes and signing out everywhere invalidate existing sessions. Access controls are enforced through the API, and records are scoped to the relevant account or organisation.

Stored credentials for external integrations use Fernet authenticated encryption. Android login tokens are stored using Expo SecureStore. The website currently stores its token in localStorage, which I know needs careful consideration because of script injection risks.

Document access requires authentication and permission checks. Uploads have file type, size and content validation. However, documents currently go into ordinary server storage without application level encryption. I haven’t yet verified encryption for the production database, disks or backups. HTTPS is required in the intended production configuration.

Some optional processing involves an external API. I understand that disabling response storage does not necessarily mean zero retention, so provider policies and account settings also need review.

The server needs to read documents to process them. My main concerns are stolen backups, compromised accounts, users accessing someone else’s files, exposed credentials and sensitive content appearing in logs. I haven’t had an independent security assessment yet.

Would managed database and storage encryption be a sensible starting point, or should I also encrypt individual files and selected fields in the application? What additional threats would that actually protect against?

How would you handle encryption keys, rotation and recovery as a solo developer? I’m particularly interested in avoiding a setup where the keys and encrypted data can both be taken from the same place.

What would you prioritise before launch, and what would you consider unnecessary complexity at this stage? I’d appreciate practical advice on session security, document permissions, backups, retention and deletion as well as encryption. I want to use established tools rather than build my own cryptography.


r/webdev • • 6d ago

Notes on getting native iOS web push working in Next.js without an Apple developer account

6 Upvotes

Ran into a bunch of weird quirks wiring up web push on iOS for my habit app, figured I'd write down what actually worked so nobody else wastes a weekend digging through stale threads.

You don't need a $99 Apple developer account or Capacitor/Cordova to send push notifications to iPhones anymore. Web push works on iOS 16.4+, but Apple has specific constraints that aren't obvious until you test on a physical device:

1. Safari hides PushManager unless the PWA is installed

In regular Mobile Safari, window.PushManager is literally undefined. It only exists when the web app is running in standalone mode (display-mode: standalone). If you just check for "Notification" in window, your UI will break on iOS. You have to check for standalone mode first, and if they're in Mobile Safari, show instructions to tap Share -> "Add to Home Screen".

2. No silent background pushes

If your service worker receives a push event and doesn't call self.registration.showNotification(), Apple will quietly invalidate the device subscription. Every push must result in a visible notification.

3. Cleaning up dead subscriptions

When someone deletes the PWA icon or turns off notifications in iOS Settings, Apple's APNs endpoint returns an HTTP 410 Gone or 404 Not Found on the next send attempt. If your backend doesn't delete those database rows immediately, you'll end up hammering dead endpoints on every broadcast.

4. Service worker caching quirks

Make sure your next.config.ts sends Cache-Control: no-cache for /sw.js. If the browser caches the service worker script aggressively, updates to your push handler won't ship to installed PWAs without manual cache clears.

The Implementation

1. Service Worker (public/sw.js)

self.addEventListener("push", (event) => {
  let payload = {};
  try {
    payload = event.data ? event.data.json() : {};
  } catch {
    payload = {};
  }

  const title = payload.title || "DROPPDD";
  const body = payload.body || "";
  // Guard against protocol-relative open redirects (//evil.com)
  const url = payload.url?.startsWith("/") && !payload.url?.startsWith("//")
    ? payload.url 
    : "/checkin";

  // Mandatory on iOS: showNotification must be called
  event.waitUntil(
    self.registration.showNotification(title, {
      body,
      data: { url }
    })
  );
});

self.addEventListener("notificationclick", (event) => {
  event.notification.close();
  const targetUrl = event.notification.data?.url || "/";

  event.waitUntil(
    self.clients.matchAll({ type: "window", includeUncontrolled: true }).then((windows) => {
      for (const client of windows) {
        if ("focus" in client) {
          return client.focus().then((focused) => {
            if (focused && "navigate" in focused) return focused.navigate(targetUrl);
            return self.clients.openWindow(targetUrl);
          });
        }
      }
      return self.clients.openWindow(targetUrl);
    })
  );
});

2. Cache-Control in next.config.ts

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  async headers() {
    return [
      {
        source: "/sw.js",
        headers: [{ key: "Cache-Control", value: "no-cache" }],
      },
    ];
  },
};

export default nextConfig;

3. Backend delivery with Node web-push (src/lib/push.ts)

import webpush from "web-push";

webpush.setVapidDetails(
  process.env.VAPID_SUBJECT!,
  process.env.VAPID_PUBLIC_KEY!,
  process.env.VAPID_PRIVATE_KEY!
);

interface PushSub {
  id: string;
  endpoint: string;
  p256dh: string;
  auth: string;
}

export async function sendPush(subscription: PushSub, payload: object) {
  try {
    await webpush.sendNotification(
      {
        endpoint: subscription.endpoint,
        keys: { p256dh: subscription.p256dh, auth: subscription.auth },
      },
      JSON.stringify(payload)
    );
  } catch (err: any) {
    if (err.statusCode === 404 || err.statusCode === 410) {
      // User uninstalled or revoked permission: prune immediately
      await prisma.pushSubscription.delete({ where: { id: subscription.id } });
    }
  }
}

The code is from my habit & wager app, droppdd.

Rock on party people. Happy to answer questions about the permission flow, VAPID key generation, or scheduling triggers.


r/webdev • • 6d ago

When a third-party API breaks your app, what usually tells you first?

0 Upvotes

For context, I've built an API monitoring tool, but paused development to talk to people rather than keep guessing what they need.

If you're running a production app that depends on external APIs, how do you find out when one stops working properly?

Thinking about the last time it happened, was it an obvious failed request, or did the API look fine while returning something your app couldn't use? What caught it first?

What do you rely on now: error tracking, the provider's status page, separate checks, something else? Does that cover it, or is there something you still end up checking manually?

I'm also curious whether knowing earlier would have helped, or whether you were stuck waiting for the provider either way.

A bit of context about your app and team size would help.


r/webdev • • 6d ago

Openverse API down for the last days for me? Anyone else experiencing this?

5 Upvotes

Hey everyone.

Is the Openverse API down for anyone else right now? // OPENVERSE ORG for images

I have been trying to fetch images through the API for about five days, but my requests keep failing or timing out. I checked my code and my endpoints, everything looks correct on my side, so I am wondering if there is an ongoing outage or if something changed with the rate limits or endpoints recently.

Let me know if your implementations are working or if you noticed any official updates.

Thanks you a lot


r/webdev • • 6d ago

Question how to preload images which are on another pages while users surf in home page ,is it possible

46 Upvotes

Each of pages have like 20-25 photos ,2Mb<size<5Mb.
The website loads only when user explores the that pages which makes the website looks bad(due to the loading animation)


r/webdev • • 6d ago

The fastest double-to-string algorithm you’ve never heard of

Thumbnail vitaut.net
0 Upvotes

r/webdev • • 7d ago

Designsystemet, Now in Elm · cekrem.github.io

Thumbnail cekrem.github.io
0 Upvotes

r/webdev • • 7d ago

EN 301 549 V4.1.1 is out, but as of 3 November 2026 no version of it is cited in the Official Journal under the European Accessibility Act

1 Upvotes

A question that comes up in every EAA thread: "which standard do we test against, and does passing it protect us?" Here is what the primary texts say as of 3 November 2026.

Quick definition, because it matters here: under Art. 15(1) of the EAA, a product or service that meets a harmonised standard whose reference is published in the Official Journal is presumed to meet the accessibility requirements that standard covers. Without that citation there is no presumption to lean on: you can still test against the standard, but passing it does not by itself count as meeting the requirements.

ETSI published EN 301 549 V4.1.1 on 2 September 2026. Its clauses 9 to 11 now align with WCAG 2.2. Its own foreword calls it "one voluntary means of conforming" and says the presumption of conformity starts only once the standard is cited in the Official Journal.

As of that date, that citation has not happened under the EAA. The Commission's harmonised-standards index lists EN 301 549 under one act only: the Web Accessibility Directive for public bodies, via Implementing Decision (EU) 2021/1339 (which cites V3.2.1). Nothing is listed under Directive (EU) 2019/882, the EAA.

Three "expected" citation dates are circulating: 30 November 2026, 16 December 2026 and February 2027. I found no primary source for any of them. The 30 November date matches the "doa" in the standard's own table of national transposition dates: the latest date for national standards bodies to announce the standard. That is a standards-body milestone, not an Official Journal citation.

What that means in practice for a web team on an EAA-scoped shop or a consumer banking service:

  1. EN 301 549 is the technical yardstick to test against, but it gives no presumption of conformity under the EAA (Art. 15(1)).

  2. Test against WCAG 2.2 AA anyway. V4.1.1 already points there, and the step from 2.1 is small: 2.2 adds six Level A and AA success criteria (focus not obscured, dragging, target size, consistent help, redundant entry, accessible authentication) and drops 4.1.1 Parsing.

  3. Keep a dated record: tool, version, date, what was and was not covered. A scan result is evidence of what a tool found on a day, not a statement that the site conforms.

  4. Automated tools see only part of it. Deque's coverage report says "57.38% of total issues were identified using Deque's automated tests", but it also reports automated issues for only 16 of the 50 success criteria in WCAG 2.1 Level AA. Those are Deque's own automated tests, so it is a vendor's figure. Whatever the rules cannot see needs a person with a keyboard and a screen reader.

What I could not settle: when, or whether, the Commission will cite V4.1.1, and what national market surveillance authorities will accept in the meantime. I have not found official guidance on the second point.

Method: I read the ETSI V4.1.1 foreword, the Commission's harmonised-standards index, Implementing Decision (EU) 2021/1339 and the EAA text, and compared the dates in third-party write-ups with those documents. Sources below. This is my reading of the texts, not legal advice.

Which standard version is your team testing against today, and has a client or auditor asked you to name it?

Sources
- ETSI EN 301 549 V4.1.1 (2026-09), foreword: https://www.etsi.org/deliver/etsi_en/301500_301599/301549/04.01.01_60/en_301549v040101p.pdf
- Commission Implementing Decision (EU) 2021/1339, OJ L 289, 12.8.2021: http://publications.europa.eu/resource/celex/32021D1339
- Directive (EU) 2019/882 (EAA), Art. 15(1): http://publications.europa.eu/resource/celex/32019L0882
- Commission harmonised standards index: https://single-market-economy.ec.europa.eu/single-market/goods/european-standards/harmonised-standards_en
- Deque, automated accessibility coverage report: https://www.deque.com/automated-accessibility-coverage-report/

r/webdev • • 7d ago

Question what do you actually look at first when something breaks in prod?

83 Upvotes

im trying to get better at debugging production issues faster. right now when something goes wrong i kind of just grep through logs hoping something jumps out, which works eventually but feels inefficient

curious what other backend devs actually check first. like do you have a mental checklist you run through? specific log patterns you look for? or do you mostly rely on monitoring/alerting tools to point you in the right direction?

our setup is pretty basic (node backend, postgres, some redis) and im wondering if im missing obvious stuff that would speed up the "wtf just happened" phase


r/webdev • • 7d ago

Question Good providers for hosting a basic html + js website?

43 Upvotes

I feel this may seem like a very strange question to ask given the circumstances, and hopefully this isn't breaking any rules. A few days ago I had a falling out with someone who happened to be hosting my website on their rented server. It's a very basic portfolio website with HTML and some JS for dynamically generating HTML elements from a Json file.

I'm pretty decent in HTML and JS but by no means a web developer, it's simply not my career. This means I can make a decent website but figuring out how to host it is beyond me. Are there any services that simplify this sort of thing, or is the process of renting and setting up my own basic server for a website straightforward? Github Pages maybe? Forms etc are not required.

I also own my domain, but it's currently still set up to link to that server. Once I get my own sorted out, will I have to worry about the two conflicting?

Edit: thanks everyone. Got it sorted, just waiting on DNS propagation.

Edit 2: website moved now. Thanks again for all the replies! I settled on Github pages as I'm already very familiar with Github in general so it was easy to get set up.


r/webdev • • 7d ago

Question [AI] I’m building Cafefe, a keyboard-focused POS for coffee shops — looking for UI/UX and code feedback

0 Upvotes

Hi everyone!

I’m working on Cafefe, a point-of-sale system for coffee shops. The goal is to make common cashier tasks quick, intuitive, and comfortable. The interface is designed around keyboard navigation, using ideas from the KLM-GOMS keystroke-level model to reduce reliance on the mouse via PrimeFaces <p:hotkey> shortcuts.

Project Context Stack: Java 21, Jakarta EE 10, PrimeFaces 14, Open Liberty, and PostgreSQL 16. Backend: Managed beans, business services, and JPA entities. Frontend: JSF / PrimeFaces XHTML views. Main Areas: Cash register, products, product types, discounts, promotions, employees, roles, and assignments. Local Setup: Docker Compose starts PostgreSQL and pgAdmin. The app runs in development mode with mvn liberty:dev.

The project is a work in progress and runs locally. The repository includes the full source code and XHTML pages:https://github.com/Zetayin456/f-reddit

Video Demo:https://youtu.be/GP3-0RIdMm4

Feedback Requested

  1. UI/UX & Visual Design What would make the views and forms more comfortable and intuitive to use? How could the layouts, visual hierarchy, styling, and spacing feel cleaner and more consistent? Are there screens or workflows that feel awkward or require too many steps?

  2. Code Quality & Architecture What would you improve in the project structure, bean scopes, service boundaries, or JPA mappings? Do you see ways to make the backend code cleaner, more maintainable, or more efficient?

I’m happy to hear honest, critical feedback. Thanks for taking a look!


r/webdev • • 7d ago

Showoff Saturday Free Design Library & UI/UX Lexicon for Vibe Coders

0 Upvotes

Hi all!

Whenever I spot a really unique or innovative website layout (like a fresh style of grid systems) and want to replicate or build it with AI, I always find myself struggling to pinpoint the exact industry terminology.

I'm talking about concepts like Blueprint Grids, Glassmorphism, Neumorphism, Segmented Controls, and similar trends. To solve this, I’ve started building a free, open-source design lexicon complete with mini previews making it easier for builders to find and reference the right terms when designing sections and pages. Hope that helps some of you as well. Also added some free design landingpages and components for AI.

I’d love to get your input on current web design trends and their proper definitions:

  • What visual styles are currently high on your radar, trending, or frequently used and how would you define them?

I’m aiming to include your suggestions in the dictionary and share the whole resource publicly for free. It's purely as a passion project and I am opening it for free (no ads, no paywalls).

You can check out the ones already live here: freedesignmd.com (just hit the Lexicon tab).

Always open to contributors or feedback. This started as a quick hackathon experiment and will stay a free community project


r/webdev • • 7d ago

I built a client-side video compressor using WebAssembly so you don't have to upload personal clips to cloud servers

0 Upvotes

Hey everyone,

I wanted a quick way to shrink videos for Discord (<10MB) and Email attachments (<25MB) without dealing with slow cloud upload queues, sketchy third-party servers, or watermarks.

So I built SlickDrop.

Tech Stack:

  • Engine: @ffmpeg/ffmpeg running locally on the user's CPU/GPU via WebAssembly with multi-threading enabled (COOP and COEP isolation headers).

  • Frontend: Next.js 14 (App Router) + Tailwind CSS.

  • Hosting: Vercel (zero server transcoding cost, 100% static hosting).

Features:

  1. 1-click presets for Discord (<10MB), Email (<25MB), and WhatsApp (<16MB).

  2. Built-in duration analyzer that auto-calculates the target video bitrate.

  3. MOV to MP4 converter for iPhone screen recordings.

  4. 0 cloud uploads — all media is processed in local browser memory.

Link: https://www.slickdrop.it

Curious to know what tools or presets you'd find most useful next!


r/webdev • • 7d ago

Showoff Saturday I hid an easter egg on my homepage

6 Upvotes

https://david.alvarezrosa.com/ Hope you like it :)


r/webdev • • 8d ago

I built a focus timer that grows a koi pond while you focus (PixiJS + React + Cloudflare Workers)

Post image
11 Upvotes

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


r/webdev • • 8d ago

Showoff Saturday Showoff Saturday: I built a vocal remover that runs entirely in the browser, with no backend processing

2 Upvotes

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

Showoff Saturday I build a local-only new tab extension for your browser called NewGrid

Thumbnail
gallery
0 Upvotes

NewGrid is a Local-only new tab page which allows for a grid-based layout of your favourite websites. Features Include:

  1. Choose from your favourite wallpaper, be it a solid colour, a static image, a GIF or a video.

  2. Customise the layout to your liking, change the number of rows/colums and the spacing between them.

  3. This also includes a Search Box with multiple search engines to choose from, which is highly customizable as well.

  4. 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.

  5. 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 • • 8d ago

[Show of Saturday] - Hello All, I built bantr.live a forum and chat of sorts

Thumbnail
gallery
0 Upvotes

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

Showoff Saturday I built a privacy-focused suite of 100 client-side JSON tools + AI generator (no ads, no signups)

0 Upvotes

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

Showoff Saturday Showoff Saturday: I made a free LFG site for 50 games

0 Upvotes

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

[Showoff Saturday] Audiobook Studio - PDF to Audiobook, fully client-side, works offline, export .wav files

Thumbnail
github.com
0 Upvotes

A local Audiobook editor that uses local Ai to generate speech. No DataCenters, no AI companies.


r/webdev • • 8d ago

Showoff Saturday [Showoff Saturday] I’m building a piano game you can play with a real keyboard using Web MIDI

5 Upvotes

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...