iTranslated by AI

The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article

I Built the Ultimate TODO App — What Happens When You Make the Repository Public

に公開

This article is about making the GitHub repository for a Todo app I've been developing recently public.
The name of the app is Tokeru.

https://github.com/imajoriri/tokeru

Introduction

Tokeru is a macOS app built with Flutter.

In a nutshell, it aims to be an "app that maximizes your daily work performance."
A Todo window, similar to Spotlight or Alfred, opens with the ⇧ ⌘ , key.
It also supports shortcuts, allowing you to create, check off, and close the window using only the keyboard.

Currently, it only has Todo features, but I plan to release features for managing time effectively and organizing thoughts in the future.
Right now, it uses Flutter's Material Design as is, but I intend to focus on the UI and the overall feel as well. (It's just not in that phase yet.)

Tokeru is currently in Beta!
Anyone can try it out, so please feel free to install it via TestFlight.

https://testflight.apple.com/join/LaDGDUKa

Why I Made the Repository Public

As for why I made the repository public, about 80% of the reason is simple curiosity and a desire to have people know about the product.
However, I felt there were various other pros and cons, so I'd like to introduce them here.

https://github.com/imajoriri/tokeru

Benefits of Making it Public

First, let's look at the benefits.

Unlimited Use of GitHub Actions

GitHub Actions has limits on the storage and minutes (per month) you can use depending on your plan. For individual developers, you're likely using the GitHub Free plan.

However, for public repositories, those limits disappear, and you can use it as much as you want!!
Since Tokeru is a macOS app, I need to select macos-latest for builds, which consumes 10 times more minutes than Ubuntu. Having it completely free is incredibly helpful.

GitHub Actions usage is free for standard GitHub-hosted runners and self-hosted runners in public repositories.

Reference: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions

Use Codecov for Free

Codecov, a tool for measuring test coverage, can also be used without limits.
(Actually, I haven't written any tests yet...), but even in personal development, I want to grow into someone who can write solid tests, so I'll introduce Codecov to boost my motivation.

https://about.codecov.io/codecov-free-trial/

Use Various Other GitHub Features

Besides GitHub Actions, there are features available for public repositories even on the Free plan.

  • Draft Pull Requests
  • Branch Protection

Getting Stars Boosts Motivation

Personal development is a long and lonely road.
While you might say it's for learning or for your own use on the surface, deep down, you're filled with a desire for someone to use it and praise you.
Let's be honest.

That said, opportunities for general users to use your app and praise you are rare.
As fellow engineers, let's support each other's motivation by giving stars!!

If you relate to this, please give Tokeru a star!!

https://github.com/imajoriri/tokeru

Feeling Watched Helps Write Better Code

It's inevitable that there's a difference between the code you write at work and the code you write in private.
After all, no one is watching.
In code that no one sees, it's easy to get sloppy or neglect comments...
By creating a situation where people might be looking... 😞, you can encourage yourself to write more careful code.

Disadvantages of Making it Public

Embarrassment

Unless you have considerable confidence in your engineering skills, a feeling of embarrassment is bound to follow.
Especially in personal development, since it's not based on the premise of someone else seeing it, it's easy to write sloppily or neglect comments...

By making it public, you might be able to write as thoroughly as you do at work.

Concerns about Keys and Security

I feel anxious about whether I've included something that shouldn't be made public.
I usually try not to include them in commits, but once it's public, I have to be even more careful.

By the way, I have included Firebase keys, but my understanding is that this is not an issue.
Access to Firestore is restricted using security rules.

https://firebase.google.com/support/guides/security-checklist?hl=ja#understand_api_keys

Concerns about Being Used for Free Continuously

If Tokeru grows and I decide to turn it into a paid product, an engineer could simply clone it and continue using it for free.
As a fellow developer, I want to believe that wouldn't happen, but the concern is not zero.

What I Prepared to Make the Repository Public

Let's Write a README

Make sure to write a thorough README, as it's the first thing people see when they visit your repository.
Of course, you should write about how to set up the environment, but it's also a good idea to include an introduction to the features to get people interested in the product.

https://github.com/imajoriri/tokeru/blob/main/README.md

CONTRIBUTE.md

Write a CONTRIBUTE.md for those who want to contribute.
This article might be helpful for learning how to write one.

https://zenn.dev/hirotomoyamada/articles/711e4727d7a56e#【第4話】-contributing.mdをみる!

Prepare Issues

Prepare some issues in case someone wants to become a contributor!
Also, looking at the issues can show what features are planned for the future, which might get users excited.

https://github.com/imajoriri/tokeru/issues

Branch Protection

Protect the main branch to prevent it from being bombarded with direct pushes.

Security Matters

Make sure to configure the security settings provided by GitHub.

https://docs.github.com/en/code-security/getting-started/github-security-features

Conclusion

Thank you for reading to the end.
I'll post updates on X (Twitter) as well, so please follow me!!
https://twitter.com/imasirooo

Discussion