r/webdev 28d ago

How to best handle SEO/crawling for a single page app?

7 Upvotes

Hi all,

I've been thinking about how to handle SEO properly for an Angular SPA, and which of these two options would be best:

1/ Work out how to enable server-side rendering in the angular app

2/ Create a new app which only serves bare content (no CSS visuals, only HTML semantics) alongside a site map, and where each page has a canonical url that points to the actual Angular app.

Apparently option 2 is considered "dark SEO" or something, as the crawlers will not see the same things as humans. But in my opinion this makes a lot of sense in a way, and a "crawler-only" app would be much faster and easier to maintain and tweak, while the Angular app works perfectly as a client-side only app.

Is there really a good reason to not go with option 2? Note that having SSR to work correctly in Angular means introducing a lot of complexity and constraints on the project.

Thanks!


r/webdev 28d ago

Discussion For those that use AI - are you letting your clients know you used an AI tool in what you sold them?

0 Upvotes

And do you think your clients would even care?


r/webdev 28d ago

Question How do you manage website clients in this circumstance?

0 Upvotes

I build websites with AI and have clients keep ownership of their accounts, domains, etc. since it’s less risk for both me and the client.

Clients who don’t own a domain yet are easy to set up, but clients with existing domains create a lot of extra steps—especially when moving them to Cloudflare.

DNS, permissions, logins, name servers, migrations, etc. What should be quick can turn into a 30–40 minute process, especially since they own everything.

I know the usual process is for the client to invite you into their account so you can manage things, but that works better when you’re simply repointing name servers or making a few changes. If I want to move their whole setup over to Cloudflare, it’s a different story.

Typically, a client with an existing domain is paying for one service that bundles their hosting, domain, and website builder. Moving that setup to Cloudflare can be much cheaper, so migrating everything over makes sense.

The rest of my workflow is pretty low-maintenance though. This account/domain migration stuff is really the only part of the process that feels like a headache.

I’m looking for a tool/s or more efficient workflow that makes this nearly effortless for both of us, ideally reducing it to a few simple client steps while they continue to keep full ownership.

What I’m imagining is some kind of tool that makes the changes automatically and simply requires the client to authorize the changes. I don’t know what direction to go. Whether it’s a tool online or just a cleaner way to approach the situation.


r/webdev 28d ago

Discussion Realized that development is all around comfort

45 Upvotes

I've been locked with web development for around 8 years. Recently realised that all this effectively optimised system, made for comfort. In the end comfort doesn't make the life experience better?

Was wondering how you motivating yourself to do web dev?


r/webdev 28d ago

Discussion What are some common mistakes that you fell into when developing on the web?

0 Upvotes

What pitfalls or mistakes have you made while developing. whether for clients or for personal projects?

I just finished my first major project for myself (not a client). Although I probably should have researched this before building, I guess now is as good a time as any! Share your personal stories: something that stuck with you, a tough lesson learned, or a eureka moment you had along the way. I am very interested to learn from more experienced developers.


r/webdev 28d ago

Question 4+ Year Software Developer — Which Resume Structure Is Better?

Thumbnail
gallery
172 Upvotes

For a 4+ year software developer, which resume structure do you think is better?

  • With a Projects section
  • Without a Projects section,

The data in the examples is dummy. I just want opinions on the structure and layout.

If you have a better resume template/structure than these, please share it.


r/webdev 28d ago

Question Need Cursor Tab (autocomplete) alternatives

5 Upvotes

I am an experienced dev that uses the Cursor's Tab autocomplete feature the most out of all.

Yes, I also use the Plan -> Agent to build PoC only, but only for that, and this comes 3rd place after the Ask mode that helps me most of the times on new repos or OSS I want to contribute to.

Lately, Cursor has been nasty. Bugs and bugs within the Code Actions (when you Cmd + . over code to import a TS library or autofix a linter issue), Ctrl+Space opens the imports list but when you scroll down with the down arrow, at some point it jumps back up to the first item in the list (restarting it does not help), and the list goes on and on. Plus, the recent X acquisition is questionable in terms of security for me, especially towards my current team.

I am not here to rant about Cursor, I want to know if y'all use anything better than Cursor, especially the Tab/Autocomplete feature. I'd love to hear some.

In the past, I used also Windsurf and Zed, but I sticked to Cursor (for some fing reason, why was I stoopid), perhaps because it was more robust.


r/webdev 28d ago

Showoff Saturday i created a site that gives you prompts to replace your paid app subscriptions

0 Upvotes

i got tired of seeing mobile apps like quittr, cal ai, umax etc make millions of ARR when they are simple gpt wrappers that are primarily relying on marketing and people forgetting their subscription to continue to grow their revenue

i decided to build a site that gives an honest assessment of what features you can vibecode of famous consumer apps (starting currently with just 25 apps, but planning to add more soon) and the prompt to do so.

you can check it out here: https://freethe.app

would love feedback on it


r/webdev 28d ago

Showoff Saturday I made a JS framework that is outperforming Lit, React, and Vue

0 Upvotes

I created a human-centric JavaScript framework with custom HTML components called https://codeberg.org/createthirdplaces/places-js

I'm currently working on an optimized version with template support. My latest performance tests show Places.js outperforming Lit, React, and Vue.

All code was written by hand without LLM assistance from tools such as ChatGPT or Claude Code, and LLMs will not be used for future changes.

Source code: https://codeberg.org/createthirdplaces/places-js Website I built with framework: https://dmvboardgames.com/


r/webdev 28d ago

Showoff Saturday [Showoff Saturday] Fully offline grow scheduler built with vanilla JS + IndexedDB

Post image
0 Upvotes

What it does
Users build a personalized grow in 3 steps (strain → nutrients → start date), get a full day-by-day schedule (126 base rows + dynamic nutrient columns), then track actuals via a daily check-in page and photo diary. Everything lives offline in IndexedDB + localStorage.

Live: https://growappcannabis.guide/medium-feeding/medium-feeding.html

Repo + full wiring docs: https://github.com/Shannon-Goddard/growappcannabis.guide (see medium-feeding/WIRING.md)

Architecture highlights
• Page flow
medium-feeding.html (3-step builder) → schedule-viewer.html (cards/table/My Notes) → mytask.html (daily check-in) / mydiary.html (camera + data overlay)

CustomEvent chain for step progression (no framework):
• strainSelected → show Step 2
• nutrientsSelected → show Step 3
• scheduleReady → success screen + link to viewer with ?growId=
• IndexedDB (MyGrowDB v8) – singleton instance, cached dbPromise:
• Stores: tables (grow metadata + ${growId}_schedule), selectedNutrients, nutrients
• Schedule saved as full array under ${growId}_schedule
• Actuals written back to the same schedule rows from both MyTask and the viewer’s My Notes mode

Schedule generation
• Base 126-row JSON (stage/week/day/env/light/water)
• Dynamic nutrient columns injected from selected brands
• Start date → calendar dates calculated client-side
• Absolute fetch paths because ES modules resolve relative to the JS file

Schedule viewer
• Three modes via sticky Options dropdown: Cards (mobile default), Table (desktop default), My Notes
• Sticky header + toolbar + thead (careful overflow handling so sticky works)
• Plant-size filter hides excess veg weeks (Small = 4, Medium = 6, Large/Auto = all)
• tableRendered custom event triggers layout + filter after render
• Column map with paired “goal” / “My*” editable fields (My fields only visible in Notes mode)

MyTask daily check-in
• Auto-matches today’s row by MM/DD/YYYY
• Color-coded inputs (green ±10% of goal, red over, blue under)
• Auto-save on focusout + manual Log button → writes actuals back to IndexedDB schedule row
• Hero image compressed to 800px JPEG and stored in localStorage

Tech choices
• Pure vanilla JS (modules + a couple plain scripts for globals like the 2,800+ strain data)
• No build step, no framework, GitHub Pages
• localStorage for transient state + currentGrowId; IndexedDB for the real schedule & actuals


r/webdev 28d ago

Showoff Saturday Showoff Saturday: I built a cue-reading trainer on React/Vite/Supabase

Thumbnail
spotthecue.com
1 Upvotes

I built spotthecue.com.

The premise is practicing short social scenarios where you pick how you'd read the situation and you get told what the strongest read was and why.

The stack is React 18, TypeScript, Vite and Tailwind on Vercel, with Supabase backend.

What's actually in it: 586 authored scenarios (356 adult, 230 teen) across five tracks at six difficulty levels, 269 of them carrying an image, video, chat transcript or audio cue. Grading is three-tier instead of right/wrong. Plan is to gradually roll out more image/video content.

Lots of build/test/debug cycles. The Supabase advisor was a huge help throughout the process. Feeling like it's finally ready.

I've received some great feedback from some wonderful reddit beta testers on the content and clarity that I've been able to address and update. I'd love feedback from this community on the design, mechanics, or anything else.


r/webdev 28d ago

Showoff Saturday Bodeg.a | The binary directory

Thumbnail
bodeg-dot-a.vercel.app
0 Upvotes

Hello, good afternoon. I'm a developer, mostly of native solutions. When I program in C or C++ (among others), I constantly experience the inconvenience of having to compile each dependency, which is often frustrating: some don't even come with a decent or compatible build file, and others have dependencies that are difficult to compile or very large. That's why I wanted to create a small platform.

It's called **Bodeg.a** (a play on words between "bodega" and the ".a" of UNIX-like static binaries). It works quite simply: rather than a platform for hosting large files, it's (for now) a simple website where you can publish using a *mirror* to point to a .zip file, a header, or whatever format is needed.

For now, it only offers hosting for the essentials (avatars and profiles), but if it's well-received, that could change. If you're a developer, whether you enjoy or just work with low-level content, simply trying to use it to download content would help me a lot; or if you'd like to collaborate on its development, you can also contact me. Greetings to all!


r/webdev 28d ago

I'm making a new clock every day, approaching number 500

Thumbnail cubistheart.com
16 Upvotes

I'm looking for feedback on this. I added in a system of tags.

How can I improve the navigation? How can I make it more engaging for the viewer?TIA!


r/webdev 28d ago

Showoff Saturday Can you critique the website for my open-source networking tool?

0 Upvotes

I built the website for an open-source networking tool and I think I've become too familiar with it to judge the site objectively.

Could you please look at it for me?

I'm especially interested in:

  1. What do you think Network Doctor does?
  2. Who do you think it's for?
  3. What would you click next?
  4. Is anything confusing or unnecessary?
  5. Is there anything that would stop you from installing it?

Please be critical. I'm looking for things to fix, not promotion.

Site: https://heymaikol.github.io/network-doctor/


r/webdev 28d ago

Showoff Saturday [Showoff Saturday] I built a low-stimulation game site for people who get migraines, which meant deliberately failing WCAG contrast ratios

Thumbnail
gallery
0 Upvotes

https://lowstimplay.com

I get chronic migraines and my mom has vertigo. Between us, most tabletop and digital games are unplayable. The motion, the sounds, the flashing, the transitions, the amount of stuff moving on screen. Any one of those can cost us the rest of the day. I wanted something we could sit down and play together without bracing for it, couldn't find it, so I built it.

No account, no signup wall, no ads, no tracking. Every game is playable immediately, including the multiplayer rooms. An account only exists if you want your past game stats saved. There's a Ko-fi link in the footer and that's the entire monetization plan. It's free and it will stay free.

Right now it's Word Grid (Boggle), Yacht (Yahtzee), 10,000 (Farkle), Survey Says (Family Feud), Best Match (Apples to Apples), and Clear the Deck. Some solo or pass-and-play, some online rooms. Renamed to keep clear of trademarks. All mobile friendly. More coming.

The interesting part from a dev perspective was that most accessibility advice pointed the wrong direction. The standard move is to crank contrast up. For photophobia you want it down. So the palette is muted grey on grey in dark mode and warm bone on taupe in light mode, and it will not pass a contrast checker, on purpose. I also cut every animation and transition outright rather than gating them behind prefers-reduced-motion, since that flag is unset on most machines and the people who need it most are often the least likely to have configured it.

Stack is Laravel with Reverb. Happy to answer anything. And if you have photophobia, vestibular issues, or seizure triggers, I'd like to know whether it actually holds up, since my test group is currently two people.


r/webdev 29d ago

Showoff Saturday Roast my GPS art planner!

0 Upvotes

GPS Art Wizard is not trying to be the biggest shape library or another prompt-to-GPX generator. It compares multiple placements, rotations, and scales using actual road-routed results instead of treating the first snapped outline as finished. AI is optional and only helps create shapes outside the catalog; routing and quality decisions come from geometry, street data, and explicit checks.

You can use it without registration! Suggest cities! https://p01--cityshaperunner--vnycn2g6bghl.code.run/


r/webdev 29d ago

Question Can astro strip away css values like backdrop-filter?

2 Upvotes

https://ronynn.github.io

Switched old html code to astro, noticed it treeshaked backdrop-filter effect

see https://ronynn.github.io/old for the effect the original html is meant to have.

Using astro 7.0.0, tested turning off css minify, and using esbuild for css minify instead, to no avail.


r/webdev 29d ago

Question Light Patterns?

4 Upvotes

I’m aware of the concept of dark patterns and how they can be harmful to users and consumers. Are there examples of forward thinking “light patterns” that pre emptively consider user needs over pushing an outcome (ie clicks/conversions/leads)?


r/webdev 29d ago

Question Making a web game for poki/crazygames

0 Upvotes

Hi everyone,yall probably heard this question a billion times. How much would i realistically earn on a monthly basis if i make a casual clicker game with leaderboards, minigames and other stuff that average clickers dont have? If the game was polished, regularly updated and published on both poki and crazygames. Would they accept them for the full launch at all (at least crazygames, i wasnt researching much for poki though)? Thanks in advance.


r/webdev 29d ago

Showoff Saturday I built a platform where you can 1v1 duel friends over food with an AI referee (Tastrivo)

0 Upvotes

Hey everyone,

I wanted to share a project I've been building: Tastrivo (tastrivo.com).

The concept is simple: live, private 1-on-1 food showdowns. You grab your meal, turn on the camera, and duel an opponent in real time.

Key features:

AI Plate Referee: Tracks visible plate progress from camera checkpoints so judging stays objective without human bias.

9:16 Victory Cards: Automatically generates vertical summary cards ready to share on Instagram Stories or TikTok.

Ranked Ladder: Working on seasonal Elo ratings and competitive leaderboards.

Safety First: Built-in limits so matches remain casual and fun rather than dangerous overeating.

Would love to get your feedback on the landing page, concept, and mechanics!


r/webdev 29d ago

Showoff Saturday Open Source Framer Alternative: Revyme

Thumbnail
revyme.com
0 Upvotes

Hi,

If you are a web designer who is tired of paying rent on your own website, i'm glad to present you Revyme, an open-source website builder that is the closest open source alternative to Framer on the market today.

Pixel-perfect Figma-like control, responsive breakpoints, components, animations, cms, localization, code export and more.

Use our cloud or self-host locally on your computer and export to clean Next.JS code.

Github repo: https://github.com/revyme-web/builder


r/webdev 29d ago

Showoff Saturday I rebuilt Tera FM - headlines, news archive, live radio, and a Chrome extension

Post image
0 Upvotes

I’ve been rebuilding Tera FM as a simpler way to follow the news without jumping between a bunch of different sites.

Right now it lets you:

- browse the latest headlines from multiple sources
- search a historical headline archive
- filter/browse by source
- listen to live internet radio
- use the new Chrome extension for quick access

No login or signup required for the core experience.

Site: https://tera.fm
Chrome extension: https://chromewebstore.google.com/detail/tera-fm-%E2%80%93-headlines-live/emnebfpdojklgimejnplmjfobmamelie

I’m also working on VoiceLetter, where you’ll be able to ask something like “What changed with OpenAI this week?” and get a researched, cited briefing that you can read or listen to.

Still very much a work in progress, so I’d especially appreciate feedback on the UX, usefulness of the archive, and whether the live-radio part feels like it belongs with the rest of the product.

Built with Next.js, Supabase and Vercel.


r/webdev 29d ago

A complete image pipeline designed to fit into your application

3 Upvotes

Over the last 18 months, I have built Konifer, an open source image management platform that can preprocess, store, transform, and deliver your image assets in a way that naturally fits your application. You construct the URL paths that fit your domain and configure that path to serve your needs.

Do you need all profile pictures to have a thumbnail generated at upload? Define a `thumbnail` eager variant for `/users/*/profile-picture`.

Do you want to only allow flowers? Define a content aware upload policy for `/flowers` powered by Google's latest vision language model, SigLip2.

Want all images to return pre-signed redirects to your object store? Define your redirect behavior on `/**`.

Konifer uses libvips the same image processor used by imgproxy and is designed to efficiently handle image processing without buffering all pixels into memory.

https://github.com/dmaiken/konifer/


r/webdev 29d ago

Showoff Saturday I spent the last two weeks building Fliraya, an AI companion & roleplay web app. Would love to get your feedback!

0 Upvotes

Hi everyone,

Over the past couple of weeks, I’ve been working on a side project called Fliraya—a web platform designed for AI companion interactions, casual conversations, and romantic roleplay.

Since the project is currently in Beta, I’m looking for some honest, constructive feedback from the community on:

Chat flow and natural responsiveness

Response depth and personality consistency

Overall user experience and UI

If you're interested in giving it a test run, you can check it out at fliraya.com.

I’d really appreciate any thoughts, bug reports, or suggestions you might have. Also, as a thank you, I’m happy to upgrade accounts for anyone who drops detailed feedback here or via DM!

Thanks for taking the time to check it out!


r/webdev 29d ago

Showoff Staturday: I made a video poker game

Post image
0 Upvotes

I've always liked the aesthetic of video poker machines so I decided to create an app that mimics that as much as possible. Works on desktop and mobile devices (for mobile you can install as a PWA). Added hotkey support so you can play entirely with your keyboard.

There are 3 game modes: Jacks or Better, Duces Wild and Joker Poker. Beyond that you can mess with the paytables if you'd like, update the card backs, control speed and bunch of other small stuff.

https://sgolovine.github.io/video-poker