| ▲ | Self-updating screenshots(interblah.net) | ||||||||||||||||
| 138 points by bjhess 21 hours ago | 22 comments | |||||||||||||||||
| ▲ | CyberShadow 3 hours ago | parent | next [-] | ||||||||||||||||
Same, I've added a .#screenshots derivation. High up-front effort but almost zero maintenance afterwards. Bonus: since you're generating screenshots programmatically anyway, you can generate a pair of each with your app's light/dark theme, and swap them in/out depending on prefers-color-scheme: dark. <picture> elements work in GitHub READMEs, too: https://github.com/CyberShadow/CyDo#readme | |||||||||||||||||
| ▲ | merelysounds an hour ago | parent | prev | next [-] | ||||||||||||||||
This is very useful in mobile projects. App stores require screenshots, but generating N images for NUMBER_OF_SCREEN_SIZES times NUMBER_OF_LOCALIZATIONS can be a chore. In the past I wrote my own scripts for that, today tools like Fastlane[1] help. I use Fastlane for my logic puzzle game Nonoverse[2], you can see sample screenshots in its App Store page. I also automated App Preview video recording, complete with multiple scenes. If anyone wants to read more let me know, perhaps this is a good topic for an article. [2]: https://apps.apple.com/us/app/nonoverse-nonogram-puzzles/id6... | |||||||||||||||||
| ▲ | furyofantares 3 hours ago | parent | prev | next [-] | ||||||||||||||||
Very cool. For the small casual games I've been vibe coding, I always start from a place where the application has a CLI where it can run headless, rendering to offscreen texture, with a a screenshot command as well as performance instrumentation. It takes no time to include all this, and gives the agent a way to automate the ui and inspect important things. It also lets me trivially have the agent update screenshots. Not as neat as being part of the build process, but I will now add that. | |||||||||||||||||
| |||||||||||||||||
| ▲ | Xmd5a 11 minutes ago | parent | prev | next [-] | ||||||||||||||||
> Then you change the UI slightly – tweak a colour, move a button, update some copy – and suddenly every screenshot that includes that element is stale. You know they’re stale. Your users might not notice, but you know, and it gnaws at you. F Related: Sabotaging projects by overthinking, scope creep, and structural diffing – https://news.ycombinator.com/item?id=47890799 | |||||||||||||||||
| |||||||||||||||||
| ▲ | LeoDaVibeci 15 hours ago | parent | prev | next [-] | ||||||||||||||||
I've needed this so many times. BTW this should be a meme: "I think this might be the neatest thing I’ve built in X that nobody will ever notice." | |||||||||||||||||
| ▲ | xp84 an hour ago | parent | prev | next [-] | ||||||||||||||||
Bravo. This is incredibly useful, and really improves the quality of documentation, especially for many applications whose design and UI are always in flux. | |||||||||||||||||
| ▲ | schneems 3 hours ago | parent | prev | next [-] | ||||||||||||||||
This is neat. I wrote https://github.com/zombocom/rundoc. It has a similar feature. The main driver is to produce tutorials so it also puts the output of commands run back in the document. | |||||||||||||||||
| ▲ | kalb_almas 2 hours ago | parent | prev | next [-] | ||||||||||||||||
I'm sometimes getting NoMethodError at /self-updating-screenshots undefined method `name' for nil:NilClass Ruby title-for: in handle, line 12 Web GET interblah.net/self-updating-screenshots followed by a very detailed traceback when I try to access the page | |||||||||||||||||
| ▲ | maderalabs 2 hours ago | parent | prev | next [-] | ||||||||||||||||
Nice! I actually started to build this exact thing a couple years back, and ended up abstracting it out to something more generic with https://picshift.io/. That said, I still love the screenshot use case - the original name of this project was ScreenSync ;) | |||||||||||||||||
| |||||||||||||||||
| ▲ | efortis 18 hours ago | parent | prev | next [-] | ||||||||||||||||
same here, but linking to the screenshots used for pixel diffing, which get committed to the repo. https://github.com/ericfortis/mockaton/tree/main/pixaton-tes... | |||||||||||||||||
| ▲ | taspeotis 3 hours ago | parent | prev | next [-] | ||||||||||||||||
I’ve wondered about doing screenshots from the e2e test run, even keeping docs/ all together in the same repo so when you update the documentation and need a new screenshot you add a new test | |||||||||||||||||
| ▲ | est 3 hours ago | parent | prev | next [-] | ||||||||||||||||
I maintain an internal wiki, the contents were generated by each CI/CD and always reflects from latest running code. | |||||||||||||||||
| ▲ | devmor an hour ago | parent | prev | next [-] | ||||||||||||||||
Really love this, it should be standard practice! | |||||||||||||||||
| ▲ | 3eb7988a1663 3 hours ago | parent | prev | next [-] | ||||||||||||||||
shot-scraper is another project in this vein. | |||||||||||||||||
| ▲ | irishcoffee 3 hours ago | parent | prev | next [-] | ||||||||||||||||
I wrote a gui app once that ran on a safety-critical platform. I ended up stuffing a rendering of the gui (rendered offscreen) into shmem at I think 24hz, and rendered that screenshot into the safety critical application. I passed clicks (no typing for this gui) back from the statically rendered image updating on a cadence, to the offscreen GUI. Worked well. Not quite the same as this, but that’s what this reminds me of. | |||||||||||||||||
| |||||||||||||||||
| ▲ | immanuwell 21 hours ago | parent | prev [-] | ||||||||||||||||
nice, embedding the capture instructions right in the markdown as comments is a dead-simple solution that'll age way better than any fancy external tooling | |||||||||||||||||