
Gaffer
Secure and Simple Hosting for Test Reports
I have a massive backlog of wild, engineer specific tasks for gaffer.sh and constantly struggle to figure out what to build next. To be honest, I'd much rather dig into some interesting nerd rabbit hole than deal with marketing (like writing this post)...but that's the trap right?
Well, after recent conversations with customers, I found that they will LITERALLY TELL YOU what to build next. I'd heard it from other people, blog posts and AI reddit/indiehackers slop...but I didn't really believe it until recently.
If I hadn't heard "we need webhooks", I would have thought about building custom Discord integrations, figuring out MS Teams install paths and more. This opens the door to a ton of new features, and best of all, it's general enough that our target audience (engineering teams) can build features that we can investigate for standardization.
So again, if you're hesitant to reach out to customers, my advice is to go for it. It'll change what you're building!
I recently landed a few beta user's for Gaffer (gaffer.sh) and they've been super insightful.
In the past, I was tentative to even communicate with beta users because I figured I'd bother them or scare them off. Part of working on Gaffer is that I wanted to avoid past bad habits and get over fears this time around. I sent out a couple quick emails like "Hey, thanks so much, how'd you hear about Gaffer? Are you liking it so far? Anything I could do to improve your experience?" and of course they were happy to respond and give me feedback.
One of the beta customers pointed out that they nearly didn't sign up because of the lack of real explanation of the main landing page. They were even nice enough to send over a list of tips that helped with their own product.
Long story short; get over the fear of reaching out to customers. Two or three simple (and surprisingly pleasant) conversations gave me exact answers and problems to solve.
1 Like
Comment
So I've been building Gaffer (gaffer.sh), it's a test report hosting platform that gives you AI insights on your test runs. Think "Codecov but for test results"? Anyway, I wanted to share our stack because honestly when I started I wasn't sure this would work.
The stack:
NuxtHub (Nuxt 4 on Cloudflare Workers, of course gets bought by Vercel and mostly deprecated after I'm fully engrained)
D1 for the main database (SQLite at the edge)
R2 for storing test report files
Cloudflare Queues for async parsing
Workers AI for the insights stuff
So far the only outside tool I've spun up is MongoDB Atlas for the heavy analytics stuff (I looked at Clickhouse and others, but would eventually have to get a second mortgage to pay for them). Getting this to work properly inside a worker environment would warrant it's own update, but I digress.
What's actually working well:
Deployments are stupid simple. Push to main, it's live in like 40 seconds. No Docker, no Kubernetes, no "let me SSH into the server real quick." This is wildly refreshing after the tech sprawl of the previous iteration of Gaffer (see previous post). D1 is surprisingly capable? I was skeptical about SQLite for a SaaS but for most of my queries it's fine. I only added MongoDB later when I needed to do aggregations across thousands of test cases. R2 is just... cheap. I'm storing HTML reports, XML files, JSON blobs. Basically free compared to S3.
What's been tricky:
Cron jobs on Workers have tight CPU and time limits. I just spent a day optimizing my analytics job because it was timing out. Had to get creative with MongoDB's $facet to reduce collection scans. The D1 + MongoDB combo feels weird sometimes. Like "why do I have two databases." But honestly D1 for transactional stuff and Mongo for analytics makes sense in practice.
Costs so far:
This is the fun part; I'm on the free tier for most Cloudflare stuff still. MongoDB Atlas has a free tier too, but I pre-emptively upgraded to the ~$5/month cluster. Total hosting cost right now is like... $10? Obviously that'll change with scale (I hope?) but the baseline is nice when you're bootstrapping solo.
Anyone else building on Cloudflare Workers? Curious what your experience has been. Also if you're drowning in test output and want to try Gaffer, it's at gaffer.sh, I would love feedback and beta-testing from other devs.
1 Like
Comment
Well, I was reminded why I wanted to make Gaffer in the first place a couple days ago. I had to spend a few hours cleaning up an S3 bucket of playwright test artifacts that a cron somehow missed. I took a look at the code base and remembered how much we over-engineered it; full k8s cluster, NestJS backend, Go upload service, NATS, Postgres and even a Traefik reverse proxy. Classic "build an enterprise architecture for a side project" mistake. The infrastructure cost was bearable, but the cognitive load was insane, and crushed any momentum I had.
Well, I decided to start working on a V2 and to rededicate myself to building in public. I've paired down the architecture to Nuxt and Nuxthub (soon to be Vercel, RIP?) deployed on Cloudflare. Let me tell you, this has been awesome.
Sometimes shuttering a project and rebuilding it with fresh eyes can actually pay off...but we'll see.
1 Like
Comment
About
Gaffer grew out of personal frustration. Often forgotten in the CI/CD process, Gaffer helps developers securely host and gain insights from test reports.

Comment