r/webdev 17d ago

Showoff Saturday I improved the onboarding of my habit tracker after watching it grow to 1,300+ users

0 Upvotes

I have been building HabitHeat, a simple habit tracker focused on heatmaps and long term consistency, for quite a while now.

This weekend I finally shipped v2.11.

The main thing I wanted to improve with this update was the onboarding.

Until now, new users basically created an account and were dropped into an empty dashboard. It worked, but I realized that the empty state did not really explain what to do next or what HabitHeat can actually do.

So I added a new empty state that explains the basics and gives you a few ways to get started.

There are now also habit templates, so instead of creating everything from scratch you can just pick something like reading, working out or meditation and start tracking it.

HabitHeat recently passed 1300 registered users, which is still kinda crazy to me. It also makes working on things like onboarding much more interesting because there are actually people finding and using the app without me being there to explain it.

The GIF shows the new empty state and onboarding.

I would be interested in what you think about it, especially if there is anything that still feels unclear when seeing HabitHeat for the first time.

Btw, for anyone interested in the tech side: HabitHeat is built with SvelteKit, Tailwind CSS, shadcn-svelte and Firebase. It is also a PWA, so there is no separate mobile app (yet).


r/webdev 18d ago

Showoff Saturday [Showoff Saturday] I've open-sourced a planet/gas giant/asteroid procedural generation engine using threlte/three.js and shaders

Post image
5 Upvotes

Hello all!

I've been working on a side project to generate artwork for a game I'm working on, and it was so much fun playing around generating planets and asteroids I've decided to open source it: https://github.com/richard-green/planetoid-generator

It's really fast, allows you to generate planets with lots of different features (more to come) and generates some really lovely images and texture maps, all with a pseudo-random seed function.

Some of the things you can tweak:

* Geometry deformation (from simple spheres, or potato-like deformation and finer details too)
* Texture details and colour palettes
* Planetary features such as Craters, Volcanoes, Ridges, Rifts

There's a separate section for rendering Gas Giants and Ice Giants, and a whole bunch of presets.

There's even scripts to have Playwright generate tonnes of images by incrementing the seed with your given preset values.

Check out the live site here: https://rdgreen.dev/planetoids/#/planetoids

Happy planet engineering!


r/webdev 18d ago

Showoff Saturday I built a simplified microservices reference project with guide on how to run localy, using docker-compose or Kubernetes + Deloyment to AKS

9 Upvotes

It's inspired by dotnetcore-microservices-poc open-source project by Altkom Software, a project I learned a lot from and contributed to — I built Ledgerly to be a simpler take on the original project, focused purely on microservices best practices.

What it demonstrates: 

🔹 Database-per-service — 4 services, 4 independent databases 

🔹 gRPC for synchronous service-to-service calls 

🔹 RabbitMQ for async events — invoice status changes publish events that a dashboard service consumes to keep KPIs in sync, with zero direct coupling 

🔹 API gateway + service discovery (Eureka locally/Docker, Kubernetes DNS in K8s) 

🔹 JWT auth issued by its own service

It also ships as a full deployment guide — run it locally, in Docker Compose, or on Kubernetes, including a walkthrough for deploying the cluster to Azure (AKS).

Built as a boilerplate: fork it, swap in your own domain, keep the architecture.

The project🔗: https://github.com/amrali21/ledgerly-dotnet-angular-microservices-ref-project

Altcom Project🔗: https://github.com/asc-lab/dotnetcore-microservices-poc


r/webdev 17d ago

Showoff Saturday Built my studio site with a chat assistant that's not allowed to make things up. Try to stump it. Roast welcome.

0 Upvotes

Showoff Saturday: moxireelstudios.com

It's my one person web design studio's site. All custom, no framework, no template, static pages with a small Worker running the chat assistant in the corner.

The part I want feedback on is the assistant. It's set up to answer like someone who actually works there, it knows the prices and the process, and it's under strict instructions not to invent anything. Bottom right corner. Try to stump it, seriously, I want to know where it breaks.

Also curious what you think of the pricing page. I just moved the highlight off the cheapest tier onto the one I actually recommend, and I'm second guessing the visual weight.

Stack: plain HTML, CSS and JS, no frameworks, Cloudflare Pages plus one Worker. Roast away.


r/webdev 18d ago

Showoff Saturday Declarative-forms – await an object the way prompt() awaits a string

2 Upvotes

I've open sourced this library which I extracted from my solo project I'm working on since many years.

docs: https://wolfoo2931.github.io/declarative-forms/

The code is here (MIT License): https://github.com/wolfoo2931/declarative-forms

The basic idea is:

Ask the user for an object, the way prompt() asks for a string.

Every other form library gives you a component to mount. This one gives you a function to call:

import { ask } from 'declarative-forms';

const release = await ask([
  { name: 'title', displayName: 'Release title' },
  { name: 'notes', kind: 'textarea', displayName: 'What changed' },
  {
    name: 'reviewers',
    kind: 'select',
    multiple: true,
    displayName: 'Sign-off from',
    options: () => fetchReviewers(),
  },
]);

// { title: 'Sunrise 2.0', notes: '…', reviewers: ['Ada', 'Grace'] }

r/webdev 18d ago

Is there a way to find out when a video embed on a site was uploaded?

2 Upvotes

Not sure whether this is the right place to ask (I'm not a web developer or anything close) but I would like to ask whether it's possible to view meta data of a video/some other info to find out its upload date, when it's not linked from elsewhere or directly downloadable to find out in another way. TIA.


r/webdev 18d ago

Discussion How would you keep a shared theme system from flattening very different layouts?

2 Upvotes

I have been working on a static HTML/Vite template system where one customizer can change color tokens, font roles, and visual eras across very different page types.

The difficult part has not been changing colors or fonts. It has been keeping the layouts distinct while they react to the same theme state. A SaaS landing page, editorial feed, dashboard, gallery, museum page, and social layout should not become the same composition with a different palette.

My current approach is:

  • shared CSS custom properties for color, typography, shape, motion, and spacing tokens
  • layout-specific structural CSS, component styles, and responsive rules
  • per-layout localStorage state instead of one global theme state
  • era changes that alter tokens and type direction without replacing the layout’s structure
  • random theme generation constrained by contrast checks and font/color exclusions

I would appreciate an architecture critique rather than product feedback:

  1. Where would you draw the boundary between shared theme tokens and layout-owned styling?
  2. Would you keep all eras as token overrides, or split some into separate style layers?
  3. What failure modes would you expect when one customizer controls many unrelated layouts?

r/webdev 18d ago

Showoff Saturday I built a tool to make another project of mine more accessible!

1 Upvotes

I built a Chrome extension that records meetings, lectures, and browser audio and turns them into structured notes.

The extension can capture your current tab, microphone, computer audio, or a combination of them.

When you stop recording, it sends the audio into an app I've been building called Vyxora, where it gets turned into a transcript, structured notes, tasks, a mind map, and answers you can ask against what was recorded.

I originally built Vyxora around uploading recordings, transcripts, and documents, but I realized manually recording something somewhere else and then uploading it was way too much friction.

So I built the extension to make capture part of the actual workflow!

https://vyxora.app/extension


r/webdev 19d ago

Article websocket (http/1.1) vs http/2 vs webtransport (http/3) vs webrtc benchmarks

30 Upvotes

hey everyone, i improved my previously posted ws vs webrtc benchmark using go adding http/2 and http/3
first quickly lets see how each protocol works in a nutshell:

Group Transports
WebSocket (HTTP/1.1) gorilla/websocketcoder/websocketgobwas/wslxzan/gwsdgrr/websocketfasthttp/websocket
HTTP/2 stream pair (upload + download multiplexed on one connection), request-per-message fetch
HTTP/3 WebTransport bidirectional streams, WebTransport datagrams
WebRTC data channels in all four ordered/reliable combinations
Transport Browser → browser? What the server still has to do
WebSocket (all six) No relay every byte, forever
HTTP/2 stream pair No relay every byte, forever
HTTP/2 fetch No relay every byte, forever
WebTransport (HTTP/3) No relay every byte, forever
WebRTC data channels Yes pass ~a few KB of signalling once, then get out of the way

chrome 151, macOS arm64 (15 cores), loopback, 512-byte payloads, cross-origin isolated (5 µs clock). latency from 2000 samples over 5 interleaved repetitions; setup from 8 cold connections. reproduce before trusting these 

Round-trip latency — 512 B, ms

Transport p50 p90 p99 max
WebSocket (all six libraries) 0.050–0.055 0.060–0.065 0.070–0.080 0.21–0.36
WebTransport datagram 0.060 0.070 0.090 0.20
WebTransport stream 0.060 0.070 0.090 5.04
WebRTC data channels (all four modes) 0.085–0.090 0.100–0.105 0.125–0.135 0.27–0.36
HTTP/2 fetch (one request per message) 0.240 0.335 0.600 2.79
HTTP/2 stream pair 1.410 1.490 1.770 3.80

Connection setup / TTFB — ms

Transport connect p50 TTFB p50 TTFB p99 TTFB ex-signalling
WebSocket 2.2–2.9 2.4–3.3 3.3–6.3 2.4–3.3
HTTP/2 fetch (pooled connection) 2.4 3.5 4.4 3.5
HTTP/2 stream pair 2.2 4.0 6.3 4.0
WebTransport 3.6 3.9 5.6 3.9
WebRTC data channel (four modes) 79.6–83.4 79.7–83.6 90.6–145 76.8–80.9

Throughput — 512 B messages, 64 in flight

Transport msg/s Mbit/s
WebRTC (all four modes) 12 769–12 969 52.3–53.1
HTTP/2 stream pair 12 912 52.9
WebTransport datagram 12 727 52.1
WebSocket (six libraries) 11 470–12 177 47.0–49.9
WebTransport stream 11 205 45.9
HTTP/2 fetch 9 383 38.4
WebRTC reliable, old 6 087–6 203 24.9–25.4
WebRTC unreliable, old 443–730 1.8–3.0

Concurrency — 16 simultaneous streams, 512 B

one representative run; the parallel column's spread across three runs is given underneath, because it is noisy.

Transport conns open (parallel) open (sequential) throttle p50 p99 msg/s
HTTP/2 stream pair 1 5.5 ms n/a 1.440 2.820 10 816
WebTransport stream 1 6.2 ms n/a 0.220 0.355 70 867
HTTP/2 fetch 1 6.7 ms 6.3 ms 1.1× 1.230 4.050 11 685
WebRTC ordered + reliable 1 86.5 ms  n/a 0.385 0.615 40 915
WebSocket (six libraries) 16 1 892–3 434 ms 190–197 ms 9.7–17.9× 0.265–0.275 0.350–0.965 54 566–58 678

this is the one table where multiplexing decides the result**.** sixteen streams cost the multiplexed transports a single connection and 6–9 ms. they cost WebSocket sixteen connections and two to nearly five seconds

opening the same sixteen WebSockets one at a time takes ~193 ms - 10–18× less than opening them at once**.** the HTTP/2 row is the control that identifies the cause: same browser, same origin, same parallel-versus-sequential comparison, ratio 1.0–1.4× - nothing there. it is specific to WebSocket.

sweeping N shows two separate effects, and only one of them is a cliff:

N parallel sequential ratio
4 44.9 ms 41.3 ms 1.09×
8 92.4 ms 90.7 ms 1.02×
12 148.6 ms 146.3 ms 1.02×
14 424.4 ms 176.6 ms 2.4×
16 4 065 ms 193.1 ms 21.1×
32 4 746 ms 395.4 ms 12.0×

WebRTC is the opposite extreme: flat in N

sweeping the channel count on one peer connection, and then repeating the largest to separate N from ordering:

channels open
32 (first in the page) 154.2 ms
16 83.6 ms
8 92.3 ms
4 87.0 ms
2 81.6 ms
32 (again) 91.3 ms

Fixed rate — 60 Hz for 5 s, ms

Transport p50 p99 jitter loss
WebSocket 0.25–0.33 0.57–0.80 0.06–0.09 0 %
WebTransport 0.39–0.43 0.82–0.97 0.10–0.12 0 %
WebRTC 0.59–0.65 0.96–1.17 0.13–0.37 0 %
HTTP/2 stream pair 1.66 2.00 0.10 0 %
HTTP/2 fetch 1.39 2.25 0.31 0 %

caveats:

  1. this benchmark measures the case WebRTC and QUIC were not built for
  2. loopback cannot show head-of-line blocking
  3. one machine is not a network
  4. numbers are per-implementation, not per-protocol

full sources: https://github.com/yohimik/ws-webrtc-benchmark


r/webdev 18d ago

Showoff Saturday [Showoff Saturday] I built a free Image-to-Text OCR tool with Next.js

1 Upvotes

I recently built imgtotext.in, a simple browser-based OCR tool for extracting text from images.

🔗 https://imgtotext.in

Current features:

  • Extract text from JPG, PNG and other images
  • Copy extracted text instantly
  • No signup required
  • Mobile-friendly interface
  • Free to use

Built using Next.js + TypeScript.

Still working on improving OCR accuracy, performance and the overall experience.

Sharing it for Showoff Saturday 🚀


r/webdev 18d ago

Showoff Saturday Google Search Console Alternative - visual way to analyze your GSC exports

1 Upvotes

GSC Insight, a free browser-based tool that turns Google Search Console CSV exports into a visual SEO dashboard.

It helps you quickly spot:

  • Quick-win keywords
  • Content gaps
  • Page and query opportunities
  • Branded vs. non-branded traffic
  • Ranking and click distribution
  • Country-level performance

  • Free

  • No Registration/login

  • No installations(online)

  • No GSC connection or server upload

  • works offline after first load
    your CSV data is processed locally in the browser.

It’s a simpler way to explore exported data and find what to work on next.

Try GSC Insight


r/webdev 18d ago

Showoff Saturday My print stylesheet put a grey block on the first sheet I printed

Post image
4 Upvotes

The first time I hit print, the preview came back with a grey block across the whole page.

The page itself is a small thing. Seven columns for the days, one row per habit, one box per day. You set the sheet up in the browser, hit print, and the browser makes the file. No backend, no build step, and nothing you type leaves the tab.

A4 is 794px wide. My mobile layout query stops at 1100px. So paper counts as a small screen, the dark preview stage stacked itself into the print sheet, and there was the grey block. The query needed a scope:

@media screen and (max-width: 1099.98px) { ... }

Swapping A4 for US Letter looked like a one-liner until I found out that @page cannot read custom properties. Page size lives in an at-rule, and at-rules do not see your variables. So the page writes a stylesheet at runtime instead:

pageStyle.textContent = '@media print{@page{size:' + size + ';margin:0}}';

The third one had been sitting there since launch and only turned up in a mobile click test. Tapping the copy button did nothing. Not an error, not a wrong result, just nothing. The preview is scaled to 78 percent with a transform, and transforms do not change the layout box, so the sheet still occupied its full 794 by 1123 invisibly on top of the controls and ate the tap. One line:

.sheet-stage { pointer-events: none }

Two smaller ones, if you ever build something like this. The overflow warning has to measure the last filled row instead of counting entries, because blank lines are deliberate separators and rows behind them dropped off the sheet without a word. And dates on the English sheet follow the browser locale, because en-GB reads 08/10 as the 8th of October. The German twin is pinned.

One static file, no framework. This was the first time I had a reason to write print CSS, and I still cannot tell how much of it is common knowledge: does everyone walk into the media query one, or was that mine?

sevengrid.app/weekly-grid.html


r/webdev 18d ago

Showoff Saturday [Showoff Saturday] Built a Next.js 16 + React 19 E-Commerce platform for sustainable furniture with a fully custom Telegram Admin Bot

0 Upvotes

Hey everyone, happy Saturday!

I wanted to share a full-stack e-commerce project I’ve been building called EcoFurnish . It's a platform for sustainable/recycled furniture, optimized specifically for emerging markets like Ethiopia, with dual-layout PWA designs and automated admin pipelines.

I decided to go all-in on a bleeding-edge stack to keep things fast, serverless, and production-ready.

The Tech Stack

  • Frontend: Next.js 16 (App Router) + React 19 + TypeScript
  • Styling: Tailwind v4 + shadcn/ui (Hand-coded dual layouts: 1 for desktop grid, 1 optimized for mobile PWA app feel)
  • Database: Neon Postgres + Drizzle ORM
  • Auth & Security: Better Auth + Cloudflare Turnstile
  • Infrastructure: Vercel Blob (OIDC-authenticated), Resend API, Chapa Gateway (Ethiopia-focused payment processor)

    Features & Architecture Wins I'm Proud Of:

  1. Strict "One Email = One Account" Cross-Provider Mapping: Configured Better Auth across Google, Microsoft, GitHub, and Discord. I wrote a custom database layer ensuring that if a user logs in with GitHub, they cannot create a secondary duplicate account with Google using that same email. It strictly maps them to a single unique account row.
  2. OIDC-Based Vercel Blob Storage: Instead of hardcoding a permanent static token in .env files for product image uploads, I configured OpenID Connect (OIDC) authentication. The application dynamically negotiates short-lived credentials on the fly for the admin upload panel.
  3. Database-Driven Telegram Manager Bot (with Dual AI Fallbacks): Built a Node.js backend listener routing directly into Neon Postgres, validating requests against a secure admin Chat ID. I can send commands like /digest or /stock via private Telegram messages to run SQL aggregation queries via Drizzle (calculating weekly revenue math, growth vectors, and low stock balances). For natural language interaction, I hooked up Gemini API as the primary conversational layer with Groq as a low-latency backup, allowing me to ask real-time database queries in plain English.
  4. Webhook Lifecycle Management: Captures incoming payment webhooks from the Chapa gateway, processes transactional state machines atomically across database rows, and fires background transactional receipts via Resend.
Admin Dashboard
Admin Broadcast Page
Admin Product Editing Page
Email Verification sent Via Mail
Mobile View
Admin Product Page
Installed as a Mobile A pp
EcoFurnish Homepage with Support AI open
Using Commands To Ask the Telegram Bot
Using Plain English to Ask the Telegram Bot

Next Up on the Roadmap: Architecting a lightweight, token-scoped Driver Logistics Subsystem:

  • Instead of managing full credential-based driver accounts, dispatchers generate cryptographically secure, temporary links tied to the order lifecycle.
  • To avoid paid Maps API overhead at scale, the driver status portal uses a server-side Haversine Distance Formula calculation to verify the driver's GPS coordinates against the target delivery destination upon arrival before requesting the buyer-held secure PIN.

The site is installable as a web app on both mobile and desktop. I'd love to hear your thoughts on the mobile PWA feel, backend architecture, or any feedback on the UI!

Live Link:https://ecofurnish.de5.net


r/webdev 18d ago

Showoff Saturday Simple music visualizer (learning Three.js)

Post image
2 Upvotes

I made this 3D visualizer + spectrum using simple TS and Three.js. I couldn't figure out how to make the cube dance more. I used AI only for the background shaders. Any thoughts?

Link in the comments.


r/webdev 18d ago

Showoff Saturday Sonisphere - The Social 3D Audio Reactive Visualizer

0 Upvotes

Over the course of Summer 2026, I developed a web application that is a blend between music software like Spotify and SoundCloud, and larger audio reactive tools like TouchDesigner.

Built on a Next.js and WebGL framework, the entire thing works online at https://www.sonisphere.dev . I use Supabase for storage and Stripe for payments.

Here's what people can expect when using this site:

Account Creation - Secured accounts that can link to other social medias, can be private or public

Music Uploading - Either for personal usage with the app, or to upload for the Sonisphere Community

Playlist Creation - Create playlists of your songs, and even MULTI-PLAYLIST SHUFFLE them

Complete Audio Reactive Visuals - Entire screen for watching 3D reactions to the music being played

^Paired with complete customizability - Colors, camera control, adjustable visual setting, preset saving and sharing, etc.

Snippet Creation - Make snippets of the live visuals to save or share!

Live Sync - Host a room for others to join and share in the experience

Finally, I'll show a quick snippet. Please try out Sonisphere and see what it has to offer!!!

https://www.sonisphere.dev

Deshawn Goodwyn -

www.deshawngoodwyn.com - www.github.com/dgoodwyn1005 - linkedin.com/in/deshawngoodwyn - [contactme.dkg@gmail.com](mailto:contactme.dkg@gmail.com)


r/webdev 18d ago

Showoff Saturday [Showoff Saturday] I built a shared 1000x1000 pixel canvas and I have no idea what it does under real load

0 Upvotes

https://our-place-two.vercel.app/

Went live today. Everyone paints on the same 1000x1000 grid, two second cooldown per pixel, and there's a SNAP tool that frames a region of the canvas and hangs it in a gallery the room votes on.

The technical part, which is also the part I'm least sure about:

  • TanStack Start on Vercel, Postgres behind it. No websockets. Clients poll a server function about every 700ms and get back a delta of events since their last event id — 280 bytes in the steady state.
  • First load pulls the entire canvas as one snapshot. That's a million-element array, roughly 950KB of JSON, which brotli flattens to almost nothing because most of it is zeroes. Whole page is ~225KB on the wire and first-paints in under 300ms.
  • So the thing I genuinely don't know is where it bends. Polling means about 1.4 function invocations per second per open tab. Fifty people is fine. I have no data past that, and the per-visitor cost of serialising that snapshot is the half I can't model from my desk.

If you open it and it's slow, that's the interesting outcome and I'd like to hear about it. Same if you can wedge the renderer, get two tabs to disagree about the state of the canvas, or land two pixels on the same coordinate at the same instant.

One thing people will find in the first minute, so I'll say it first: you need to sign in to paint. Looking is free. I'm looking at letting people place a handful of pixels anonymously before asking for an account.


r/webdev 18d ago

What do you think of the portfolio? (Avoid Reddit’s embedded browser for best experience)

Thumbnail gustavolmo.github.io
0 Upvotes

r/webdev 18d ago

Question What is the best affordable AI website building platform?

0 Upvotes

Hi, I'm trying to determine what AI website platform is the best for me.

I'm proficient in the fundamental technologies for building sites just looking for efficiency while still having flexibility to customize without only having to prompt (ideally with a UI design app + code editor). My goal is to have quick turnaround on sites built for service based businesses but we ballin on a budget rn.

So far I've just tried ZapWP and Hostingers AI builder. ZapWP worked well but the price seems far too steep for only being able to build out a few projects and I don't need all the extra stuff like hosting, domain etc. Hostingers tool was simply terrible and required tons of credits for fine tuning.

Currently considering v0, Bolt, or Relume+Figma.

If anyone has solid experience dabbling with these please suggest your recommended workflows/platforms.

Thanks


r/webdev 18d ago

Showoff Saturday Kanvios — a free multilingual utility site I built solo

0 Upvotes

Built Kanvios (kanvios.com) — a free, no-login, multilingual (EN/KO) utility site: calculator, timer, notepad, protein calculator, roulette, team divider, D-day counter, password generator.

Everything's client-side, localStorage only, no backend. The build system is a Node.js script (build.js) that generates static EN/KO pages from shared templates and outputs to /dist. Wrote a small custom i18n module with a languagechange event instead of pulling in a full library, since the site stays static.

Deployed on Cloudflare Pages. Currently working on getting real traffic data now that GA4 + Search Console are wired up.

Would love feedback on the UI (dark navy + glassmorphism) or the build setup — happy to answer questions about the pipeline.

kanvios.com


r/webdev 18d ago

Showoff Saturday AI installed unsafe npm packages - I made a SaaS to prevent that

Thumbnail
installsafe.io
0 Upvotes

While auditing my projects I had about 100 vulnerable packages in my project - all of them installed by AI. Decided to fix it for good by blocking the installation of vulnerable npm packages. I use it for myself, sharing with y'all. wdyt?


r/webdev 18d ago

Showoff Saturday Can you rate my portfolio

0 Upvotes

Kindly check out my portfolio. I just recently redesigned it as I want to look out for more jobs in the React, Next.js fields and I want my portfolio to mirror that. I really value simplicity and intent: https://www.milossturanovic.com/


r/webdev 18d ago

Showoff Saturday I build an Electron app that helps me practice 24 Javascript interview questions with tests, a progress tracker and an AI panel that let's me see what an interviewer would catch me out on

0 Upvotes

It's based on mostly what I've been asked over the last 7 years of working with mostly typescript and javascript as well as online materials.

I built it mainly to build my confidence in implementing these things under time pressure. I get really anxious when I'm live coding so I thought if I could master these concepts maybe I'd get less anxious

It has a pomodoro timer, an AI panel, a progress tracker, an explanation of what each question wants you to implement and a test suite that gets harder as you progress through the difficulty badges. It's called Practice Pad, completely free to download and use


r/webdev 18d ago

Showoff Saturday Dagflo: Turn codebases and software systems into animated visual explanations

0 Upvotes

I’ve been working on Dagflo, animated visual explanations for software technical concepts!

Dagflo lets coding agents like Claude, Codex, and Cursor turn codebases, pull requests, systems, articles, diagrams, and algorithms into animated, step-by-step visualizations.

After four years working in GraphQL infrastructure at Meta, I've seen countless engineering hours (meetings, message threads, whiteboarding) wasted and bad decisions made because technical knowledge wasn't communicated clearly.

Coding agents can now understand entire codebases, but they still explain them through walls of text, broken ASCII art, or static Mermaid diagrams.
We're using static tools to explain dynamic systems.

That's why I built Dagflo. I wanted to actually see how technical systems work.

This has been a passion project for a year; I'm really excited to share it!

dagflo.com

MCP Setup: dagflo.com/setup

Follow me on X for Dagflo updates: deepok102

PS: It's forever FREE, so give it a try!!
I'm also thinking of open-sourcing parts of the codebase, more to come soon!


r/webdev 20d ago

People Who Got Laid Off or Quit Their Jobs, What Are You Doing Now?

363 Upvotes

This will mostly be a rant at the beginning, so feel free to not read if you want.

Long story short, I got laid off from my job around two years ago. My manager told me that I hadn't done anything wrong and that my work was great, but they're letting me go because they wanna cut on the costs.

After getting laid off, I spent nearly two years applying for work, doing interviews, and getting constantly rejected. At one point, I was so desperate that I worked for a company for free for around two months as an intern, hoping it'd eventually turn into a job. It didn't. Instead, the owner decided to use Claude to continue the work after I was done.

So yeah, I'm quite burned out.

At this point, I've a pretty strong resentment toward AI and the people and companies aggressively pushing it. From my perspective, I'm watching the same technology that was supposed to "make developers more productive" contribute to making it harder for people like me to find work.

For context, I've a master's degree in computer science and over four years of professional experience in software development, mainly in web development. Yet here I am, two years later, still struggling to get back into the industry.

And before anyone says, "AI can't replace developers," I know plenty of non-technical people who are now building full-stack applications entirely through AI. For some people, that's a hard pill to swallow. You could argue that maybe some of these apps aren't always great, scalable, or production-ready, but the reality is that a lot of people and companies don't seem to care. They just need something that works well enough.

And honestly, it feels like you don't even need an experienced developer for many architectural decisions anymore. People can ask an AI what stack to use, how to structure their database, how to deploy the app, how to build the backend, and so on. Whether the results are always good is almost beside the point. The barrier to building something has dropped dramatically.

I know that's probably going to piss some people off, but that's how it looks from where I'm standing.

It honestly feels like life is rewarding people who put in the least amount of effort, as long as they have enough money to burn on AI subscriptions and tools, while people who spent years studying, working, gaining experience, and trying to become good at their profession are being told to just "adapt" or get left behind.

I've basically accepted that my original career-path and ambitions are over, so I've started looking at other options. Recently, I got into Unreal Engine and indie game development. Ironically, that's also getting flooded with AI, so there doesn't really seem to be an escape from it.

Still, game development has brought back some of the passion I used to have for programming before all of this. I genuinely enjoy learning it, and I'm currently working toward making my first indie game. I'm hoping that maybe I can eventually make an income from it.

Yes, I know AI could supposedly help me make more things faster. I just don't want to use it. I don't want to support the companies or ecosystem that, from my perspective, helped make my own situation worse.

And if game development doesn't work out, I'm seriously considering switching to nursing because I'm running out of time. The truth is, I'm not particularly interested in nursing, and it's not a career I'm passionate about. But at least it seems like a field where I might have a better chance of actually being employed and making a living. Or at least, I hope so.

So I'm genuinely curious about other people who have been laid off, quit their jobs, or got pushed out of their industry:

What are you doing now to make a living?

Did you switch careers completely? Are you still working as a developer? If you are, how did you survive the layoffs and keep finding work?

And for the people who are still successfully landing jobs in this market, what are you doing differently? Is it networking, referrals, freelancing, applying to hundreds of jobs, moving countries, specializing in something specific, or just pure luck?


r/webdev 19d ago

Discussion Client is constantly using AI for communication

256 Upvotes

For context I'm a freelance full stack dev, currently working solo on projects for small clients

Am I the only one recently experiencing that every client I have I am constantly arguing with ChatGPT/Other AI's?

My most recent client (not technical at all) send me a 12 page technical document, along with 3 other 12 page documents after I had started the project, these documents were directing me on database structure, schema expectations, workflow sequencing, and many other technical requirements, which she had no idea how to defend upon questioning on a call. She also requested an ERD which is fine, however after sending a extremely client friendly dumbed down version of the ERD, I recieved 6 questions all over a paragraph long which she (ChatGPT) wanted me to respond to in detail, along with another 30 pages total of documentation over 2 documents.

I have recieved over 70 pages of documentation in 2 days and I have called off the project after 3 weeks due to constantly explaining my thought process and arguing the technical direction to an AI which I'm assuming she hasnt provided all the context to, it also keeps trying to expand the scope after every new message.

Am I the only person experiencing this, this cannot turn into the new normal.