Back in the original days of reddit, the website used to keep track of your viewing history. This was the digg vs reddit days; way before any apps, reddit gold, and mainstream success. And their servers seemed to routinely catch on fire.
So they quietly took it away and no one really said anything. But I never forgot and always wanted it back.
Build it and they will come
It was written in PHP backed by MySQL. The code was mostly spaghetti. No classes. No abstraction. No dependency injection. No tests. 2023 me who, when coding, spends way more time writing the tests to cover what I just wrote, is looking back remembering a simpler, more yolo time.
I also had no idea how to write an API back then. I started with what I called Plain Text mode that was just sending each field as a query param I quickly extended it to add XML and JSON. However, both XML and JSON still expected the payload to come down via a query param. The documentation was poorly formatted markdown.
A little over 10 years ago on January 7th 2013, I posted to /r/programming about my holiday project, synccit. It was a combination of a website with an API and a Greasemonkey user script that also got packaged as Chrome and Firefox extensions.
While there were some naysayers, the reception was mostly positive. I addressed some issues and feature requests while watching all the traffic flow in and hit my API. I had created a successful and popular site. This was it. I thought I had made it.
While the traffic was flowing, I was just burning my money and time. I got a few app makers to integrate it into their app, driving more and more traffic to my little VPS. Disappointingly, the only iOS app to get integration was amrc aka Antenna which has been defunct for a while. Alien Blue and Apollo never even acknowledged it to my knowledge. Reddit ended up reintegrating it with Reddit Gold at one point too, so getting more integrations isn't too likely.
Side note: The RiF developer did donate multiple times totalling about 4x all the other donations, and I'm highly appreciative of that. He was the first developer to add it and has always been pretty great.
I had been running websites with minimal resources for years (more on that in a future post), so I had pretty good configs for MySQL, pretty efficient setup for PHP, and made sure to monitor slow queries. But over time, I still had to upgrade the server to more performant virtual servers, then to a dedicated 1U Xeon, and now back to a 2 core VPS with block storage.
The biggest bottleneck was storage space. Due to the indexing required to keep this performant (and my general never delete anything ever attitude), the database size ballooned quickly. Pre block storage days, getting more space meant getting a more expensive machine, so I ended up shuffling around lowendbox deals for a while.
But maybe I can make some money
I had 3 assets: a website that's only used during setup, user data, and a browser extension. The website I'm sure I couldn't even put AdSense on. I have no intention of breaking user's trust by selling their data. So the only option was the browser extension. The browser extension had a bunch of permissions and could do a lot, but again, I don't want to break any user trust, so the only thing I came up with was an opt-in referral program. It would add my referral code to certain links without breaking them for a very limited amount of links.
And it actually made money. It covered hosting for a few months. Until it didn't and I was told that was against the terms of service. It was fun while it lasted.
That was the last time I might have been net profitable on a per month basis.
So why keep going
I don't really know. It's mostly a combination or not wanting to let down the users, the cost isn't that much, and I'm just stubborn and want to prove to myself that I can.
I've managed to keep a site averaging ~20 million requests per month with one incident of relatively small data loss 9 years ago. There were downtimes of a few hours here and there, but past that, the API could have an SLO at 99.9%.
Side note: I said I would write up that data loss incident. I never did, and I barely remember it. But to the best of my recollection and searching emails, my VPS host provider (something from lowendbox) suspended the account. Auto payment never worked, and they would invoice then immediately suspend it every month. This time I paid it and it was gone and never came back. The hosting provider as a whole disappeared about a month later. 2 years later, it looks like they sold the emails to some marketing place.
The next 10 years
Will synccit still be around? Maybe, who knows, probably. If you had asked me if reddit would've still been around 10 years, I would've said no. If you ask me today if old.reddit will be around in 10 years, I'll say no.
There have been ideas floating around for the past 10 years, but since they've been there for 10 years, I don't have high confidence of them getting done in the next 10. Few things I want to do would be revamp the website, migrate the API to FastAPI, and be able to search and view your history. None of that work includes the browser extension.
For the browser extension, if someone wants to take it over, great. Otherwise, like RES, it'll be pure maintenance mode, and really more just obsolete.
What did I learn
- Free APIs don't make money. It just won't happen. $4.23/month of donations doesn't cover ~$40/mo hosting, and that's not counting your time.
- If you don't consistently use your product, you'll forget about it while it sits in some half broken state.
- You will have substantially less time to work on what you think you can.
Some random stats
|Number of links saved
|Over 2 billion
|Donations over 10 years
|Number of active users in past week
|Database on disk size
|API request rate past 24 hours
|6.55 requests per second
|2 core VPS on DigitalOcean with 100GB block storage
Top 5 apps over last ~50k links:
developers | count
boost dev | 23051
rif is fun golden platinum | 20164
rif is fun | 8542
synccit-extension v1.16 | 5926
slide_for_reddit | 2361