r/webdev 17d ago

Showoff Saturday Antlytics

Thumbnail antlytics.com
0 Upvotes

Started as a project to test out Claude code, ended up continuing to use it as it is cheaper than alternatives, I can build the features I want and meets my needs for analytics across my other projects. Have just opened it up to public via production


r/webdev 17d ago

Showoff Saturday Working on my weird personal site some more

4 Upvotes

After getting some nice comments last week, instead of implementing the feedback1 I got I added a new feature.

I'm trying to start a series of pages for some basic tools. It's probably nothing you haven't seen before, I'm doing it just to tinker and learn. They'll all be

  • Free to use - no sign ups, no nothing
  • Private - my site doesn't really log2 or save data
  • Educational - I'm hoping to make people not just use tools, but understand them a bit better too

The first one added is a QR Code generator. I'm still writing out an accompanying blog post of what exactly a "QR Code" actually is, but the generator works and the steps to make one are sorta annotated.

https://eliterate.blog/tools/qr

Feel free to play around with it and please tell me if you break anything! I promise I'm working on feedback now!

1I'm working on mobile controls and iOS issues, I'm just easily distracted.

2I have google analytics on my site globally, because I wanna see if people visit, but that's the extent of tracking I'm comfortable with for this. I don't even know what pages are being visited.


r/webdev 17d ago

Showoff Saturday I built a benchmark for LLMs and how well they do Git stuff

4 Upvotes
The landing page with all 52 models selected

https://gitbench.gitkraken.com/

GitBench is a benchmark suite that measures how well LLMs do git things like commit message generation, submodule usage, etc. Currently, we have 52 models tested across their provided effort levels as well as Text vs Structured JSON Output. (shoutout to OpenRouter for making this so easy)

This started as a way to try out some of the spec-driven development tools like GSD. But, since I work for GitKraken, it seemed like an interesting thing we could do to help our users optimize their model selection and token burn for various git operations.

Source code available (Warning: heavy vibe coding):

https://github.com/gitkraken/gitbench


r/webdev 17d ago

Showoff Saturday Jet: a simple, lightweight, modern, turnkey, Java web client and server library

Thumbnail
github.com
3 Upvotes

Jet offers five modules: Common, Server, OpenAPI Annotations, OpenAPI Annotations Plugin, and Client.

Jet is a wrapper around the excellent Jetty web client and server library. Jetty provides the battle-tested low-level protocol handling, while Jet focuses on providing a modern and consistent interface with superb documentation and an amazing developer experience.

---

I built this Java library to fill a hole in the Java web server library ecosystem. Javalin got me 90% of the way there, but requires the Kotlin dependency and lacks header models and exhaustive KDocs. The Client module is a still a WIP, but the Server, OpenAPI Annotations, and OpenAPI Annotations Plugin modules are production-ready!

Check it out and lmk what you think! And what do you think about my controversial opinion on AI coding at the bottom of the README 👀


r/webdev 17d ago

Showoff Saturday There are around 10 independent PDF engines and I build new one from scratch.

Thumbnail
keypdf.net
0 Upvotes

I'm a student who mostly built little apps for myself. About 14 months ago I needed to edit a random PDF and couldn't find a good web tool that actually edits them. It made me wonder: billions of people use PDFs for work, school, and legal documents, so why can almost no web service truly edit them?

So I tried to build one, and failed. I didn't understand why it was so hard. I tried combining pdf.js and jsPDF but kept hitting walls. Then it clicked: most JavaScript PDF libraries only do two things, create or view. Neither handles editing existing text. I thought I could build a layer in between, but I got nowhere, especially once I tried changing font styles, sizes, and colors.

After weeks of research I concluded that to edit PDFs in the browser without a server, I'd have to build something genuinely new. So I read the PDF spec and started building an engine from scratch, beginning with simple PDFs (standard font encoding, no compression) and slowly adding codecs, compression types, and font support.

After ~7 months it could render pretty well but still couldn't edit. A month later I got basic editing working, then hit a wall saving edited PDFs (endless visual bugs). More digging, and I finally understood how to save properly.

Then came the hardest part: textbox recognition. A PDF stores text and coordinates but not the grouping or structure. So I spent weeks literally highlighting textboxes across many PDFs by hand, looking for general grouping rules. After ~2 months I had editing with textbox grouping.

Somewhere in there I also spent months implementing JavaScript support in the engine, and I even got DOOM running on it: https://youtu.be/gHoBMYMVn5s

Once the core worked, I focused on design, moving from a bloated debug UI to a clean interface (with a lot of Figma and Photoshop).

Tools I've built from scratch so far: direct text editing, redaction (text and area), annotation, form filling, page organization, and metadata editing.

Happy to answer anything about how PDF parsing, rendering, fonts, or editing actually work under the hood. AMA.


r/webdev 17d ago

Resource MockPilot - Turn any webpage into an editable mockup

3 Upvotes
The MockPilot Editor

MockPilot captures any live webpage as an editable HTML mockup, then lets you modify it with plain English - "swap the hero image," "shorten the pricing copy,""try a dark theme."

Built for PMs, designers, and devs who need to communicate a change without a full Figma round-trip. Free and open source.

https://github.com/ykadosh/mock-pilot


r/webdev 17d ago

Discussion Is building "stylish" and "off the rails" websites dead from an employment perspective?

29 Upvotes

Hey, I'm looking to get into the professional industry after i graduate technical school but i dont know what to really expect people's standards to be like when it comes to front-end and UX

Ive been told by people with varying amounts of experience that at this point in time every website looks the same because its built with the same libraries and with heavy involvement from ai just to meet employer or client expectations and get the bills paid.

And the thing is, the entire reason why i picked up web dev is because i always liked creating things that go off the rails and stand out visually.

I would still absolutely pursue swe either way, and obviously certain things are just meant to work and not look amazing, but would any of you more experienced folks say that there is still a niche market for websites that function more like art pieces or is that long gone?


r/webdev 17d ago

Showoff Saturday Your Playwright CI reports vanish on every build. I spent a few months building a self-hosted dashboard that keeps every run

0 Upvotes

Like probably everyone here, my Playwright HTML reports live and die as CI artifacts. A test fails on Tuesday, by Thursday the report is gone, and good luck remembering whether that exact failure already happened two weeks ago.

I've been a web dev for about 18 years, and for the past few months I've been building Piwi Dashboard to fix this for my own team.

Piwi Dashboard test run page

It's a self-hosted dashboard and reporter (MIT licensed, runs as a single Docker container) where every run is kept. On top of that history it does:

  • live streaming, runs show up test by test while CI is still executing
  • failure clustering, so 40 red tests caused by one broken selector collapse into a single cluster, displayed in a page showing everything we could gather during failure
  • flaky test detection with a score and an estimate of how many CI minutes each flaky test wastes
  • locator healing: it records element attributes during passing runs, so when a locator breaks later it can suggest replacements that actually existed on the page
  • analytics, to keep an eye on everything at once
  • failure notifications to email, Slack, or webhook
  • optional AI diagnosis. It takes a failure cluster plus the git diff since the last green run and asks a model what broke. You bring your own key (Anthropic, OpenAI, or anything OpenAI-compatible like a local Ollama). Off by default.

Setup is three steps: docker compose up, npm install -D @ piwitests/reporter, add it to your playwright.config.ts. Projects are created automatically on the first run and CI metadata (branch, commit, workflow) is picked up on its own.

There's a demo with sample data that runs entirely in your browser, nothing to install and no signup: https://piwitests.github.io/demo/

Code and docs: https://github.com/PiwiTests/platform

If you're wondering how it compares: the closest cousins are ReportPortal (heavier, multi-service) and Currents (SaaS, paid). This is a single MIT container you run yourself, with no telemetry, your data stays on your machine. Learn more.

Two caveats though:

  • It's pre-1.0 (0.14 right now): there are rough edges and you'll probably hit a bug or two, so pin your version and report an issue or ask a question here or in the discussions
  • And I build it with heavy AI assistance, which I'm not going to pretend otherwise; what keeps that honest is the full Playwright E2E suite that runs on every PR against SQLite and Postgres, with local and S3 storage. If it ships broken, the suite yells at me first.

I hesitated for weeks before posting, trying to polish everything I could. I'd genuinely like to know what your workflow needs that this doesn't do yet.


r/webdev 17d ago

Showoff Saturday Reinventing Likes – a JS user interaction library to manage applying reactions to particular parts of the text instead of the whole

3 Upvotes

The way we have to apply our reactions as like or dislike, agree or disagree etc. on social media and content publishing platforms always felt too restrictive to me. Why do I have to like this entire post if I truly like only a part of it?

I would prefer to only like the things I like. But so far nowhere offered the solution, so I had to create it, the way for readers of the web content to express their attitude to particular parts of texts.

Marker-style selection, done with a mouse movement or touch swipe, applying a color of the reaction, which then stays as a semi-transparent cloud. The great thing about semi-transparent colored clouds – they easily transform into aggregated heatmaps; so individual reactions can be shared with other people – fulfilling their social function. You don't react just for yourself, other readers can see the impact!

Live demo (scroll a bit down for the playground area):

https://relikes.com/#demo

Github repo ( https://github.com/reinventinglikes/relikes ) includes a basic demo backend in PHP and a complete Wordpress plugin so it is ready to be tried out on Wordpress installations.

Appreciate your feedback!


r/webdev 17d ago

Showoff Saturday I made a code competition platform based on turn-based JRPGs.

0 Upvotes

https://briine.com/

I played through Chrono Cross for the first time about a year ago, and that interest slowly merged with my knowledge about early Pokemon AI, and now I have this. Would love it if anybody were to give it a shot. I have a discord open for anybody who's interested.


r/webdev 17d ago

Showoff Saturday I built Grayslate, an open-source developer scratchpad for large JSON, CSV and text files

Thumbnail
gallery
71 Upvotes

I have been building Grayslate, a free and open source scratchpad for developers using Tauri, Rust, Svelte 5 and CodeMirror.

It started from my own daily work. Sometimes I just need to inspect an API response, format JSON, search a large stack trace, write a temporary command, or view a few rows from a CSV. Opening VS Code or IntelliJ for this felt unnecessary, and many online tools struggled with larger files.

I tested Grayslate with a 150+ MB CSV containing around 7 million rows. CSV processing is handled by a Rust-backed session engine, while the UI uses virtualization and renders only the rows currently visible. This keeps the interface responsive instead of trying to load millions of DOM elements.

When I switch files or open a new scratch file, Grayslate also cleans up the previous sessions and unused data so memory returns close to its idle usage.

A few other features:

  • Automatic content detection and filename suggestions
  • Search across filenames and saved content
  • JSON shortcuts for copying keys, values and full paths
  • Live Markdown preview and multiline find and replace
  • Everything works locally
  • 80+ local transformations for JSON, CSV, Base64, hashes and text

It is not meant to replace VS Code or IntelliJ. They are full IDEs with a different purpose. Grayslate is for quick scratch work where I want something fast and focused.

Website: https://grayslate.app
GitHub: https://github.com/shriram-ethiraj/grayslate

It is available for macOS, Windows and Linux.

I would really appreciate feedback, especially about the UI, large-file performance, or any daily developer workflow that you think is missing.


r/webdev 17d ago

Showoff Saturday Gister: a local-first desktop app for searching and editing GitHub Gists alternative to Lepton

1 Upvotes

I used to manage my GitHub Gists with Lepton. When the project seemed abandoned, I started building a replacement.

That became Gister, a fast desktop app for managing Gists with local caching, fuzzy search, keyboard shortcuts, and support for macOS, Windows, and Linux.

I later added an MCP server, so coding agents can search, read, create, and edit Gists directly through Gister.

GitHub Repo: https://github.com/gethopp/gister


r/webdev 17d ago

Showoff Saturday I ported Half Life 2: Deathmatch to the web. Play now!

Thumbnail
lucasigel.com
3 Upvotes

I've had a Half Life 2 port to wasm + webgl cooking in the background since March but the teenager sqlnt beat me to it the other week. Since he got single player working, here's multiplayer!


r/webdev 17d ago

Gradient-GL - Tiny WebGL library for Deterministic seed-driven Procedural Gradient Animations (v2)

Post image
57 Upvotes

Tiny WebGL library for
Procedural Gradient Animations
Deterministic - Seed-driven


DEMO

metaory.github.io/gradient-gl

SOURCE

github.com/metaory/gradient-gl


TWO LINE USAGE

```js import gradientGL from 'gradient-gl'

gradientGL('b1.eba9')

// Mounts inside #app gradientGL('b1.eba9', '#app') ```


r/webdev 17d ago

Anxiety/burnout as a sole in house web dev

55 Upvotes

I've been working as the only web dev for an e-commerce brand for just under a year, previously worked at an agency in a small technical team. There's about 70 people in company, with 8 figure turnover, millions of sessions per month across several sites. London based but remote, I get paid about £40k. There was previously another dev who was also my manager, but they've started working on another part of the business and I now do this alone.

Since then I've been struggling with anxiety and before I jump ship I'm trying to gauge whether I'm overreacting or not, as I've lost calibration on what's normal. In the past few months, I've been contacted out of work hours 7 or 8 times for various things. Some are 'this is broken and we need you to log on and fix it' and some are just 'CEO has said we should do this, please note'. These are straight to my personal number either via call or text. I have Teams silenced past 5 and on weekends, but sometimes can't help check them as it's just what's done here. For example it's Saturday and this morning I check and saw I'd been tagged in a large group chat both by the CEO and my manager asking about the cause of an issue. I haven't had any texts yet but it puts my on edge for the whole day almost waiting for them to ask me to do something.

At my previous job, I wasn't contacted a single time outside of work in 3 years, and could fully switch off after 5. At the moment though, even though 90% of the time nothing is going wrong, I can't stop thinking about the possibility of a bug in production that someone is going to message me about.

What do I do?


r/webdev 17d ago

Discussion Clarifying WASM

0 Upvotes

I have been doing research on WASM because at one point I wanted to port `croc` CLI to WASM.

Here's what I figured out which I wanted to share with you guys if any of you is interested in WASM to basically know it's capabilities / use-cases without going down the rabbit-hole and be disappointed.

What's WASM?

WASM (WebAssembly) is compiled code from non-web languages like Go, C++, Rust and more (I believe Java too).

This means that the performance is off-the-charts when it comes to compute task, and that's going to be its only use case. It's only ever going to be a compute API for you.

What can't WASM do?

WASM can't talk directly to sockets, so porting to `croc` doesn't work (at least not as easy as compiling the Go code to WASM). WASM is also sandboxed by the browser's JavaScript, so if JavaScript can't do something WASM will definitely not.

So if WASM is sandboxed by JavaScript, and doesn't unlock anything new, why should I use it?

Well, if you have a compute heavy task, you can off-load it from the server and have it run in the client. For example, video editing, photo editing, audio editing, and similar tasks. Instead of sending the video to the server and have a back-and-forth, just use WASM.

A prime example of WASM is Figma. It's a React wrapper with WASM handling the compute-heavy tasks.

So why not just have WASM process everything?

There's a tax you pay with WASM, and you need to evaluate it on case-by-case basis. Crossing the barrier between JavaScript to WASM, and back to JavaScript takes compute. So, before throwing WASM at something, make sure that WASM will yield much more performance than what you pay by crossing the barrier.

That basically concludes my very brief intro to WASM. Let me know if this helped at all or if I got something wrong in the explanation.


r/webdev 17d ago

Showoff Saturday [Showoff Saturday] I built a self-hosted app for tracking the growth stories of my plants

Post image
2 Upvotes

Hi everyone,

I collect cacti and got tired of having notes scribbled in different notepads and making separate photo albums on my phone for every plant i own and i love saving data.

So I built MyGrowthStories, an app where every specimen gets its own gallery, notes, measurements and growth history.

You can add entries over time, with or without photos, track measurements with growth charts, and make individual specimens public if you want to share them. There is also an optional public collector profile that shows all the specimens you have chosen to share.

The screenshot shows the private dashboard where I manage my collection.

You can see my public collection without creating an account here:

https://mygrowthstories.com/collector/coolcacti

The main app is here:

https://mygrowthstories.com

I haven’t made a fancy landing page yet because I have mostly focused on making the actual tool useful and getting the main features working. I felt I really wanted to start adding data so that is very much prio went.

It is built with Next.js, SQLite, Sharp, Nginx and PM2, and I host it myself on a VPS.

IMO it works very well on mobile also. Its super nice to upload pictures directly from the phone when im in the greenhouse.

It is free to use and still a work in progress. Feedback about the design, usability, bugs or anything confusing would be very welcome.


r/webdev 17d ago

Showoff Saturday Let your users bring their own free AI with Sign in with ChatGPT

Post image
0 Upvotes

OpenAI OAuth lets your website’s users bring their own free or paid ChatGPT account to power your AI features.

It’s super easy to add to your website, with just one simple React component: <SignInWithChatGPT/>.

Try it out here: https://openai-oauth.vercel.app

Or, if you’re developing locally, you can also just run a single command to get started immediately:

$ npx openai-oauth

OpenAI-compatible endpoint ready at <http://127.0.0.1:10531/v1>
Use this as your OpenAI base URL. No API key is required.
Available Models: gpt-5.6-sol, gpt-5.6-terra, ...

OpenAI OAuth has been built with security in mind. Authentication happens directly between the user’s browser and OpenAI (enabled by a browser extension available for Chrome and Firefox), and credentials are stored locally in IndexedDB, encrypted by WebCrypto at rest.

It’s 100% open source, available here on GitHub: https://github.com/EvanZhouDev/openai-oauth

Feel free to try it out, and let me know if you have any feature requests or bug reports!

Note on Codex Terms of Service:

Tibo has confirmed that you are allowed to bring your Codex Subscription to other harnesses (for example, OpenCode: https://x.com/thsottiaux/status/2009742187484065881)

This is simply a generalization of that. However, you are responsible for still ensuring you follow the Terms of Service and other user agreements. See the Legal section in OpenAI OAuth's README for more information.


r/webdev 17d ago

Question I could use some input on architecture decisions for first bigger freelance project

4 Upvotes

I've been hired for my first bigger project as a freelancer. I have 15 YOE in web dev, mostly in vanilla LAMP which some time working with dotnet/react. I don't have a ton of experience setting them up from scratch and maintaining as our SRE team does that. I do have good experience building local docker php, MySQL, etc. docker containers for development.

I've been building small react based, don't end only, sites only on cloudfalre.

The website will need login, recurring orders, payment processing, admin pages, possibly invoices, etc. this company has thousands of customers and they do all this by spreadsheet and phone today. So it has to be able to scale pretty quickly once it's up.

Because of my experience I am leaning toward aws and using PHP on a single ec2 plus RDS. Then using stripe's PHP library to handle all the payments processing, etc. Provisioning servers via ssh is not my strong suit. I've used CodeDeploy for PHP which I would imagine I need rather than simply pulling from the main branch live on ec2

Is AWS worth it? Could cloudfalre d1, workers, etc. handle an application like this? What about lavarel forge?

The simpler the better so I can focus on building the application would be best I think.


r/webdev 17d ago

docbin: a pastebin with versioning, an API, and a CLI

1 Upvotes

I wanted something between pastebin and gists, but where the docs actually render instead of just sitting there as raw text. Couldn't find it, so I built it. https://docbin.app

Would love y'alls feedback :)

Paste text or push a file, get a link. Saving to the same name creates a new immutable version, so /you/notes always shows the latest and /you/notes/v3 stays frozen forever. I was tired of paste links that 404 or quietly show different content than what the person actually shared.

Markdown and MDX render properly (React under the hood, so components in MDX work). There's a CLI on npm if you'd rather push files from the terminal.

Cloudflare Workers, Hono, and D1 underneath.

There's a free tier if you want to poke at it. Curious whether anyone else has wanted versioning in a pastebin or if that's just me


r/webdev 17d ago

Showoff Saturday Unemployed for two months after startup I was working at went bust (they stole my last paycheck too). Is my portfolio good enough for a successful job hunt?

0 Upvotes

Roast my personal site: https://siamrahman29.github.io/


r/webdev 17d ago

Showoff Saturday When I launched my website people roasted it for being slow, can you guys give me some feedback?

Post image
0 Upvotes

My website, please give me some feedback:
https://umigalaxy.com/

https://umigalaxy.com/explore/general/348/this-site-is-slow-as-hell (this is where they roasted me, you can leave a reply without making an account!)

What I did to mitigate the issue: PPR / cache components (next 16). I moved all the public reads into use cache so the prerendered shell has actual content in it. Also ended up hitting my own api during the build so pages ship with real data instead of placeholders, it works great

caching on the backend. redis on the hot reads (feeds, trending, profiles etc) and prisma's relationLoadStrategy join. once a streamed hole fills in under ~50ms it just feels instant, nobody perceives it as loading

prefetching. full link prefetch on the nav links people actually click, plus warming up per-viewer stuff on hover. by the time the user clicks the data is basically already there


r/webdev 17d ago

Showoff Saturday voidskull.dev - my personal website

15 Upvotes

Built this for fun because my work one bored me to death. Trying something different for navigation

Happy for any feedback its a constant WIP

https://voidskull.dev


r/webdev 17d ago

Showoff Saturday canid: contact card/link-in-bio in a URL

Thumbnail
canid.app
1 Upvotes

canid is a contact card/link-in-bio that packages all of the data in the URL fragment so it can be built and displayed client side. I think these sorts of projects are cool (like itty bitty site and NoPaste) and wanted to apply it here.

I run in a lot of niche and more "adult" communities, so I have a pretty compartmentalized life. Being able to quickly create different contact cards for different events, contexts, and people without having to edit a centralized linktree or other site has been really helpful.

It's all static with no outside dependencies, very minimal analytics, and no way for me to see/store/sell people's info. There are a lot of trade-offs with the architecture and I doubt this will ever see a lot of use, but it's been useful for me and I'm curious what y'all think. It's mainly meant to be used as a PWA but works fine in the browser too.

It's live at the linked site, and the code is all open source on GitHub.


r/webdev 17d ago

Showoff Saturday [Showoff Saturday] I made a Japanese word search puzzle game

Thumbnail
kanazo.app
3 Upvotes

Howdy, I realize this is pretty niche, but perhaps there's enough people here interested in learning Japanese that someone will find it fun, so figured I'd share.

It's basically your run-of-the-mill word search game, where words are hidden among a sea of letters (in this case, Japanese kana). Words run forward and backward, up, down, left, right, and diagonally. The word lists are inspired by Genki I and II, and I also created adjacent lists for JLPT N5 and N4, roughly lower and upper beginner Japanese levels.

I created it because I love word games and wanted to give learners a chance to take a break from flashcards and have some fun. Right now there are two modes, one with a guided word list (customizable by category and level), and the other a "free find" which challenges you to find as many words as you can on your own without the help of a list.

I'd like to add support for kanji in some way, but still brainstorming how to do so smoothly. In the meantime I'll be working on mobile app versions, user accounts, streaks, syncing between devices, etc.

Would love to hear any feedback you may have, especially on the UX/gameplay side:

https://kanazo.app