← Back to blog
Development & TechJune 24, 202615 min read

I Open-Sourced Two Projects. Here's What Actually Happened.

Two Projects, Two Very Different Outcomes

I have open-sourced two projects: SimpleAIFolio, a portfolio and blog CMS with an AI writing assistant built in JavaScript and React, and OpsConsole, a local-first terminal workspace for developers built with Tauri, React, and Rust.

One of them found an audience relatively quickly. The other launched to crickets. Both taught me things I did not find in any open-source guide.

Most writing about open source falls into two camps: breathless success stories with star-count screenshots, or vague warnings about burnout. Neither is useful when you are staring at your repo thinking about whether to make it public.

So here is what actually happened: the licensing decisions, the documentation grind, the pull requests that created more work than they saved, the silence after launch, and my honest answer to whether open sourcing is worth it.

The License Decision: Just Pick MIT

Let me save you the hours I spent reading license comparisons on Wikipedia.

For side projects, the license decision is almost always simpler than people make it. You have three realistic choices:

  • MIT — Do whatever you want, just keep the copyright notice. Most permissive, most popular for developer tools.
  • GPL v3 — You can use it, but modifications must stay open source. The viral license. Good if you are worried about someone taking your code proprietary.
  • Apache 2.0 — Like MIT but with explicit patent grants. Matters more for corporate contexts than solo dev projects.

I went with MIT for both projects. Here is why: my goal was adoption, not control. MIT is what developers expect. It is what they do not have to think about. Every moment someone spends wondering whether they can legally use this is a moment they might just close the tab.

There is a counterargument worth acknowledging. The Briefkit team open-sourced their SaaS under MIT and argued that hosting, updates, and support are the real value — not the code itself. That logic works if you are running a service. For a self-hosted tool or a desktop app, the calculus is different. If your entire product is the code, MIT means someone can fork it and compete. But realistically, for most side projects, that competitor is hypothetical. The real risk is not someone stealing your code — it is nobody using it.

If you are genuinely worried about a competitor forking your work, GPL v3 is the answer. But ask yourself honestly: is your code really that unique, or does the value come from your ongoing work on it?

Decision framework: If you want maximum adoption and do not have a specific reason to restrict usage, pick MIT. If you have a real (not hypothetical) concern about proprietary forks, pick GPL v3. Do not overthink it.

Documentation: The Work Nobody Warns You About

Here is the part every open-source guide skips: your documentation will take longer than your code.

For SimpleAIFolio, I spent roughly 40% of the total project time on docs. The README, the installation guide, the configuration reference, the contributing guidelines, the API documentation for the AI writing assistant. The code was the fun part. The docs were the part that actually made the project usable.

OpsConsole was worse. A terminal workspace app has more edge cases than a CMS — different shells, different operating systems, different terminal behaviors. Every moment of it working on my machine needed to become a documented requirement or a troubleshooting entry.

What you actually need before you hit public:

  • A README that works as a landing page. Screenshot or GIF at the top. One-paragraph explanation of what this is. Installation instructions that a stranger can follow without asking you questions. A section on why this exists that differentiates from alternatives.
  • Contributing guidelines. Even if nobody contributes for months, having a CONTRIBUTING.md signals that you are open to it and sets expectations for code style, PR format, and commit messages.
  • A working quickstart. Not a theoretical quickstart. One you have tested on a clean machine. I did not do this for OpsConsole initially and the first three issues were all about installation not working on Ubuntu.

The IndieRadar playbook recommends treating your README as a landing page, and they are right. But they understate the effort. A good README is not a bullet list of features. It is a persuasive document that answers: what is this, why should I care, and how do I start using it in under five minutes?

Skip the docs and you will pay for it in GitHub issues that are really support requests. I learned this the hard way.

Getting Your First GitHub Stars

The hardest part of open sourcing is not writing the code. It is getting people to look at it.

Here is what actually moves the needle for first stars:

Launch in the right communities, in the right way

For SimpleAIFolio, I posted on Reddit (r/webdev, r/SideProject), Hacker News (Show HN), and Dev.to. The Show HN post drove the most initial traffic. The Reddit posts drove more sustained interest because they stayed visible longer.

The key: do not just drop a link. Write a post that explains why you built this, not just what it does. People connect with the problem, not the solution. Telling people you could not find a portfolio CMS that did not require a headless CMS setup or lock you into a platform is more compelling than saying SimpleAIFolio is a portfolio CMS with AI features.

Timing matters more than you would think

Post on Tuesday through Thursday, during US morning hours. That is when Hacker News and Reddit get the most engaged traffic. Weekend posts die. Friday afternoon posts die. I know this sounds obvious, but I launched OpsConsole on a Saturday because I was excited, and I still regret it.

Your repo needs to look alive

Before you share it anywhere, make sure your repo has: recent commits, open issues (even self-filed ones showing your roadmap), a description, topics/tags, and a profile picture that is not the default GitHub avatar. People scan repos quickly. A repo that looks abandoned before it has even launched will not get stars.

The spike fades. That is normal.

The Dench team documented this well: building in public creates short-lived traffic spikes. You will see a burst of stars on launch day, then it drops off a cliff. This does not mean your project failed. It means the initial signal faded. Agrici Daniel got 8,000 stars across 26 projects in 9 months, but one project (claude-seo) accounted for over half of those [source: agricidaniel.com]. Most of his projects saw modest traction. That is the norm, not the exception.

What matters is whether a small group of people keep using it after the spike. Ten users who actually run your code are worth more than 500 stars from people who bookmarked it and forgot.

Pull Requests: The Double-Edged Sword

Getting your first external PR feels amazing. Someone cared enough about your project to write code for it. Then you open the PR and realize it does not follow your code style, it does not have tests, and the implementation approach conflicts with something you were planning.

PRs can create more work than they save. Here is how to handle them without being a jerk:

Set expectations early

Your CONTRIBUTING.md should specify: code style, testing requirements, PR description format, and whether you want issues filed before PRs. This does not prevent all problems, but it gives you something to point to when a PR does not meet the bar.

Review promptly or say you cannot

Nothing kills contributor motivation like waiting two weeks for a review. If you are busy, comment on the PR with thanks and a specific date when you will review. That is fine. Silence is not.

It is okay to say no

Early on, I accepted PRs I was not happy with because I felt guilty turning away free work. That was a mistake. A PR that adds a feature you do not want becomes your maintenance burden. Be respectful, explain your reasoning, and close it if it does not fit the project direction.

Some PRs are just drive-by

You will get PRs that fix a typo (great, merge immediately), PRs that add a feature the author needed for their own use case (evaluate carefully), and PRs that refactor your entire architecture because someone thinks they know better (almost always close these). The ratio of helpful to burdensome PRs depends on your project complexity. SimpleAIFolio got mostly documentation fixes and small feature additions. OpsConsole, being a desktop app with platform-specific behavior, got more PRs that required careful testing on OS configurations I did not have easy access to.

The Silence After Launch

This is the part nobody writes about.

You spend weeks building something, days writing docs, hours crafting the perfect launch post. You hit publish. You get some stars, some nice comments. Then nothing. The traffic graph flatlines. Issues stop coming in. Stars slow to a trickle.

This happened with OpsConsole. The initial launch got attention — people liked the local-first, no-telemetry pitch. But a terminal workspace is a niche within a niche. Most developers are fine with their current terminal setup. They do not need a saved command library or native PTY sessions. The people who do need it really need it, but that is a small group.

What do you do after the silence?

  • Keep shipping updates. A repo with recent commits signals that the project is alive. Stale repos do not attract new users or contributors.
  • Write about what you are building. Blog posts, dev.to articles, even Twitter threads about specific features. Each piece of content is a new entry point for discovery.
  • Engage with issues, even the small ones. Responsive maintainers build trust. When someone files an issue and you respond in hours, not weeks, they remember.
  • Accept the audience size. Not every project needs 1,000 stars to be worthwhile. If OpsConsole helps 50 developers work more efficiently, that is 50 people whose workflow improved because I built something.

The silence is not failure. It is the default state of most open-source projects. The ones that break through are outliers, not the standard.

Tools vs Products: When Open Source Actually Makes Sense

Here is my core position: open source is worth it for tools, not products.

A tool solves a specific problem. A product is a business. The distinction matters because open source rewards different things.

SimpleAIFolio is a tool. It helps developers build a portfolio and blog without vendor lock-in or headless CMS complexity. If someone forks it and builds their own version, great — the problem gets solved for more people. My value is not in the code being secret. It is in my ongoing development, my documentation, and my willingness to maintain it.

OpsConsole is also a tool. A local-first terminal workspace has no natural business model. I am not going to charge for it. I am not going to add cloud features that require a subscription. Making it open source was obvious — the only way it gains value is through community feedback and contributions.

But if I were building a SaaS product where the code itself is the competitive advantage — a proprietary algorithm, a unique data pipeline, a differentiated user experience that cannot be replicated just by reading the source — I would think hard before open sourcing it. The open-source SaaS playbook that worked for Postiz at $17K/month [source: stackstarts.com] worked because hosting and support were the value, not the code. That is the exception, not the rule. And treating GitHub purely as a marketing channel, as some playbooks suggest, can backfire when the community realizes you are extracting value without giving back.

The test: if your project derives value from ongoing development and community, open source it. If its value comes from the code itself being rare or proprietary, do not.

So, Is Open Source Worth It?

For me, yes. But with caveats.

Open sourcing SimpleAIFolio and OpsConsole gave me things I could not get any other way:

  • Credibility. When I say I can build full-stack applications, people can verify. The code is public. The commit history shows the work. That is worth more than any resume line.
  • Feedback I would not have gotten otherwise. Users found bugs I never hit. Contributors suggested approaches I would not have considered. The projects are better because they are public.
  • Skill development. Maintaining open-source projects forced me to write better documentation, design more thoughtful APIs, and handle code review from both sides. These are skills that transfer to everything else I do.
  • Connections. I have had conversations with developers I never would have met otherwise. Some became collaborators. Some became clients. None of that happens if the code stays on my hard drive.

But it also cost me:

  • Time. Documentation, issue triage, PR reviews, release management — this is unpaid work that takes real hours. Hours I could spend building new things or doing paid work.
  • Emotional energy. Seeing a project you care about get no traction stings. Responding to demanding users who treat you like a free support desk stings more.
  • Context switching. Maintaining two open-source projects alongside client work and new development means constant context switches. That has a cognitive cost.

The break-even point, for me, was when the credibility and feedback started compounding. The first month after launch, open sourcing felt like a cost with no return. By month three, the returns — better code, real users, professional credibility — started outweighing the maintenance burden. By month six, I would do it again without hesitating.

Your calculation might be different. If you are building something you plan to monetize directly, if you do not have the bandwidth for maintenance, or if you are not in a position where public credibility matters for your career, the math changes.

But if you are a solo developer with a tool that solves a real problem, and you are willing to invest in docs and maintenance for a few months to see if it resonates — do it. The worst case is a repo with zero stars that still taught you something. The best case is a project that grows beyond what you could build alone.

Just do not expect the stars to come on their own.

Frequently Asked Questions

  • Should I open source my side project?

    It depends on what the project is and what you want from it. If it is a tool that solves a problem for other developers and its value comes from your ongoing work on it rather than the code being secret, open source it. If it is a product where the code itself is your competitive advantage, or you do not have bandwidth for maintenance, keep it closed. The test: would someone forking your repo help or hurt your goals?

  • Which open source license should I use?

    For most side projects, MIT is the right choice. It is permissive, widely understood, and does not create friction for potential users. Use GPL v3 if you have a specific concern about proprietary forks. Use Apache 2.0 if patent grants matter for your context. Do not spend more than 30 minutes on this decision — the license rarely determines whether a project succeeds.

  • How do I get my first GitHub stars?

    Launch in communities where your target users hang out (Reddit, HN, Dev.to) with a post that explains why you built it, not just what it does. Post Tuesday through Thursday during US morning hours. Make sure your repo looks active before sharing — recent commits, open issues, good README. Accept that the initial spike will fade and focus on the core users who stick around.

  • How much time does maintaining an open source project take?

    More than you expect. Documentation alone can take 30-40% of your total project time. Ongoing maintenance — issue triage, PR reviews, release management, keeping dependencies updated — can consume 2-5 hours per week even for small projects. Plan for this before you launch, not after you are overwhelmed.

  • What should I include in my open source documentation?

    Three essentials: a README that works as a landing page (screenshot, what it is, why it exists, installation in under 5 minutes), a CONTRIBUTING.md that sets expectations for code style and PR format, and a working quickstart guide you have tested on a clean machine. Skip any of these and you will pay for it in support requests.

  • How do I handle pull requests on my open source project?

    Set expectations in your contributing guidelines before you get PRs. Review promptly — if you cannot review within a week, tell the contributor when you will. It is okay to decline PRs that do not fit the project direction; a merged PR you do not want becomes your maintenance burden. Differentiate between typo fixes (merge fast), feature additions (evaluate carefully), and architecture rewrites (almost always close).

References

#Building in Public#Open Source#pull requests#GitHub stars#open source licensing#open source documentation#indie hackers

Comments (0)

Loading comments...