As I've been focusing more and more on my many coding escapades, I've wanted to create a "centralized" place where I can discuss in-depth about what exactly I'm working on at a given moment, as well as provide ways for people to support my endeavors.
You see, all of the projects that I've made and will continue to make, have a few key focuses in mind. When I'm making a project I want it to:
Actually solve a problem that I personally face.
Stay in the scope of what I can actually accomplish.
Remain entirely local.
Be completely free of charge.
Before I even begin drafting the design or writing any code, these are things that I immediately consider when making a project.
Actually solve a problem that I personally face.
Truthfully this should go without saying, but a solution in the search of a problem is hardly a viable solution at all. I have always believed that the best innovations and creations are made when they stem from actual problems first. And my projects are no different.
Let's take for example my latest published project, Chatvoice. I've been very vocal that it's inspiration stems from another app that I've used heavily during my livestreams, Speechchat. But one of the features that I really wanted to have, but wasn't available in Speechchat, was the ability to assign chatters different voices. It would make it easier to distinguish who said what without having to look away from the screen or have the text-to-speech announce the username of each message.
I also didn't like the idea of having to login with my Google account, and then logging in with Twitch to connect the two.
So, I took it upon myself to solve the problem that I personally faced.
Stay in the scope of what I can actually accomplish.
This is honestly a really important thing for me. Though I've dabbled in Qt and GTK, most of my experience in coding is in the web development realm. I have next to zero experience coding a native app on any platform.
Especially for a project that I intend to be public facing in some capacity; I want to make sure that it's in the realm of things that I can actually make. Sure - there's numerous different web frameworks, libraries, and ways of doing things in web-related development that are easier to experiment with and find a best pick for. But that's not what I mean.
Until I am fully comfortable and confident with publicly releasing a project in a new category like a native desktop or mobile app, I want to stay with what I know I can feasibly continue to maintain for years to come.
And yes, I know that branching out and trying new things is one of the best ways to learn. I'm still tinkering with many things behind the scenes, many of which will never see the light of day. I'm just trying to emphasize doing something reliably.
Remain entirely local.
This is what definitely sets me apart from a lot of other projects you can find across the entire internet. For me personally, I avidly hate the idea of being responsible for the safekeeping and handling of potentially sensitive user-data in a centralized database.
Going back to the Chatvoice example, it keeps all of the configurations and assignments stored locally in the browser itself. Complemented with a backup and restore system so that you can still return to a specific configuration at any point. It doesn't even rely on a Twitch account at all; it simply connects to chatrooms anonymously.
While some of my projects can integrate with other APIs, I want all of the information that the app handles to be stored on your own machine so that you have complete and total control over your data. In an age where privacy seems to be a luxury instead of a standard, I want most, if not ALL of my future projects to be entirely self-sufficient and not rely on any database for storing your information.
And while we're at it - outside of the analytics that Cloudflare Pages automatically collects, I don't even receive any telemetry data from any of my apps either.
I really mean it, I want more things to be local and for all user's data to remain private.
Be completely free of charge.
Truthfully, this is one of the hardest things to accomplish - but it's something that I really want to emphasize. It's also why I made this blog post.
While I've considered selling stream widgets in the past, to this date I have not sold or made a penny off of any project that I've ever created. Whether it was the original LtRobot (which was terrible, it shouldn't have made money), the Emote Showcase, Chatvoice, or my upcoming project Peepochat. They have all remained and always will be free.
Look, I didn't grow up rich. The computer that I use today is the result of piece by piece building from YEARS of birthdays and other holidays until I reached the pretty nice setup I have today. I understand what it's like to not be able to afford the latest and greatest technology, streaming services, attractions, and especially as someone who was focused more on creative things - paywalled apps or services.
That's why I think it's important to combine my previous three bullet points alongside keeping things free of charge. Even outside of my bubble of projects, I think it's important that these free resources, apps and services exist so that anybody can express their creativity.
By making sure it's a problem that I need solved, it makes sure that the project is something that I would actually use. By staying in the realm of what I'm confident in shipping, it helps to solidify the future of maintainability for these projects. And by keeping it free and local, these projects have a far greater opportunity to continue to exist in the future without the possibility of a server shutting it down. Especially with open source solutions.
But free isn't always free.
You've likely often heard the saying that "nothing in life is free" or that "if something is free, you're the product instead" and truth be told, these are usually true. But not always.
What I'm instead referring to is the dreaded burn-out that can occur when you are the only person responsible for thanklessly maintaining a project for months or years at a time. You've likely seen the classic XKCD comic that shows what I'm talking about. https://xkcd.com/2347/
Now obviously I'm not going to make a fool of myself. All things considered, none of my projects are considered "staples" that many people rely on. But the reality is that any developer or creator of any size can get burnt out when working on a project without any support. Whether that's help by contributing or helping the developer keep the lights on and everything above board through donations.
And all of that is to wrap back around to the main thing that I want to talk about.
Is Patreon the solution I'm looking for?
I wanted a platform where not only can I neatly share all of the updates for the projects that I'm working on (outside of the occasional Bluesky update post), but somewhere where people can also receive some benefits for helping support the work that I do to maintain things.
One of the projects that I've been heavily working on is the upcoming Peepochat client. It's a Twitch chat client that stays entirely in your browser. It's not an Electron app, it's just a website but with all the features you'd want out of a chat client. Customizable layouts, pings, support for all the emote platforms, etc. With it being a website, it truly becomes the most cross-platform chat client - even including ChromeOS.
(Kind-of makes me wish PWAs were better implemented and more popular. Still waiting on Firefox...)
Needless to say, it's a fairly decent undertaking that I want to give my full attention; especially for something that's intended to be exclusively public facing. And if I'm being honest, that's where Patreon steps in.
I wanted a way to provide some cosmetic benefits in the app in the form of a badge that's available to paying members of my Patreon. That way, all of the features of the app itself remain entirely free to use and you actually receive something by helping to financially support the project and my wellbeing as a person.
In reality, I don't know where the road will actually lead me, but this is what I'm currently thinking of doing. And hey, if you've made it this far, feel free to reach out and leave feedback. And of course, thanks for reading!
❤️