Git should be used for things that Git was not intended for

Git is a very useful tool in my life as a programmer. It allows me to collaborate with peers, contribute to open source, create NPM packages (etc), and just have a nice neat place to store my code.

And that's what it's meant for, storing code.

But what if we just used it for everything? At least everything that might need communicative collaboration--which, besides code, can range from a group project essay, to a gallery of art, to a web series. There are so many uses of collaboration software, which is one of the main reasons we have things like Google Drive and Microsoft Office. But I hate Google, and I hate Microsoft. And Office costs money if I remember correctly, and at least Google Drive isn't a great place to keep public projects because it exposes your email to everyone who sees the file. I could go on and on about reasons not to use either of these products, but the point is, I'd rather use git.

GitHub is currently full of projects that are related to fields outside of technology, but most are still code or tech-adjacent. For example, awesome lists that provide links to cool development tools, or FreeSewing, which is, as the name suggests, about sewing, but the GitHub repository isn't full of PDF patterns or what have you--it's full of code. It technically also has sewing instructions, but the reason those are on the GitHub repo are so that they can be displayed on the website. All of this makes perfect sense, but what I'm proposing is to go a little further away from the theme.

Collaborative (or solo) creative pursuits

I have a GitHub profile dedicated to code, in which I contribute to the FreeSewing repo (and hopefully eventually other open source repos) and store my own code publicly or privately. I have an NPM package posted there, and will be using it for plenty of technological pursuits. But I also have an alt. It has no public repositories yet, but this is where I'm working on a TV show I'm trying to write (that I will eventually open source the scripts of), and this is where I'll be posting a directory of open source kids' books that people can publish with their own art.

So far I haven't seen a lot of this using git for creative pursuits that have nothing to do with programming. I'd love to see more open-sourcing of things that aren't software, and even if you're just collaborating with something you don't want to be open source, you can always create a private repository. As far as I'm aware, any file type can be saved in a git repo (and GitHub can't display/edit all of them, but GitHub isn't the only way to use git!), and I just found out that you can even view 3d files on GitHub as long as they're in the .stl format (which makes sense, since 3d printing is a very technological way to use 3d files). I'm sure that most git softwares (GitHub, GitLab, etc) have a limit on storage, but from what I've seen it's pretty hard to hit on big servers. If you're on someone's personal Gitea server hosted on their computer, don't be a dick, but if you're on GitHub you can store a lot of small files.

Video series

You can use a git repo as the CDN or even UX of a video series if you want, as long as those video don't go above any storage limits. If you're hosting your own Gitea server, you're basically just using your device or hosting service as such. Here are some ways this could work:

Markdown pages

Have markdown pages in your repo itself for people to explore, and link videos and subtitles on the page. It should let you, at least if you use HTML in the markdown document. This may be tedious and inefficient, though, because you'll have to have it all hardcoded in the document(s).

CDN

Another option is to host your own website with either dynamic routing or a single page that changes the DOM when people click buttons/links.
In this case, you can have a template like:
```
<video controls>
<source src="https://cdn.statically.io/gh/user/repo/video/series/season/episode.mp4">
<track default kind="captions" srclang="language" src="https://cdn.statically.io/gh/user/repo/captions/series/season/episode/language.srt">
</video>
```
(Yes, I know, this isn't markdown, but the syntax helps me tell that it's code). Substitute your user, repo, file paths, and languages as needed, and voila! The easiest way to change between previous and next episodes would be to label them by order (eg 01/01.mkv or 0101.mp4 or 01/01/video.mov).
This method would require a public repo, and the above would require a public or shared repo.

Friend file share repo

Use a single repo for everyone in a friend group or class or club to share files with each other, from class projects to music to memes. Make sure to keep this "private" and share it with everyone you want to give access!

Blogs

Git software such as GitHub display markdown in a nice way, and the ability to choose your own file structure could make for a pretty interesting blog. Plus, you can do your blog right from your own text editor on your computer without having to copy and paste anything! Now if only I could so easily post on Patreon from VS Code!

Comments

Popular posts from this blog

The chronicles of trying to restore my old laptop

FOSSifying my home | Project One: Media Center (Planning)

Mutual aid: "Investing" in your community