Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Horizon – Private alternative to Imgur (horizon.pics)
361 points by sweca 4 months ago | hide | past | favorite | 206 comments
Hey HN, I'm James, a 17-year old full-stack engineer from Canada with a strong passion for building software. During the day, I work for a California-based startup, and in the evenings, I enjoy working on side projects[1][2].

For the past 3 years, I've been building and iterating on a product I called Horizon Pics, which is a file hosting service, similar to mainstream services, like Imgur. Horizon allows you to quickly upload and store all types of files, from images and video, to PDFs and other documents. The biggest differentiating factor is that Horizon's incentives are much more aligned with you, the end-user.

Unlike Imgur, Horizon has absolutely no ads, doesn't sell your data, has built-in security and privacy controls, and is fully focused on your file sharing needs. No social media or other bloat.

This past week, I've launched a rebrand of Horizon which features a brand-new desktop app called Alpine[3], which serves as a local companion to Horizon. With it comes the capability to auto-upload screen captures and upload your clipboards as shareable pastes. For extra privacy, clipboard sharing can be automatically deleted after one view, or end-to-end encrypted with AES-256-GCM client-side. The desktop app is completely free to use! It's powered by Tauri using TypeScript, SvelteKit, Sass, and Rust.

Horizon offers a free plan with limited storage and upload sizes, while the paid plan offers higher limits.

Let me know what you think about the landing page[0]. Does it provide enough information as a new user?

[0]: https://horizon.pics

[1]: https://httpjames.space

[2]: https://github.com/httpjamesm

[3]: https://horizon.pics/alpine




Looks great, and clearly a lot of time and thought invested. Not news to you, I'm sure, but these sites typically only last for a while. Because nobody has really hit on a way to subsidize a reasonable free plan enough to pay for the bandwidth it collectively consumes, and to implement enough spam protection. Especially once it hits a certain adoption curve. So they either die or find a way to push ads, like imgur did. This is so nice though, I'm really rooting for it to find a way.


Exactly; I still remember reading the imgur announcement post on reddit which had all the same descriptions. They were ad free and they were aiming to be great forever. Now though they're the "big bad".

https://www.reddit.com/r/reddit.com/comments/7zlyd/comment/c...


In 2016, Imgur raised $40 million in funding from investors, valuing the company at around $500 million. In 2021, Imgur was acquired by the media company, MediaLab, for an undisclosed amount, reportedly around $200-300 million. Alan Schaaf, the CEO and founder, reportedly owned around 40% of the company at the time of the acquisition, which would have netted him a significant amount, estimated to be around $80-120 million.

why does everybody here think that imgur is a failure in light of OP's stated goals? His stated goals are the same as imgur's stated goals. The imgur outcome is the stated goal of most of the people here.

Think a little bit more inside the box.


"why does everybody here think that imgur is a failure"

Because what everyone on the internet wants is a place that will just friggin hold images and respond to HTTP requests with that image

"in light of OP's stated goals"

because op seems to want to build a sustainable business, but at a certain scale it just becomes unsustainable because you become a CDN that is paid for per-seat. So they will inevitably need to either not scale (which makes them not what the internet wants), or scale by either becoming Cloudflare or becoming a social networking site, so that they can either pay their bills via usage-based-billing or pay their bills via sweaty VC money.


> Because what everyone on the internet wants is a place that will just friggin hold images and respond to HTTP requests with that image

But almost nobody on the internet wants to pay for anything. That’s the problem, hence all of the shenanigans around monetization.


So the goal is to make another unsustainable business, make everyone use and love it, then sell it to someone who will make it uterly shitty with the hopes of squeezing at least a bit of money out of the people who now rely on it, before it inevitably dies?


The goal is to make “fuck you money” then tell everyone, including users, to go fuck themselves. The specifics are up in the air.

Don’t forget to talk about the “wonderful journey” it has been when announcing the sale.


Imgur has lasted a good while.

I’d argue that having a service that exists in any form is a success. The fact it’s used so heavily despite your opinions and being loaded with ads means people value it and are better off than if it never existed. If the creator here could create the same but with no monetary upside directly, even just having the notoriety and putting it on his resume would translate to dollars indirectly. It’s a side project, chill.


> sell it to someone who will make it uterly shitty

Imgur is still good. It's just not great anymore, and it's a long way from shitty.


The cycle of image hosting continues

https://drewdevault.com/2014/10/10/The-profitability-of-onli...

I've swapped to using the app Dropshare hooked up to a Cloudflare R2 bucket myself


what has been your experience with this alternative you have settled on?


Plenty of ways to send an image to it - right click image in Finder, share menu on iOS from photos etc, replaced the built in macOS shortcuts for taking screenshots with Dropshare so a quick upload button to share a screenshot.

That combined with pointing a subdomain at the r2 bucket means I can share images virtually instantly without thinking too hard about it (the r2 URL is copied to clipboard once the image is uploaded). Having a personalised vanity domain is a cherry on top too http://img.cohan.dev/AXsaG.jpg

Also means it's on me to make sure images are available in the future and I trust me to keep my images online forever more than sites that have to find a way to fund themselves eventually.


Just letting you know; Dropshare is now compatible with Horizon.


Thanks! It's been operating for the past 3 years without any ads or third-party trackers, and I don't have plans to shut it down for the forseeable future.


No one ever starts these things with plans to shut them down, the question is how much money do you have for this right now, how much money is it burning per unit of time, and how long will that last if no one pays for a paid plan. I'm not asking you to answer those questions, but pointing out the reality of the economics of the situation. If an image goes viral, can you pay a 10x or 100x hosting bill? For how long? How much are you commiting to spend before shutting it down becomes an attractive option?


These are good questions to ask. Right now, the monetization strategy is profitable.

If an image does go viral, which has happened before on popular Reddit posts that hit the front page, the infrastructure should be able to handle it for a while, and it should not be costly.


you should protect yourself from free plans going viral and costing you more than you'd like with rate limiting rules of some kind.


I see your point, but the business model can sustain a large influx in free signups. I will keep this in mind though.


I can, right now, go find dedicated servers with 1gbps port that will deliver continuous 800Mbps of traffic 24x7, for $35/month. Bandwidth is not as expensive as people think.


> Bandwidth is not as expensive as people think

Now we only need to explain that to AWS folks


You’ve intrigued me! Can you provide a link to such a hosting option? I’ve got some side projects I’d like to explore! Thanks in advance



Wholesaleinternet.net is just 1 of many places.


The spam protection is worth repeating.

I made one of these back in 2005 and it was inevitably gangloaded with questionable content like p*rn, malware, software license keys, copyrighted material, etc.


Just p*rn? You can consider yourself lucky. One week after publishing my own public instance of an IMGUR-like, I woke up with +150 emails from my host provider and a final one telling me that they had shutdown my server.

Someone had posted ~500 pictures of "naked kids", a Canadian bot had found them and notified my host provider, who automatically took action.

Everything happened in less than 30 minutes, between the first picture being uploaded and the server being shutdown.

First I tried to restart the server and clean it, but I received new notifications as soon as it was online. So I just restored the last backup before it all started. And I removed the ability for public users to upload pictures.

I will never ever publish a service allowing user to upload publicly any content.


I remember a few years ago when some starry eye coder on Reddit made a page that would load and display the latest uploads to Imgur as tiles.

It soon became apparent that this is not ideal.

Same thing with tools that would try to archive Imgur, the results basically need manual review because the resulting dataset is a loaded gun.


I found a way, pay me: https://imgz.org/


Now that is one finely worded site. More like these needed.


Haha, thank you, I'll make more.


If for whatever reason, you don’t find traction, and/or get bored of running it, I’d be interested in acquiring it into a nonprofit entity and running it in some sort of public good fashion. But put your heart into it first. Looks great, really well done.


Thank you so much! Your compliments and generosity are very much appreciated.


It was surprisingly easy to configure ShareX to work with Horizon! Handles deletion and putting the URL of the uploaded file in the clipboard and all.

Hopefully you guys could collaborate to become a default file/image destination uploader that actually handles logging in and logging out of an account.

https://i.horizon.pics/35dwiVGxz8 <-- Uploaded via ShareX.

```

// Uploader import string

  {
    "Version": "16.1.0",
    "Name": "horizon.pics",
    "DestinationType": "ImageUploader",
    "RequestMethod": "POST",
    "RequestURL": "https://api.horizon.pics/upload",
    "Headers": {
      "Cookie": "token=YOUR_SESSION_HERE"
    },
    "Body": "MultipartFormData",
    "FileFormName": "file",
    "URL": "{json:.data.fileLink}",
    "DeletionURL": "{json:.data.deleteLink}",
    "ErrorMessage": "{json:.message}"
  }
```


Hey, please don't do this! Your cookie token is actually ephemeral. You have a permanent upload key assigned to your account. Download the ShareX config from Settings > General > App Configuration.


Wow. So you already provide a ShareX Custom Uploader configuration file on your website. I wasn't expecting that. I expected it so little that I didn't even bother searching.

So it works basically the same as mine but instead of the shitty cookie workaround I did, you have a header called "Authorization": "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" that won't blow up in my face every few weeks

Very nice


Monetization and abuse has been mentioned a bunch as things to consider as you gain more users, but I'll add a couple more I think are relevant, at least once the service is big enough.

Your payment processor. Payment processors might get triggered by the fact that adult content is pretty much explicitly allowed. They might also just generally deem you "high risk" and kick you out. I think this is one of the biggest risks you run. For example Stripe, according to their legal docs, prohibit "Cyberlockers, regardless of whether they host adult content", whatever that means, but it sounds a lot like file sharing in general is a prohibited business.

Ever-tightening think-of-the-children laws. You may not want to implement expensive and privacy invasive scanning (note that even local scanning may be privacy invasive[1]), but you might be forced or face a fine. You could always do like Google and budget it in as an expense, love that "fines" line in their reports. This may also be relevant to the previous one, since payment processors might deem you higher risk if you have no scanning.

Getting blacklisted for hosting malware. Specifically the support for non-media files. You could end up being blocked by browsers, search engines and whatnot. See for example Google Safe Browsing.

[1] https://rys.io/en/173.html


This is a great response. The shady operators can ruin simple services like these :( I’m now curious how you’d ever practically deal with this. How does iCloud deal with encrypted illegal content? Surely they can’t penalize Apple in these situations?


Apple's iCloud attempted to do CSAM scanning, but ultimately they backed off due to large public backlash. In the United States, there are lawmakers trying to require it, but there is still a lot of advocacy from privacy right activists, such as the EFF.


Very clean and easy to use.

90% of my coworkers with “decades of experience” and “senior” in their titles would not even be able to build something like this in their full time. Let alone part or spare time.


Not to diminish the work of OP (the website looks really clean), but I don't think I know any serious experienced engineer who couldn't create an image sharing website


I know way too many with the title "senior" in their technical role title who have absolutely no idea what they are doing. Well, they think they know, but they are less technically competent that your average CS graduate.


Thank you! It took quite a few iterations to get here. This time I tried to focus on reducing friction as much as possible, learning from other successful apps along the way.


Congrats on the launch! But, something that stops me from using a number of services is the sale of fixed size plans where I'll typically either under utilize them (e.g. do I have 100 GB of screenshots to upload) or I'll over utilize and might not have an upgrade path immediately available for more storage.

I tend to toss my photos in backblaze or S3 for this reason -- UX is severely lacking but I pay for what I use. I'm curious how you landed on the subscriptions you chose + whether you'd consider usage based plans?


I understand where you're coming from.

Most people do not have 100 GB of media on hand, nor will they probably in the next 5 years. As a result, it's basically unlimited from a reasonable usage standpoint. Before adding a 100 GB cap, I actually experimented with having "unlimited storage", but this can go wrong in many ways. I've spoken to companies in the VPN and cloud storage industries and having unlimited anything can go very wrong, especially if your service is promoted in a problematic context. e.g. unlimited cloud storage in a data hoarding community. By at least adding a cap, I can calculate a maximum cost for every user to influence my financial decisions and restrict abuse.

As for pay-per-use, no plans for now. Kagi's CEO had a really nice discussion about this on their forum and on HN. Simply put, for the demographic I'm targeting, which is quite broad, the typical user would likely get turned off by a pay-per-use model.

I've also priced Everest lower than other paid services, such as Vimeo and Gyazo, while including extra benefits.


Looks like a great service - kudos! Hope it succeeds and competes with imgur!


Thank you! I'm trying my best.


> Most people do not have 100 GB of media on hand, ...

I have over 130 GB of media and really just started taking pictures two years ago. My mother for sure has way over 100 GB of media. My gf too. My father also has over 100 GB of media. And we all are not photographers or people who must take pictures of everything. 100 GB is not that much really, especially since everybody cat take 4K pictures and record 4K videos. Who do you mean by "most people"?


By the term "media", I was referring to OP's potential usecase of Horizon, like their screenshots and screen recordings.

I think you're framing Horizon as potential photo backup, in which case, it is not designed nor meant for that.


[flagged]


Wow, it’s so cool to be rude to a 17 year old that started their own file hosting business at 14. You’re so smart, we all think so!


Thank you! I've learned a lot over the years and a lot more during this HN launch.


Hi, welcome to the web.


Hacker News ≠ "The Web"


I've really liked Cloudflare's R2 for this usage myself. YMMV of course.


How do you upload content to R2? Someone else mentioned Dropshare, but it is iOS/macOS only. I need a cross-platform solution.



How is it private if you can't self host?

(I'm hoping I missed something :)


Privacy and security here are being commingled under the banner of AES encryption at rest, which is apparently disabled by default.

I always wonder, if your marketing pitch involves security features, but those features are off by default, aren't you technically pitching your lack of security?


Encryption at rest is disabled by default because many users do not want to keep track of all of their encryption keys, which are not stored by Horizon when that setting is enabled.

There are also other security features, like end-to-end encryption for pastes, but like mentioned before, not everyone wants to lose the ability to preview their content in the dashboard.

By giving the user a choice, I can cater to both crowds: one that prefers convenience, vs the other which prefers the most security.

Edit: To clarify, all files are already encrypted at rest with a key I control. But with Encryption enabled (capital E to distinguish the feature name), it is encrypted again with a key Horizon won't store.


Have you done an Independent security review of these features? What's your CRS score? Do you have CVE fix SLA in place? All these features are good if this was. 2000 website but a single vulnerability in any one of the vendors of your tech stack will compromise your users


Server side encryption is handled using the Go standard library. A more detailed breakdown of the process can be found in the Help Center. TLDR: It's reputable, and best practices are followed through cryptographically secure generation, random IV, high entropy keys, memory hard hashing, etc.

Paste end to end encryption uses the native window crypto subtle API, widely used and reputable.


Coming from cyber security one thing I have learnt is no matter how many layers of security you add nothing is fool proof, I would strongly recommend doing an Independent review getting if not an international certification like ISO or GDPR then something domestic, I like what Mozilla does https://www.mozilla.org/en-US/security/advisories/, this really will enforce trust in your users as today it's really hard to trust websites


Clear and concise. Well done. Impressive for a 17 year old.


And if $company controls the keys.. what happens once funding dries up? Yeah.. nothing personal but we've seen it previously.

In the meantime, OP and Co. could create an open standard for image hosting, and have a lasting impact on the order of S3. Wouldn't that be something?

Here's to hoping.


If you (or anyone else) are looking for a self-host option, check out Lutim https://framagit.org/fiat-tux/hat-softwares/lutim


Just a quick note. That you have pricing up front is such a big thing. Places like Imgur and photobucket before it were out to be exploited merely for their free bandwidth.

There is a clear means of funding this and that instills confidence.

One other note, I also am a lot more likely to jump onto a service if there is an easy escape plan. While you don't want to loose customers, having an easy out allows people to exit on amicable terms.


Yep! Having limits and sustainable pricing was at the top of mind prior to launch - didn't want to dig myself into a hole.

For exports, there are currently 3 export options:

- file download URLs (encrypted content is undecryptable by Horizon, therefore will not be downloadable without the correct key, which is not stored by Horizon)

- all your short links

- all your paste content (encrypted content is undecryptable by Horizon, therefore will show up in its ciphertext form)

These exports are all in machine-readable JSON.


I love it! These are the awesome kind of projects I like seeing. No hype about "what could be" but a case of "Here it is! Go for it!"


The attention to detail on the landing page is amazing. The Apple-style feature boxes, the animations, the subtle blur effect for content at the bottom, the button shadows... I love it. You've got an amazing career ahead of you.


Thank you. Apple was a big inspiration! Rens (info in footer) helped me out with the animations.


Please provide an easy way to disable all animations in the webpage. Those of us, who sometimes have to use remote browsers via RDP/VNC will greatly appreciate that.


Hosting user generated content is one of the quick ways to run into awful content.

You have to take the necessary precautions, both legal and technological, to prevent awful content from becoming problematic.

Also according to your own terms of service you cannot access the website yourself, that is odd.


Under the Adult Content section, yes, if there is adult content, the user must be 18 years of age or older. I see the irony in this.

However, for other usage of the site, the privacy policy says that the minimum age is 13 years old.


>Unlike Imgur, Horizon has absolutely no ads, doesn't sell your data, has built-in security and privacy controls, and is fully focused on your file sharing needs. No social media or other bloat.

Why and how is your service's financial future secured? I took a quick glance, and your free tier is perfectly adequate for most people.

>Horizon allows you to quickly upload and store all types of files, from images and video, to PDFs and other documents.

Can I easily upload something from any of my computers (desktop, laptop, phone, tablet) in basically one or two easy steps?

One of the reasons I don't use imgur anymore and instead use Discord (yes, Discord) for my image hosting needs is because I could not upload anything to imgur from my phone or tablet. Yes, an image hosting service that won't let me upload from the most prevalent computing devices of our time.

I don't care if imgur is spamming me with ads or torturing me with a terrible UI, an image hosting service that won't let me upload is literally useless to me.

On Discord I can upload anything by just clickdragging or copypastaing into the client. Dead simple, dead easy, dead quick, dead done. And it's not even an image or file hosting service, it's a bloody instant messaging and voicecomms service.

>The desktop app is completely free to use! It's powered by Tauri using TypeScript, SvelteKit, Sass, and Rust.

Don't care about any of that jargonsoup, is it lightweight and fast with a UI that respects humans? Also, why is there no Windows client?


1. Maybe it's a matter of perspective. I actually find the free plan to be quite restrictive, especially for long term use. The current model is designed to be profitable. The free plan is sustainable.

2. Yes, you can. Just open the web app, click Upload Files, and select what you want. More details here: https://horizon.pics/help/articles/start-uploading-files.

3. Yes, it's lightweight, fast, and user-friendly. It's quite minimal looking, and I've tried my best to make it as easy to understand as possible. Whether that's through clear and concise instructions along the way, tooltips or intuitive action button colour hierarchy. There's no Windows client because I just haven't gotten to it yet. There's ShareX, which is compatible with Horizon.


>Maybe it's a matter of perspective.

Definitely! I think 500MB is more than enough, even as a tech guy, for a rolling storage with oldest giving way to newest. Most people aren't going to upload files as big as 75MB either. Unlimited bandwidth is icing on the cake.

While on the subject, $45 for 100 GB of cloud storage a year is a rip off (no offence). I can (and do) pay $70 for a year of Microsoft 365 Personal which gives me 2TB of cloud storage and the industry standard office suite. I can (and do) pay $20 for a year of Google One which gives me 100GB cloud storage and thus Google Drive and Photos space.

Your pricing by comparison isn't competitive, at least to me. Between an uncompetitive product and a free tier that is (read: should be) more than adequate for most users I'm still curious how secure your financials are.


>I could not upload anything to imgur from my phone or tablet

What devices are you using? I upload to imgur from my phone all the time. Just do it from a browser in desktop mode, you don't even have to login.


Presumably like any normal person: I installed their application, logged in (I have an account), and was then stonewalled by the lack of any upload apparatus within the general vicinity.


Congrats, it looks great, love that you have Linux app support.

Question, have you done the business analysis to know how long you can afford to run the system when giving away 500MB? Even your paid model seems really inexpensive. Do you have enough margin to immediately not go broke?

I am not trying to throw shade, I am just curious because it almost seems too good to be true since you aren’t running any ads and your price is free and/or cheap


This type of analysis is kind of pointless because the chances of the key assumptions being correct are almost none. How many free vs paid users will sign up? How much resources will they actually consume? The answers aren’t known until you test the market and probably change over time too.

That said, if he’s just bootstrapping this as a hobby with low overhead these prices are just fine. He probably actually makes a good profit once his user counts climb a bit. This type of service can be easy to keep afloat in these prices is my gut feeling and that’s probably good enough.

Besides there are some easy solutions to an emergency situation. Raise prices. Stop offering free plans. Change the resource limits. Etc. so much he can do before going broke.


Yes. Over the past 3 years I've been researching and re-iterating different monetization strategies. While I don't want to divulge exact operating costs, I can tell you that it's sustainable to provide free storage and the amount on the paid Everest plan.


What kind of backup and disaster recovery plans do you have in place, if any? Are they tested?


Image hosting is not a viable business.

Source: every image host that has ever existed (note the past tense)


Charge for storage and bandwidth. Providers like AWS S3 are doing fine with that model.

E: not bandwidth, data transfer


And this is exactly why S3 is meant for developers. The average person does not want to think about limits they cannot control, like a burst in viewership for an image they uploaded.


The marketing says that this is an Alternative to Imgur, but the product doesn't feel like an alternative to Imgur, it feels like an alternative to OneDrive. It shares more features with Gyazo, the other product you compare it to, but I don't see it being a solid upsell.

Is marketed to Imgur users as a better alternative for broadly sharing memes on the Internet, and if so why is privacy and encryption important? Couldn't privacy be a limiting factor, since Imgur is first and foremost a social network? Wouldn't the limited space of the free plan be a dealbreaker for someone happily using Imgur in an unlimited capacity for free?

Is it marketed to business users that actually prioritize privacy, and if so, aren't you worried that comparing it to a Social Network like Imgur would betray the privacy angle? Where are the enterprise options that allow me to onboard people with SSO/MFA and protect sensitive files from people outside of the organization? There are too many security holes in this product to trust it for business use, especially copying the full URL to every shared object to the clipboard where it can be accessed with anyone with the URL...

If someone actually wanted to use this service to store and share large files, you only offer 100GB for $5/month, and limit file sizes to 10GB. For $2/month you can get 100GB on Google Drive with roughly the same capabilities, and for $10 you can get 2TB on Google Drive or MEGA, with the latter being encrypted by default. $10 from Office 365 gets you 6TB of cloud storage with sharing capabilities. The pricing for Horizon storage is outrageous by comparison to every competitor's offerings.

Furthermore, you have to read through the pricing page to discover that encryption at-rest isn't default, and you have to turn it on for files you want encrypted, and it doesn't even tell you what kind of encryption or how the recipient decrypts it. Alternatives like MEGA still have you beat in that regard.


You're comparing Horizon to cloud storage services, which I think is unfair. Horizon is focused on the sharing aspect. Uploading to Google Drive and OneDrive is not as effortless as Horizon and won't provide the same frictionless viewing experience for whoever you share the links to.

Horizon is actually cheaper than alternatives, including Gyazo and Streamable, as said in another person's comment.

Global encryption is enabled at rest for every file, but with a key that I control. Toggling the Encryption feature (capital E to distinguish the feature name), encrypts the file again with a key not stored by Horizon. This info can be found in the help center.


>You're comparing Horizon to cloud storage services, which I think is unfair. Horizon is focused on the sharing aspect.

I think the closest competitor you have is MEGA, and they are not a Cloud Storage service, they are a File Hosting service like Horizon is. There is plenty of overlap between the offerings of Cloud Storage and File Hosting services, but if sharing files with others is a central feature, the service is generally understood to be a File Hosting service, and that would definitely include services like OneDrive and Google Drive too.

>Uploading to Google Drive and OneDrive is not as effortless as Horizon

How specifically is it easier? Create an account, upload files, optionally with a client. API for uploading programatically. Sharable URLs for giving access to others. It seems fundamentally equal to other platforms in ease-of-use.

>Horizon is actually cheaper than alternatives, including Gyazo and Streamable

Gyazo's entry tier costs the same as your's, and also offers an Enterprise tier with SSO/MFA that is going to be a operational requirement of any business customer that cares about privacy and security.

Streamable's entry tier may cost twice as much ($10/month), but it comes with 5x the storage (critical if you're sharing 4K HDR video), and the guarantee of a highly available CDN. It is marketed towards a specific need, instead of the broad social/business product you have created, which is superfluous to anyone who just needs reliable video hosting.

>Global encryption is enabled at rest for every file, but with a key that I control.

As good as unencrypted if this key is hot and used to decrypt all files shared without user encryption.


Gyazo does not cost the same. You're comparing monthly prices *billed annually* to Horizon's month to month term, which is an unfair comparison. Horizon is $3.75 a month billed annually, while Gyazo is $4.99.


Gyazo offers actual security features though.

Regardless, I will note that you could not answer the questions I asked about your product.


> You're comparing Horizon to cloud storage services, which I think is unfair. Horizon is focused on the sharing aspect. Uploading to Google Drive and OneDrive is not as effortless as Horizon and won't provide the same frictionless viewing experience for whoever you share the links to.

Yeah...

It's nice that you get a business opportunity out of this, but one of my first thoughts was how easy it used to be to host images on Dropbox. But they made it bad, and the other big syncing services have the same bad experience. They clearly don't want to be image hosts.


Not even Open AI, which arguably has the resources to programmatically "look" at images and know if they are okay, wants to do image hosting. That should give you pause. What do their lawyers know that you don't?


I'm not sure why OpenAI would. They're an AI research company. You're confusing scope with their legal team's considerations.


Why would they want to?

Also these services still make it easy to share a folder of images, they just make embedded uses a pain.


Maybe stupid question but can video files uploaded be played in the browser? I’m always frustrated when I want to share a game clip with friends and it seems like the options are YouTube which is overkill and a few services like streamable that are too expensive for just casual sharing


Yes! Supported file types can, such as MP4. Other video formats are not currently supported for streaming (can still be uploaded for download) due to browser restrictions and compute considerations.

For supported video types, Horizon is optimized in the sense that it recognizes videos and allows viewers to stream it in chunks for seamless watching.


Why not have the user's machine do the encoding into whatever format is cheapest/easiest for you to support? Could even divide user payloads into chunks and p2p it, bittorrent style. No compute needed, beyond a tracking server that can be very cheap to run


Transcoding client-side still has considerations:

- What if the user's hardware is not performant?

- Transcoding is intensive, so their machine will become slow

- Even wasm based ffmpeg will not be as efficient and has its own issues

- Takes a very long time


1. Then setup a worker thread with a very high nice value, like 19. Limit your throughput with tick-based compute (sleep if you're using too much compute)

2. Not if you do as proposed

3. Efficiency is not your problem, as you've stated with the previous 2 requirements. Your algorithm doesn't have to be maximally efficient if it takes a while to compute (eg you're using sleep in it)

4. Doesn't matter, most users of this service will only be taking a few photos or videos a day. Offer a paid service upgrade for heavy users who cant handle the upload times.


That's awesome. I think I read somewhere that everything is hosted in EU? Because man... its painfully slow uploading a 600 MB video from east coast US, and I have a GB line.


Yes it's hosted in the EU. Sorry about your slow upload speeds. I'm in Canada on the east coast and it's still decently fast for me. Although, the uploader can be optimized further (using multiple threads for each file rather than single thread per file), so they may or may not improve after that.

In the (possibly near) future, I do plan on scaling to the NA to give us better latency.


This is very well done, congrats on the launch and I am extremely impressed by your decisions (to keep this as simple as possible, to avoid scanning, and to provide apps). I am equally, if not more, impressed by your replies to comments here and criticism. Keep up the good work!


Thanks, this means a lot!


Are there any plans for Windows App support? There are more Windows 10 and 11 users than all iOS, iPadOS, and MacOS users combined


There's ShareX for Windows which Horizon supports. You can download the configuration files in Settings > General > App Configuration.


Where do you host it? I see that nsfw is allowed, what vps does allow it?


From the terms of service:

> Please be aware that there may be certain adult or mature content available on the Website. Where there is mature or adult content, individuals who are less than 18 years of age or are not permitted to access such content under the laws of any applicable jurisdiction may not access such content. Certain areas of the Website and Services may not be available to children under 18 under any circumstances.

Ironic given that the creator is only 17 himself per the original post. Having run a site like this before, you can expect to get some awful stuff uploaded before long, up to and including CSAM. Not sure I can trust a minor to moderate this stuff and push that "report" button in good conscience knowing that a minor will have to view the material to make the call.


I wonder, is this information so confidential the creator doesn't want to answer this?


I'm not sure what to answer here. Cloudflare allows this type of content, and the VPSes aren't storing the uploaded content.


Not sure what to answer? I asked where do you host it. Where do you store your data, (quite obviously) user uploaded images. That's why I asked about nsfw


All data is stored in the EU. As mentioned in another comment, Backblaze is the object storage provider.


This is HN, is asking about a VPS a bit quaint, when we're in the era of container orchestration/etc?


Should add the names of your competitors under the logos. I'm sure they're very famous, I'm assuming Imgur and something else - but I don't recognize either of the logos.


This will be a solid display of confidence.

That'd be cool if the self-hosting use-case was supported in addition to your main public site.

Throw a writable path or s3-compatible bucket in a config, set an admin password, and away..

Other folks could finally stop rewriting the basic aspects of image upload hosting. Wouldn't that be a nice gift?


Good call! The second one is Gyazo.


"Failed to create session" when using Google sign up option, followed by "Invalid state" when attempting to retry.

I shared the service with some folks who dislike imgur and one said this:

> Seems like the images don't allow for embedding - only hotlinking. Or at least, I can't figure out the link settings

https://www.purezc.net/forums/index.php?showtopic=78915

I can't see for myself but my guess is the service doesn't give you a easy to copy snippet to embed as html?

Hope this helps.


That sign in with Google bug has been fixed. Sorry. Your account was created despite the error.

The images can be embedded with their attached raw URLs and/or toggling the CDN URL option in link settings.


Just wanted to applaud you — I'm over twice your age and would not be able to create something like this.

Can I ask when you started programming/building things? Was it a natural interest or did you receive encouragement from someone in your life?

Wishing Horizon all the best, excited to use it!


Thank you so much!

I started programming at around 9 years old in MS Batch. By making TUI apps, I learned the fundamentals, like variables, logic, functions, etc.

The interest actually stemmed from gaming. I was playing Minecraft and I was like, "hey, why can't I make cool stuff like this?" Spoiler alert: I did not remake Minecraft lol. My father was an early adopter of tech, like when he purchased the first Macintosh, so he also encouraged me into the field.


Incredible timing, I was just looking for somewhere to store and share my video game clips. This looks more appealing (cheaper) than Streamable.

I love that there is a Linux Appimage but does it also work with just a browser?


Yes, absolutely! You can use the built in uploader[0] on the web dashboard which works in parallel and supports large files.

[0]: https://horizon.pics/help/articles/start-uploading-files


Thank you!

Some feedback after using it for a few minutes:

- When clicking the "+ create" menu, left-clicking whitespace on the page does not close the dropdown

- Home page takes very long to list videos (even with a single video). Updates after moving videos/deleting videos/creating folders also feel unresponsive.

- On home page or inside folders, videos do not have thumbnails (just a generic camera icon)

- While a video is being moved to a directory (spinner be spinning), the delete/move options under the search bar are still present

- Would like an option to apply resize/compression settings to videos on upload to help manage storage space

- When failing to upload due to size limit, the UI does not say what the size limit is

I think this is a promising service so I'll upgrade and hope the quirks improve over time!

Edit:

- Trying to upload 30-ish 100-200MB videos at the same time in the web UI, many error with `Unable to mark session as finished`.


Thanks for upgrading! And sorry that you ran into some speed bumps.

1. Good catch. Will improve on this.

2. I'm not sure what could be causing this. My account with thousands of uploads loads in less than one second.

3. Thumbnails are not supported due to compute and processing considerations, but will investigate this.

4. Good catch.

5. Compression can be compute intensive, but will investigate this further.

6. Will add that in.

7. Hopefully this isn't too ubiquitous? I'll investigate what's happening - but from preliminary analysis, it looks like a chunk may have failed along the way.


Re: 7 I think in the end all the videos did upload successfully, but the client UI stopped reporting progress at some point.

A couple more suggestions:

- Would like a select-all button instead of clicking videos 1 by 1

- An option to switch from grid view to list view could be useful

- Home UI shows 25 items per page but the grid has 3 columns so the last row is never full - which makes it seem like there are no further pages.

- When moving items, the item count in the title of the destination-selection dialog keeps increasing for every move operation. I think items are not deselected after moving?


I've added a new redundant check that will ensure all chunks are uploaded before marking the large upload as finished. Hopefully this resolves the issue you were facing. If not, please do send me an email at the address listed at https://horizon.pics/help.

As for those files that failed but still show up in the dashboard, it means they're stored incomplete, and as such, will be automatically purged in 24 hours. I will work on hiding them in the dashboard.


Thanks for the great support <3


It's been almost 2 weeks so you might never read this, but here's a little progress update on your reports. Many bugs fixed and several features have been implemented, including:

- List view for files - Select all - Video thumbnails (MP4, subject to eligibility depending on encoding)


Are private domains allowed on the free plan?

https://docs.hrzn.cool/pics/add_private_domain


> This feature is exclusive to Horizon Everest users. If you are not subscribed to Horizon Everest, you can do so in your Dashboard by clicking the Upgrade button in your navigation bar. [1]

[1] https://docs.hrzn.cool/pics/add_private_domain


Thanks. Another question. So this does not only images but any file or text file or functions as a pastebin etc? If so, is there a way of interacting with it as such as a pastebin and or uploading other type of files, other than the webui? Eg a command line tool? I see you made hrznsc but it seems for screenshots only, so perhaps just need to use some sort of api method for the command-line/scripty sort of pastebin-like and other files interaction/functionality that many users might be after?


Yes, there's pastebin as well. You can use ShareX on Windows or Horizon Alpine on macOS and some Linux distros (not 100% compatible with all, but Ubuntu seems to work just fine).

No command line tool yet, but the paste API is pretty simple to understand through network inspection.


>Unlimited Bandwidth*

>Keep on sharing with peace of mind that your files will always be accessible for those who need them.

What about sharing them in a forum post which may become viral or may be targeted by a ddos attack?


That's ok! Horizon should be able to handle it.


It’s a great service and forgive my cynicism but how, without losing money?


I've worked out the economics! The cost of the free plan is negligible.


Hey, dude, your site is pretty sick. Great job. Optional email! A minor gripe: the blue on green for your “Sign in with google” is kind of hard to read on my iPhone. Black or white perhaps might be better?

How do you make the economics work? Cloudflare in front? R2 for storage?

Holy balls and a desktop app in Tauri?! Dude you are a skilled 17 yo. You’ve been doing it for 3 years? Haha the kids are going to be all right. Good shit, mate.

Screenshot:

https://i.horizon.pics/jtlZYhVxzb


Thank you! I work hard to impress with all of my sites.

Looks like the "Sign in with Google" text is only blue on iOS Safari. On other browsers, it's white on green. I'll investigate further.

Cloudflare is indeed in front. The pricing model has been tuned to allow for one paid subscription to subsidize many free accounts. Horizon uses Backblaze B2 as the object storage provider.

I'm always eager to learn new technologies!


I have always wondered how "hosting" sites deal with malicious actors, like sharing of copywritten stuff (like movies), xxx stuff or worse (cp).

Is there content moderation at the backend of Horizon?


For privacy reasons, there's no scanning. I rely on user reports to determine whether to take content down.


I have some experience helping previous jobs block bandwidth abuse from user uploaded content. That lead to inadvertently finding some pretty bad content. I would figure out some way to have someone else review the content or at least some kind of automated scanner you can use to pre-check the reported content before reviewing it yourself.

Some stuff is hard to unsee.

Edit: I wonder if a local LLM (to help with privacy concerns) would be a good option or not to at least identify anything obviously bad. Wish I had more concrete suggestions.


You absolutely have a point. But for me, I'm not sure how to balance privacy and safety. Is my service really private at all if I'm handing off user files to a third party to do who knows what to scan for bad content, and potentially risk users through false positives?

Edit: A local model could work, but that can be quite compute intensive and therefore expensive.


There's no balance to be had--you must prioritize legality over privacy. You will be storing CSAM if you don't do something. You may already be storing CSAM. This is no joke. This is real and something every image hosting site deals with. You need to take it seriously. This is a "you could go to jail" concern, not a "this project might not work out" concern. The ability to store and share media privately while knowing it won't be scanned for abuse, with a free tier that doesn't even require an email address to sign up, is begging to be used for CSAM and other illegal activities. That's the sort of site you'd set up if your explicit goal was to attract CSAM. MEGA offers a similar service and they are severely burdened with abuse.


I meant it only for the reported content so that is, to me, a proper balance because that's kind of your legal requirement[0] to take down content which is reported. But since that's ripe for abuse the proper way is to basically first hide the content, review+confirm it's bad, and then take proper action.

So I would try asking around or thinking of how best to handle the specific reported cases without exposing yourself too directly.

[0]: I am not a lawyer


This is a legally...risky strategy. You built a cool thing but unfortunately when you put cool things online they get used for the worst possible purposes.


Yes, I understand there is an unfortunate risk. However, I oppose file scanning, and so do many users, as we've seen with the Apple scandal.

If any content is uploaded that violates the terms of service and is reported, they will be deleted as soon as possible, and that user will almost certainly be permanently banned.

The terms of service also limits my liability.


The terms of service cannot shield you from federal law. Not sure if you're in the US or elsewhere but similar laws are prevalent around the world - in the US federal law prohibits the production, advertisement, transportation, distribution, receipt, sale, and possession of child sexual abuse material (CSAM).

This is an issue that could ruin you. The only reason it hasn't already is that the service isn't big enough yet. You undoubtedly already have CSAM on your network and any reasonable person with experience online would expect that, which is an important standard for you to consider. You're starting your own projects online at 17. You will do a lot of cool stuff in your life. Don't let this kill that inertia.

My 2c.


Your site offers private hosting; how do you expect reports to happen? The people sharing the CSAM won't report it; they're the ones that want to abuse your site. They'll happily share the content privately among themselves and you'll never know until the police knock on your door. A reporting-based system only works if the images are public and available in a feed so that you can "crowdsource" your moderation. It doesn't work at all--not even a little bit--when the posts are private. I urge you, strongly, to reconsider your plan here before something bad happens. I don't get the sense that you grasp the seriousness of this concern.

Your terms of service shields you from nothing. It doesn't limit your liability here at all.


I don't believe it is feasible to run an image hosting service with your intended CSAM management plan.

Based on this comment thread, I fully expect your site will soon host CP/CSAM, if it doesn't already. Other image hosting services devote extensive resources to engineering a solution to this problem (one that is more robust than user reporting). I would not expect you will be able to avoid this work, and avoid liability.

Edit: I just noticed you're quite young. Congrats on all the great work. I think this CSAM thing could bring misery your way so I hope you find this comment helpful. Good luck out there.


Get ready for pull request from all kind of organizations. We had something similar a few years ago, when it became a bit populair, it got bombarded with all kind of illegal stuff like cp. We had a contact by the police to notify them when to report the illegal stuff. We stopped it because we had to implement continues monitoring of what was uploaded.


Why don't you have cloudflare caching enabled on the images?


For privacy reasons, it's kept out of Cloudflare's cache. But one could argue that it doesn't matter since traffic is flowing through Cloudflare anyways. What do you think?


It's not a real option. You'll eventually get banned or forced to pay for an enterprise plan if you try to use Cloudflare's CDN for an image hosting site where the origin is outside of Cloudflare. They require you to use R2 or Cloudflare Images.

From their terms: (emphasis mine)

> Unless you are an Enterprise customer, Cloudflare offers specific Paid Services (e.g., the Developer Platform, Images, and Stream) that you must use in order to serve video and other large files via the CDN. Cloudflare reserves the right to disable or limit your access to or use of the CDN, or to limit your End Users’ access to certain of your resources through the CDN, if you use or are suspected of using the CDN without such Paid Services to serve video or a disproportionate percentage of pictures, audio files, or other large files. We will use reasonable efforts to provide you with notice of such action.

https://www.cloudflare.com/service-specific-terms-applicatio...


Good catch. Forgot about this terms of service clause.


Are you not using R2 for storage?


Yeah it's going through CF anyway. I also don't live near Europe or North America and noticed even small images take over a second to load, would be nice to have images cached locally after they are opened for the first time


Got it. Thanks for your feedback. All servers and user content are hosted in the EU, so for some parts of the world, it may not perform as intended. I've also thought of creating replicas for latency reasons, but it does introduce extra costs.


Hi!

I love your product page and was wondering where you got the vector art for the core features card. I’ve been looking and can’t seem to find a good source for them


Thanks! I hired someone from Fiverr several years ago, and have been rocking with their art ever since.


Impressive stuff - especially for a 17-year-old working in their spare time! Best of luck, not that it looks like you'll need it!


" clipboard sharing can be automatically deleted after one view"

I think this can get broken by a few things, like if sent via FB/Discord messaging, the server themselves jump to it to generate their little thumbnail preview. Same with some email clients.

Cheers


On Discord you can wrap it in <> to disable the crawler.


Privacy and security are important considerations for file hosting services, and Horizon seems to be addressing these well with its built-in controls and encryption features. The desktop app integration is a nice touch that could make the service more convenient to use.


Thank you. I try my best to balance both privacy and security and functionality.


Congratulations and best of luck. I've a feature request - custom domains. As the images can be shared, I'd with to share with https://mydomain.foo.bar/nice.jpg


These are already supported on the Everest plan! Please see the help article: https://horizon.pics/help/articles/can-i-use-my-own-domain.


A cool demonstration of your skills but not a viable business unfortunately.

Others have said this, but t bears repeating: When you reach the size where you can actually make good money your site will be hosting plenty of malware and other illegal content.


Wow, super impressive. I wouldn't even have dreamed of making something like this at 17.


Imgur ads? No ads..they wouldn't even take our money for an account to support for years. And all the direct link images posted to forums and stuff still work after years. Working out pretty good for this end-user.


Hm. There are quite a few ad scripts on Imgur[0], and they have an advertising policy[1]. There are also reports on Reddit that the Imgur app has ads[2].

[0]: https://themarkup.org/blacklight?location=us&device=mobile&f...

[1]: https://help.imgur.com/hc/en-us/articles/26479484299163-Imgu...

[2]: https://www.reddit.com/r/pihole/comments/y1vh55/ads_recently...


This looks really great. Impressive work, especially for your age.

I think the bottom half of your landing page is much stronger than the top half. Why talk about encryption before explaining what the actual features are? "Sharing" is pretty vague and describes many apps. It might be better to lead with the actual features or usecases. Note that you went with a different pitch in this HN post: "it's a file hosting service [...] like imgur". That indicates your hero message needs some work.

You also have essentially two calls to action. "Get started" and "Download for mac". One call to action is better. Your sign up form also looks a bit busy and only has the text "create your horizon account" which conveys no useful information when instead you could explain why people should sign up and point out that it's free forever, which your users wouldn't know if they clicked through to "get started" right from the landing page.

At the bottom of the landing page you have a "sign up" in the paid plan but it links to the same sign up form. Why make people choose between paid and free when it later turns out the choice isn't real? That's a wasted opportunity. You should have only sign up button in the pricing plans section if there is only one sign up page. Alternatively, ask for credit card details if people show interest in the paid plan.

If you make $40/yr for a pro user then you'll need 25,000 pro users for each million in revenue. This is the kind of business where you're gonna have 200 free users for every paid user so about 5 million free accounts for each million in revenue. If 20% of site visitors sign up and 30% of those continue to use your service you need drive 75 million visitors to your landing page to get 1 million in ARR. Not impossible, but pretty difficult. imgur got large because reddit didn't want to do images themselves. Nowadays imaging hosting has become a lot easier because of AWS and Cloudflare, so you'll have to work a lot harder at getting traction.


What is your policy on NSFW content? This was a big rug pull moment for the imgur community.

If you haven’t decided now, you will be forced to decide later!


I wonder how I can convince people to send me training data. Photo enhancement? Writing review? No, I've got it now. Data storage!


Hi,

A bit late to the thread but was wondering where you got your art for the top of the page? They’re useful little diagrams I’d love to hire person who made those


Can you please clarify which art? The mockup was done by myself. The mock images in the mockup are from Unsplash.


This is quote nice.

One of the things I've always liked about imgur is the ability to paste images from the clipboard as well as drag and drop onto the page.


Hey, dragging and dropping as well as pasting has been added. Hopefully these satisfy your needs! If not, please send me an email through the address listed on https://horizon.pics/help.


Thanks! I'll be sure to add both soon.


This looks pretty cool, does it work with ShareX? Where you can directly screenshot and upload the images from your desktop?


Yes! While Horizon Alpine isn't ready for Windows yet, ShareX support is built in. Simply sign up, visit Settings, and download the configuration files under General > App Configuration. There are configurations for both files and links/pastes uploads.


Great work, and portfolio looks great too. Most professional devs can’t get a product out, so you’re on the way.


Is there some kind of API support? Could not find anything about ability to use API instead of clients.


So if I upload a pic and send a link to that pic to my friend does my friend also have to sign in ?


Nope!


Not gonna sign up just to upload an image. Maybe on the 5th time.


Out of curiosity, why did you name the paid plan Everest?


If you didn't notice, the logo has a mountain inside the first "o". "Everest", as in "Mount Everest", follows the theme of mountain metaphors. Mount Everest is also a high point, which symbolizes the fact that the plan gives you higher powers/limits.


Do you do all the design/UI/UX yourself?


I designed mockups in Figma, and then realized them into code. At first, there weren't any fancy animations, so I enlisted the help of my friend Rens (info linked in the footer) to help bring it to life!


It looks so awesome! Is it related to Ente?


Nope! Not related, but I have worked on Ente. Ente's CEO is actually the person who told me to try launching on HN.


Extremely impressive. Very nice work.


Great work!

2 questions:

1) Do you support RAW images?

2) Do you have larger paid plans?


Thank you!

1. Images that are natively previewable are supported in the browser at the moment. RAW is unsupported for previews, but should still be able to be uploaded for file sharing.

2. I haven't seen any demand for larger paid plans yet. If this arises, I'll be sure to explore new pricing.


Very cool! Congrats on the launch!


congrats on the launch! this is very cool.


i mean, there's already puush, pixeldrain and tens of other tiny chibisafe/pomf/uguu/jirafeau instances that play well with sharex instead of bothering with their own app, but having another mirror can't hurt.


> Unlike Imgur, Horizon has absolutely no ads, doesn't sell your data, has built-in security and privacy controls, and is fully focused on your file sharing needs. No social media or other bloat.

This is exactly how imgur started. It was a reddit user, providing a service for fellow redditors. I am not being snarky. As others have said, media hosting can never really be free.


if this was decentralized it would still have meaning but this project is going to run into the same limitations imgur did


one potential difference is that it already offers a $5/month paid version, not sure how long it took for Imgur to do that. so at least it has the potential to not need ads ever, but fully dependent on whether the revenue from the paid version can pay for the costs of the free version (500 MB offered for free users).

Edit: but indeed I am usually annoyed by the "Privacy first, no ads forever!!!111" marketing. Unless it's some bitTorrent like technology that decentralizes the load, it's not really possible forever.


[flagged]


Haha. Didn't even realize that. The goal was mountain-themed metaphors. Hopefully the "Horizon" prefix is enough to differentiate.


"Full-stack engineer" is usually a job title or career, I find it weird to introduce oneself as a "17-year-old full-stack engineer". Is it just me?

You certainly have the skills but can one be an amateur professional?


I do have a job as a software engineer in the professional world. I do both professional work and amateur side project work. Did I miss something?


Nevermind then! I assumed 17 was too young to have a full-time high-skill job, if I assumed wrong then apologies.


You obviously did


So... it's an S3 bucket with a CDN?


For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem.


It's an impressive lot more. There's a desktop app for mac and even a beta version for Linux.


So it's an S3 bucket with a CDN, and a file upload client...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: