Making a custom porteur bag
I just finished my first fully custom sewing project: a porteur bag for bike trips. This is a bag designed to fit on a front rack, in my case a rack called Jack The Bike Rack. On multi-day trips, I want to bring a change of clothes, and need somewhere to put them that’s reasonably waterproof and lightweight.
I previously constructed a frame bag that fits in the main triangle of the bike, but I want more storage for longer trips like the C&O + GAP. Making the frame bag was more straightforward because there are lots of guides online for how to do it, and I had the assistance of my mom. For this new bag, I had to wing it most of the way.
I made my own custom frame bag because my bike’s frame is a little unique, with a arcing top tube. And, of course, because I wanted to. It was something I could make while learning a lot of skills and spending a lot of time working with my hands, and having a nice time back home.
I decided to make this new bag for most of the same reasons. The Jack bike rack is kind of an unusual size - its platform is a nearly square nine by nine inches, and unlike most racks, it doesn’t have an exposed rectangular footprint that can be easily used for attachment. I could strap any kind of bag onto it using bungee cords, but that’s tedious and sloppy.
So I made a bag. It took a few weeks, working a few nights a week. All told, the materials were probably cheaper than it would cost to buy but I spent a lot of time making it and the quality of small-batch brands is much higher than what I can produce. I’m a big fan of Inside Line Equipment, which produces a really nice porteur bag. If you just want the thing, buying it makes a lot of sense. But I wanted a project, a puzzle, and a unique object that is a token of physical effort.
Materials
I use Rockywoods and Ripstop By The Roll for all my materials.
I’ve tried ordering small things from Amazon when I was missing a piece and wanted faster shipping, and Amazon is really bad for this niche. Rockywoods and Ripstop’s quality is consistent and they have everything you need, whereas Amazon doesn’t have pretty big categories of things. You can buy a lot of things made of X-Pac fabric on Amazon, but you can’t buy the fabric itself.
So: for this project the main materials were:
- Fabrics
- Silver Challenge ECOPAK EPLX200. This stuff is weird! My last project was made out of a slightly different kind of ECOPAK which was recognizably a woven fabric, whereas the EPLX version of ECOPAK has a shiny, plastic-like coating which can make it look like a plastic bag. Both are miracle materials which light, waterproof, and plenty durable for my needs.
- 1000 Denier CORDURA for the bottom of the bag. This stuff is super sturdy and quite heavy, so I see it mostly used for the bottom of bags where the material needs to hold up to rubbing.
- Cords & stuff
- Grosgrain ribbon is what I used for all of the attachment points for the shock cord. This is the same construction as I used for the frame bag: cutting off little 1” long segments and sewing them on as loops so that a cord can be strung through them.
- MIL-SPEC Nylon Webbing is what the buckle on the bottom of the bag is running on.
- Hardware
- Mini combo hooks for the attachment points that use elastic cord.
- KAM Snaps for the bag’s closure
- 1” Beastee Dee Ring for the shoulder strap attachments. So far I haven’t really needed to use the shoulder strap, and this extra attachment point was sort of added during the period in which I was nervous about attaching the bag to the rack, and this seemed like it could double as an anchor point for a bungee cord if all my other plans failed.
- Dual Adjust Side-Release Buckle is what I use for the buckle on the bottom of the bag. I’ve acquired a surprising number of buckles in this process and seen a huge variance in quality, between super gritty, hard-to-open small buckles to ones that seemed comically oversized for what they did.
- Misc
- MARA 70 Thread. This is some really good thread.
There are probably a few components I’m forgetting, but hopefully this gives some good breadcrumbs!
Design
I spent a long time sketching and mulling over how this was all going to work. For example, a bunch of bags have canvas box bottoms. How does that work - do you sew the canvas part first and then sew the top of the bag onto it? I found a lot of good resources on things like sizing box bottoms and especially watched through a lot of the videos from REKKI WORKS. REKKI is the same person who designed the bike rack I use, and he just released a new bikepacking bag, which was part of the inspiration for this one - especially the system of shock cord loops for attachment.
There’s so much online about constructing frame bags, but much less about constructing porteur bags. I spent a lot of time solving the blank page problem: figuring out where to start and what to make.
It was so great! I love the blank page problem. It’s not something we should solve with LLMs or presets. Trying to imagine what something is going to look like and how it will work, and then making the thing and seeing where your imagination matches reality and where it doesn’t – that’s the fun part!
That said, it’s a lot easier in software because you can iterate quickly and you aren’t spending money every time you write some code (unless you’re vibecoding). Even with a good budget for this project, treating it as a fun project instead of a money-saving opportunity, I felt the pressure every time that I cut a piece of fabric and sewed things together. A big mistake would be a bummer, and the sources for my materials don’t have the fastest shipping, so it would slow the project down, too.
Construction
So the aim is a bag for the front of the bike, which sits between my handlebars. Sometimes these bags attach to the handlebars, but I use 44cm width bars which don’t have much space in the center.
The rack has a 9 inch by 9 inch platform and a bunch of attachment points, but those metal openings are too narrow for most kinds of buckles and the metal tubing is too thick for most hooks that I could find, so I was a little stuck on attachment systems.
There was also the question of how the bag would close. The frame bag that I constructed before, like most frame bags, used a zipper along the side, but it’s more common for porteur bags to use a roll-top closure, except for a few that have a really very boxy design. The roll-top seemed simpler and sewing zippers is hard, so I went with that.
So I just spent a while sketching in a grid notebook. (a notebook from Appointed, a great DC-based company)
I considered tying a basket to the bike rack, which would give the bag a lot more structure to sit inside of and simplify the attachment problem. But that would add a bunch of weight the platform of the basket would be wider than the rack, which would put it in danger of interfering with brake cables.
Eventually, I started making the bag.




The last drawing is close to the eventual formula: 4 panels of 13” by 14” ECOPAK on the sides, a 13” square of Cordura on the bottom. I finished the sides individually with all of the attachment points, velcro, and sewing the top edges to be neat. Added an extra panel to one side with the hook part of the hook & loop fastener, to make the roll-top design work.
Then sewed those four sides onto the cordura in a cross shape, and sewed the vertical sides shut. For all of this, the thing that’s really important and easy to forget is what side is out. These designs always rely on stitches ending up inside and the finished face of the fabric (the ‘right side’) ending up on the outside. This time I didn’t mess that up even once, and didn’t have to do any seam-ripping, but on every previous project, I’ve had to undo some work for that reason.
And then the weather was nice one weekend and I needed to satisfy my urge to get out there, so it was time to finish the project! The night before the ride, I finished the details and checked that everything could attach to the bike, and it was off. The bag worked great holding a change of clothes for an overnight trip.
Time for some glamour shots:
This is the bag unrolled, showing the loop side of the fastener.
The inside is pretty unfinished, but it does the job.
This bungee loop goes around the back of the bike rack to keep the bag from moving forward when I’m stopping.
This is the front - this whole system is kind of a pale imitation of how the DX25 from REKKI Works works, but with six attachment points instead of 8, and they use nice plastic hardware whereas this is just using grosgrain ribbon loops.
What I’d do differently
This project turned out well, but there are a lot of things I’d do differently next time.
- The attachment system is still pretty complicated and not as secure as I’d like. If I could only find a hook that was the right size to hook directly onto the rack, maybe I could simplify it.
- This version of the ECOPAK material is not very aesthetic, and, even though the ECOPAK is partly recycled, it’s sad that every part of the bag is some kind of plastic. I want to try out some natural materials.
- The final construction used six panels - one for each side, one for the bottom, and one for the velcro closure. I think I could cut down on that and end up with a smoother, simpler design. The ILE bag uses one panel to wrap around three sides.
- I didn’t add a liner to the bag. It’s not essential but it would be nice, I think, for future versions to have a different surface on the interior.
- There are no extra pockets. A lot of the commercially produced bags, like those from Road Runner, have a few convenient outside pockets. It’d be nice to have an extra place to stash snacks or a map.
- Getting the bag to hold a shape is tricky. I’ve mostly just been stitching the interior of intersecting fabric and then topstitching parts that should lay flat, but professionally-made goods have fancier techniques that I haven’t figured out yet.
Overall, I’m pretty darn happy with the project. It was extremely rewarding to go on a ride with this pretty complex project that I made by hand and understood intricately. It gave me a deeper appreciation for the bags and sewn-together things that I interact with on a daily basis. I highly recommend it.