You’d be hard pressed to find an accessory infused with more passion and personality than shoes. Despite this, we’re offered an extremely limited number of styles and models. Unless you’re super rich (unlikely) or a shoemaker (even less likely) you probably haven’t considered custom footwear. However, making your own shoes may be easier than you think.

I’m talking about creating interchangeable uppers that reflect your creative vision, in everything from material choice to pattern. By cannibalizing the soles from pre-existing footwear, you can make a pair of interchangeable strappy shoes with unlimited styles that you can swap out as fashion sees fit.

When I mention that I make shoes, I often get the same response: “Oh my God, can you make me some? I’m a total shoe addict!” And if you’re anything like me, you’ve had fantastic visions of creating your own boots, platforms, wingtips…

But very few of us actually turn these ideas into reality. Making shoes isn’t easy. The fact that the process is surrounded with an aura of mystery doesn’t help either. As a result, custom shoes are only available to those with the means to pay a shoemaker over $1,000 per pair. The rest of us must search through a sea of mediocre, mass-produced footwear. This needs to change.

We can start by taking some lessons from open source models of software development. How? We’re going to cannibalize existing shoes, make them modular, and minimize the risk of experimentation.

We start by cannibalizing the most complicated part of the shoe — the sole. The sole provides support and cushioning to the foot’s complex structure of bones, joints, muscles, and tendons. Since most shoe companies spend quite a bit of time and money working out issues of construction, materials, and support, we can benefit from their hard work by using existing soles as the platform from which we can build.

Currently, almost all shoes are constructed by gluing the upper (the part that covers your foot) to the soles. Once connected, it’s nearly impossible to remove these parts from one another without doing damage.

But if we construct shoes to be modular, then the uppers could be removed from the sole without destroying either part. Straps could be swapped as easily as Lego bricks. In the open source world, developing code in this way allows software developers to distribute a workload in manageable sections. Since the shoe is a complicated object, it will be much easier for us to build if we break the object into discrete elements.

Because the whole is broken into interchangeable parts, failure in one realm doesn’t bring the whole endeavor down. I experienced this firsthand when I made shoes in the traditional way. I had measured the foot, drafted patterns, cut final materials, sewn them together, and finally glued the upper to the sole. But somewhere in there I made a mistake. When my girlfriend tried on the shoes, they were three sizes too big. Mistakes in a modular system are far less costly. You simply rebuild the part rather than the whole shoe.

By letting companies do the hard stuff for us, we can start making custom shoes much faster and cheaper than if we had to build the whole object. And because we only need to make part of the shoe, we can make custom shoes for less than $20. The pair I built here cost less than $15 and I wasn’t even cutting corners.

However, I don’t make shoes because it’s inexpensive. I do it because I love bringing my ideas to life. Building modular shoes makes this process much more enjoyable because it allows me to make changes and improve a design even as I’m making the shoe. These flexible construction methods should empower you to make daring, shocking, or surprising shoes. So start building. Your shoes are waiting.