Show HN: Bigwords.page – Turn any screen into a sign. The URL is the app
bigwords.page
bigwords.page
It uses a URL fragment to configure the message. Browsers don't send URL fragments to the server, so I never see your message. There's no backend, and no storage.
All parameters are documented, so generating a message link is easy. There's also a built-in editor to make it extra easy.
https://bigwords.page/#Hello,%20HN!&bg=ff6600&fg=000000&font...
There are a few extra features like slides, animations, and countdowns and timers. QR codes too. Not too fancy, but hopefully enough to be useful.
I know the uses for this are pretty niche. But it may be one of those things that you keep as a nugget in your brain, a tool in your back pocket. Not something you use often, but when you do it makes things just a little bit easier.
It's open source (MIT), and self-hostable if that's your thing.
Let me know what you think.
LLM-speak is a huge turn off to me (and a lot of other people here, from my interactions), so the fact that your submission title is AI-generated is... sorry, I have no words. I don’t even care that much about the code, but please write prose by hand, in your own voice, if you want us to read it.
Edit: rephrased the last sentence. Also, here’s my take on the title:
> Show HN: Bigwords.page – turn any screen into a sign, controlled by the URL params
on edit: That said, I would probably have said "Turn Any Screen Into A Sign with Just A URL!"
That's all marketing.
This is basically a differently-shaped https://github.com/antonmedv/textarea
Cool idea, but agree that fixing actual mistakes in the title is a worthwhile use of time.
I looked over the website and their github page and saw no indication of AI usage. I'm not saying it wasn't used, but unless you have actual evidence, then please point it out.
If it was a clever expression that does get the idea across, I would be okay with it. “The API is the UI” is of similar form and I love it. It’s simple, catchy, and it does convey a meaning: designing an API is just designing a UI for developers.
“The URL is the app” makes literally no sense without additional context? I’m not sure this is a “concise and accurate description of the service”. I did take a guess [1] and I was correct, but that was after I’ve seen the examples.
Yes exactly - it's one of those sentences that only makes sense to people who already know what it was intended to mean, because they know how it's intended to be parsed without having to puzzle over it. For the rest of us, it's pretty meaningless.
Regarding the LLMism, I didn't click on this submission when I saw it on HN last night, because I'm sick of seeing "The X is the Y", and an LLMish title tends to imply yet another piece of vibecoded slop.
It’s all by the vibes, I don’t have any concrete proof. FWIW, the comment seems at least hand-edited, so maybe it’s just this “the [A] is the [B]” trope that has triggered me. If the rest of it is readable, then I apologize, but still: that’s a bad title, please don’t use this – unless you’re writing a LinkedIn post.
---
Edit: here’s another LLMism example from another HN user: https://news.ycombinator.com/item?id=49996255
The "Nothing else: no lists, tables, links, quotes, images or rules" is from the docs indicating that these things are not supported.
Yeah, it’s somewhat a typography-nerdy thing :–) (gosh that looks terrible probably; edit: actually it’s surprisingly fine)
> indicating that these things are not supported
Of course, but it does sound a bit unnatural IMO. Then again, I’m going by the vibes here.
En dash is the width of an “n”. Em dash is the width of an “M”, so a little wider.
Then you've got the first syllable of Ω (omega) being a homophone of Ohm, for what that's worth. From there we have ℧ (mho) for conductance... It's all quite clever. But I digress; I'll get back to emceeing and deejaying, cueing these elpees after a quick pee, okay?
I saw what you did there.
It’s not always AI. It could be a human ;) I really despise LLM-written writing too; but I think it’s nice to be not super paranoid about it.
The initial commit:
https://github.com/SpeakingOfBrad/BIGWORDS.PAGE/commit/d5a11...
https://github.com/SpeakingOfBrad/BIGWORDS.PAGE/commit/d5a11...
https://github.com/SpeakingOfBrad/BIGWORDS.PAGE/commit/d5a11...
https://github.com/SpeakingOfBrad/BIGWORDS.PAGE/commit/d5a11...
https://github.com/SpeakingOfBrad/BIGWORDS.PAGE/commit/d5a11...
The highlights:
The URL is the whole display: no accounts, no login, no backend.
Nothing else: no lists, tables, links, quotes, images or rules.
Underscores inside words are left alone, as in standard Markdown, so names like Home_Guest_5G, snake_case or first_name@example.com show exactly as typed. Only an underscore at a word boundary starts or ends emphasis.
Code is shown exactly as typed. Nothing inside backticks is treated as formatting, a slide break, {countdown} or an escape, which makes it the easy way to show passwords and codes with symbols in them. A code span has to open and close on the same line. Browsers may write a typed backtick as %60 in the address bar; both forms work.
All fonts ship with the site, each next to its license file. A font is only downloaded, from this site, when a display uses it.
Screen wake: with wake=on (the default) the viewer asks the browser to keep the screen on. It asks again whenever the tab becomes visible. Browsers without support ignore it.
The viewer can be embedded anywhere (OBS, dashboards); the editor and docs can't. HSTS is left to the TLS-terminating reverse proxy. The app reads all state from the URL fragment, so / serves every display. /editor and /docs are their own files (editor.html, docs.html); anything else is a real 404.
img-src stays open because displays show images from any host. Inline styles are needed for the runtime @font-face rules and style attributes. A snippet, so 404 responses get these headers too.
Exercises the canonical URLs, social cards and sitemap, which are only built when SITE_URL is set. The smoke test reads it too.
Don't get me started on the docstrings and code comments.I posted a detailed reply to your comment with lots of examples and HN's new slop filter just killed it... due to overabundance of slop.
:-)
I recommend turning on showdead to read it.
Get off your high horse. Not everybody studied to write prose, not everybody was born American to begin with. If LLMs helps programmers get heard - good. That's probably the best usage for them anyway.
LLMs turn your own voice into uniform corpo-speak. It is usually not an improvement, and it certainly doesn’t help you get heard – you’ll blend in with hundreds of other projects with the same-looking landing page, same tone of voice, same kilometres of docs that nobody read before putting up, and you’re basically playing a game of chance here. It’s like TikTok for programmers.
Ten times out of ten, I’ll prefer broken English over Claudish. Speak in your own voice. Don’t be afraid.
It does not, it does the opposite. It gets the programmer ignored.
Comments like "don't say this, this is LLM-ism" are the things that help the programmer get heard, whether she isn't good at English or she was just lazy and used LLM to generate text.
You are classifying well and optimizing poorly.
In fact I employed the same idea for the slide stack site I use for teaching. Not exactly "URL is an app" but "URL is a slide"
https://okaleniuk.codeberg.page/blackboard/_1.html?sequence=...
The same consideration applies. No backend, no storage, also no user data collection, no authorization, no hurdles in general. Everyone can use it.
https://github.com/leoherzog/ParameterPage
https://parameter.page/?title=This%20is%20an%20Example%20Pag...!
Thanks!
Fun fact; it's not as widely usable but data URLs work for this too.
Maybe you could add an option to copy the data URL for a page?
e.g. this one
https://bigwords.page/#%23%20Gate%2012%0ABoarding%20now&bg=0...
becomes
data:text/html,<!doctype html><meta name=viewport content="width=device-width,initial-scale=1"><body style="margin:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:%230b3d91;color:%23fff;font-family:sans-serif;text-align:center"><h1 style="font-size:18vw;margin:0">Gate 12</h1><p style="font-size:9vw;margin:0">Boarding now</p>
(paste this ^^ into your URL bar)
Readability of the link itself wasn't a goal for me, so I've opted to zstd compress the content instead for shorter urls. Can still get quite big of course, depending on content. But I have successfully shared even some small image files with this.
https://linkify.ink/#AgACe30otS_9YAATHRMAcsgaGHBZBwCDZiUYf1d...
You seem to have the same bug I had when I first implemented https://screaming.saej.in/
In Firefox, scrollWidth includes spaces that extend into the margin, so it's possible for text to fit perfectly on the screen, but scrollWidth > clientWidth. Fix here https://saej.in/posts/screaming/
In the UK it depends, some epileptics aren't allowed to drive. Not all epileptics are photosensitive and not all movies trip people.
> You are a poo-emoji bomb-emoji #!! driver
?
> No account, no app, nothing stored on a server.
> No app. No login. Just a URL.
> No app, no account, free.
these two are from the front page
I semi-regularly chair or panels and very often the venue hasn’t thought about a countdown timer so that I and the speakers know how long we have left. Having a timer massively improves the quality of a panel from an audience perspective as you can better pace things, move speakers on, wrap up without rushing, and so on.
Because of how often a timer wasn’t available last year I made something where I could quickly spin one up using ffmpeg. This is much easier and much more useful. (And doesn’t require having my Mac with me!)
Being able to stick one of these on an iPad on a table so that speakers can see it but audience can’t will be really useful.
Thank you!
Claudish needs to be cleaned up.
There's a huge industry around digital signage and I've always felt it could be replaced with a simple Chromium kiosk + auto-refreshed webpage content. There's really no need for expensive HDMI connections or custom video streams when we already have browsers.
That period was a fun time and one I think about all the time. The profit margins and costs have come down so much I don't know if an equivalent workload or company would stay afloat as long.
If the site adds a PWA manifest, Android (Chrome/Google app) will show a prompt to install as app on load. Also PWA install will be available for older iOS.
I made a simple tool that generates a minimal PWA manifest: https://logo.leftium.com/logo
A tip on the PWA: it’s the only way to get BIGWORDS.PAGE in Fullscreen on mobile.
[0] - https://github.com/con-dog/snibble/blob/master/README.md
Main issue I encountered was pasting a big payload URL. I had to make a fallback to allow pasting in a dialog if it failed to load from the browser URL bar.
It needs an update, but still works. Very useful to show your name, address or reference number in a post office and other similar places.
bigwords has the advantage of accepting inline parameters though.
The example with the coffee bean background image already uses base64 for the image data, so I guess that would get double-encoded.
[0] https://medium.com/@bagdasaryanaleksandr97/understanding-bas...
2. QR code support? %QR=256x256&QR_ECC=min etc.?
3. prolly other natural / ez "make it big" - base64 tho not all browsers will support long enough URL to be worth it
It’s “EZ” in that you don’t control the parameters of how the QR gets created. You can just control where it gets shown, and what it links to (though it does support telephone, SMS, Wi-Fi, email, and location).
So many fun rabbit holes from here with the different ways to get this working (and keeping displaying) on a chromecast, etc.
503 Service Unavailable1. No matter where.
2. Even if it is a list.
That is how we know it was written by an LLM.
How could I change the image to be less intrusive? I can't have it show an image of the message you're trying to share, because the server never sees that message. But can I make the default image nicer on the eyes.
Anyway, feel free to rip anything you like:
We used to call them websites