Ask HN: My side project is ramen-profitable. What do I do now?
The jump from 0 to some monthly income was a really big thing and took a long time. Then everything moved fast for a moment, but now it did not evolve much in a while, and I'm not sure what to do. I see some options, but they also seem blocked.
For example, I'd love to extend the version for the US by adding newegg as a vendor. But the Usage Terms of its referral program are batshit crazy. The consequence by signing it were for me to have to pay them $20k dollars whenever they want, they'd just have to claim a problem with following their terms. I'd have no defense, nor the money.
I could also expand to other EU-countries. But I think the monthly work required to keep the database up to date would go over the time budget I have for this project. Maybe if I built that in a very robust way – but my tries to do that for Germany all only improved the situation, there is naturally always still manual work to do… Maybe that should be done anyway, I'm leaning towards it.
Maybe I could just make it more known in Germany somehow? Or maybe the site just needs to be improved gradually and would then grow by itself? Maybe (probably) there are other options I miss?
I'd love to hear some advice.
100 comments
[ 4.7 ms ] story [ 278 ms ] thread* It's pretty bare bones at the moment. Work on making it visually appealing, letting people know what the site does, language detection, mobile friendly etc.
* Concentrate on your home market - for now. Do coffee-shop testing with new users to understand how they expect the site to work.
* Expand into other Amazon countries. You have .com - so why not .co.uk, .it, etc? Should be a simple way to test the markets.
* Perhaps look at recommend accessories / peripherals / laptops. Might be a useful way to drive revenue upwards.
* Talk to an accountant to make sure you're paying the right amount of tax :-)
Best of luck.
> Expand into other Amazon countries. You have .com - so why not .co.uk, .it, etc? Should be a simple way to test the markets.
I'll give the other points more time to think through before reacting, but this got repeated below – I don't want to seem lazy, but it is actually not that easy. Amazon does not share its products api between countries. Every new country means putting work in a totally new product database, with its own serials and prices, meaning other products should be picked. Still something that can be done, but something that amounts in expanding to a new country.
In general I agree, it's a bit annoying that the same product might have different ASINs in different Amazon countries. Or even a different ASIN in the same Amazon :)
Otherwise (in addition to what others mentioned):
* You should also show the price split in VAT and price (for business users).
* Change the display to make it more "intuitive" by showing the casing in the middle and the components around it?
* If I pick 300 EUR I get a casing "Sharkoon VS4-V" without link?
> If I pick 300 EUR I get a casing "Sharkoon VS4-V" without link?
That's the maintenance work I mentioned, sometimes amazon's api search just stops finding stuff. I fixed this one, thanks for the hint.
Visually appealing proved to be very difficult. This is already many iterations in. I'd need to look at the whole UI with fresh eyes.
from simple peripherals suggestions (keyboards with different switches, mouses, headphones, etc) to a more complex configurator based on games genre, and an "upgrade" picker based on your current setup ... this way you keep your current maintenance efforts but amplify you marketable value.
I also think that you should make the site more visually appealing, it looks like what it is - a tool, but what you need is to create a product. Give users some eye candy and maybe decide what's best for them if they can't do it themselves. They came for advice after all, right?
> They came for advice after all, right?
Exactly. And that's the idea of the site, the recommendation for a giving budget is that advice. You'd expand on that?
- Style it up a bit using twitter bootstrap. The main button looks awkward.
- Found a small company (UG) with 500EUR capital to hold rights on the site if you want to further professionalize this project.
- Add caching for search queries (it took ~ 10sec to calculate 800€ and 100€ which might be some of the most requested price points)
- Add large buttons at the top which show the most sensible price points
- As the others have said, this is easily expandible to other european countries. Add a French / Italian / Swedish version.
- Add some social stuff so people can comment etc
- Take some inspiration from PC parts picker
If you want to talk feel free to shoot me an email.
Can you elaborate a bit? I have the same problem as the original poster. But founding a company requires IHK membership fees and tax consultant fees. From what I hear this amounts to ~ 1500 €/year.
A separate legal entity (UG / GmbH / Limited / whatever) is mainly useful for three things:
- avoiding personal liability
- shared ownership
- tax optimisation
For a website like this, there is practically no liability to worry about. And if you don't have a partner, you don't need to worry about shared ownership.
For tax purposes, the overhead of a legal entity only pays off if you already have a lot of revenue (in Austria, more than 200k€ per year)
Especially not for avoiding personal liability!
Because as the director of the company (which you are as a solo founder), you ARE still personally liable (GmbH-Geschäftsführer-Haftung).
Get a Gewerbeschein. It's 25€ or so. IHK might want membership fees, but they are really low if you don't have much income.
Go with Kleinunternehmerregelung. It makes many things easier if your revenue is below 17,500€ per year.
Don't forget: The first 8,000€ in income per year are tax-free.
But in my eyes the benefit overweights:
- all your business expenses are kept in a professional setting and don't screw with your personal finances
- you will have a separate bank account
- you have a legal entity you can later sell to a real business
- you can use leftover money to (re-)invest into nearby business areas
- you have limited liability (and you can buy proper insurances for your risky business activities!!)
Your local IHK will be happy to guide you through this process.
I also started off as a sole proprietor and moved up the food chain through UG to GmbH(s), and there is so much you will learn during this process. I think every entrepreneur should have experience with local trade laws and taxes, so in my eyes you can't start early enough.
If you have any questions feel free to ping me.
I'm a german living in France, the tax situation is already difficult enough, but yeah – I also think it is a good idea to separate any project income and costs from my personal finances
If you do it out of tax reasons and you are willing to take the risk of not being able to do any administrative "things" by going to a local government agency in the town where you live, then form an entity outside of EU for example in singapore.
Again, I'd suggest you start your first steps in business locally where you can talk to actual people. There are a lot of services available that can help you out in person.
My best advice is to walk into the local Finanzamt and speak to someone. I've always found them to be knowledgeable, courteous and genuinely interested in helping. Explain to them your goals (minimising tax liability / indemnity / etc) and they will advise you where they can (for free).
If you ever need a credit or want to sell to businesses, you'll also find out that people don't trust Limiteds. One reason is that traditionally people used them for a fresh start after going bankrupt and being barred from operating a domestic company. It also appears as if ltds attract more than their statistically fair share of douchebags, ruining it for everyone else.
Also, and I know people differ on this, but I kinda think paying taxes isn't the worst thing there is (and is probably a moral obligation). There are also possible downsides from avoiding taxes & social sec contributions, like not having the kind of certificate for your income your next landlord might want, the inability to join public health insurance and the risk of managing all your retirement funds yourself – a friend of mine lost the two million € he had saved in his limited when Royal Bank of Scotland(?) went under.
Bank account: Just go to your bank and create business bank account.
Leftover money: It's up to you how much you withdraw, although you must pay tax on all income minus expenses.
Limited liability is not true (see Geschäftsführerhaftung).
Insurance: Again, you can get insurance (IT-Betriebshaftpflicht) as a sole proprietor too.
I think, if your project is merely ramen-profitable, don't bother about all the organizatorial overhead.
Another downside of a UG/GmbH: More paperwork for taxes etc. (double bookkeeping).
Stripe now has "US incorporation as a service": https://stripe.com/atlas
Caching of course is already implemented. Is it possible the cache was just stale for you, did the second load also take that much time?
I really like the idea of letting people comment. It would be great to have a small community on the site, as an alternative to only piggy-back on others.
Thanks also for the offer with the email. I might very well take you up on it :)
I have pretty aggressive ad filtering so this might have an effect on how it is displayed :)
Or just spend an hour or so figuring out how basic styling form styling works. If you pull in a framework for every itch you have to scratch (even as "lightweight" and standardized as Bootstrap), without taking the considerably greater time to actually understand the framework actually works -- you'll likely regret it some day.
Usability-wise, the biggest issues I see are:
- even after we select for English, we still get captions in German.
- in the hover help boxes (that appear over the green "Leistung" bars), all the performance metric (?)names are camelcased; presumably because they are fresh out of some database. These should also be proper names, the way they normally appear out in the wild.
- there's lots of wasted space. The entire result set should fit on one page, with no need for scrolling, if at all possible.
Should you do that if you don't already know how it works?
Form styling in a responsive, consistent, and cross-browser way is actually pretty tricky, even for an experienced front-end developer!
I totally understand the antipathy for using such frameworks, and I suggest that they're ill-suited to larger projects where you have the resources to solve these problems in a better way. But Bootstrap has it's place, and the clue is in the name.
I inherited a project that would advance a lot faster if the original developers had used Bootstrap or another CSS framework.
They also chose to use an obscure JavaScript framework instead of Angular or React, so it's impossible to recruit anyone with experience, and you can't take advantage of the plug-in ecosystems.
This is a tough one. But my general instincts suggest that yes, there are significant benefits to be had from at least getting traction on figuring out how stuff works natively before adopting a framework.
BTW I'm certainly not anti-Bootstrap. It's just that suspect the tipping point in favor of its adoption lies somewhere beyond the threshold of a single form button.
By the way, do you have any suggestions for tutorials that teach someone a mental model for how CSS/HTML layout works? In particular, I'm looking for a mental model that I can apply consistently and which doesn't feel like I'm playing whack-a-mole. So far I've found that with flexbox, but I'm still finding myself in situations where I need to work with existing block/inline/inline-block code.
Other than that, the hard knock school of life is my primary instructor. There's no "Code Complete" for your stylesheets (at least not one that I've found).
Not that there aren't important concepts to understand. Just that the quirks and exceptions tend to rise up from the mists, and -- just when you thought you got a handle on some particular area of functionality -- overwhelm the nice, tidy, conceptual aspects.
Which is why it has proved to be by far the hardest programming environment I've ever hard to learn.
For what it's worth, I'm conflicted on the whitespace. I see as well that it would be nice to have it all on one page, but that the current design uses whitespace to separate items is something I like. But I'm not saying that the way the price display for example is working is perfect and can't be changed.
For the bootstrap and form styling, I don't think that bootstrap is the answer here. I am capable of building reliable enough css, I just do not know what to change. A framework can give guidance, but I do not know one that implements this specific combined form input properly. Might be that I just do not have enough experience with them to know where to look.
(Yes, combinations often include software, but certainly not always).
For the US, pcpartpicker uses them, which means they are either coding that manually (they have a staff of several people) or are using API capabilities to get that info.
* Don't worry too much about crazy contracts / terms of service. If you run a business you will end up signing all kinds of ridiculous contracts. If you are worried about the consequences, get a normal job instead.
* Don't expand to other markets before you've managed to crack one market. Right now you can experiment easily with the site, if you expand to many countries making changes will get a lot harder.
* Who are your customers? Who is using your website? This is the most important question, and further development of your website should start from here. Are you targeting hard core gamers who want to get the highest frame rate for a budget? Or are you targeting parents who want to find out how much they have to spend on a PC that runs Minecraft for their kids?
* What are you doing to promote your website? How do people find out about your website? I see you have this bbcode widget, so I assume you are hoping that forum users use your site to share configurations. Are you doing anything so people can share configurations on Facebook / WhatsApp / whatever people use to communicate today?
Anyone here's been doing that, and is still running a business after 10 years?
I understand that I should take them and think further about them, that the questions are not necessarily for the here and now. I'll anyway give you my initial thoughts.
* I really disagree on the contract thing. That attitude can't work in my country, and always needs a big personal finance and security net.
* To not expand seems to be the consensus, and I'm convinced
* The people I can reach (via forums and reddit) are mainly gamers. It is also where the idea of the site is coming from: to get the best possible performance, which for an office or minecraft pc is not really important. My impression so far is that the people who build their custom PCs are gamers, with some workstation for programmers (that often want to game on them as well) in the mix.
* You assume correctly. Though currently it is the markdown code used on reddit that is mainly used (to a big part by myself when going to the user asking there for builds). In the share widget there are also buttons for facebook, twitter and g+ that are supposed to enable sharing configurations, from my stats facebook and twitter are used a tiny little bit.
A big problem with going into forums and having the site used there: Every forum has their own standards of what is a good PC (and some are ridiculous faithful to their ways), and the big german forums have a cooperation with geizhals, a price search engine.
I think that the last point is the core point, to improve the answer "how do people find the site".
How is this a top comment?? Awful advice
Sure, I'm taking extreme risks but that's part of the strategy. Bet big, win big.
That said, agreeing to onerous terms and having the company actually enforce them later are two different things. This is a good explanation from an earlier HN thread: https://news.ycombinator.com/item?id=6366912 (yes, it's the pud 'Fucking Sue Me' thread which is evergreen).
Of course not. It's a nod to the discussion in https://news.ycombinator.com/item?id=11615639, from their reference to the idea to get a startup to ramen-profatibility fast I got the idea to ask here.
Also, if I search for a PC at 460 € ... I get a CPU recommendation for 120,90 € But when I inrease the limit to 660, I get a worse CPU for EUR 58,32 ... but with a much better GPU. But I think the great GPU won't be of much use with that slow CPU ..
To balance those properly, that's the hard problem. The first was a FX-8320E with a R7 370, the second a Pentium G4400 with a GTX 970. The first is okay in my eyes. The second would be better with an i3-6100 instead of the Pentium.
(Yes, it's great that you're reading the full terms of agreements. Too many people don't. But at the same time, you can't let ambiguous worst-case what-ifs paralyze you in business, or you'll never get anywhere. You can't steal second base while keeping your foot safely on first and all that.)
But I'll reconsider if I manage to get a proper barrier between the finances of the site and my own.
second, call them up and talk to someone. it's called 'business development'. you can negotiate anything. just say this part really scares you, and that you want to edit it, and that it may even be illegal in europe.
business protip: send them a european-legal version of their own contract that you feel comfortable signing. they might just say "sure, let's use this." -- it really can be that simple. you might find out they're planning an expansion into europe and you're their first partner.
and yes, form a limited liability company or a corporation, don't put your own money at risk. there's way, way scarier things in the world than newegg's marketing department, i assure you.
My current response for that feature request (you are not alone with that wish) is to customise a recommendation with the arrow buttons at the side of each component box. It's mainly an UI problem – I don't see how to do it properly.
My impression is that while the initial reflex is to say yes to all of the above, in many cases at least one of the responses is no. When there is a lots of space needed, or when browsing needs a real fast processor (it indeed does for many pages and current browsers), or the R7 250 requested before (which is still a lot more than the integrated graphics of an haswell i3), and so on.
I still appreciate the suggestion, and if I see a way to built it in I'll certainly do it.
http://www.kalzumeus.com/standing-invitation/
However, let's not look into how much you make now but instead how much growth potential this idea has:
+ One opportunity is to further internationalize the product with more languages and vendors to other countries. Then you should be able to 5x to 10x your revs (but quite some work is involved)
I rather see some limitations in the chosen business model (if we talk about making this thing really huge):
- Strong dependency to Google and hard to buy traffic since the CAC will be always higher than the affiliate revs
- Most affiliate merchants fool you on the affiliate commission (except Amazon and ebay), so prepare for tough negotiations without any possibility to prove generated sales
- Low LTV and customer loyalty if any because people configure a PC once every one or two years and in that time they might forget about your site and not using it the next time
- In general the market is limited, 10-20yrs ago everybody did configure a desktop/tower, now with all the notebooks, ultrabooks and iPad the demand is way smaller
- Content generation and maintenance should be small but it's still there (costs for one content manager should be considered)
- And do not forget: this browsing and choosing of the best components is an important piece when building a PC yourself, it's fun, don't know if people would give this away
=> I would keep it as a pet project which brings some revenue but look for new business models where you can adapt what you learned in this process and improve on mentioned points
I agree with all your limitations, even the potential problem with affiliate programs – while the one I work with is generally trustworthy, I indeed observed sales that they never registered.
I learned a lot from the site and it was worth it even if that were the end now, lessons I'd take to the next project, but I feel there is still a lot that can be done without going all in and counting on it getting huge.
Mine is extracting equations from benchmarks of the form ax = b where a and b are components, picking a random "unit" component and fixing it to 1, and then solving the overdetermined system in a least-squares sense. I designed it that way to take all equations into account (e.g. multiple benchmarks can and should include the same components with a potential different "factor") and to handle like a graph (as long as there's a benchmark-path between any two components, they are directly comparable)
Edit: to ensure the graph is always connected, an additional low-weight "metadata" benchmark is generated from the technical specs (e.g. amount of ram, cpu speed) and the total score of a computer is calculated as the weighted sum of all components, using target-specific weight factors (e.g. a gaming pc will want a fast cpu / gpu whereas a multimedia pc will want more capacity)
First the benchmarks. I also added had to add a factor, because a benchmark where the fastest processor (in the following, all that is said about processors also counts for gpus) is not the fastest processor the recommender knows (that happens often, as not many benchmarks include Intels 5960X) would otherwise move its processors too much to the top. That happens by using the one benchmark that contains all existing processors as a reference point in that case. There is still the problem that many benchmarks are sparse, to counteract that there is logic in there to prevent illogical results (stuff like: assert that the 4690 is faster than the 4590). The benchmarks then compute a normalized result from 0 to 10.
When a recommendation is requested, he first picks the peripherals based on the budget. With the remaining money he then goes through all gpus and mainboard and picks the best possible combinations, with a factor favoring the gpu, and minimizing the difference between them.
The value in doing it like that is how the results are tuneable by code, and that it is possible to pretty exactly say which configurations to build for which price point.
I originally wanted to monetize the idea as well, but gave up and open sourced my solution due to the labor-intensiveness of adding and maintaining components and benchmarks.
I can't really help you business-wise, but from a technical standpoint, my suggestion would be to split up the problem in two (sorry for the formal definitions, this is mostly translated from my paper):
1. Given n benchmarks each containing n[i] components each, assign a score to each component so as to obtain a total ordering that minimizes the error (as you mentioned above, one processor may be _way_ faster than another in one benchmark, but be completely outclassed in 50 others).
2. Given n desired component classes, each containing n[i] components as well as their bus requirements or offerings (I stretched the 'bus' definition to also include stuff like S-ATA, 3.5'' slots, ATX power cables, etc), their performance relative to components of the same class (obtained at step 1) and their price, obtain a compatible component subset that:
i) satisfies sum(Price[i]) < max_price
ii) satisfies sum(Power[i]) > 0 (assuming PSUs provide positive power and everything else negative power; I used watts here but if you're feeling badass, you can extend this to amps on the 3.3 / 5 / 12V rails)
iii) maximizes weighted-sum(Performance[i]), given a certain target (this is how I implemented the "I don't want to play games" feature requested by another HN poster; in this case, each target would define a weight for each component class)
Since 2. is most likely NP-complete (again, didn't prove it), my approximate solution was a greedy PTAS knapsack ( https://en.wikipedia.org/wiki/Knapsack_problem ) that stored partial systems in one of 3 heaps of about 10k items each: one sorted by cost (to ensure the cheapest system is displayed in the event of a low budget), one sorted by performance (to ensure the best system is displayed, in the event of a high budget) and one sorted by performance/cost ratio (to hopefully obtain the best-bang-for-your-buck system).
Anyway, best of luck! Throw me a tweet (same username as HN) if you make it big :)
There are many good suggestions in the comments. I'd actually put out some roadmap to the site, and suggest that it is "beta" and is under development, and maybe create an uservoice page and link that from the roadmap, noting that new ideas are welcome, and can be voted on.
People like to feel involved in something they like. If they stayed for this long, they may like this, and you may get a hang of what people are missing from the site. (but don't implement every suggestion, just read them)
I think sharing some of your metrics with us should influence the advice. There is a lot of advice in this thread, but I don't know that it's good advice.
- How long are your users staying on the site for a typical session?
- How many (monthly) actively users do you have? Do users return or really just come once?
- Where do your users come from? (traffic source)
- What are the typical price ranges your users search for?
- What kind of parts bring in the most revenue?
- etc.
Essentially I think you should put together the answers to the most common questions an investor would ask for a seed stage pitch deck.
Do you:
- Want to keep this as a side-project and hope to make enough to pay the rent?
- Want to turn it into something bigger that will bring in an equal amount of money as your job?
- Want to turn it into a business that is your sole income source?
- Want to turn it into a business and then keep a part-time job?
The answer to this question will point you in the right direction. Think in terms of five years and work back from there.
Perhaps making the social buttons a little bit more prominent?
I was going to suggest using Google tag manager if you were using Google analytics to get an idea of how well visitors are performing certain goals, but I see you are using piwik. I am not sure if piwik has these same types of features.
I do not speak German, but I did like I could switch to English. However, I noticed the hover menus still display in German.
- I'd stay in the German market, because adding additional providers and keeping up with their terms, API etc. sounds pretty annoying.
- Make it more accessible through small design improvements
- Try to find new audiences who'd benefit from this tool. Say right now, it's gamers. But what about bitcoin miners maybe? Or small businesses that need a calculator like that? The next step is to find where those audiences are and tap into these traffic sources.
- Show your tool to "influencers" (meaning: people with a small audience of 100 or more). Maybe gamers on Twitch, in hardware forums, games magazine forums, in Steam guides (or write a Steam guide)
- Maybe write more blog posts. Could even be semi-automatically. Say: Picks of the month under 100€ / under 500€ etc. Try to distribute your blog posts (see points above)
- Keep a sane mindset. Enjoy the fruits of your labor, but only do the stuff that you enjoy doing. No point in wasting time with integration some US service, if you hate that idea.
- Use it to position yourself in a specific way. Maybe it's good for your resume (creator of the popular tool pc-kombo.de + proof of popularity -> shows you know how to execute and "finish" side projects and think about customer outcomes).
If you do something that they don't, then either they may just copy the idea or they might've already done and discarded it. That is, you must understand your competitive edge and what it would cost to obtain and maintain it.
And if you don't have anything unique to offer, then you must know how it is that you are planning to grow, because once you think it through there's a good chance it either won't be viable, interesting or both.
Edit: Now that I see the 'improve' and 'cheaper' buttons, and that they let you exceed $1340 if you manually 'improve' components, I'd be more concerned about the server error. Also, to make the 'improve' and 'cheaper' buttons more obvious, I'd put a prominent banner right above the build you return, where you point that function out to the user.