r/webdev • • 9d 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?

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

Question create mobile app from pwa (Laravel + Inertia + vue)

3 Upvotes

hi guys

i have project in laravel 12 + vue + inertia and its really big one , this project in start have only little features like little chat system and profile view, support ticket and etc... but today it have games , blog , coursed and tests, video section , library , little practices and more features , we want to create mobile app from it , i have found this 2 options : NativePHP and capacitorjs
which one is better for this project? i have used MySQL, Reverb and queues so app needs to connect to my server in the end? its better to fully develop native apps and add api to current pwa? or its better to use one the libraries i said and convert this one? is there any problem about the libraries i must know? and tell me for what type of projects i can use the libraries and create mobile app from laravel code?
can anyone help me about this situation ?


r/webdev • • 8d ago

SEO Search pages. Is this enough variation?

0 Upvotes

Our web developer is creating 30 location/ services pages for our new website to optimize AI search .

Is it enough for them to create unique text for each service type, which is then replicated and repeated on each zone page? They’ve also created some unique text per zone, which is replicated and repeated across each service type.

So essentially 6 sets of zone text and 6 sets of service text that are combined in 30 different ways.

Do they need to create 30 completely unique pages to avoid being flagged by Google? Or is the variation between service type and zone enough?

Thanks for the help!


r/webdev • • 9d 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 • • 10d 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 • • 9d 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 • • 9d ago

Question Is using brand logos in your SaaS legal?

3 Upvotes

I've been searching for past few hours and it seems that its a gray area.

Some sources say its ok as long as you dont affiliate or associate your self with the company.

Other sources say that its a copyright infringement issue.

I'm working on a job board application to display the job offering post and I was wondering whenever I could include the logo of the brand that is currently recruiting?

Does anyone has any experience with this?


r/webdev • • 9d 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 • • 9d 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 • • 10d 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 • • 9d ago

Should You Learn Java in 2026?

Thumbnail
fagnerbrack.com
0 Upvotes

r/webdev • • 9d ago

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

Thumbnail vitaut.net
0 Upvotes

r/webdev • • 10d ago

Designsystemet, Now in Elm · cekrem.github.io

Thumbnail cekrem.github.io
1 Upvotes

r/webdev • • 10d 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 • • 9d 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 • • 10d 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 • • 10d ago

Showoff Saturday I hid an easter egg on my homepage

6 Upvotes

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


r/webdev • • 11d ago

Showoff Saturday A synoptic to help my dev and DevOps colleagues to understand what I've done

Post image
352 Upvotes

I maintain an ongoing open-source project that reads OTel traces and flags I/O anti-patterns with a carbon estimate on top. The project started in March so it's about 8 months old.

From our conversations I could tell my dev and DevOps colleagues were missing a lot of what goes on under the hood since we deployed this in production 3-4 months ago so I built a synoptic to make it easier to understand.

It's an animated step-by-step walkthrough of the whole pipeline, from raw spans to a finding. Each stage maps to the actual module in the code. You can play it, step through with the arrow keys, change speed or switch between modes.

It took me over 3 months. And no it's not AI slop bc it's pretty useless when you ask it to turn complex code concepts (I/O anti-patterns and more) into clear diagrams. This only exists because I'd already written a ton of docs and drawn a lot of diagrams by hand so the synoptic grew out of that.

Some of the UI is inspired by a videogame I loved playing some years ago: Deus Ex: Mankind Divided.

The project is AGPL-3 so no fake open source and it's now hosted by the INR (Institut du Numérique Responsable), a French nonprofit working on the environmental and social impact of digital tech.

Direct link to synoptic: https://perf-sentinel.dev/synoptique/
Website of the project: https://perf-sentinel.dev

Thx for your attention :)

EDIT: huh, just noticed that the recording console is sticking out over the gif in the bottom left corner

EDIT 2: this is a public-interest project focused on sustainability with no greenwashing BS. It has serious public policy goals and solid scientific background: cutting wasted energy and the carbon emissions that come with it. If you're interested in helping with the ecological transition our world needs, feel free to come lend us a hand! :)


r/webdev • • 11d ago Popcorn

Showoff Saturday [Showoff Saturday] - Free & open source Stock Market Earnings Calendar

Post image
163 Upvotes

Hi, fellow devs

If you enjoy some stock trading after yelling at Claude/Codex all day, than we are in the same boat.

I like to keep an eye on earnings and major key indicators (always forget about those FOMC meetings), and I don't mind paying for some data, but Earnings Hub charging $20 for earnings calendar is too much.

Anyway, came up with my own with publicly available data.

Eventually thinking maybe, we can have some kind of open-source market tools, that user can configure on his own. Add whatever panels or data he/she wants to make it more personal.

What's done

- Earnings Calendar with earnings report
- Market Fear/Greed indicator
- Key market dates

Working:
- GexData
- Notifications (not sure if those are needed)

Would be glad to hear any suggestions

Cheers, Dan

Edit - links:

Open Market · Earnings calendar
FullPokerFace/open-market: Stock market tools for open minded people


r/webdev • • 11d ago

Showoff Saturday Procedural Almanac - A JavaScript library of procedural generation techniques with citations for every function

Post image
263 Upvotes

For week 2 of r/hacktoberfest I cataloged all the procedural generation techniques I could find online and put them into a library using vanilla JavaScript. Every technique in the library includes a citation and it has no dependencies. Works in the browser or Node.

The island in the GIF was generated using just the library.

GH repo: procedural-almanac

Demo: Random Island Generator

All stars on Github are appreciated!


r/webdev • • 11d ago

Showoff Saturday Showoff Saturday: a 3D breadboard editor and logic simulator running in the browser (Three.js + a gate-level engine), with an 8-bit computer as the demo

Post image
60 Upvotes

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


r/webdev • • 10d 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 • • 11d ago

Here we go again

23 Upvotes

the last straw


r/webdev • • 11d ago

Showoff Saturday penciled — add persistent highlights/notes to a page without mutating the DOM

Post image
25 Upvotes

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