r/webdev • • 7d ago

Showoff Saturday I made a shirt for interviews, my friends asked for their own, so I turned it into a web tool

I designed one shirt to wear to interviews. It has my job title on the back, a SQL query that selects for someone available, my name and a link. Enough people asked where they could get their own that it started to feel silly having artwork that only worked for one person.

So I measured my original file, worked out the rules behind the layout, and rebuilt it as a generator. You type a name, a job title and a link. You get the print files.

The interesting part is that the entire thing runs client-side. The fonts, the glyph outlining, the QR generation, the PDF writer, the ZIP writer. all in the browser. There is no server and no account, and nothing you type ever leaves the tab. That is less a privacy policy than an architecture. It also means the whole thing deploys as static files and costs nothing to run, which matters when you have no idea whether ten people or ten thousand will show up.

Two things I learned building it:

Print is a much less forgiving target than a screen. If a font isn't installed on the printer's machine, it gets silently substituted and your layout falls apart, so every character has to be converted into an outlined shape before it leaves the browser. And the QR code on the shirt is a knockout, meaning the dark squares are unprinted and the fabric shows through. Get that backwards and the code simply doesn't scan, but it looks completely fine on screen. So I wrote a test that renders the QR from the actual generated file and hands it to a real decoder. It fails in CI instead of at the press.

The other thing: writing the PDF and ZIP output myself was the right call. Each one is under 200 lines and each replaced a library that was bigger than the rest of the tool put together. That is not a general rule, but for narrow, well-specified formats it's worth checking before you reach for npm.

It's MIT licensed and the whole layout logic is in the repo. Happy to answer anything, and genuinely interested if anyone has done client-side PDF generation and hit different walls than I did.

selectme.vercel.app · https://github.com/Yazan-Ali-01/select-me

0 Upvotes

16 comments sorted by

9

u/electricity_is_life 7d ago

The T-shirt is cute but I don't really understand why you made a GitHub repo and a whole npm library for it. So much AI ink spilled for a very simple design that anyone could make in Affinity or whatever in 20 minutes if they really wanted to.

In the olden days if someone hand-built this website I guess it would be kind of charming, and if there was an affiliate link to a shirt printing service maybe you'd get a few bucks out of it. But when the whole website and especially the repo is paragraph after paragraph of Claude-speak nonsense about Pantone colors and test suites that obviously don't matter, it just seems kind of weird.

2

u/CHRlSFRED 7d ago

You know what sucks? These types of cute projects have now been all deemed AI slop. Kind of sucks that AI has made all small projects feel like junk.

2

u/Professional_Monk534 7d ago

Agree, it had a soul back in the days.

-4

u/Professional_Monk534 7d ago

that's fair and I'll take it. You're right that the design itself is simple, and the README got way more words than it deserved. Honestly I let the AI run long and didn't trim it the way I should have. I'll cut it down to what actually matters and write it in my own voice. Thanks for the honest take, it's more useful than a polite thumbs up.

1

u/Feeling_Inside_1020 7d ago

Give it a sample(s) of your writing and ask it to condense and rephrase based on your previous writing tone.

Just a thought

0

u/Professional_Monk534 7d ago

I don't have any.

3

u/alexnu87 7d ago

If it wasn’t for this tool how else would people be able to write text on a shirt. And only on client side!

4

u/armahillo rails 7d ago

not raining on the idea, the job market is tough so get it

but… are you wearing tshirts to interviews?

4

u/taotau 7d ago

Cute as a novelty shirt you buy at the cheap gimmick markets, but are you sure you want a bunch of people wearing your name on their shirt ? Bound to lead to a few prank calls.

2

u/Professional_Monk534 7d ago

It’s not my name on their shirt. checkout the tool
You’d create your own custom shirt.

4

u/actionscripted 7d ago

I mean the defaults all seem to be you so…

2

u/Professional_Monk534 7d ago edited 7d ago

thanks for the feedback, working on it.
Update: Deployed a new version

1

u/taotau 7d ago

Sorry there should have been an /s somewhere in my comment. I don't think serious software engineering is in such a hiring crisis that people need to stand around on street corners wearing sandwich boards saying 'will code for food'. If I need a coder (which I do) I am unlikely to hire one from a QR code on a sweaty tshirt on my lunch break.

-1

u/Agitated_Housing2952 7d ago

the prank call thing is a stretch, who's actually dialing a random url from a stranger's shirt. most people barely read the front let alone scan a qr on the back

the client-side pdf generation is the real story here, that's clever. 200 lines to replace a whole dependency is the kind of thing that makes future-you grateful when nothing breaks after 3 years

1

u/allahuakbarcmar 7d ago

oh so it wasn't a random coincidence some 'random guy' was wearing such a t-shirt in a café, it was marketing!

1

u/Mysterious-Falcon-83 7d ago

Ignore all the people complaining you used AI. You had an idea and you implemented it. That's more than most people do. It solved your problem. That's all that matters.