Hi @neneneche
I don’t use SoundCloud, but I would like to share few tips about working with code and ai. I hope they’re useful, so please take them as suggestions, not criticism. I am writing this, to hopefully encourage you to keep working on this app and make your work a little easier
. My boss decided to vibe-code changes on an app, that I’ve been building for him for +6 months. It was easier to explain things to him, so his code quality wouldn’t degrade the whole project. Not sure what you know about programming, so I structured this as to a non technical vibe coder.
- One way to think about git is like a game. You start it, walk to another city, and save your progress. Later you load that save and you’re back in that city with all your items. In Git, those saves are called commits. It’s helpful to make separate commits for separate changes, for example, one for a new feature and another for a bug fix, so you can review or undo one change without affecting the others.
The idea is to make a change for x, then another change for y, so they don’t end up bundled together and you can “load” the save from after x but before y. Why, you may ask ? Let’s say you push a new feature that adds Related tracks. You build the app, people install it, and they start reporting the feature doesn’t work. On Sailfish this isn’t a huge problem because you can fix it and push again. But with separate commits you also have the option to “load” the last commit that worked and build from that straight away for stores, that do not support installing older versions of your app. eg. Google play store
Since you use claude, you could ask it to help you learn git and use it in your project. Run /init on its own first. It reads your project and writes a CLAUDE.md file, which includes instructions for it. Those instruction do include everything, from how git should work, to how code should look like. It may ask you follow-up questions so the instructions fit your code. Then send it something like this as a normal message:
I’m new to programming and Git. Please guide me through making and releasing changes safely, writing clear commit messages, and using git in this project. Explain what you’re doing and ask me questions when you need to understand what I want. When you finish a distinct change, suggest a commit and explain why it’s a good point to save the work. I work alone, so I don’t need to use separate branches unless there’s a good reason. Please also write these rules into CLAUDE.md so they apply in future sessions.
That last sentence matters. Without it, you’ll have to repeat all of this in every new session.
If you want to learn a little more about how Git works in general, you can watch this video. It’s a 100 second explainer. Might be a little too short, but it covers most of what you’ll use: https://www.youtube.com/watch?v=hwP7WQkmECE
- Keep build files out of the source code repository. Git can track large files, but it’s generally better not to use it for binaries. Git LFS is an option for large files, but I don’t think your project needs it. I can see RPM builds in your repository — for example the harbour-soundsail file in the root directory and RPMS folder. Those are better attached to a GitHub release instead: Releases · neneneche/harbour-sonicsail · GitHub
You already have a .gitignore, so it just needs a few more lines:
RPMS/
harbour-soundsail
harbour-soundcloud
.gitignore only affects files, that git doesn’t track yet. Files that are already committed stay tracked, so you also need to tell Git to forget them:
git rm -r --cached RPMS
git commit -m "Stop tracking build output"
If you want to see how another vibe-codded ( as far as I know ) project handles this, have a look fintube’s .gitignore and LICENSE: GitHub - sandstorm244/harbour-fintube · GitHub. I’m not saying copy everything from it, just that the layout is a reasonable reference. You can also paste this whole point to Claude and it’ll help you do it.
- When you make a new release, the code should be bound to it. At the moment you do that by pushing a commit called
x.x.x update. That’s a good start, but it’s worth also creating an actual release at Releases · neneneche/harbour-sonicsail · GitHub. The usual way is to mar version with a tag first:
git tag v1.2.0
git push --tags
Then github lets you create a release from that tag and attach the RPM. That way anyone can open the releases tab, download the package for a chosen version, and see the exact code it was built from.
-
Consider adding a changelog. It helps users understand what the app does and what has changed, especially if they find the project without seeing the forum thread you start writing release notes, that more or less becomes your changelog.
-
Your project has no LICENSE file, even though the readme says See repository license (BSD-3-Clause unless otherwise noted). That note points at a file that isn’t there. It’s worth fixing.
About openrepos: the site is in read-only mode because of a php issue, so nothing new can be published there for now: Openrepos is in Read-Only Mode | OpenRepos.net — Community Repository System
Ps. If you’d like a hand with Git or the app, feel free to ask
I am not a c++ developer, but I might still be useful.