
Developer who cares about aesthetics. Lead Software Engineer @finanzfluss
Germany
Joined September 2020
- Tweets657
- Following203
- Followers1.2K
- Likes2.4K
Johann Schopplich retweeted
AI eliminated the natural barrier to entry that let OSS projects trust by default. People told me to do something rather than just complain. So I did. Introducing Vouch: explicit trust management for open source. Trusted people vouch for others. github.com/mitchellh/vouch
The idea is simple: Unvouched users can't contribute to your projects. Very bad users can be explicitly "denounced", effectively blocked. Users are vouched or denounced by contributors via GitHub issue or discussion comments or via the CLI.
Integration into GitHub is as simple as adopting the published GitHub actions. Done. Additionally, the system itself is generic to forges and not tied to GitHub in any way.
Who and how someone is vouched or denounced is up to the project. I'm not the value police for the world. Decide for yourself what works for your project and your community.
All of the data is stored in a single flat text file in your own repository that can be easily parsed by standard POSIX tools or mainstream languages with zero dependencies.
My hope is that eventually projects can form a web of trust so that projects with shared values can share their vouch lists with each other (automatically) so vouching or denouncing a person in one project has ripple effects through to other projects.
The idea is based on the already successful system used by @badlogicgames in Pi. Thank you Mario.
Ghostty will be integrating this imminently.
Johann Schopplich retweeted
I built an iOS shortcut inspired by @waitbutwhy’s life calendar: your entire life as a finite grid of weeks on your lock screen.
Since apps can’t update the lock screen, a shortcut runs weekly, fetches the next image from an endpoint, and updates the lock screen automatically.
Johann Schopplich retweeted

Theo - t3.gg@theo18 Nov 2025
🇺🇸
United StatesConnected via United States App StoreAccount-level information, not a live location or per-post device.
Crazy how much more informed you can be by just reading the README file on the repo.
Armin is wrong here, the training data doesn't matter. TOON makes most models more accurate for lookup.
AI discourse on Twitter is frustrating. Take this tweet with thousands of views. It claims you should use TOON instead of JSON. But if you actually count tokens, the savings are … barely existing, it's not in the training data, and tabular JSON beats it. xitter.cf/DataChaz/status/198905…
Johann Schopplich retweeted
Replying to @rauchg
no, people that think cookie banners are the solution for implementing gdpr have ruined the web :)
Johann Schopplich retweeted
I am very happy for Tanner and the amazing work he does 💚
But let’s not forget that without the amazing work of @_pi0_ done on @nitrojsdev, TanStack Start would probably never deploy to so many hosting providers.
Still I don’t see much sponsoring from those platforms going to Nitro or UnJS…
🎉 @Netlify is now the official deployment partner for @Tan_Stack Start! We trust Netlify now more than ever to deliver on TanStack's vision:
🔹 Unmatched DX from code to user
🔹 Simple and Flawless Performance
🔹 Ultimate Flexibility and Composability
This partnership is all about making web development smoother, faster, and more powerful for everyone. I'm excited for what this has already and will continue to enable us to do at TanStack!
tanstack.com/blog/netlify-pa…
Johann Schopplich retweeted
What the heck is going on with tech people? A man who cries must be a weak leader? I thought we had left this kind of thinking long behind us.
Johann Schopplich retweeted
My (somewhat) hidden favorite bit of `tschema` is its CI and release pipeline. I'll probably reuse this in modules to come 😍 I have:
- source is @deno_land powered
--> native TypeScript
--> lint, type check, auto fmt, auto-docs, test, etc
- oxc-transform generates the .d.ts & .mjs files for npm
--> /cc @boshen_c
- one-liner gzip size checker in CI
--> reports the size in every Actions run (bottom log)
--> powered by @bunjavascript + terser
- dual publish to JSR & npm registries
--> Attestations linked & verified for each registry
--> run `deno task release <version>` and thats it~!
So on every commit, my repo is fully built, size-logged, tested, linted, and type-checked in under 10 seconds.
And on every git tag (see custom Deno task above!), "Publish" step waits for "Test" to succeed, which will build the module for each registry. This is a custom script, but for JSR it sets the `"version"` to my tag's value. And for npm, everything is built from source.
Both registries offer attestation signing/verification which prove that CI is the authentic publisher.
Introducing `tschema` — a tiny (359b) utility to build JSON schema types ~!
🌴 fully tree-shakable
🚀 very performant
🧐 static TS types
Useful for producing JSON schema definitions; eg for OpenAI tool-calling definitions.
Validators coming 🔜
GitHub: github.com/lukeed/tschema
Johann Schopplich retweeted
From 1931, a French animal drawing book. All 97 pages here flickr.com/photos/taffeta/al…
Johann Schopplich retweeted
I wrote this Format dialog back on a rainy Thursday morning at Microsoft in late 1994, I think it was.
We were porting the bajillion lines of code from the Windows95 user interface over to NT, and Format was just one of those areas where WindowsNT was different enough from Windows95 that we had to come up with some custom UI.
I got out a piece of paper and wrote down all the options and choices you could make with respect to formatting a disk, like filesystem, label, cluster size, compression, encryption, and so on.
Then I busted out VC++2.0 and used the Resource Editor to lay out a simple vertical stack of all the choices you had to make, in the approximate order you had to make. It wasn't elegant, but it would do until the elegant UI arrived.
That was some 30 years ago, and the dialog is still my temporary one from that Thursday morning, so be careful about checking in "temporary" solutions!
I also had to decide how much "cluster slack" would be too much, and that wound up constraining the format size of a FAT volume to 32GB. That limit was also an arbitrary choice that morning, and one that has stuck with us as a permanent side effect.
So remember... there are no "temporary" checkins :)
Follow me for more random code musings!
Johann Schopplich retweeted
STARSHIP TROOPERS wird Realität.
Meine Filmanalyse:
youtube.com/watch?v=xmzBdaBz…
Stark-Watzinger – Schulen sollen junge Menschen auf Kriegsfall vorbereiten to.welt.de/LJJga8h
Johann Schopplich retweeted
If you want to block (or at least tell) all the AI bots to not crawl your sites this is a good place to start. 👇
darkvisitors.com/
Johann Schopplich retweeted
[NEW LAUNCH] 0/ ✨AI-tamago🐣: A local-ready LLM-generated and LLM-driven tamagotchi with thoughts and feelings. 100% Javascript and costs $0 to run. 🧵github.com/ykhli/AI-tamago
Stack:
- 🎮 Game state & reliable AI calls: @inngest
- 🦙 Inference: @Ollama_ai (local), @OpenAI, @replicate
- 💻 Transactional & vector database: @supabase
- 🧠 LLM Orchestration: @langchain
- 🖼️ App logic: @nextjs
- 🖌️ UI: @v0 from @vercel
This is a personal project I've been hacking on and off for a few months - all ASCII art animation generated from chatgpt. Thanks for the support from @pphu_dev @kiwicopple @itstonyhb @jmorgan @mchiang0610 @martin_casado ❤️
Johann Schopplich retweeted
Vue Fes Japan 2023の登壇資料です。
speakerdeck.com/nozomuikuta/… #vuefes
Johann Schopplich retweeted
Mailand: Baut für 250 Mio. € dieses tolle 750km langes Radnetz aus geschützten Radschnellwegen.
Berlin: Baut für 400 Mio. € eine neue Schnellstraße, für 1,5 Mrd. € eine neue Autobahn und kürzt das Budget für den Radverkehr um 10%.
Alle haben es verstanden. Wann endlich wir?
Johann Schopplich retweeted
Scratch card made with canvas and SVG filter 🎁
Demo on @CodePen: codepen.io/nicolasjesenberge…
Johann Schopplich retweeted
Dieser Fernsehbeitrag aus Amsterdam aus dem Jahr 1971 ist so kraftvoll. Er zeigt wie Kinder sich die Straße zurückerobern. Sie blockieren Straßen und treffen auf verständnislose Erwachsene und aggressive Autofahrer. Alles wie bei uns heute, in den Niederlanden aber vor 52 Jahren.
Johann Schopplich retweeted
Today I learned: By using an HDR <video>, a website can display a very bright white, like ~7 times brighter than #FFFFFF, on an iPhone/iPad.
This can be used to e.g. show a bright QR code for easy scanning despite user’s low brightness settings.
notes.dt.in.th/HDRQRCode
Johann Schopplich retweeted
Even if you shut off white balance, most of the pictures I see aren't selling how orange the sky is, because there's no frame of reference. Here's a 6500k display with an image we all recognize, for a more relative perspective. The color science isn't perfect, but close enough.
Johann Schopplich retweeted
Didn't know it was possible to do that with JSDoc
Looks more usable in real apps than I thought
👏 @jimniels great tricks
blog.jim-nielsen.com/2023/ty…









































