
Building Open Source Projects: Lessons Learned From Creating My Own CSS Framework
Ever felt that itch to build something entirely new, flexing your software development muscles? I did too. I jumped headfirst into creating my own CSS framework, "Stratum." Here’s my journey—including what went right, what went hilariously wrong, and crucial tips if you're contemplating a similar adventure in open source development.
Why I Decided To Create My Own CSS Framework
I loved the adaptive design of the Skeleton project, powered by Tailwind CSS. But I wasn't using most of its components. Fueled by a desire to build something myself, I envisioned Stratum. I wanted to strip down what I liked from skeleton and add my own styles.
Spoiler alert: This isn't an ad. After this experience, maintaining it beyond my needs? Not so much.
The Fun Part: Initial Ideas and Optimism
My initial idea was awesome. Strip down the current library and add my own styles. Dive into svelte components and learn a bunch of stuff. Maybe I would even get a community going.
The reality of executing those ideas? Very different.
The Deep Dive: A Crash Course in Everything
If I was going to do this, I planned to do it right – as if Stratum would be widely used. So I had to learn:
- Monorepos: Setting them up, project communication, consistent dependency versions.
- Advanced Tailwind CSS: Custom utilities, deeper CSS knowledge, cross-browser consistency.
- Accessibility (A11y): High-quality Svelte components, making Stratum unique.
The learning was rewarding, but the project started to feel overwhelming.
Reality Bites: Scaling Down the Dream
I quickly realized the initial scope was unrealistic. As a one-person team, finishing on time was impossible. I was tracking bugs and to-dos, the more I solved, the more sprung up.
To actually finish, I had to drastically reduce the scope. Custom components? Gone. Already-created features? Trimmed. It was less impressive, but achievable.
The Hidden Work: Automation and Community Management
Releasing version 0.1.0 felt great. But then came the tasks I hadn't considered:
- Automating version bumping and changelogs: Essential for any serious project.
- Community Contributions: How would people contribute? Did I even want to manage pull requests and issues?
- Community Building: Discord, YouTube, advertising. Did I want to build it from scratch?
- Ongoing maintenance: Was I willing to write documentation?
The answer to most of these questions was a resounding "NO." I'd bitten off more than I could chew. Stratum wouldn't be the star I imagined. It's now my personal CSS framework.
Lessons Learned: If I Were to Create Another Open Source Project...
While I don't regret the experience, I'd approach things differently:
- Team Up: "Ape together strong," as they say. Even one more developer makes a massive difference. You get early feedback and reduce the workload.
- Right-size the Dream: My initial scope needed a team. Before you start, realistically assess your available time and energy.
A newfound respect for Open Source Maintainers
I have a lot more respect now towards Open Source Maintainers. Sure, some are funded but that does not undermine their effort and hard work.
Final Thoughts: A Valuable Learning Experience
Even though Stratum didn't conquer the world, I learned a ton. I'll keep using it for my projects and feel proud of what I accomplished.
The biggest takeaway? Open source CSS framework creation is a journey. Go in with your eyes wide open, and you'll learn more than you ever expected. And to all the open-source maintainers out there, thank you for everything you do! You are building awesome open source development tools.