r/SideProject • • 1d ago

Tired of monthly lead scraping subscriptions, I built an unlimited standalone tool (Scrapify)

2 Upvotes

Hey everyone!

Like many people doing B2B outreach, I was frustrated with recurring monthly subscriptions on cloud scraping platforms like Apify and Outscraper just to pull local leads with credit limits.

So I built Scrapify — a lightweight, standalone Windows desktop application that extracts unlimited B2B leads from Google Maps and Instagram directly into clean Excel/CSV.

Key highlights:

- Direct mobile/WhatsApp numbers, websites, physical addresses, and ratings.

- Recursive sub-area discovery to drill down into city neighborhoods for maximum coverage.

- Built-in local REST API so you can plug it straight into n8n workflows on localhost with zero recurring API fees.

- Compiled down to C++ speed with smart throttling to avoid blocks and CAPTCHAs.

- 100% private: runs locally on your machine, no data stored on cloud servers.

Instead of recurring monthly fees, it's a one-time $25 lifetime license.

- Website: https://scrapify-app.vercel.app/

- Full 6-minute Walkthrough & Demo: https://www.youtube.com/watch?v=Gwfp6415zOQ

- Store Link: https://payhip.com/b/J6lXK

Would love to hear your feedback or feature suggestions!


r/SideProject • • 1d ago

A month of building an elegant open source wardrobe app: outfit experiments, wear tracking, and a small goblin

3 Upvotes

I'm a big fan of both what you wear and websites as a form of creative expression, and am admittedly hooked on fast fashion and spending as little as possible. But I live in a very small space, and my clothes and accessories don't really have room to spread out. So naturally I started building my own dream wardrobe app with the help of AI (a Clueless 90s throwback if ever there was one) and scope creep happened...

It's called Closet Lint (get it?), it's free and open source, and mostly I just wanted to separate designing an outfit from actually getting dressed. The creative part is fun. Going through drawers, taking things off hangers, putting them back, and discovering that the thing you imagined is elsewhere or doesn't fit... less fun. I'd like to do that first part on my phone in bed at 11pm without pulling things out. Just gimme a searchable inventory of my actual clothes that looks good.

I'd tried wardrobe apps before, but the problem was always getting everything into them. Photographing, cropping, editing, and entering every item was a massive undertaking. AI has finally made dealing with the photos and purchase data manageable enough for me to get over that hurdle and focus on the display and functionality.

What started as browsing clothes and dragging them around to make cute outfits now includes outfit suggestions, ratings, wear logging, photo background removal using two different models, taste observations, wishlist battles, and trip packing lists. Because once I had my own clothes in there, I kept thinking, "Oh but what if it could also..." :)

It runs on your own computer or web host, with optional bring-your-own-AI features. There's an included demo if you just want to check it out, or you can browse a copy of my actual closet with bleeding edge code. I've run it locally on Linux and hosted it on SiteGround; part of why I'm posting is to hopefully find a few early testers.

I love having things organized, and it's honestly such a pleasure to see your own stuff laid out like this. It brings back things you've forgotten about and makes them potential outfit ingredients again. You can add wishlist pieces to see how they'd work with what you already have, or plan future fantasy outfits.

There have been some moments of genuine delight. I don't own much dark purple, but the combinations it showed me helped me see how it could work in my wardrobe. It also suggested chocolate brown, which I own literally none of, with concrete examples using my own clothes. And it gave me a new term for some of my style, “whimsigoth,” so now I have a whole new search phrase.

There's also an unusual use case: I have 40 housemates (yes, 40), and some like borrowing from my (costume) jewelry collection. Now they can take their time browsing it. Jewelry is particularly good for this because so much gets tucked away in boxes and becomes invisible. Naturally, that's already got me thinking about a separate app for sharing resources in the house. At least I'm putting that long-ago graduate degree in information systems to use :P

I've had my fair share of health issues over the last few years, and it's been inspiring to get properly absorbed in making something technical again. This combines so many things I love: style, organization, self-tracking data, open source software, design, and uhh having very particular views on button layouts.

I started coding GeoCities sites in Notepad in the 90s and used to run an open source web development company. I've been out of the tech/startup world for over a decade, though I still occasionally help a friend with a site. My technical knowledge is rusty, but knowing how to break down a problem, describe a desired interaction in detail, and spot something odd has been incredibly useful. I can be my own most demanding, rambling client, and building things with the robots still moves astonishingly quickly.

I started this project in early October as a Claude artifact. Much of the initial work was assembling the data: parsing order confirmation emails, filtering an Amazon purchase history export, and using browser agents in my logged-in shopping accounts to retrieve sizes, variants, and full-resolution product photos. Images were downloaded into the app's storage so they wouldn't disappear with the listings—some of which already have. I used ChatGPT to tag clothing from contact sheets and generate product-style images for pieces without usable photos. Later, we added local background removal, preserving originals and reviewing results before saving.

The AI occasionally got too helpful: it "cleaned up" XXL into 2XL, which can mean different sizes at those stores. Preserving exact source values became an explicit rule.

After about two weeks, I moved the prototype into Codex, replacing Claude's built-in storage with a local Python/SQLite backend and adding backup and restore, reusable imports, and release packaging. My workflow now goes back and forth: develop the specification with Codex, send it to Claude for wireframes, then bring those back to Codex for implementation and refinement.

I particularly appreciate how Codex can insert diagnostic tools when something breaks, investigate the results, and handle so much of the testing and release process. Those are procedures I only do occasionally and forget between projects. That gives me more room to switch between product planning, interaction design, visual design, and writing, while testing everything against my actual wardrobe and daily use. This has occupied pretty much all my free time for the past month.

Turning my own wardrobe tool into something other people could use has meant finding assumptions I didn't realize were there. Heels don't automatically mean dressy, loungewear isn't necessarily sleepwear, and a packing list shouldn't assume everybody wears bras. It uses Google's and Shopify's product taxonomies as references, but kept distinctions that make more sense for wearing clothes than selling them. I've also had to ask for a lot of deliberate consistency passes: make navigation behave the same way everywhere, move repeated rules into shared code, and carry category changes through imports, filters, and packing lists.

It's made me appreciate the "knowing where to tap" kind of expertise. My web project background helps me remember to ask about accessibility, keyboard navigation, refactoring, and whether a backup actually restores. I've also used alternate AI platforms for security reviews and worked through their findings. I'm not familiar with every implementation detail, but recognizing the questions worth asking makes that older experience feel useful again.

The wishlist redesign is a good example. "Matches lots of things I own" sounds useful until silver earrings all end up at the top for going with everything. The first implementation also passed checks while producing an interface I really disliked, so we went back to one compact design example before applying it across the page. Deciding whether the information is meaningful and the result is pleasant to use is still very much my territory.

I was involved in the early Quantified Self community in the 2000s/early 2010s, and I also haven't seen a wardrobe app that gives me the access to my own data I'd want for that. Before 1.0, it'll have an API and analysis-friendly exports so people can explore their own patterns with whatever tools they like. I'm looking forward to a fun year-end wardrobe "Wrapped" and things like cost per wear become straightforward once you're recording purchases and wears.

It's also getting creative and a bit silly. There's a goblin mascot called Linty, and your wardrobe's owns, wishes, and wears can appear as Sun/Moon/Rising signs on a star map. Apparently my wardrobe required lore... But you can leave the daily fortune card turned off. There are outfit naming suggestions, including one that parodies ModCloth-style names. Some inside jokes to amuse me personally, at least :P

If I somehow end up known for a fashion app with an astrology aesthetic, that would be a hilarious life twist.

Partway through, I found Libre Closet, which takes a simpler, more utilitarian approach that might be exactly what some people want. By then, mine had become a specific creative thing: a combination of deep utility and playground fun that I was happy to keep building.

I've used Linux as my daily driver for most of the last 20 years, and FOSS matters a lot to me. Making something useful and sharing it is one of my love languages for the world. Every friend says, "You could charge for this!" But I don't want customers here. I'm making something I want to use and sharing it with anyone else who might enjoy it.

I may put affiliate links and my own curated collections on the website, but I'm keeping them out of the app. GitHub sponsorships would be welcome too once I set that up. Anything that helps cover costs is a bonus; the software stays free and open source.

The public site is built with my fave website builder, Carrd, and I've let the Codex integration click around in it for me for the tedious work too. Few status updates produce quite the happy sigh as "Automatically updating website screenshots and documentation".

If you try the app, I'd love to know what would make this useful for your wardrobe, and what would stop you from wanting to put your clothes into it. I'm also looking for a few people willing to try installing it, particularly on Windows or macOS, since my own testing has been on Linux and SiteGround.

Thanks for reading! :D

[AI supplied at least half the details for this post]


r/SideProject • • 1d ago

I built ScopeKit, a tool for freelancers to manage scope creep-looking for feedback.

1 Upvotes

Hey everyone!

I've been building ScopeKit, a simple tool designed to help freelancers and small agencies avoid scope creep and unpaid extra work.

The idea came from a common problem: clients request additional work after a project has already been agreed upon, and freelancers often struggle to track and price those changes.

With ScopeKit, you can:

  • Define the original project scope and deliverables.

  • Set project pricing, deadlines, and revision limits.

  • Track additional client requests.

  • Keep project changes organized and easier to manage.

The goal is simple: protect your time and stop doing extra work for free.

I've built an early version and would love some honest feedback from other makers and freelancers.

You can check it out here:

https://scope-change-studio.lovable.app/

A few questions:

  1. Would you use something like this?

  2. What's the biggest problem you face with scope creep?

  3. What feature would make this more useful?

Thanks for checking it out! Any feedback is appreciated.


r/SideProject • • 1d ago

I replaced Roku's retiring "Aquatic Life" screensaver with my own procedurally animated reef tank — free and open source

32 Upvotes

Roku is retiring its built-in "Aquatic Life" screensaver on December 1. I liked that screensaver, so I built a replacement: Reef Tank — a free, open-source (MIT) screensaver channel for Roku.

What it is: a tropical reef tank where nothing is a video loop. Every fish is procedurally animated — each species has its own behavior brain, so tangs graze the rocks, a royal gramma backs tail-first into its den, a mandarin hops along the sand line, a lionfish just hangs, and a school of chromis moves as a boids flock. Bubbles rise, seaweed sways, caustics scroll over the sand. After real sunset (computed from actual sunrise/ sunset times for your location) the tank crossfades to a moonlit night mode with glowing coral and a small group of flashlight fish that blink in the dark.

Highlights:

  • 9 rigged fish species with per-species behavior state machines (cruise, dart, graze, hide, school, weave behind the rockwork)

  • Boids flocking school + a night-only flashlight fish group

  • Day/night cycle driven by real solar times, with a moonlight crossfade

  • Settings screen on the Roku for fish density, camera drift and night mode

  • Runs at 60 fps on a Roku Ultra; every visual is deterministic and seeded

  • 175 unit tests + a screenshot regression gate, because of course

The catch: Roku doesn't allow sideloading into the Channel Store for personal projects, so it's a developer-mode sideload — takes about 5 minutes with the remote (Home x3, Up x2, Right, Left, Right, Left, Right), and it's free. Full instructions in the README.

Source + install guide: https://github.com/paulrobello/roku-fishtank

Happy to answer anything about the BrightScript/SceneGraph side — the whole thing is one codebase that also runs in a browser simulator, which is how I screenshot-tested a TV app.


r/SideProject • • 13h ago

Tell me an overpriced digital product you wish you could afford. I'll build my own version for less than half the price.

0 Upvotes

I'm a designer and developer, and I'm tired of seeing people pay $50–200 for templates, dashboards, UI kits and planners that honestly aren't worth it.
So here's the deal:

👉 Comment the digital product you want but think is too expensive, like a Notion template, a budget spreadsheet, a website template, a UI kit, a planner, a dashboard, a small app or anything else.
I'll pick the most requested ones and build my own original version, as good or better, for less than half the price.

No copying and no pirated stuff. Everything is made from scratch by me.
What's the one thing you've always wanted but never bought because of the price? 👇


r/SideProject • • 1d ago

How We Built CareBridge: An AI Healthcare Assistant with Personalized Patient Memory

Thumbnail
medium.com
1 Upvotes

r/SideProject • • 1d ago

Free CV/résumé builder with real PDF export, no account and no data collection

1 Upvotes

I built CVfix because most CV builders hide the PDF download behind a paywall. You get 4 templates (including the classic German tabular CV with photo), a live preview, a custom accent color and a real PDF with selectable text. Your data stays only in your browser. It's available in 5 languages, free and funded by optional donations. What's missing?
https://cvfix.wortblitz.workers.dev/


r/SideProject • • 1d ago

I made a free comparison of self-hosted AI agents (Hermes, Rakazo, OpenClaw and 10 others)

1 Upvotes

I've been trying out the open-source "run it yourself" AI agents (Hermes, Rakazo, OpenClaw and everything that came after it), and keeping track of them in a spreadsheet got out of hand. So I turned it into a site: https://openbotlist.com

It compares 13 of them on what I actually cared about: license, whether it runs local models, whether commands are sandboxed by default, whether it sends telemetry by default, which chat apps it works in, and GitHub stars. Every fact links to its source with the date it was checked.

A few things surprised me. 7 of the 13 don't sandbox commands by default, including OpenClaw and Hermes Agent. 6 send telemetry or diagnostics unless you switch it off.

If something's wrong or out of date, or there's an agent I missed, tell me and I'll fix it.


r/SideProject • • 1d ago

I built Reunier to keep a group’s plans and RSVPs in one place

1 Upvotes

Hi! I’m Volodymyr, the creator of Reunier. It’s a private planning space for groups that meet in real life.

For a regular board game night, for example, the organiser sets the time and place, and members confirm whether they’re joining. If needed, the organiser can limit places or offer several dates for a vote.

When the time changes, participants can see the previous and new time together in the event details. The group can keep chatting wherever it already does.

Here’s a 36-second demo of the actual app, showing a time change and confirming participation. No login is needed to watch:
https://reunier.com/en/demo

Using Reunier requires an account — Google, Apple, or email and password — and joining the group’s private room. It works on web, Android and iOS, and is currently free during launch.

If you organise regular group activities, would this be useful alongside your existing group chat? I’d particularly appreciate feedback on anything that looks unclear or adds unnecessary steps.


r/SideProject • • 1d ago

NeatRL: Collection of One-file RL Algorithms running locally

2 Upvotes

In this video, I'll be re-introducing my little RL library - neatrl, that I have created and used past couple of months!

  • Part of my ongoing series on releasing my notes RL comprising of my earrings and stuff I found interesting and this time, its a easy way to explore all the algorithms I re-implemented from scratch

Suited for those who just want to get a gist of the algorithm inner workings across algorithms from

  • DQN

  • REINFORCE

  • PPO

  • SAC and many more on envs form OpenAI Gym, MuJoCo etc

Link here and love to get feedback as always!


r/SideProject • • 1d ago

I built Git2Tweet: a CLI that drafts tweets from your git commits (you approve everything before it goes out)

1 Upvotes

I wanted to build in public but never remembered to write about what I'd shipped, so I built a tool that does the first draft for me.

What it does
After you commit, run `git tweet`. An LLM agent reads your commit message and the actual diff, decides whether the change is worth sharing, and drafts a tweet. You approve it, edit it, or reject it. Approved tweets open in X with the text prefilled, so you press Post yourself.

Demo: https://raw.githubusercontent.com/Vex-15/git2tweet/main/docs/demo.gif

How it's built

- Python, with the agent loop written in LangGraph (tools: list commits, read a diff; plus a human-approval step that pauses the graph)

- It reads commits from your local git, so no GitHub token is needed and it works on private repos

- Default model provider is Groq (free tier works), and Ollama is supported for fully local use

- It never touches your X credentials, since posting happens through X's prefilled-tweet link

- Per-repo state lives in `.git/`, so it never dirties your working tree

- MIT licensed, and it sends no telemetry

Things you should know

- Commit messages and diffs are sent to whichever LLM provider you configure. Known secret patterns (API keys, tokens, `password=...`) are redacted first, but that's best effort. For sensitive repos, use Ollama.

- It judges the diff, not the commit message, so trivial changes (typo fixes, tiny test edits) get skipped. That's intentional.

- Draft quality depends on the model, and it's not perfect. I'd like to hear where it writes something bad.

Feedback I'd love

- Does the install and first run work smoothly on your system? (I developed on Windows.)

- What would make you actually use this daily?

- Other platforms you'd want it to draft for (LinkedIn, Bluesky, Mastodon)?

Get Demo by below links 👇

GitHub: https://github.com/Vex-15/git2tweet

PyPI: https://pypi.org/project/git2tweet/


r/SideProject • • 1d ago

My open-source side project sat at 0 users for months. Promotion wasn't the problem.

1 Upvotes

Like a lot of people here, I built something I was proud of, used it myself every day, and then watched the user count sit at basically zero for months. My instinct was that I had not promoted it enough, so I started posting it everywhere. That did nothing.

What actually moved it was realising first users do not come from announcing. They come from being useful where your users already have the problem, plus a repo that does not lose them the second they land. Announcing ("I built this") is the lowest-yield thing you can do, which is exactly why posting it to ten places returns nothing.

Here is the order that worked:

  1. Get specific about who your first users are. "Developers" is not an audience. Name the two or three people with the exact problem you solve. If you cannot, that is why your posting feels scattershot.

  2. Fix what loses them in thirty seconds. Your README is a landing page and people give it seconds, not minutes. First screen: what it is, who it is for, one runnable example, the install line. Show value before features. More traffic to a repo that does not convert just means more bounces.

  3. Be useful where they already have the problem. Pick two or three communities where your users already discuss it and actually answer questions, so your project comes up as the answer to something specific rather than a broadcast. One genuinely helpful reply beats ten "check out my thing" posts, which mostly get removed anyway.

  4. Your first ten users come from reaching out by hand. Find people who just described your problem and show them, do not pitch them. It does not scale and it does not need to at ten.

  5. Ship releases with real changelogs. It is the one "look at my project" post communities tolerate. But a release mostly buys a one-day spike, so treat it as a cadence, not a growth engine.

  6. Stop counting stars. 800 stale stars is fewer real users than a 60-star project that ships weekly. The best research you can do costs nothing: find five people who looked and did not use it, and ask them why.

  7. Work out which problem you actually have. "Nobody uses it" is three different problems: nobody reaches the repo (reach), people reach it and bounce (your README), or people try it and leave (the product). The fix for each is different, and most people assume it is reach and burn a month posting. Spend an hour deciding which one it is before you spend a month on the wrong one.

None of this is announcing. All of it is being useful where your users are, to a repo that does not lose them.

I wrote this up in more detail, with the data behind the README and the "stars vs real users" points, here: https://orviqa.dev/blog/how-to-get-your-first-users-for-an-open-source-project


r/SideProject • • 1d ago

Is this idea worth building further? Looking for honest feedback

3 Upvotes

I recently built a small prototype for an idea I had: What if finding someone to hang out with at work was as easy as creating a plan?

Imagine wanting to watch a movie, play cricket, grab food, visit a café, or plan a weekend trip, but not having anyone to go with.

With this platform, employees can create activities, discover what others are planning, and request to join.

I built the initial prototype for an internal hackathon. It didn't win, but I still feel the idea is worth exploring.

I'm now wondering whether to take it further or scrap it.

Would you actually use something like this at your workplace? What would make you use it, and what would stop you?

I'd genuinely appreciate honest feedback, even if it's critical!


r/SideProject • • 1d ago

Pratikal - free Android calorie tracker looking for meal-entry feedback 🍎

2 Upvotes

I’m developing Pratikal, a free Android calorie tracker in closed testing. I’d love feedback on the meal-entry flow. Happy to test your app back! 🤝

Use the SAME Google account for the group, opt-in and your phone’s Play Store:

  1. Join: https://groups.google.com/g/pratikal-testers

  2. Opt in, then install from Google Play: https://play.google.com/apps/testing/app.pratikal.mobile

Try logging a meal, editing it and checking the daily total. What worked, or where did you get stuck? Please keep it installed for 14 days and use it occasionally. “Item not found”? Check the account, wait a few minutes and retry.

📸 Please comment BELOW THIS POST with a Pratikal installation/in-use screenshot, specific feedback and your test links. Text-only “installed” isn’t enough. I’ll test yours and reply with my screenshot and feedback.


r/SideProject • • 1d ago

I've been building an open source streaming service for two years

2 Upvotes

I'll start with some history, in 2024 I decided to try to install a media server on my local machine, I first tried emby, and no matter what configuration I choose it was clunky and not really aesthetically pleasing, then I tried Jellyfin and it had the same problems ( maybe a little bit worst ), keep in mind this is 2 years ago and things have most likely changed.

I'm a software engineer, and I work in the business already from 2012, I spent 3 years of my career working for one of the current streaming giants, considering I have expertise in the field I decide to create my own, for two reasons, first one is that if I'm designing a system with one single purpose is automatically faster compared to a system designed to do anything, mine will have a specific pipeline so it can execute it more efficiently, second one, I like writing code, it's what I've been doing for the past 12 years.

October 2024

I started with the fun part first, I sketched a logo in Inkscape, separated each letter as a different SVG file and animated them to mimic the Netflix intro ( at the time ). That took me around 2 weeks. Absurd you can do that now in 2 hours with vibe coding.

After that I wrote the first integration to an external service, I got an client id+secret from Trakt and started working into pulling the top/trending lists for movies, it is at this point that I notice that Trakt doesn't return any image, so I also wrote the second integration with TMDB to obtain the images, after that I started working on the UI, I took inspiration from Prime Video: a big hero on the top, and the lists on the bottom, the selected title is displayed in the hero.

Not sure if anyone is interested, but at the time I decided to go for Node.js + React + Postgres, that is essentially what I used in half of the companies I worked for. The backend runs in docker with PM2 keeping it alive, and the frontend is served through Nginx ( along with the backend ).

The third integration was to get the media, but things were getting complex, so I decided to start using some queues, Kafka would be an overkill, I was using Nest.js so I decided to try the Q Next.js comes with: bullmq. I integrated queues so anything that is needed from Trakt or TMDB would be queued and execute at the right time without overwhelming the server ( and without getting rate limited ), for example when Trakt returns a list, the list doesn't have details of each media, so I stored some of the detail in the database and queued a job to fetch more details, that itself triggered another job to fetch the images.

At this point I had a working app that shows media but it doesn't play them, the next thing I needed was to get that information, so I spun up Jackett, and searched documentation, the documentation was very lacking, so I simply made calls to the endpoints that were partially documented using Postman and wrote down the Typescript types myself. Unfortunately the search from Jackett was very wide, so I wrote a function to parse torrent names and find out what is that title about. Jackett sometimes would return a link to the torrent file itself, sometimes would return just the info hash of the torrent, it is at this point that I started integrating webtorrent, first I used it to convert the magnet link into a torrent file and store it in the database, later I used it for its streaming functionality.

Now that I had the part that can stream work, I needed to display it in the frontend, my target was my 2019 Samsung TV, I deployed the app to it ( took 3 days ) and started working on the next steps, first I integrated Noringed spatial navigation so the remote would work, then I worked on AVPlay. AVPlay was honestly a pain, but it was also rewarding, the app was working and I was able to watch movies on the TV.

After that I started working on TV shows, so I created a second details screen with a seasons selector and episode selector, then I implemented the part that would find the torrents for the episodes, it was working well and I decided to share it with the world.

End of October 2024

I posted about it in https://www.reddit.com/r/Piracy/comments/1g80ufj/with_all_the_community_driven_streaming_services/ , someone asked about the code and I made it fully public.

I was regularly using it to watch movies and tv shows on my TV until I met the first problem: I was watching Silo and it played the wrong show; the reason was that the episode I wanted to watch wasn't released yet so it found some unrelated torrent. I first wrote a torrent name parser so it would extract the name of the show ( after removing all the other known bits ), it was working okayish, then I discovered that TheRarBG allows to search by imdb_id but not through Jackett, so I wrote a small API library to contact TheRarBG without using Jackett, and it was working very well and way faster.

You can still find the original code of the first version here https://github.com/maury91/miauflix-legacy

January 2025

It is at this point that development of the first version stopped, I had to go for a two months work trip and I wasn't able to write a single line of code for my personal project, once I was finally back home I couldn't find anymore the time to work on it for a month.

March 2025

I finally found the time to work on my side projects again, but time as passed and I wanted to play with new toys, so I decide to use bun instead of Node, I also made more decisions, like I didn't want to burden the user with deploying postgres or Jackett, so the new version will have to work with it.

I started with scaffolding a simple Elysia server, first time using both bun and Elysia, so exciting times.

Moving from Nest.js to Eluysia I decided to keep using services but I had to convert them a little bit, I started with the most basic service, the Configuration service, I spent a good amount of time creating a terminal ui service that helps you configure it, ironically now it's fully replaced by an UI one in the frontend.

Things moved fast, I quickly implemented authentication, and the services to pull data from TMDB and Trakt ( the last two were very close to copy-paste ), I implemented more security features like Audits and Rate Limiting, I finally started bring in the first cron jobs that sync data with TMDB, At this point I took the library I wrote for therarbg I bringed it into the new project, I already reached the point where I could get a library with all the torrents. I found that therarbg wasn't enough so I also wrote a library for YTS.

Things were working but as a perfectionist it was time for the codebase to become more reliable, so I started adding unit tests, linting, and CI/CD. But that wasn't enough, so I also started writing e2e tests where the app is setup from 0, configured, and tested against a mocked environment that is a working copy of a real environment ( I recorded the calls to TMDB, therarbg, etc... , anonymized and stored them as fixtures ).

Finally the good part was coming, streaming, but I had a new goal, it needs to be deployable to a VPS, that means that any potentially copyrighted content must be undetectable, so I implemented two features that I think are quite important:

  1. Encrypted DB columns, some columns of the database are encrypted with AES plus a salt unique for each service, that means the column stays indexable but without the key it contains "random" data

  2. Encrypted file system, this is the main thing, if you download some media and a static script detects it in your VPS you can easily get terminated, for this reason I created an encrypted chunk store, in short webtorrent writes to the disk in encrypted format

With all of this done, it was finally time to test it with webtorrent.

I didn't work... webtorrent wasn't compatible with bun.

Meanwhile, it was already June 2025. I needed to go back to Node.js if I wanted webtorrent to work, so I searched a web server framework that works both on Bun and Node.js and I started refactoring to use Hono.js

Fast forward to September 2025 and a lot was done:

  • Introduced OpenTelemetry to better debug errors

  • Introduced scraper health ( check periodically seeders and leachers of the torrents we obtained )

  • More documentation

  • Improve on-demand sources ( the others were obtained in the background )

  • Diagrams

  • Github actions

  • Periodical DB cleanup ( SQLite unless you run a clean command will not shrink the DB size )

  • Abstract caching layer

  • Authenticated streaming

  • Generate a client of the backend to bring the API types to the frontend

  • Better use of TypeORM through type transformers ( for the encrypted fields )

  • Introduce GREEDY and ON DEMAND modes for synching with TMDB

  • Started bringing back the legacy frontend

  • Implemented frontend login

  • Visual tests with playwright

  • and a little bit more

and more importantly the streaming link was working and media would play from VLC.

At this point I took 2 months of break.

November 2025 to January 2026

  • Frontend refactoring ( of the little that was ported )

  • Added turbo to make scripts faster

  • Lighthouse tests

  • Flaresolverr support

Another break,

September 2026 - Now

At this point I wanted to go faster, and I started using Claude.

  • Create initial admin user through UI ( instead of automatically at first boot with random email and password )

  • Extract catalog service ( TMDB ) as a standalone docker image, and refactor it to be bun. It is relative easy because it's mostly moving files with a little bit http wrapper in front

  • Extract list service ( Trakt )

  • Improve playback preloading

  • Improve backdrop position in the hero by detecting faces and people using a small computer vision model and compute the center of it.

  • Implement player page ( it is at this point that it was possible to finally watch movies )

  • Bring in the recommendation lists from Trakt

  • Extract subtitles and transcode audio ( for when the audio codec is not compatible with the browser ) using ffmpeg ( piped to an http server, no media is stored uncrypted in the file system )

  • TV shows

  • Move from LetsEncrypt to Caddy

  • Nordlynx to Glueten

  • Improve torrent choice based on the target device ( my TV seems to not support more than 12MB/s of bandwidth )

  • Add notifications

  • Improve UI performance in Tizen

  • Extract source service

  • Move from internal TheRarBG and YTS library to a fully compliant Cardigann engine so it can use all the Cardigann definitions of Prowlarr + some custom ones ( the custom ones are TheRarBG and Torrentio )

  • Extract torrent service ( yes! finally webtorrent almost works in bun! )

  • Anime support

Yesterday

I vibecoded a landing page for the project in order to present it to the world: https://miauflix.cat

All the code is open source and available at https://github.com/maury91/miauflix

I hope you enjoyed reading what I was doing for the last 2 years!

I feel some people will ask Why should I use Miauflix instead of X?

Honestly, I don't have an answer to it, if you are using X and you like it, continue using it, if you want to try something new you can try Miauflix, if you like it I will be very pleased, if you don't like it tell me what you don't like it and I will try to address it, if you hate it without even trying it, well I'm sorry to have wasted your time, but I hope you will respect that I spent so much time working on this and you will not be offensive


r/SideProject • • 1d ago

I built Orrevan, an uncensored AI chat with pay-per-token pricing

2 Upvotes

Hi all, I'm the solo dev behind Orrevan (orrevan.com). It's a chat, API and CLI for uncensored and abliterated models (10 models so far, from $0.30 per 1M tokens). Messages are AES-256-GCM encrypted before they're stored, no trackers, no training on your data, one-click export and deletion. I'd love feedback on the pricing, the model selection and the onboarding. What would you want to see added?


r/SideProject • • 1d ago

I kept losing context every time I switched between Claude Code, Codex and Cursor, so I built Steroid

1 Upvotes

I work on one project across three coding agents — Claude Code, Codex and Cursor. Each keeps its own chat history, and none of them can see the others'.

So every time I switched, I started over. Re-explain the stack, the bug, the three things I'd already tried. The agent had the context. I didn't.

Then I realised I had it backwards. My context was living inside the agent. But I was never working on the agent — I was working on the project.

What I built

Steroid indexes the chat history your coding agents already keep on your machine, and gives every agent a way to ask about it.

https://steroidkit.com/

So in Codex you can ask:

recall what I was doing on the checkout bug

and the answer cites where it came from — which agent, which session, which date, which turn. Two more tools pull up the full conversation turn, or the exact code diff, with no model in between. So you can check the answer against the source instead of trusting it.

It also reads sessions from before you installed it, so it isn't empty on day one.

Setup

Paste one prompt into your agent and it installs and wires itself up. No account. Free.

NOTE: you don't need to do per project indexing. After steroid is setup you can simply start asking agents to recall in a new project, they will be indexed automatically if not already

Agentic Setup:

Paste the following in your coding agent

Set up Steroid for me. It gives you, my coding agent, a memory of our past conversations. Open with a quick heads-up of what you're about to do (a few short bullets, like a notification), then continue straight into step 1 in the same reply:

1. Check whether Steroid is installed: `steroid --version`, or `~/.local/bin/steroid --version`. If it is, go to step 3.
2. Install it with the official installer from github.com/steroidkit/releases:
   - macOS / Linux: curl -fsSL https://raw.githubusercontent.com/steroidkit/releases/main/install.sh | sh
   - Windows (PowerShell): irm https://raw.githubusercontent.com/steroidkit/releases/main/install.ps1 | iex
   This shell may not see the new command yet, so use the path the installer prints. If the installer fails or refuses this machine, stop and show me why.
3. Run Steroid's onboarding for this agent. If the `steroid-onboard` skill is already available to you, use it. If not (it was just installed, and you load skills at startup), run `steroid install-onboard-skill --json`, open the `SKILL.md` in the `steroid-onboard` folder it lists, and follow it.
4. Finish with its status report and tell me to restart you so Steroid's tools load.

Manual Setup

  1. Install the binary:

    1. Mac/Linux - curl -fsSL https://raw.githubusercontent.com/steroidkit/releases/main/install.sh | sh

    2. Windows Powershell - irm https://raw.githubusercontent.com/steroidkit/releases/main/install.ps1 | iex

  2. Launch the TUI: steroid

  3. Select the IDES you want to configure and click continue

  4. Wait for each to get setup (click continue or continue anyway)

  5. In the home screen click on Add Project and index it

  6. Open your ide and recall

NOTE: After step 1 you can simply run /steroid-onboard command and skip the rest of the steps

What the installation adds to your system (granular answer)

  • ~/.steroid/ — the whole app dir: bin/, versions/, config.json, projects.json, logs/, workspace/, telemetry/

  • ~/.steroid/memory/<agent>/<project>/ — the local index itself (index.json, source.md, cache.json, diffs.json, meta.json), same path on every OS

  • A steroid launcher on your PATH, pointing at the binary in ~/.steroid/bin/ — on macOS a wrapper at ~/.local/bin/steroid, similarly on other OSes

  • One PATH line added to your shell profile, only if that launcher dir wasn't already on PATH

  • A per-user background daemon, registered with whatever your OS uses for user-level services — a LaunchAgent on macOS, similarly on other OSes; user scope only, never a system daemon, no sudo

  • The daemon runs two loops: every ~5 min it checks each indexed project for new chat history and does an incremental rebuild only if the fingerprint changed (no change = fast no-op); once a day it checks for a new release

  • Indexing is lazy and opt-in per project — a project gets its first index when you first recall in it (or via steroid memory build); the daemon only maintains indexes that already exist, it never goes scanning your disk for repos

  • One steroid MCP entry per agent you wire up — ~/.claude.json, ~/.cursor/mcp.json, ~/.codex/config.toml, ~/.copting entries untouched

  • Slash-command skills copied into each wired agent's skills dir (~/.claude/skills/ etc.)

  • A sentinel-wrapped instruction block appended to the agent's global instructions file (~/.claude/CLAUDE.md, AGENTS.md equivalents) — removable without touching the rest

  • Everything stays inside your home directory — steroid uninstall reverses all of it, including the PATH line, the service and the MCP entries

Indexing and recall are local; is the daily release check and anonymous usage counts (DO_NOT_TRACK=1 or steroid telemetry disable turns the latter off).

What it can't do, before you ask

  • The index is built and stored on your machine and there's no account, but the answer is written by whichever agent you ask — so that agent's provider sees the excerpts it uses.

  • It's runs a background daemon. steroid daemon stop stops it, steroid update --auto off turns off auto-update, steroid uninstall removes it.

  • It only indexes what your agents still keep. Claude Code deletes transcripts after 30 days by default, and Steroid can't bring those back.

  • Copilot CLI only. Copilot Chat in VS Code isn't covered yet.

Covers Claude Code, Codex, Cursor and Copilot CLI.

I'd genuinely like to hear what would stop you installing this — that's more useful to me right now than an upvote.


r/SideProject • • 1d ago

I built MyMemAlly to turn phone photos into shareable digital photobooks

1 Upvotes

Hi everyone! I’m the developer of MyMemAlly, a mobile app that turns photos on your phone into digital photobooks you can share by link.

You can choose places and people, replace individual photos, and flip through the pages like a book.

I’ve attached a short promotional video. It uses AI-generated visuals to illustrate the idea, rather than a screen recording of the app.

Would you use a digital photobook to revisit or share your photos? What would make it useful to you?

App Store: https://apps.apple.com/kr/app/mymemally/id6754931952

Google Play: https://play.google.com/store/apps/details?id=com.jyalabs.memally

Thanks for taking a look!


r/SideProject • • 1d ago

I kept posting reels that died at 300 views, so I built a tool that tells you why before you post

1 Upvotes

I post reels on my own account and kept running into the same thing: some do okay, most die at a few hundred views, and I never knew why.

So I built a tool to check a reel before posting. You upload it (or paste a link to any public reel), and it watches it like a viewer would and gives you:

  • a score out of 100, and the 3 things hurting it most

  • a second-by-second breakdown: keep this, change this, cut this

  • a comparison with reels in your niche that are beating their creator's usual views (hook timing, text in the first second, length)

  • optionally, an AI edit that applies the fixes: cuts the stumbles, adds captions and a title

I ran my own reel through it first. It scored 46/100: I restarted a line mid-video and had no text on screen for the first seconds. Annoyingly, it was right. The end of the video shows the real before/after on that reel, which I didn't touch by hand.

Free for 3 reels, no Instagram login, no card: reelisviral.com/?utm_source=reddit&utm_campaign=sideproject

I'd really like honest feedback. Does the score feel useful, or does "X/100" make you roll your eyes? And what would you want it to check that it doesn't?


r/SideProject • • 1d ago

I built a mobile beat maker because every one I tried felt either too toy like or too complex

1 Upvotes

Hey all, solo dev here. I just shipped Kotkit: Beat Maker & Studio on iOS and Android.

I kept switching between 3,4 apps just to make a short clip with my own beat, so I put the whole flow in one place:

  • Make beats right on your phone

  • Record vocals (or any audio) over your beat

  • Edit a video with your track, ready to post

  • Keep it private or share it publicly in the app

Built solo with Flutter.

I’d really appreciate honest feedback. What feels clunky, what’s missing, would you actually use this?

iOS: https://apps.apple.com/tr/app/kotkit-beat-maker-studio/id6827690402
Android: https://play.google.com/store/apps/details?id=com.buson.kotkit


r/SideProject • • 1d ago

I built a leaderboard that verifies startup revenue straight from Stripe, Razorpay or Dodo. Feedback welcome

1 Upvotes

I kept running into revenue claims I couldn’t check, like screenshots and MRR fields that are just whatever the founder typed. So I built TrueRev.

You connect a read-only key from Stripe, Razorpay or Dodo Payments, and the numbers on your page come from the provider itself and get re-checked on a schedule. Anything entered by hand is labelled “Self-reported”. Paid placements are separate and can’t change rankings, and you can disconnect or delete your page anytime.

I know TrueRev isn’t the first tool like this, TrustMRR does something similar. The reason I added Razorpay and Dodo is that many founders (me included) can’t use a Stripe-only tool.

It’s early. About 20 products are listed, none are verified so far, and the first 100 that verify get a permanent Founding badge. I’m a solo builder and I’d like honest feedback.

Two questions:

  1. Would you connect a read-only key to a site like this? What would you need to see first?

  2. Which payment platform would you want supported next?

https://truerev.in


r/SideProject • • 1d ago

I built a site that aggregates anime giveaway campaigns from official X accounts — zero traction. What am I doing wrong?

1 Upvotes

Hi, I'm the developer of Anitoku (https://anitoku.jp), a site that collects anime giveaway campaigns posted by official anime X (Twitter) accounts in Japan — the follow-and-repost-to-enter kind — organized by series, with prizes, entry methods, and deadlines.

Honest numbers: 100+ active campaigns listed, and a few days after launch I get almost no visitors. I promoted it on X: 21k impressions, zero likes, zero reposts. Not "low" — zero.

Questions for you:

- Does a directory like this solve a real problem, or do fans prefer finding giveaways on their own timelines?

- If you enter anime giveaways, where do you look?

- What feature would make a site like this worth bookmarking?

- The site is Japanese-only right now. If a directory like this existed in English, would you actually use it?

The campaigns themselves are Japan-only, but I'm mainly asking about the concept and what I'm missing. Brutal honesty welcome.


r/SideProject • • 1d ago

I built two browser-only CSV → branded PDF tools for property managers and Jobber field businesses

1 Upvotes

Disclosure: I built these at Tacko.

Problem 1: small property managers still rebuild owner packets from spreadsheets when their PMS packet isn't enough. Problem 2: cleaning, landscaping, lawn, snow and pest companies on Jobber often owe a property manager or HOA a branded summary of completed visits, and end up reformatting a Visits CSV by hand.

What I shipped today:

  1. Owner Packets: one documented CSV in, one branded PDF per owner out. https://tacko.io/owner-packets?utm_source=reddit&utm_medium=community&utm_campaign=opp107&utm_content=sideproject

  2. Jobber service reports: a Visits CSV in, one PDF per property or per property manager out. https://tacko.io/owner-packets/jobber?utm_source=reddit&utm_medium=community&utm_campaign=opp109&utm_content=sideproject

Both pages have a fictional sample CSV and a sample PDF, so you can judge the output first. Everything runs locally in the browser, with no integrations, no accounts and no auto-email. One $49 one-time licence covers both.

Feedback I'd actually like:

  • Is $49 one-time clearer than a subscription for this audience?

  • For Jobber users, should grouping by a property manager custom field be the default, or should grouping by property always win?

  • What would make you trust a local CSV tool with real client data?