Let me take you back to a moment that might feel familiar: you’re staring at a JSON configuration file, wrestling with field names and structure, hoping you’ve gotten it right. Your IDE is offering no help, and documentation is scattered or nonexistent. Frustrating, right?

Years ago, I found myself in that exact spot one too many times. As I sat there, tweaking and testing, it hit me: there had to be a better way. Little did I know that moment of frustration would spark an idea that would evolve into what you know today as Schemastore.org.

The Problem

Back then, JSON schemas weren’t the ubiquitous helpers they are now. Sure, the technology existed, but it wasn’t easy to find schemas for the tools you were using. If you needed a schema for your project, you either had to dig through obscure documentation or—more often—roll up your sleeves and build it yourself.

It was a time sink. And worse, it was entirely avoidable.

The real problem wasn’t the complexity of schemas; it was the lack of a centralized place to find them. Developers were solving the same problems over and over, each in isolation, when a shared resource could have made all the difference.

The Turning Point

So, I decided to create that shared resource. The idea was simple: a public repository where anyone could find and contribute JSON schemas. It wouldn’t be fancy—just a straightforward way to save developers from hours of unnecessary frustration.

When I launched Schemastore.org, I didn’t have big expectations. I thought it might help a few people, but I never imagined how quickly it would resonate with the development community.

The Rise of a Community

What happened next was extraordinary. Developers from all over the world began contributing. They sent pull requests for schemas I’d never heard of fixed errors I hadn’t spotted, and offered suggestions that made the site better in ways I couldn’t have predicted.

It wasn’t just about the schemas anymore; it was about the community.

Over the years, Schemastore.org has grown into a critical resource, quietly powering tools like Visual Studio Code, GitHub Actions, IntelliJ IDEA, and many others. The stats are humbling: over 1500 contributors, 4000 pull requests, 1000 schema files, and millions of developers who’ve benefited from the work.

That results in 2 TB of schema files being served to IDEs, validators, and other system every single day to support JSON, YAML, and TOML files.

But the real story isn’t in the numbers. It’s in the ethos: a shared belief that open collaboration can solve even the most frustrating problems.

The Challenges Today

Of course, growth comes with challenges. Keeping Schemastore.org running smoothly requires time, effort, and resources. While it’s still volunteer-driven, the infrastructure and maintenance costs have grown alongside its popularity.

And here’s the thing: for-profit organizations are among the biggest beneficiaries of Schemastore.org. They use the schemas to validate configurations, streamline workflows, and, ultimately, save time and money.

The Ask

If you’re part of such an organization—whether you’re contributing schemas or relying on them—I have a request: consider sponsoring Schemastore.org.

Your support would help cover hosting, maintenance, and development costs, ensuring this resource remains free and open for the entire community. It’s a small way to give back to something that likely saves you (and your team) time and effort every day.

You can find sponsorship details on the site, or feel free to reach out to me directly.

The Resolution

Looking back, it’s amazing to see how far Schemastore.org has come. What started as a small project has grown into something much bigger – a shared resource, built by and for the community, quietly making life easier for developers everywhere.

This journey isn’t over. With your help, we can keep Schemastore.org thriving, growing, and helping developers for years to come.

Thank you for being part of this story, whether as a user, a contributor, or someone who simply appreciates the effort.

Here’s to solving problems – one schema at a time.

At our house, we use home automation for a lot of different things. One of them is the ability to get a quick overview of the state of our appliances such as the washer, dryer and dishwasher. That way we don’t accidentally forget to turn over the laundry or empty the dishwasher.

A red tile on our dashboard means something is ready for us to take action on – in this case that would be emptying the dishwasher after it finishes. See earlier blog post on how I built the dashboard below.

clip_image002

There are lots of tutorials on how to hook a “dumb” washer and dryer up to any home automation system, but I haven’t found any for the dishwasher that doesn’t involve figuring out how to hook up a power meter to it.

So, after a bit of trial and error I was able to do a highly accurate reporting mechanism using only a $20 multipurpose sensor that I had lying around.

The sensor

You need one or more sensors capable of sensing tilt, acceleration and temperature. I used the $20 Samsung Multipurpose sensor which integrates seamlessly into my SmartThings home automation system.

Attach the sensor along the side of the dishwasher at a place where it doesn’t get in the way. My wife didn’t notice the sensor until I asked her to look several days later.

dishwasher-sensor

The key is that the sensor needs to be located such that it can measure the raise in temperature from inside the dishwasher as it runs through its heated drying cycle. For your dishwasher, it might be higher up or even underneath.

Then go into the configuration of the sensor and specify it to be used on a garage door.

dishwasher-config

All that does is to use the tilt sensor to determine if it’s open or closed instead of the magnet. That way, you must open the dishwasher door all the way down to horizontal level before it registers as open. That’s what we want.

The automation logic

I’ve created a virtual switch called Dishwasher that I use to store the state of the dishwasher cycles which is what I use for the dashboard. It’s turned on when the dishwasher finishes and turned back off once it’s emptied.

It uses the fact that a bit of vibration occurs early on in the cycle, and temperature rapidly dropping after it finishes. The name of the multipurpose sensor is Dishwasher Sensor. Here’s the logic:   

dishwasher-piston

Notice how it uses the variable isRunning to keep track on when the dishwasher is running.

That’s it. Pretty simple, but it may require a bit of trial and error on where to place the sensor on the dishwasher door.