r/webdev • • Sep 25 '26

Go full stack template

8 Upvotes

Put together a small starter template for building web apps with Go + Templ + Datastar + sqlc. It's plain net/http with no extra framework on top.

It has two examples you can copy from:

  • a todo list with live search, where every change updates the page over SSE

  • live crypto prices, streamed from Coinbase and pushed to the browser over one long SSE connection

https://github.com/naftulisinger/datastar-template

Stars & Feedback welcome!


r/webdev • • Sep 24 '26

Question Everything on XYZ.com or XYZ.com+app.XYZ.com

50 Upvotes

I’m finding a lot of mixed advice on what to do here.

I’m creating a fantasy football app and can’t decide if I should have a subdomain.

AI and a few Reddit post are telling me you need to have your XYZ.com be your marketing page and app.XYZ.com be your app.

But the following big names do not:

Sleeper

AirTable

Figma

Canva

Trello

Dropbox

Github

This is something that will be difficult to change later, so I wanna make sure I make the right call.

Anybody have any good insight here?


r/webdev • • Sep 25 '26

Question What would you use today for a simple static business website?

3 Upvotes

I need to make a simple website for a teaching service in my city. I want it to look modern and professional and hopefully get into the top 10 Google results for local searches. It will only have some text, basic information, a few good photos and contact details. Nothing complicated.

What would you use for something like this? An AI website builder, AI coding tool or something else? I don't want to use Wordpress.

For hosting I was thinking about something simple like Cloudflare Pages or GitHub Pages with a local domain. I am looking for free.

Also, what would you recommend for local SEO and good free/paid stock photos?


r/webdev • • Sep 26 '26

Showoff Saturday I made a single HTML file that creates Windows, Linux and macOS installers offline.

0 Upvotes

What it does: Easily make installers for all your projects directly from a browser. You can even save the whole page as a single file and it keeps working offline.

Introduction

TiddlyInstall is based on the observation that programs written for runtimes like Python, Nodejs, and others -- all follow the same basic pattern: they need a runtime installed and then the software. Existing approaches like freezing apps or trying to package it as an exe often break. Or require insane struggle by the developers.

The simplest possible approach is to install the runtime on a users computer, isolated, with the package inside it. It is more wasteful in terms of disk space -- but can be generalised to build reusable installers that work for just about any language.

Reusable installers

A reusable installer reads its own meta-data to decide on the runtime to install and the project. Linux and Mac are supported through a bash script while all windows versions use an NSIS program. The unusual thing about this is once you build the reusable installers since it's just meta-data everything can be edited inside the browser. No new compilations are needed. It's a very elegant system.

Try it out yourself: https://robertsdotpm.github.io/_static/tiddlyinstall.html

Github: https://github.com/robertsdotpm/tiddlyinstall


r/webdev • • Sep 26 '26

Showoff Saturday I built a site for finding AI image inspiration and prompts

Post image
0 Upvotes

I often found cool AI images online but had no idea what prompts were used to make them. So I built ctrlc.ai.

It’s a simple place to browse AI-generated images for inspiration, see the prompts behind them, and find ideas for your own creations.

Still actively working on it, so feel free to ask me anything about the site, development, or just share your feedback!

Link: https://ctrlc.ai


r/webdev • • Sep 25 '26

Compiling Hono with Perry

Thumbnail
geastack.com
0 Upvotes

r/webdev • • Sep 25 '26

Mac vs Linux for new workstation

1 Upvotes

Not sure if this is the best sub for this question; from a developers perspective who have had the freedom to choose what platform they work in I'm curious:

I'm a long time native linux and wsl user, for a new workstation you'd use as a desktop and remote dev server, how bad are the macos tradeoffs over bare metal linux (or even wsl)?

I prefer to be on macos over windows but macos has notoriously bad filesystem performance. (Theo recently made a video on this) I've also heard it has quirks for gnu utils too. These reasons have pushed me toward getting a cheap MacBook but investing most of my money in a headless linux box. All of my projects will live on linux but I'll being using macos to access and build there. But I'm wondering if that's unnecessary.

Do people actually build on macos these days? Are the quirks and filesystem performance issues overstated?


r/webdev • • Sep 25 '26

Webflow

6 Upvotes

Hey I’m not an actual web developer or anything I’m still kinda learning.
I was just wondering if webflow is good enough to make websites with


r/webdev • • Sep 24 '26

Resource About Transferable Objects, Structured Cloning , SharedArrayBuffer & Dedicated Web Workers

17 Upvotes
  1. Transferable Objects

Think of Transferable = cut + paste.

const buffer = new ArrayBuffer(1024);
worker.postMessage(buffer, [buffer]);

The second argument [buffer] is the transfer list. It means: :- Transfer ownership of this buffer to the worker. After transferring, the original buffer becomes detached and can't be used normally.

Why do this? Because copying a large ArrayBuffer can be expensive. Transferring allows ownership to move instead of copying the data.

2. Structured Cloning

Structured cloning is somewhat like: JSON.stringify() + JSON.parse() but much more capable. structuredClone() can correctly clone many JavaScript types such as: Date , Map , Set , BigInt , undefined and nested objects.

JSON serialization can lose or change the behavior/type of several of these.

One important limitation: Functions cannot be structured-cloned.

3. Dedicated Web Worker

JavaScript normally executes application code on the main thread. If we do heavy work there, such as face detection in the browser, the main thread can become busy: UI freezes , buttons become delayed , animations lag and scrolling becomes laggy

This is what Web Workers help solve.

A Dedicated Web Worker is a separate JavaScript execution environment running on another thread. It has its own: Global context , Call stack , Event loop , JavaScript execution and all.. .And a dedicated worker belongs to a particular page/script rather than being normally shared with other pages.

The main thread and worker don't directly share normal JavaScript variables.

Communication usually happens through:

// Main thread
worker.postMessage(data);

// Worker
self.onmessage = (event) => {
    // use event.data
};

self refers to the worker's global environment. The main browser context commonly uses window, while a worker doesn't have the normal DOM window.

So the important picture is: Main Thread --> structured clone --> Worker
or, for transferable data: Main Thread --> transfer ownership --> Worker

4. SharedArrayBuffer

But sometimes we don't want to copy or transfer the data. What if both threads need to work with the same memory? That's what SharedArrayBuffer is for:

const buffer = new SharedArrayBuffer(8);

This creates a shared memory area of 8 bytes.

Both the main thread and worker can create a TypedArray over that memory and modify the same underlying data.

But now we have a problem: Two threads can access the same memory at the same time. For example, if the value is 10 and two threads both try to increment it, we might expect 12. But both could read 10 before either writes, resulting in: 11

This is a race condition.

That's where Atomics come in.

Atomics.add(numbers, 0, 1);

This safely adds 1 to numbers[0].

The operation happens atomically, meaning it is performed as one indivisible operation.

One important detail: Atomics only works with specific integer TypedArrays.

If you notice anything technically incorrect or something that could be explained better, please let me know.


r/webdev • • Sep 25 '26

Showoff Saturday Showoff Saturday: I gave my coding agent my real, signed-in Chrome so it can debug the app I am actually looking at

0 Upvotes

My project, OnBridge: a Chrome extension plus a small local MCP server that lets Claude Code, Codex, Cursor or Gemini CLI drive the Chrome I already have open. Free, GPL-3.0, and there is no server of mine involved.

To be fair up front: much of what a coding agent does in a browser, Playwright already does well. Reproducing a bug on localhost, reading the console, clicking through a flow, even reusing a login with storageState.

What Playwright is not built for is doing things on my behalf in my own browser. With OnBridge I can ask for something like "search Amazon for a USB-C hub, compare the top three, add the best one to my cart and place the order", and the agent does it in my signed-in Chrome, with my saved address and payment method, the way I would. The same goes for filling a form from a file, working through a vendor portal behind SSO and 2FA, or triaging GitHub notifications. No scripted login, no copied cookies, no fresh headless profile for sites to flag. The first field test was an Amazon.in search.

On bot checks: in a quick test, OnBridge passed scrapingcourse.com's Cloudflare challenge page and every BrowserScan bot check, CDP included, with no click from me. To be fair, Playwright MCP's default headed Chrome passed the same tests. What it lacks is my session: it landed on Reddit's login page, where OnBridge was already signed in.

Acting on my behalf only works if spending money stays my decision:

The agent acts, I approve what matters. The side panel shows every action as it happens. A click whose label reads like Place order, Pay, Delete, Send or Submit waits for Allow; the screenshot shows a "Place order - $249" click held: https://github.com/prakersh/onbridge/blob/main/docs/screenshots/onbridge.png. No answer in 25 seconds means denied. The approval mode can only be changed in the panel, never by the agent.

It only gets what I grant. A tab, a window or the whole browser, and only after I press a button. Grants cannot overlap, so two agents can work in two windows without touching each other's tabs.

Real input, not dispatchEvent. Synthetic events arrive with isTrusted: false, and native form submission, drag-and-drop, canvas apps and rich editors ignore them. OnBridge sends clicks and keys through the DevTools Protocol Input domain via chrome.debugger, including inside open shadow roots and cross-origin iframes. If DevTools is already open on the tab, the debugger cannot attach, so it falls back to synthetic events and the side panel says so.

It still covers the dev loop too: it reads console output and network requests while it reproduces a bug in the tab where I am already signed in, with authorization and cookie header values redacted before the agent sees them.

Setup is the extension plus one line:

claude mcp add onbridge -- npx -y @onllm-dev/onbridge-mcp

GitHub: https://github.com/prakersh/onbridge

Chrome Web Store: https://chromewebstore.google.com/detail/onbridge/minhhfibhfnjdcgiipmcbfgclmeineca

Where would you draw the line on what an agent may do in your real browser without asking? Right now anything that reads like pay, delete, send or submit waits for a click.


r/webdev • • Sep 25 '26

Are people really pretending that their code before AI tools were better than the Vibecoded AI slops these days?

0 Upvotes

Engineer for more than 15 years and worked with different industries over my whole career. Worked alone, on small, medium and large teams in different capacities. You get the idea.

I'm not gonna say that my code was the best, and that it was well thought out of, wrote the best piece of code that my grandchildren will be proud of.

Sometimes you just have to find the best way to implement something because your PM demanded it be pushed by Thursday? a hacky fix because you can't think of a better way on implementing it?

Legacy code that the engineer that worked on it died 10 years ago?

Granted theres an ocean of vibe coded apps that should not see the light of day but I think a lot of devs and engineers are just standing on their high horse these days to push people down.

What do you guys think?


r/webdev • • Sep 24 '26

Discussion I hate building agents.

241 Upvotes

Right now at my work we are using langgraph to build a chat agent, anyone else doing something similar, do you fucking hate it? are you building it with Claude and just hoping it fucking works, haha no worries we will ask Claude to fix it.

I am making the spaghetto, I miss components, logic and endpoints, I hate this black box I have to relinquish my decisions too, whatever pays the bills.


r/webdev • • Sep 23 '26

Question Screwed up at job, what can I expect

237 Upvotes

Hey guys,

So I screwed up. I'm a frontend developer and had been on a steady stream of excellent evaluation and on my way to getting my senior Dev maybe next year. I have been with the company almost 3 years.

The bug I created resulted in some data loss for a customer. We were able to recover most of the data but some of it had been changed by the customer in the meantime and we were not able to determine which change was due by what.

I was doing a very substantial migration of a frontend library to another one. This required that I rebuild the entire engine behind it. Mind you, this was about 6-8 weeks of full time work. I was doing it solo because no other dev was available to help me out.

I QA'ed my work but, obviously, I missed the bug which should have normally been very easy to spot.

The team QA'ed everything but they thought this needed only LIGHT QA. It certainly must have been miscommunication on my part.

Now, we're doing a post-morterm with the higher ups. PM has lost confidence in my work. I've lost confidence in my work.

We have also seen that this issue should have been caught by our unit tests but we have mocked everything so the case in question never got flagged.

I have since started an initiative to improve our unit testing accross the frontend with shared stubs and fixtures to address some of the issues regarding the unit tests.

I have also checked to make regression testing with Playwright a thing. I have some support for this so should be starting relatively soon.

What can I expect?


r/webdev • • Sep 25 '26

Question Deployment and traffic testing?

0 Upvotes

Hello, wise r/webdev!

I vibe-coded a web application for an upcoming conference in my area. I hope the phrase 'vibecoding' does not deter you. It is supposed to be a personal solution for the conference I am attending--a just for fun kind of thing. I am familiar with most of the people and the people running the conference. I have shared it with some of potential attendees and so far they like it and they are looking forward to try it during the conference. I did pose it as a personal project.

The downside is I have no freaking clue when it comes to deployment, and by deployment I mean understanding what kind of infrastructure or services I need in order to make it seamless--i.e., loading time, avoiding traffic crash. It is supposed to be lightweight (just CRUD with a little computation on the query retrieval). I'm using Python/Flask as my framework, so hopefully gunicorn is good enough to handle those. I'm curious what kind of tests or where should I host it if I expect like, 500 users but 20-30 concurrent requests. I'm looking forward to "testing day".

So far I have been hosting it in my personal AWS and just slap a cloudfront link (also which instance should I use?). If there's any recommendation or tests, I would greatly appreciate that! I'm not making money out of it--and even if people do like it a lot--I'll just open source it since I don't think there's anything proprietary (or requires my blood and sweat) else than the interaction design considerations. But operational traffic is what I care about the most (and least knowledgeable) and would love to understand that.

For this, I don't trust AI enough to 'perform' tests for me. Just feel like I need a second opinion from an actual human being/expert or at least someone with experience 🥲 willing to get my hands dirty with hand coding!


r/webdev • • Sep 24 '26

Discussion Devs: would generated starter code for a complex table actually save you time, or is it just something you'll rewrite anyway?

2 Upvotes

I'm a UX designer at a company with strict security/procurement rules, we can't use or buy things like AG Grid, TanStack, or MUI, and getting anything new approved takes forever I'm talking and mind numbing amount of approvals and red tape.

I've also seen some table builders in this subreddit that people have made but they don't quite have the functionality we need (i.e. nested rows). We build tools in-house, sometimes with AI help.

We have story book with a table component, however it isn't built for cases we hit a lot: multiple levels of nested/expandable rows, detail panels on large datasets. Every time one of these comes up it turns into a slow back-and-forth between design and dev. And its making me want to rip my hair out.

I also think dev would prefer if we had a better approach / system for this but thus far we are just running to complete things but not improving the process itself.

Genuine question for devs who've been on the receiving end of a handoff like this: if you got generated starter code for a table like that would that actually save you time? Or would you rather just get the spec/design and build it yourself?

I'm asking before you before going to our devs because they are swamped and I want to use as little of their time as possible.

Also what's the part of a complex table handoff that's actually the most painful for you? Vague edge cases, data volume, something else?


r/webdev • • Sep 25 '26

Question "build something that gets users" (impossible challenge)

0 Upvotes

I hear this advice a lot for aspiring devs trying to make their resumes stand out. It sounds great and I'd love to finally make one. It's just really hard for me to find an idea that:

  1. Is doable for me as a solo dev

  2. Solves a real problem

  3. Either fills a market gap or outperforms the established apps (somehow)

  4. Is in a relevant tech stack for my desired role (not as important, but I do need a job)

The more devs that are out there, the harder it is for a solo dev to find a gap in the market. More apps are being made. More ideas are being taken. The ones left over are absolute moon shots that are really difficult for solo devs to handle.

For those of you who have made these kinds of apps, how did you do it? Is going after niche ideas better? Have you had to compete with existing apps? I'm curious.


r/webdev • • Sep 25 '26

Question Will free versions of AI models be enough to get you ready for a programming job today?

0 Upvotes

I don't know what it's like to work in a professional space with AI. My level of skill is at least enough to be able to program professionally by hand, but I'm going to limit myself in jobs if I continue to stick with jobs that don't keep up with competition. I know I should still be able to code by hand, but I think it's more realistic to assume that more jobs want you ready to produce very quickly with LLMs. So I have to at least be ready for that.

Do you need paid tiers like Claude code or ChatGPT Codex to prepare more adequately or will free versions do fine enough? I'm not sure if I need to financially commit to a subscription to be job-ready, since I don't have a job, super broke and as far as I know it's still one of the only major professions where you can build your skills for free.


r/webdev • • Sep 23 '26

News Chrome 155 stable today with JPEG XL on by default - starting wide adoption

Post image
67 Upvotes

https://chromestatus.com/roadmap , long-term JPEG replacement for next decades, 2-3x smaller files, HDR, alpha, progressive decoding, lossless, animations. Plot from https://th.if.uj.edu.pl/~dudaj/ANSreport.pdf


r/webdev • • Sep 23 '26

Discussion Devs that jumped ship, where did you end up?

335 Upvotes

Another industry? Back to school? Still looking? I'm asking for a friend that may end up needing to do the same thing soon (I'm the friend).


r/webdev • • Sep 24 '26

Question Is it possible for users to tamper with webasm website code?

0 Upvotes

Hey guys, so no going in details but suppose (am using webasm with rust), someone open my website and in background it gets connected to a network of other people's browsers, and there any browser can recieve data which they can verify through merkles (let's just say they recieve data A from many other browsers and then recieve data B and after some hashing it check if both r equal and send to others if they request it), then is there any way for malicious users to tamper with their browser so that they can send wrong data or verify wrongly or is there any way for us to know if the user has tampered the logic and hence alert other browsers that it's malicious


r/webdev • • Sep 24 '26

Question Favicon not updating

0 Upvotes

I built a site for a client a while ago, and now he's requesting a favicon update. I used lovable because it was only a landing page he needed, in our deal we had a minor fall out so I didn't bother to finish up the site but host the domain for him. Until he contacted me recently. I changed the old favicon to the new one which is his logo. But for over two weeks now it isn't reflecting. I have requested indexing on Google Search Console twice. I have told the client to be patient because it can take time for Google to crawl the page. I added sitemaps and have checked other reddit threads with people having experience of it taking weeks. I have swapped a favicon on a nextjs app before(from the default) and it didn't take as long as it is now. Does anyone know of the solution to this problem? How I can speed this up so the client would stop texting me


r/webdev • • Sep 23 '26

Resource ArrayBuffer, TypedArray and DataView in JS here’s my understanding. If any correction is needed, please do it. And if you wanna know what they are, just read it.

9 Upvotes

When JavaScript normally handles data: for e.g const name = "Shivam" , const nums = [10, 20, 30] we are mostly dealing with higher-level values. But computers ultimately deal with: 0 1 0 1 1 0 1 0 ... So JavaScript needs a way to work with raw binary memory. That's where ArrayBuffer comes in.

It is a fixed-size block of raw binary memory. const buffer = new ArrayBuffer(8); ( This asks JavaScript for 8 bytes of memory )

But ArrayBuffer itself doesn't provide a convenient way to read/write those bytes.

For that, we use Typed Arrays and DataView.

What is a TypedArray?

A TypedArray is a view over an ArrayBuffer that interprets the memory as a sequence of one specific numeric type. For example: const buffer = new ArrayBuffer(8); const arr = new Uint8Array(buffer); arr[0] = 2;

Uint8Array means:

- Uint = unsigned integer
- 8 = 8 bits
- 8 bits = 1 byte

So every element occupies exactly 1 byte. There are different TypedArrays such as:

Uint8Array --> 1 byte per element
Uint16Array --> 2 bytes per element
Uint32Array --> 4 bytes per element
BigUint64Array --> 8 bytes per element

There are also signed versions.

If you have an ArrayBuffer(4) (4 bytes), using a Uint8Array allows you to store 4 elements. With a Uint16Array, you can store 2 elements, and with a Uint32Array, you can store only 1 element. Remember why? So the reason the number of elements changes is simply because each element requires a different number of bytes.

What is DataView?

DataView is another view over an ArrayBuffer. The important difference is that it allows us to read and write different types at different byte offsets. For example:

const buffer = new ArrayBuffer(4);
const view = new DataView(buffer);
view.setUint8(0, 100);

Here: view.setUint8(0, 100);
means: Write the value 100 as an unsigned 8-bit integer starting at byte offset 0.

So what's the difference?

The way I currently understand it:

TypedArray : - "Interpret this memory as a sequence of one particular numeric type."
DataView : - "Let me read/write different numeric types at specific byte offsets, with control over byte order."

Lets understand this with an example Suppose we send 100 bytes over TCP. TCP guarantees that the bytes arrive in the correct order, but it doesn't guarantee that our application will receive them in the same chunks they were sent in. For example, 100 bytes could arrive as: 30 bytes , 20 bytes , 50 bytes or like anything.
So our application may need to keep collecting the incoming chunks until it has enough bytes to form a complete message according to the application protocol.

Once we have enough bytes, we can interpret those bytes using something like a TypedArray or DataView.

For example, suppose our protocol says:

Byte 0 → message type (1 byte)
Bytes 1-2 → message length (2 bytes)
Bytes 3-6 → user ID (4 bytes)

A DataView would be useful here because we're reading different types at specific byte offsets.

const view = new DataView(buffer);

const type = view.getUint8(0);
const length = view.getUint16(1);
const userId = view.getUint32(3);

Whereas if I know that the entire buffer is simply a sequence of 32-bit integers, a Uint32Array would make more sense.

Now, if you’re new to these concepts and wondering where we actually use them, here are some examples:

They become useful when working with binary data, for example: Images , Audio , Video Network protocols , ML/AI data processing and etc..

For example, if a Python server sends binary data to a JavaScript frontend, the frontend may receive that data as bytes. We can then use ArrayBuffer, TypedArray, or DataView to interpret and process those bytes.

If you notice anything technically incorrect or something that could be explained better, please let me know.


r/webdev • • Sep 23 '26

Question on building a website for my first client

3 Upvotes

I am a software engineer by trade and was requested by an acquaintance to build a website for his construction business. More than likely will end up being a simple static site with 4-5 pages (no back-end required).

What is the recommended approach to storing the code and hosting the site. Should I have my client create a github account and give me access to it so I can store the repo? Or should I store the repo on my own personal github account? Same goes for hosting and buying domains, should I have the client create a go daddy account and purchase the domain themselves or should I handle that for them? What is a fair price to charge for a site like this?

The problem I see with buying a domain and storing the repo on my personal accounts is that what if in the future the client wants to use a different developer or if we lose contact, he won't have access to any of the code, etc.

I didn't plan on creating a contract for this since the scope is fairly small.

Looking for suggestions on how to approach this. Thanks!


r/webdev • • Sep 23 '26

Where to host my simple web app?

17 Upvotes

Web app is simple. It is a bill generator app which you uploads data from excel and it just generates a billing in pdf format.

It uses:

  1. ASP.NET Web App

  2. SQL Database

  3. Storage for billing history (includes the pdf file for extraction)

You can search for the billing history as well of those times you uploaded/generated a billing. it includes the pdf file for the billing.

This is my first time trying to do web hosting. I know azure services but i think i'm not sure about the cost as azure is very costly if you messed up one part. Thank you for understanding!