33 ms·
The boring technology behind a one-person Internet company (2018)
- ademup 7y agoThis seems super complex to me. I am a single dev that runs a $30k\mo software based company off of PHP+MariaDB+bootstrap+jQuery+few other plugins. Hosted on a managed HIPPA setup. The firewall+app+DB servers run me about $550\month and I have excellent support. I spend effectively 100% of my time on business logic\ui and zero time keeping up to date on infrastructure (and learning it). Which means my customers benefit from me fixing problems and adding features. Kudos to what works for you....super great... And, for me at least...it is even more "boring" and awesome.
- dtien 7y agoDo you mind sharing what the managed HIPPA setup is? What vendor do you go with for that? I've always wondered about how easy it would be to setup a SAAS that adheres to HIPPA.
- ademup 7y agoVMRacks (now hipaavault.com). I'm not affiliated, just a completely satisfied customer. As to setting up the business, I would also recommend a HIPAA auditing/hand-holding company. I use Compliancy Group (https://compliancy-group.com https://compliancy-group.com).
- 0b1010011010 7y agoJust finished my undergrad in cis, and have been grasping at the many services in the industry. How did you find yourself in freelance within clients needing HIPAA compliant?
- ademup 7y agoI am surrounded by people in the primarily private-pay Mental Health space because my (romantic) partner is a consultant in a tiny cottage industry. In my case, it's 100% "people you know". Dealing in PII suuuuuuucks because I constantly have an elevated anxiety about it. However, if it wasn't PII plus the people I know and met......then I probably wouldn't have the opportunity I have. That said.....had I not done "this", then I probably would have done something more lucrative and "easy". I see non-PII opportunities everywhere, and (mostly) only hang around because what I do now pays the bills.
- buboard 7y agosimilarly , making half that and using dedicated servers. When you re a solo dev you dont really have time to risk learning unproven tech or tech that doesnt scale. And as a dev i like writing code that does new and interesting things, not learning tools and other people's APIs. The amount of services this guy has to manage is mind-boggling, and unfortunately i m simple and stupid. I guess i m a hermit dev but thankfully i ll never need to work for others again.
- adventured 7y agoI found the list under miscellaneous to be similarly mind-boggling. There are approximately 56 moving pieces to this "boring" one-person setup. All the things they mentioned: Ubuntu, PostgreSQL, Elasticsearch cluster, Redis, RabbitMQ, Django / Python3, uWSGI, Nginx, Celery, Celery Beat, Supervisord, React + Redux + Webpack + ES, Amazon S3, Cloudfront, react media player, Ansible, Datadog, PagerDuty, Rollbar, Slack, PyCharm, MacBook Pro, Vagrant + VirtualBox, GitHub WeWork, iTerm2, tmux, Notion, G Suite, MailChimp, Amazon SES, Gusto, Upwork, Google Ads Manager, Carbon Ads, BuySellAds, Cloudflare, Zapier, Trello, Medium, GoDaddy, Namecheap, Stripe, Google text-to-speech API, Stripe Atlas, Clerky, Quickbooks, 1password, Brex, Bonvoy Amex card, Capital One Spark
- vonseel 7y agoFWIW, this component: PostgreSQL, Elasticsearch cluster, Redis, RabbitMQ, Django / Python3, uWSGI, Nginx, Celery, Celery Beat, Supervisord All of that is a very typical Django stack with React bolted onto the frontend. Whether he runs into trouble managing RabbitMQ, Redis, Postgres or any of the Python services is another story, but at least if he did there are many, many others using the exact same stack, so he should be able to easily find answers to people experiencing the same problems. All of these technologies have several year track records now, too, so (hopefully) they are stable and reliable in production. My biggest concern would be managing the ES cluster. On the other hand, I disagree with his points about docker being overly complex. Docker images are simple. Kubernetes, once you get the hang of it, is great on GKE and gives you automatic SSL via Google or let’s encrypt, and load balancing and auto-scaling just works. It’s probably more expensive than managing your own servers, at this level, but maybe not since you could pack more services into fewer compute instances.
- ydnaclementine 7y agoOnly question I can think of that I didn’t see an answer for is: is he running one postgres db, which is shared between the web and api services? Multiple services with only one db gets hairy fast with questions like: who owns the migrations? does the migration owning service have to restart the other service so the other service gets the new db column/table? etc Unless the web also uses the API service to get its data. Really great article
- aprdm 7y agoLikely the web app uses the API to get its data, it hints at it when he says he uses the same APIs the customers do from his frontend.
- czbond 7y agoAs a software SaaS CISO, who also pentests and determines partner risk - I take the approach of not sharing such in depth details. Articles like this are fantastic fingerprinting recon for those that look to compromise sites.
- quickthrower2 7y agoSecurity by obscurity?
- imihai1988 7y agoNot a really good idea all by its own.
- w8rbt 7y agoAbsolutely, but a great idea when combined with other defensive tactics. Obscurity is why armies use camouflage.
- czbond 7y agoSure - telling me whether you have an api.<domain>.com doesn't matter. Anyone can scan and find that. But, if I know your database names (from a screenshot) and your hosting provider, I know that once I'm past a bastion host, or on your VPN connection - I don't have to wait to sniff or hope you connect to datasources. I now have an informed opinion on where to go.
- reilly3000 7y agoI've often worried about that; in fact its really kept me from blogging about our infrastructure at all. Am I too paranoid? I've often thought if I were to do so that I'd set up a honeypot; but who has the time for such games?!
- crispyporkbites 7y agoPretty sure a blackhat with nmap and a few hours would be a lot more effective than trying to glean something from this blogpost.
- mattmar96 7y agoJust because I saw you (wenbin) in this thread I thought I'd be helpful: On https://www.listennotes.com/api/pricing/ https://www.listennotes.com/api/pricing/ There's a typo: "Instantly access to 771,769 podcasts" Instantly -> Instant Really enjoyed the post, thanks for sharing.
- jbverschoor 7y agoThat's not a typo. They are two different sentences with slightly different meaning. Access as a noun or access as a verb.
- tobib 7y agoOut of curiosity and please forgive me as I'm leaning ESL, but shouldn't it be either "Instant access to x podcasts" or "Instantly access x podcasts"?
- castwide 7y agoI agree. If "access" is a verb, the "to" is superfluous and awkward.
- loeber 7y agoThat's correct.
- jbverschoor 7y agoAh sorry I read over that lol
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- chipotle_coyote 7y ago"Instantly access 771,769 podcasts" -> access as a verb, not a typo "Instant access to 771,769 podcasts" -> access as a noun, not a typo "Instantly access to 771,769 podcasts" -> access as a confusion, definitely a typo
- tyingq 7y agoWas interesting to read all the sort of "boring" back end pieces, then see that he went with half-server and half-client rendered React for the front end. Was expecting Angular or similar, given the pattern of the other picks.
- eropple 7y agoReact is "boring" now, too. (And good for it.)
- neutogouln 7y agoThis definitely deserves to be on the front page more than any discussion involving Snowden. /s #HNPropaganda
- reviel 7y agogreat post, love the solo entrepreneur mindset
- kyberias 7y agoThis was the most inspiring piece of text I've read for a long while. Such clarity of thinking and focus.
- baby_wipe 7y agoI use Lisntenotes API for my podcast app and Wenbin is an amazing dev to work with. Highly recommended.
- yardie 7y agoThis was really informative and delight to read. It's great to see developers making a go at the bizdev side and actually being really successful at it. Light on the heavy technical, light on the buzzwords, just the right amount of information to say, "here, if you even use half my stack you're well on the way to a viable product."
- huangc10 7y agoTBH, this is more inspiring than I thought. I thought this would be some BS article about promoting your company but turns out, it was a fun and inspiring read. My dream is to find a good idea and work solo. It is a little harder as a mobile engineer but you're right as you mention in the blog. There are technology nowadays that help me with backend/dev tools. Cheers.
- cagenut 7y agokey missing info though: does it make money? I checked the site and it looks like a mix of ads (that are blocked of course) and a patreon with 5 supporters.
- huangc10 7y agoI'm going to go out on a limb here and confidently say he's doing fine. As he mentioned, he rented an expensive one person WeWork office in SF (when he doesn't even have to).
- NKCSS 7y agoWhy would that indicate he is making money?
- chucksmash 7y agoI think the assumption is that ListenNotes is his only source of income and that he isn't burning personal savings or the capital he has invested on non-mandatory expenses. Granted those assumptions, you've got to get pretty far up Maslow's Hierarchy of Needs to hit "rent a WeWork"
- twox2 7y agoActually it's not the missing info... because it's none of your business. It's a technical post about his solo founder and operator DevOps practice.
- ademup 7y agoI respectfully disagree. HN is very much about the -business- of tech. Telling us how you made your mousetrap is all well and good... Having us ask how many mice it has captured is absolutely relevant. Germane even.
- Scarblac 7y agoI disagree. This isn't Tech Business News or Startup News, it's Hacker News.
- aprdm 7y agoThat's awesome and it is a tech stack that I try to mirror and am confident running myself as well! It's incredible the amount of knowledge required for a single person tho when you think about it eh? It's the full frontend (which I would have more trouble with) + databases + caches + search engine + metrics + deployment + source control + sysadmin all baked in a single person who is also trying to make it a business! Kudos for the effort and making it happen, one day I might be joining the same journey with the same stack! Just gotta figure out what actually motivates me to build a business on top of =)
- mtnGoat 7y agoas someone who has only worked on small teams, i thought this was normal. My current position is leading a small team, but we have interactions with a number of teams inside of FANG companies and it's amazing the limited amount of knowledge and access each position/person has. Most of my engineers can run circles around our partners. I always thought every engineer should know how to deploy a server, install deps, understand caching, etc and setup an app... turns out, that is apparently not even remotely expected at most companies. I guess the bigger the company the more narrow the skillset required.
- aprdm 7y agoYeah, I worked in start ups and that's where I got the fast pace and I think that allowed me to rise to high ranks very fast at bigger companies as I have a solid understanding of all the stack. In bigger companies traditionally they had a person / department more specialized per part of the stack, I think is a lot about the "devops" culture.
- earthboundkid 7y agoAnd the thing is, generalists do better work. They do less work overall because there are fewer of them, but compare a typical enterprise 50 person team to the output of a team of 5 generalists, hands down the generalists will make a better product every time because there's no buck passing or shoulder shrugging about problems.
- goodroot 7y agoWhoa -- is that a boring stack nowadays? There are many great cutting edge tools in use. Humble fella.
- rhizome31 7y agoMy thought exactly. I was expecting good ol'LAMP or something along these lines. I think here "boring" means "has been released for more than a couple of years".
- Stronico 7y agoEveryone should write something like this.
- marmaduke 7y agoThis is exactly the stakc I worked with when contracting for another startup/company. The degree of similarity is disturbing. It mostly worked really well though, kudos to whoever figured it out. And you could mock a dev setup right in PyCharm.
- poidos 7y agoAs someone still in school, this type of article -- though inspiring-- kind of scares me, to be honest. I don't think I could do any one of the things mentioned in this article.
- mLuby 7y agoTry deploying a simple server (eg a dog API) on Heroku. Then back it with a database. Then add a web or mobile app. Then do it on AWS.
- wil421 7y agoFrom a mid-level dev, you’ll learn and I doubt you’ll need to know everything in this article and understand it for your first job. Do you understand what the web, api, and DB servers are doing? If your interested in Python and want to start small I can recommend Flask. Flask is smaller and could be more user friendly than Django. Here’s a great tutorial. You’ll build a blog with Bootstrap, Python, Flask and SQLAlchemy.[1] [1]https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6...
- poidos 7y agoThank you for the Flask tutorial. I tried getting into it but was having some trouble; the tutorial looks great!
- welder 7y agoFlask is easy, but it's actually better suited to seasoned programmers. Django's hand holding actually makes it a better framework for beginners. https://wakatime.com/blog/14-pirates-use-flask-the-navy-uses-django https://wakatime.com/blog/14-pirates-use-flask-the-navy-uses...
- wil421 7y agoThanks Alan(?). I haven’t gone too far with Django. I can see what you’re saying about being seasoned. Flask clicked for me quickly but everything just made sense, ORM, Jinja, modules etc.
- deleted 7y ago[deleted]
- mac_was 7y agoFantastic work!! So much knowledge and thanks for sharing with us!
- PorterDuff 7y agoVery cool, I'm impressed. This guy knows how to do all the stuff I don't know how to do and it actually works well.
- vowelless 7y agoWenbin, amazing article. One question: what all do you use contractors for? How has your experience been in managing them? Thanks
- wenbin 7y agoSome examples that I used help from contractors: 1. Built some reusable ReactJs components. 2. Design / illustrations 3. Proofread website copy / blog posts 4. Built experimental app like this one https://itunes.apple.com/us/app/just-listen-simple-podcast-app/id1444970658?ls=1&mt=8 https://itunes.apple.com/us/app/just-listen-simple-podcast-a... (probably there were other random things... I got to look at the billing history on my upwork :)
- tiborsaas 7y agoThis is where I'd put a 10x developer :) Complete competency across the whole stack with a solid understanding of a profitable operation.
- john_moscow 7y agoYep, learning how to run your own business is the only way to convert 10x development aptitude to a 5-10x pay increase. Otherwise you get 1x pay, 10x the expectations, upset colleagues that feel inferior in comparison, and very little promotion chance because the company needs you right where you are.
- buboard 7y agorunning many different systems is not development
- aantix 7y agoPicking your stack/architecture based on team size is something most engineers miss. Microservices, great for companies with many teams. Not so much when it's three people scrambling to create something meaningful. Monolith all the way.
- eloff 7y agoIt's funny because microservices are explicitly targeted at solving problems for development with many teams, and lots of single team companies cargo cult them. Did they miss the first paragraph when they were reading up on what microservices are?
- q3k 7y agoThey also solve some other problems: - different SLA and scaling requirements per component/endpoint - different security domains per component/endpoint - different rollout strategies/policies per component/endpoint (no need to restart your long-lived client TCP sessions in parallel to rolling out a business logic fix) - ... I've been happily developing and deploying microservices for small customers, in teams of 1 to 10 people. But I also don't work with customers who just need simple CRUD apps.
- eloff 7y agoEverything depends on context, but I don't think microservices are the best solution. I think in nearly every case there is an easier way to address those problems.
- OJFord 7y agoWho says only multiple teams need microservices, and who put them in charge of what people find helpful? If the 'app' has enough different 'bits' I'd favour a SOA no matter the team size. Somebody now wants to say that isolation doesn't necessitate distinct services; they're probably right, but the alternative is great discipline - why not make it easy? It's a form of defensive programming isn't it? - if widget factory shouldn't be using a function from auth helpers, make it impossible!
- sixstringtheory 7y agoGreat writeup of the stack and process. To all the people thinking “I couldn’t possibly do this myself” just look at the mention of UpWork towards the bottom. Looks like the author has brought in contractor help at some point.
- deleted 7y ago[deleted]
- avip 7y agoFirst, that's a great stack and very well written/presented. One comment - he dismisses serverless as being overengineering. I think the correct POV, moreso for the single-man company, is that running a server to perform a task is the overengineered option. One can see from the snapshot the servers are indeed severely overprovisioned and underutilized. Building an api with api-gateway + lambda is less work than running django in uwsgi behind self-managed nginx, and is guaranteed to be more cost-effective for unpredicted load. Same logic applies to the db servers - why not hosted? And last - the inf is a good reminder that prefixing your api routes with /v1, /v2 is always a good habit.
- zippergz 7y agoYes, and no. If you already have a lot of experience building apps that run on servers, there's a learning curve to switching to serverless. Is it huge? Not really. But there are certainly pitfalls and best practices to learn about. The costs can be harder to predict, especially when starting out. And the tooling is different (and much less mature). So now you have a bunch of stuff to learn about or consider, or you can just go do the same thing you already know how to do with minimal friction. It's possible that the cost savings of not overprovisioning servers is worth it, but I don't think it's that straightforward of an answer, and if your server costs aren't massive, you might be better of spending your time building a great product than learning a new way to build.
- avip 7y agoI think, and I'm replying to both above comments, that there's a non-trivial cost reduction + DevOps reduction potential here. Of course, the overarching rule is always "if it works, don't touch it".
- jbverschoor 7y agoHow? His boxes are running at 100%. He might be able save some money by switching to hosted db and maybe run his webservers serverless (and creating some keep-alive triggers). Nontrivial cost reduction would be switching to a different host instead of aws.
- fovc 7y agowenbin, do you find it meaningfully superior to get Slack notifications vs. just an email? Also curious if you have a monitoring/recovery strategy for when you go camping or on honeymoon and need to be offline.
- eruci 7y agoI'm a one-person company too ( geocode.xyz ). My tech stack is even more boring than that. (Nginx, MariaDB, Perl on AWS Ec2 Linux instances. I don't have an office either.
- peterburkimsher 7y agoThis is completely off-topic, but thank you for running geocode.xyz! I'm a very satisfied user :)
- mzkply 7y agoIs your site down?
- eruci 7y agoNo. https://stats.uptimerobot.com/00vDQc3O7 https://stats.uptimerobot.com/00vDQc3O7
- AimForTheBushes 7y agoI really like the idea of monolithic repos but can see some downsides when there is more than one person working on a project. It would be cool if there was a simplified way to have an entire business operate under source control.
- tobib 7y agoThis interests me. Can you elaborate on what downsides you see? Even in a small team we're often working within the same repo at the same time without any issues.
- AimForTheBushes 7y agoThe glaring issue would be permissions ie who can see what. Pull requests could get muddied up but that probably wouldn't be too much of a problem to overcome. Some foundational git protocols would have to be adjusted, like .gitignore. I think it's a great way for start up to manage the business but as more people get hired the organizational complexity might be too much to bear.
- themacguffinman 7y ago> It would be cool if there was a simplified way to have an entire business operate under source control. A lot of projects can and do apply CI tooling to achieve this. Every commit to a branch triggers a set of declarative deployment pipelines, simple. IIRC buzzword is "GitOps" if you want to find out more.
- deleted 7y ago[deleted]
- treycopeland 7y agoHow do you get all the podcasts audio and data?
- mperham 7y agoI love these stories. I'm a one-person company too: contribsys.com. My production server stack is Apache + some Ruby CGI scripts, to serve static files and handle billing webhooks. I spend less than an hour per week on devops maintenance. KISS is the #1 principle when scaling a solo operation.
- non-entity 7y ago> some Ruby CGI scripts Didn't ruby remove its CGI libraries from their standard library somewhat recently. I believe there were mostly helper libs, but I am curious how that works.
- zrail 7y agoCGI is just running a program in response to a request. Things about the request are put into environment variables and POST/PUT bodies are on stdin. Your program writes HTTP headers, two newlines, and the response body. You don't need libraries. If you have reasonably low traffic CGI can get you really far.
- yjftsjthsd-h 7y ago> If you have reasonably low traffic CGI can get you really far. And even after that, I would expect that CGI augmented with some careful caching (read: all static content and some dynamic content with sensible expiration policies) will get you even farther without having to dramatically change anything.
- cutler 7y agoI built an app in Perl/CGI::Application for a company which ran media campaigns with national brands over a 12-year period. It's not the fastest option but it certainly works.
- jimbokun 7y agoThis would be a nifty exercise for a web programming class. Really internalize a lot about HTTP in a short amount of time.
- test2016 7y agoSatoshi Nakamoto was one person behind Bitcoin, similarly.
- sealthedeal 7y agoThats a ton of servers! What is your monthly AWS spend?
- symlinkk 7y agoThis is just a big ad for his website with no in-depth knowledge or insights provided. Literally just a list of tech someone uses and 4 or 5 links to his website. Is this what HN has become? I remember the content upvoted on this site being much better a couple years ago.
- rc_kas 7y agoThis dude is my hero. Keeping it simple and functional.
- localhost 7y agoThis looks like a great service; I just signed up for it and created my own listen later playlist. I spend 6-8h a week on my mountain bike and I use most of that time to listen to podcasts. The challenge with how I do it (using just an Apple Watch) is curating my feed. This is an excellent tool and a far better UI for curating a feed. I also like the different and varied sources of income that you have, from the transcription service to ads to your API. Seems like you've built a great platform that you can use to experiment with different revenue models. One additional question - your product is called Listen NOTES. Are you planning on adding note taking functionality to it at some point? One thing that I've always wanted to do was to jot down some set of notes to myself (typically during one of my bike rides). I always imagined that being some kind of voice activated thing, but I'd like that note sync'd to the spot within the podcast that I was listening to (and perhaps transcribed as well). Any thoughts about building something like this? Thanks again for building this service!
- agustif 7y agoYou could use Airpods + Siri + Notes.app for that.
- riku_iki 7y ago> Kaiser Permanente for health insurance. Super important part. Any details about how much it costs for single person company? :-)
- chasd00 7y agoyes, i'm very interested in how they did health insurance
- amdavidson 7y agoIt's pretty straight forward to get a quote, is it not? https://individual-family.kaiserpermanente.org/healthinsurance/get_a_quote https://individual-family.kaiserpermanente.org/healthinsuran...
- wenbin 7y agoSure. It's around $700/month for me + my wife. I wish I could've known more practical info about starting a company before I quit my day job, e.g., how much for insurance, what company credit card to use, how to pay tax, where to find lawyers... Online articles / advices are mostly focused on big picture or very abstract concepts or fortune cookie type words :(
- samkxu 7y agoCould you perhaps write articles on these? I'd be super interested as someone looking to know more about starting a solo company.
- wenbin 7y agoYes, will do. Earlier this year I gave a talk to some college students, which has some more practice info about starting a small internet company: https://broadcast.listennotes.com/good-enough-engineering-to-start-an-internet-company-f26be5b01025 https://broadcast.listennotes.com/good-enough-engineering-to...
- draw_down 7y agoLots of stuff can stick a web form in front of Elastic/Postgres or similar. Certainly nothing wrong with that. Also doesn't mean that something quite so simple will work in every case. Not everyone is wasting their employer's money to build their resume.
- acejam 7y agoGreat article. Are you using DataDog Synthetics for the DataDog response time graph?
- jcroll 7y agoI ran a small company like this quite successfully earlier in my career. If you think this is awesome what goes unmentioned is how lonely it can get. Also, any issues you have (business or technology) you bear the brunt of alone. A coworking space doesn't really help either imo, if you like working with others you will miss having coworkers. Just something I think worth mentioning if you think this is something you might want to pursue.
- grepfru_it 7y agoare there any groups out there for the small technology business owner? i'm extremely hesitant of asking about this because it's a fine line between brainstorming technology problems with like-minds and getting owners who want you to problem-solve for them.
- randiantech 7y agoIndiehacker is a good starting point
- reneherse 7y agoPaul Jarvis, author of "Company of One" has a private academy/community group.[1] I'm not a member, but plan to consider it after I finish the book. [1] https://ofone.co/learn/ https://ofone.co/learn/
- cattlefarmer 7y agoYes, the worst thing is the huge amount of decision making even over very minor details that has to be done all the time. Coding and maintaining the servers isn't even that difficult. It's all the little stuff like scheduling with clients/vendors suppliers, wondering when is a good time to chase that invoice, which words to change in your proposal for this client, and so all. If you have employees, how to manage them, how to review their work, how to mentor them. It really is death by a thousand paper cuts.
- gridspy 7y agoWhat can help with this is to start building little systems and solve these problems in general. Dedicate a given day of the month or week for all your meetings so scheduling is simpler. Chase invoices on the same date every month, chase all invoices that are overdue by some threshold you have set. Just follow the rule, and chase using a template. Perhaps even code the first few chases into an automated system. Try to avoid customized proposals, use templates for many things. I agree this one is hard. Managing employees, you have to consider each employee is a force multiplier. The idea here is to invest a day to get a week or similar. Overall, you need to just invest a limited time into each decision. After that time, go with what feels best even if it isn't perfect and move on. I find the same thing hard myself.
- paxys 7y agoAre there no load balancer replicas? It looks like a single point of failure for the entire service (and it runs Redis and RabbitMQ - yikes).
- Scarblac 7y agoThere's also 1 person who is the whole company, a single point of failure comes with the territory.
- peterwwillis 7y agoThe author can just run an Ansible job and recreate it instantly. It's a stateless ec2 node. If they wanted to be super duper fancy they could make an autoscaling group to destroy and recreate it if it went down. No need for a replica. This probably isn't a lose-100K$-every-5-minutes-of-downtime business.
- paxys 7y agoI am all for simplicity, but if that results in a service outage whenever you deploy new code, apply a security patch or reboot your VM, you need to rethink the architecture.
- aprdm 7y agoWhy if a minute downtime on deployment doesn't impact revenue significantly ? The frontend can even have some exponential cool down on requests when the backend is down and the users who are online in that one minute window will suffer just notice it being a bit slower. He even mentioned his uptime in last years in the post.
- jedberg 7y agoI'm impressed with the profit margins. It looks like one of the main sources of revenue is transcription. From what I can tell the price seems to be about $4/hr. OP said they are AWS. If they're using Amazon Transcribe, the cost for that is $1.44/hr. A 150%+ profit margin is awesome! Well for that one piece of the service. Obviously at least some of the cost of the website and database, etc must be included, but still. Pretty amazing.
- tudorpavel 7y agoThe post mentions using Google speech-to-text for transcription which seems to be even cheaper? I'm not sure where you got the $4/hr price, but indeed kudos to OP for building a business around reselling cloud services for profit.
- HillaryBriss 7y agoI'm guessing the $4/hr price estimation is based on an average of the prices ListenNotes actually charges to transcribe a podcast, as shown on ListenNotes.com for various individual episodes.
- jedberg 7y agoYep exactly. I randomly sampled some podcasts and looked at the cost vs how long they were.
- m1ck 7y agoThis is great! Thanks for sharing.
- bsaul 7y agoThis is one of the most important post i’ve seen on HN so far. it teaches you that you don’t need all the fancy stuffs, but you may need some of them. That you don’t have to shoot for the unicorn project, that you don’t have to build an A+ people team, etc. It’s intelligent and gives all the interesting details to not give any kind of false impression.
- wuliwong 7y agoThanks for writing this article @webin. I'm about to launch a new startup myself and it is VERY boring tech. :p I'm running Rails with Sidekiq on Heroku, so I think I have you beat in the boring department. I do a lot of fancier stuff at work but I just don't need it for this product (at least not yet). I am the only engineer but two non-technical friends (a designer and a lawyer[0]) make up the rest of the company. [0] the original idea was the lawyer's. :)
- ultrasounder 7y agoHi, I am currently getting started with the Rails stack to. What's your FE stack look like? thanks Ananth
- hinkley 7y agoI listened to an interview with DHH the other day and he was calling out that one of the advantages of frameworks over libraries is that everything comes wired up ready for production instead of you spending all your time writing glue code and arguing about conventions. I'm still not exactly certain where I fall on this topic. What I do know is that I don't like frameworks that conceal the plumbing and leave you with declarative bits that require memorization. Lack of discoverability is a huge barrier to mastery. The best code invites you to determine why something is happening. What I've been thinking about lately that this article drew out for me again was that it's a shame that so many tools and libraries come not ready for production by default. It would be nice to have some curated base file sets where insecure defaults were overridden, and all of the metrics and logging logic were wired up. You get the turn-key solution but you still have code that is more discoverable, and you can veto a few choices without too much effort.
- Scarblac 7y agoThis is almost the exact stack (Django/React/Postgres/Redis/Ubuntu/Ansible/...) I use at work, and I love it. It's a great stack.
- sodafountan 7y agoHow did you get started doing this? Did you have a lot of money saved up and just decide to go for it for a certain length of time? I've had an idea that I've been working on part-time but it really needs some full-time love. At what point do you decide to go for it full-time?
- amelius 7y agoIs this YouTube but for podcasts? Sounds like a good idea actually.
- deleted 7y ago[deleted]
- karambir 7y agoI thought I was reading my own blog post :) We use very similar tech stack at my current company: - Ansible for provisioning - Python/Django for website/api - VueJS for frontend(where needed, some pages are simple Django templates) - Celery for background work - uWSGI and Nginx as servers with AWS Load balancer - Elasticsearch for search - Redis for caching - Postgres with Postgis as main datastore - Datadog for monitoring - Cloudflare for DNS Some differences as I am working with a team: - We do use multiple branches and git tags for releases. Feature branches are also common as multiple devs maybe working on different features. - We use Gitlab-CI a lot for testing and auto-deployment(ansible script can be called from our machine as well) - Terraform for infrastructure provisioning. We have stopped provisioning any AWS service by console. Once the service is provisioned by terraform, ansible takes over. I have tinkered with Docker, Hashicorp Packer but this setup has been dead simple to reason and scale reasonably well.
- khalilravanna 7y agoHow do you feel about using a dynamically typed language like Python for all your backend code? Whenever I had a codebase that grew past several thousand LOC it became pretty unwieldy pretty quickly for me personally. I'm curious if there's a conscious tradeoff for people using Python/Django to start because it's really fast to get up and running with (for existing or new devs).
- m45t3r 7y agoNot OP, however it is fine. I worked in a similar stack as OP with a small team (however it used Ruby/Hanami instead of Python/Django, and of course the difference between both stacks). The code had ~100k LOC for the main service (we also had some other services that had dozen of thousands LOC) and it was completely fine to maintain. Most errors we had wouldn't be avoided by static typed since they're logic errors, not programming errors. Sure I prefer static languages nowadays since I work in a much bigger company, however I think the benefits of static languages is overhyped.
- platz 7y agoRight - I'm totally on board with the overarching goal of keeping the stack as simple as possible, but at the app level, for the best maintenance story, I would want types.
- tnr23 7y agoIs this seriously considered as being a boring stack nowadays?
- drenvuk 7y agoThanks, for all of your comments so far on this site. I don't know what you do specifically but what I can glean from them is inspiring to say the least... even the secrets you keep reinforce what I feel is the right way to act. Just wanted to say it.
- meesterdude 7y agowas honestly expecting a stack along the line of yours - the one in the article is actually fairly complex and not-boring.
- fourseventy 7y agomy exact sentiments lol
- marknadal 7y agoHow big is your team? Mind disclosing what the SaaS is? I'd love to learn more.
- ijustwanttovote 7y agoI bumped into listennotes about 6 months ago, because I was looking to solve the same problem of discovering podcasts.
- abiro 7y agoSecurity concerns are always conspicuously lacking from this type of posts and discussions. If you’re a solo dev looking to start a project, please don’t take OP’s stack as a positive example. Use managed services whenever possible, they will at least keep you patched and simplify intrusion detection when configured correctly.
- wolco 7y agoDon't throw your money away for that reason. Keeping upto date is easier than ever.
- alexbecker 7y agoI run a similar, maybe even more boring stack for my less-than-one-person company [PyDist](https://pydist.com https://pydist.com): - PostgreSQL database - Nginx proxy in front of Django apps for UI and API servers (I use gunicorn instead of uWSGI though) - Cron jobs which invoke django-admin commands to keep the PyPI mirror in sync Perhaps the only place I'm any fancier than OP is that my deploy script is in Python, not shell, since any time I try to write a shell script with even slightly nontrivial logic it falls over and catches fire :)
- welder 7y agoWhat's your experience with gunicorn instead of uWSGI? I'm using haproxy + nginx + uWSGI but I'm wondering if gunicorn scales network more than uWSGI. My bottleneck isn't CPU, it's the amount of open connections uWSGI can handle at once. Here's a trimmed down version of my web configs: https://wakatime.com/blog/23-how-to-scale-ssl-with-haproxy-and-nginx https://wakatime.com/blog/23-how-to-scale-ssl-with-haproxy-a...
- dcsan 7y agoIt seems wenbin is also the lead developer on ndkale, https://github.com/Nextdoor/ndkale/graphs/contributors https://github.com/Nextdoor/ndkale/graphs/contributors so he would certainly be capable of using a more esoteric stack. I wonder when developers are working for themselves / very early stage, if one automatically becomes more conservative? If someone else is paying for your time, it's nice to experiment and grow personally. When it's your own buck, the focus is on pragmatic shipping and getting revenue coming in.
- wolco 7y agoWhen you do it for yourself you choose a quick prototyping language like php because you want to create a product. When you work for someone and they pay you to learn something hot why not take the opportunity as it will help with the resume. As a small business no one pays you to learn.
- Axsuul 7y agoYour mileage may vary but there’s a real opportunity for the latest technologies to save you work and headache. My own one-man startup Trunk[0] is very infrastructure heavy so I’m super thankful for technologies like Docker. You don’t have to go full-blown Kubernetes but there are various small wins you can still have. Need to upgrade a piece of your stack? Just build a new container a deploy it! Need to bring up all your services in development? `docker-compose up`! And with Docker Swarm, it’s super easy to scale up background job and application processes across multiple cloud instances. I can’t imagine doing this without Docker. When getting a business off the ground, it’s extremely important you do customer development and not new technology development. When running a business however, new technology can become a competitive advantage and help you move faster. Just make sure it’s really doing that. 0. https://trunkinventory.com https://trunkinventory.com
- pythonist 7y agoThe stack can be much boring, simple and easy to maintain. Golang helps a lot for that. For example https://newreleases.io/ https://newreleases.io/ - Go with embedded databases for web services - Vue.js for frontend - Nginx just as there are other sites on the server - Prometheus/Grafana for monitoring - Gitea for code hosting and some automation - Bind9 for DNS - Debian
- thecodemonkey 7y agoOh wow. This is scaringly close to how we run geocod.io - right down to the ansible provisioning wrapper that I put together :) > ./provision provision usage: ./provision environment role [hostname] This script will provision the given role in the specified environment using Ansible If a hostname is specified, provisioning will be limited to that specific server
- samkone 7y agoThat's not boring. That's sane.
- rsp1984 7y agoA super interesting and refreshing read, especially since I am not very knowledgeable about web technology and most of the talk these days is about the latest fancy framework or database. I am curious though, since I am using Google Cloud (App Engine in particular) for most of my company's modest backend needs: Would Google AE be able to handle all these backend requirements as well (but obviously without all the configuration and setup required)? Or asked another way: When is the point when you should move away from something easy and low-hassle such as GAE to something more advanced that requires a bit more manual configuration like setting up your own AWS servers? Not trying to be critical, just honestly trying to learn from folks that know better than I.
- ericlavigne 7y agoThe main idea of this article is to use what you already know and just get it done, rather than experimenting with new tools. The author already knew how to use most of these tools from a previous job. He stuck with the technology that he already knew, so that he could focus more on business aspects rather than new technology. In that spirit, you should use the App Engine that you already know for as long as it seems to be working well for you. When you run into a problem that can't be solved in App Engine, that is the time to ask for advice on how to solve your problem.
- WheelsAtLarge 7y agoWell, I'm super impressed. I wish I could do half of what this guy can do. But he needs to be careful not to overdo it. It's fun and exciting to get all this tech up and running. But at some point, it becomes a drudge. And burnout is right around the corner. I would say that if he can farm out as much as possible and focus on marketing and sales which are the drivers for most company's continued success. In a sense, he has by using the cloud but what he's doing is way too much for one person. I used to be a laid back kind of guy and would get irritated when I was hurried and clearly there was no impending death. But now I understand that the limit lies within us. At some point, we all give up. There are those that take a long time and there are those that give up relatively fast but giving up is part of the process. So we are in a hurry to get as much done before we decide to stop what has not been successful. By putting so much burden upon your self you make it so much more likely that you will give up before you find success.
- wuliwong 7y ago>he's doing is way too much for one person You have no clue what is "too much" for the author of this post.
- rjurney 7y agoI've found the tradeoff is in favor of using ECS, Kubernetes or something similar. The docs aren't too bad now. It is great to be able to build/deploy a docker image and not worry about how it gets out there, and what might go wrong with that system.
- OJFord 7y ago> Wait, how about Docker / Kubernetes / serverless? Nope. As you gain experience, you know when not to over-engineer. I actually did some early Docker work for my previous employer back in 2014, which was good for a mid-sized billion-dollar startup but may be overkill for a one-person tiny startup. I really think the key thing here is familiarity. K8s is a bit different, but certainly in OP's position I (personally!) would be more comfortable with an image for each component. Perhaps a machine image rather than docker, if each component is going to be on its own machine as described, but something at least semi-reproducible for sure. When I'm working on something alone, and particularly if on and off and not for several hours every day I need to be able to come back to it in a sort of self-documented state that doesn't leave me scared to touch anything lest it crumble.
- sieabahlpark 7y agoThere's nothing wrong with the concept of containerization and you can use it without much additional headache. Of course it's not for everyone but outright saying it's a waste of time hasn't spent much time with the ecosystem to know how easy it's become latey.
- OJFord 7y agoYes, we're in agreement, I'm not saying it's a waste of time, I'm saying I'd be wasting time and fearful of touching anything without it!
- geggam 7y agoUsing containers without k8s is much much simpler if you need a container. Learning system packaging and how to rebuild src packages is much much simpler than managing a container ecosystem Think about this... if it was so easy to manage containers why does redhat still ship its operating system in packages ?
- dfox 7y agoI think that one of the hidden points in there is that you do not really need a container to deploy python wsgi application, you need an venv and few system packages. Doing that by means of ansible playbook or even manually preinstalled system image that you just clone and then just only use Python packaging mechanisms is even somewhat simpler and faster than building container that works (ie. take a VM, poke into it until it works and then just clone it, deployment of your application is decoupled from the underlying OS)
- nickjj 7y agoI like your Ansible / deploy script / "no fancy CI tools" combo. This is exactly what I do too. Deploying is so painless and consistent. To quote a line from an Elixir talk I recently watched: "it feels like cheating".
- _august 7y agoAlso running a solo company - https://fitloop.co https://fitloop.co I'm primarily a front-end dev so I keep things pretty simple on the back end side. Stack: Meteor, managed hosting on Galaxy MongoDB, hosted on Compose React GraphQL / Apollo API
- stanislavb 7y agoNice! I've bookmarked it on https://www.saashub.com https://www.saashub.com. You should verify it there :)
- stanislavb 7y agoOK... that was quick!
- _august 7y ago;)
- cosmosocean 7y agoCurrently running my a 1-person startup. It can be daunting to tackle everything on your own, but it’s not once you get used to the process. In the future, I hope to scale out a team. I’m working on some very awesome technologies that I haven’t had too much experience shipping (AR, AI, Automation). However I’m committed to learning and growing throughout my business experience!
- phalangion 7y agoI'd love to know how you're running Django and React together. I've been trying to figure out how to make that combo work in a mono-repo, and I'm definitely missing something. Any advice?
- yagodragon 7y agoI'm also struggling a lot with django, react and the whole asset pipeline. On the other hand, frameworks like rails and laravel have it all figured out for you.
- phy6 7y agoI just watched 8 hours of Django videos yesterday, and 4 hours of that was a Django + React tutorial. It covers in great detail the CRU from a CRUD, but you'll need additional videos to cover deployment on elastic beanstalk or ec2+elb, etc. https://www.youtube.com/watch?v=AHhQRHE8IR8 https://www.youtube.com/watch?v=AHhQRHE8IR8
- phy6 7y agoBasically his tutorial was to put the react project inside the django project, and depending on which parts you're modifying and how your testing, he has a special static collection script that builds the react portion and copies the static files up into the Django parent project folders.
- imetatroll 7y agoThese success stories always pain me a bit. I tried for some time to get my own project going based on personal interest, but it never went anywhere. I have people visit the site but retention and use is a problem. https://imetatroll.com https://imetatroll.com - golang, gopherjs, bootstrap, DO, and kubernetes.
- fuball63 7y agoI think this looks cool, and I feel your pain on the retention/use problem as I have also made a game that requires multiple people to use to create value. I never found a way to promote it to groups of people instead of individuals. Even in a meetups/expo setting it's hard to get critical mass and momentum.
- sabujp 7y agowhat's monthly revenue?
- mattbillenstein 7y agoGreat post - I'm running almost the same exact thing - Flask instead of Django, Saltstack instead of Ansible, rq instead of celery - supervisord, postgres, redis, ubuntu, nginx, aws (actually multicloud, BigQuery for data). It's very good stuff!
- csdreamer7 7y ago> Basically, I have a wrapper script deploy.sh that is run on macOS: I do the same thing on Linux. build.sh, deploy.sh. But, I also use a run.sh which runs tasks that I may not remember to run if I come back to software after a while on a certain machine. Like 'git pull' or 'bundle install'. Then ./dev-setup.sh or whatever for starting up tasks. I use multiple machines and having these two simple commands saves me so much frustration. You sit down to began work. You just run ./run.sh and it will setup a dev instance for you. No sudden alerts that your gem is out of date... or worse... no warnings at all and hard to diagnose sudden bugs that steals half a day from you.
- anaphor 7y agoI have a .vimrc like this in some of my projects set makeprg=./build.sh set autowrite I've found trying to figure out complicated build tools to mostly be a waste of time unless you really need them. It also encourages you to not do things that would require very costly builds.
- skoocda 7y agoThis is awesome. Does the Google speech-to-text API work well for your needs? How often do you use it?
- halfjoking 7y agoThat's not boring - it's a professional dev techstack. Boring tech would be a million dollar business running on Wordpress.
- chillfox 7y agoThere is plenty of those, they just don't have anyone tech-savvy enough to be on hacker news.
- buboard 7y agoEvery big company has interesting engineering stories. But i think sure HN woulndt upvote tales from Automattic
- super-serial 7y agoHave you ever heard the story of Darth Wordpressius? I thought not. It's not a story the HN Council would upvote.
- chillfox 7y agoFor sure, but the comment was about million dollar business which depending upon geography would be classified as either micro or small. https://en.wikipedia.org/wiki/Small_and_medium-sized_enterprises https://en.wikipedia.org/wiki/Small_and_medium-sized_enterpr...
- hacker-gene 7y agoWell, on frontend he uses React/Redux/Webpack, which is more of trendy, latest/greatest. If he used Django templates + jQuery, that would have been staid/boring tech. Great post though, aspirational for those of us who wish to found their own startup one day.
- dangoor 7y agoI disagree. React has been out 6 years. It most definitely can prevent bugs which were common with the jQuery approach.
- embit 7y agoVery inspiring article. And thanks for sharing a detailed tech stack write up. Very inspiring for me as I am also a single person running a tech news aggregator website but probably even more boring setup on AWS (php MySQL Apache and some python ) embit.ca , running it alone but never lonely.
- whalesalad 7y agoTechnology is usually just a means to an end. Unless IP is what you are selling, boring is great. I’ve seen SO many teams burn SO much energy on complicated stacks just to drink kool-aid. It’s mind bogglingly frustrating, especially as a contractor. At the end of the day it’s great for me: I get brought into shit shows to clean up the mess. But deep down, I want projects to succeed and clean/sound systems architecture is how you do that. Doesn’t matter if it’s PHP, Python or Java. It hurts to see people continue to make mistakes over and over, so I’m working on a new website and series of engineering posts to help share my approach to a lot of these problems. Any product I start building usually begins in Rails. React is great. Vue is great. It’s not necessary, good ol’ request/response is just fine. You don’t need a service mesh. You don’t need Kafka. You add that stuff later when it’s required... if it’s required. Rails can’t be beat for startups. I wouldn’t waste any time on a single page app, it’s a completely pointless endeavor unless you have proven traction, users, revenue etc... and can afford to do it correctly.
- theonething 7y agoMy first thought was "I wish the startup I'm working for would read this". My second, "eh, wouldn't change anything." > so I’m working on a new website and series of engineering posts to help share my approach to a lot of these problems. Do you have a mailing list or something to get on to get updated on this?
- whalesalad 7y agoI will hunt down this comment and reply to you in your profile once it’s out!
- M277 7y agoMe too, please.
- deleted 7y ago[deleted]
- 7y ago
- exabrial 7y agoOk but look in 2012 they were running Java and still did key changes
- amanzi 7y agoI wouldn't call that boring, there's still a lot of new technology being used in that stack. I'd also recommend some minor improvements to the workflow (e.g. don't do development work on the master branch) that are easy to achieve and provide big benefits. Also - no mention of backups or DR-planning -- I'd be interested to know what's being used in this area?
- ccbn 7y agoWhen my website (https://www.aedaily.net https://www.aedaily.net) has a million of record, I had migrated Postgres to Mongodb because performance issues. I'm using Django template to easy maintain, development and SEO.
- croh 7y agoBoring is better.
- jxramos 7y ago> It’s absolutely okay to use the boring technology and start something simple (even ugly), as long as you actually solve problems. Thank you! Let us solve problems and not chase ultra competitive expertise for its own sake.
- vinceguidry 7y agoAn insight I've had recently is that the most efficient way to implement architectural changes that are not additive is to rebuild. Otherwise you're trending inexorably towards the lava layer and accumulating tech debt that you cannot track. A useful direction to unpack is to define architecture. You cannot re-architect a building after it has been built, you must only demolish or rebuild elsewhere. This is why all architecture changes must be additive in nature, otherwise you're pulling the foundation out from under the building. Software should be modern pyramids.
- johnx123-up 7y ago@wenbin What AWS EC2 instance types are you using? Can you please expand about your AWS stack?
- IGotThroughIt 7y agoHe says boring I say cool. I love the product so much.
- jstummbillig 7y agoAnsible, AWS, SES, React and Cloudflare? Gusto, Notion and 10th of different services and integrations? That's boring now? I was expecting something more along the lines of PHP + a single MySQL machine, plus all the accounting is done on a tablet made of actual stone. This is not that.
- pikzel 7y agoAgree. To learn all of this as a single developer is not an easy task either. These are real frontend, backend and devops languages, frameworks and tools. It takes time to learn.
- ackbar03 7y agoI second that. This seems really full stack as you can get, but I'm not really a professional dev by training, so I don't know if most people are this hardcore. I built and host some web apps myself but everytime I have to switch from doing something front end to back or vice versa I find I need to refamiliarize myself with a bunch of stuff and have to stop myself from panicking
- jackcodes 7y agoIt sort of depends, if you’ve worked in a couple of corporates where you have to know a handful of various tools at each it quickly adds up to having enough knowledge to quickly deploy even what hacker news considers ‘heavyweight tooling’. Most of these tools have QuickStart guides that do get you most of the way there for a basic use case. I’m running a similar solo project with an almost-but-not-quite similar spreads of technologies. But as I said, it depends on your history and what you work quickly with. In the article the author says they chose Ansible because docker felt too heavyweight and unnecessary. It’s true that docker has a lot of stuff you don’t need in there, but trust me when I say Ansible is no picnic. In fact I find it easier to take what I need with Docker and Kubernetes and get running way quicker than I would ‘naked’ Ubuntu machines that I need to semi-manual previsioning with shell scripts or Ruby scripts. I got up and running with Kubernetes on DigitalOcean in less than a day, and Dockerfiles using familiar technologies I’ve used before take less than an hour to iron out. You’ll get people who say that Docker is overkill and unnecessary and far too complicated for a solo project, but then you’ll get others who believe it’s a small file with 20 lines of declarations, sat alongside a 30 line yaml file that can provision all of your infrastructure instantly across any cloud provider you choose.
- aussieguy1234 7y agoHere's my boring technology. I've built Libr (https://librapp.com https://librapp.com), a full social networking platform designed to fill the void Tumblr left behind. The hosting is serverless for both the front end assets and back end no servers to maintain and infinitely scalable. Libr has a front end progressive web app built with VueJS hosted on S3 with CloudFlare in front. The back end API is hosted on Lambda. By using serverless framework things are portable. I could easily migrate to another serverless provider or even host my own. Both the front and back end use the same programming language, TypeScript. The database is Elasticsearch, just like WordPress.com (they don't use MySQL for most things). Each month, I receive a nice little invoice from AWS for under $1 for the hosting. So far CloudFlare is free for me. I built everything by myself, with no team. I have had input from Libr users on feature requests and UI improvements.
- ultrasounder 7y agoIs you site down? I am unable to access it right now.
- aussieguy1234 7y agoIt's up. Unless S3/CloudFlare go down, it shouldn't go down
- danmaz74 7y agoAt this point, I would add Docker (without Kubernetes) to the "boring" technologies that simplify your life. Having managed my own "server farm" of 20 machines on hetzner, with a very small startup, I found that abstracting away the underlying OS removed a lot of friction.
- posedge 7y agoSad to hear that PyCharm is considered old school these days.
- baalimago 7y agoPostgreSQL, Redis, RabbitMQ, Elasticsearch, Django/Python3, uWSGI, Celery, Celery Beat, Supervisord, Amazon S3, CloudFront, React, Ansible, Datadog, Rollbar, Slack, Vagrant, VirtualBox, PyCharm, iTerm2, Notion, G Suite, MailChimp, Amazon SES, Gusto, Upwork, Goodle Ads Manager, Carbon Ads, BuySellAds, Cloudfare, Zapier, Trello, Godaddy, Namecheap, Stripe, Google speech-to-text, Kaiser Permanente, Stripe Atlas, Clerky, Quickbooks, 1password, Brex. Alright. Just make a "boring" website now, it's "easy". If it's one thing i really dislike within both the scientific and the technological sphere it's this arrogance disguised as common knowledge. Because it's not. Articles like this is nothing but bragging. The author, whoever it is, clearly has a very long time working in the field acquiring this knowledge. Be humble.
- Kovah 7y agoTo be fair, half of the used services do not have anything to do with the website itself but with the whole business around it. Also, most of the tools do not require a PhD in computer science; neither Rollbar nor Cloudflare are actually hard to set up. Still, you have a valid point. The setup described here is not boring at all and not easy, I expected a one-root-server-for-everything that runs some PHP and MySQL.
- chii 7y agoanyone can build a house from scratch! just read the instruction manuals for brick-laying, carpentry, electricals and plumbing. After all, none of these require a PhD.
- iraldir 7y agoOkay that guy is just showing off, but rightfully, this is damn impressive. Even if some of that is offloaded to contractors, he still needs to understand most of it. That's a proper full stack developer with a business mindset as well. Hope I'll improve my backend / devops skill to that level at some point.
- artur_makly 7y ago@wenbin - What would also be helpful is a P&L report on all of these expenses - as that will also tell us a great story.. and it would make a nice Part Deux ;-)
- amai 7y agoAs soon as he has a bigger team of developers, some of his technology choices might cause trouble. Especially not having a build server will cause chaos very quickly, because nobody will know, who has deployed when and what. A good deployment pipeline with a good test battery using a boring build server like Jenkins can help a lot here.
- plexiglass 7y agoSuch an inspirational post! Love Listennotes.
- em-bee 7y agothe key for me is a backend-as-a-service platform that i can reuse over and over. i used to be mainly a backend developer, but for more than 5 years now i have barely touched the backend code because it was designed to be reusable. i build SAP applications now because they make it easy to work with a reusable backend. for the rest of my system, i use basic LXC containers. no docker, or other container management system. deployment consists of setting up an instance of the backend, and generate the frontend as static files that can be hosted whereever. saltstack to control it all. done.
- ankit70 7y agoWonderful stuff! I've been trying to learn programming and able to code the CRUD apps for almost 6-7 years. I've tried to learn Rails (Ditched learning Rails because JS framework are all the rage). Tried learning Flask/Django because it was considered easy. Ditched it too cause internet people said it's slow. I tried learning Go, Phoenix and jumping between what's considered cool in last few years. And here I am, no confidence to do a basic simple app. It's been an interesting journey with no luck because of constant chasing of 'Exciting' frameworks/Tools.
- ryanolsonx 7y agoMy advice would be to quit chasing exciting frameworks. Pick something that has been around a while (Ruby on Rails, Python with Django, Java Spring) and go with it. Focus on performance once it becomes a problem. In python, you can rewrite parts in C that need a speed improvement. Otherwise, focus on making a great product that solves a problem for your users.
- aeorgnoieang 7y agoPick one framework – any is fine – and finish the (or a) minimal version of a basic simple app. I'd suggest minimizing, or even ignoring, JavaScript. A really basic CRUD app doesn't need any.
- ultrasounder 7y agoI started along the same path as you. What i have been experiencing is Analysis Paralysis. Like the OP says, the trick is to commit to something that helps you from point A to Point B the fastest. And that for the time being atleast is RoR as is very opinionated and there are lots of humungous opensource, well maintained libraries floating around. And last but not the least, The Rails Tutorial actually bets you going to building something useful in no time. Good luck.!
- squeaky-clean 7y agoI agree with the general consensus pick one and stay with it for a few projects. If you can't pick one, just roll a die or anything. Maybe pick one a friend knows so you can collaborate in the future. The differences between languages and frameworks won't matter very much unless you're joining a team with a preexisting stack or an edge case company/application that needs top-of-the-line everything. Even if your app usage does scale beyond what your first version can deliver, you'll often get a bigger improvement by rewriting your app in the same stack using the new knowledge you've learned, than you would by rewriting the same logic in a newer stack.
- passthejoe 7y agoListen Notes is a nice service. I don't quite understand how it works -- do podcasts pay to be included in search results? It's a nice thing for the listener, that is for sure.
- rojcyk 7y agoInteresting, there seem to be lots of opinions about the chosen stack. But as a designer, I have no idea what to make of it. Recently I rode the Figma API release hype train, and I made a plugin which is quite successful. Almost 10k active installs. It is basically a collection of the most popular viewports and their market share. I also have a server where I store the data. Every other day I run a script which updates the market share and that is about it. To summarize it: - I have a client (react app written in typescript) which has a very simple "caching" mechanism (if you asked the server for new data more then a day ago, ask again) and which shows the data and nothing else. - And I have a server (express js) running on Heroku (where I also have the Postgres DB). The server has a basic REST API and very default admin interface. But most of the time the server is not doing anything. It was something I was able to put together quite fast, but now reading all the comments I'm thinking whether it isn't over-engineered and whether I should go with serverless and possibly reduce the costs.
- umen 7y agogreat read , say is your revenue is from ads only ?
- arikr 7y agoPeople who upvoted this, what made you up vote it? It's much more popular than I would've guessed when I first saw it on the homepage
- jblake 7y agoI'm surprised no one has mentioned Heroku yet. I'm a one man business too, and 90% of the details in this post I don't even have to worry about. Sure I pay a pretty penny for it - at least a thousand a month - but it just works. Rails and all of its beauties, postgres, redis, sidekiq, sendgrid, twilio, Scout, Papertrail, and that's about it. Looking to add AppOptics soon for business KPI / APM metrics.
- joexuyi 7y agoVery inspiring. As a coding newbie / wannabe entrepreneur, I will need some time to understand what each part of your technology does though. I will start using Listen Notes later today. Keep up the good work!
- jmchuster 7y agoHaving experience in both realms, it seems kind of interesting that Docker is considered overengineering while React + Redux + Webpack + ES is considered natural and simple. I guess 50% of "overengineering" is really just "I'm not familiar or comfortable with ths".
- body_lump 7y agoTechnology is usually just a means to an end. Unless IP is what you are selling, boring is great. I’ve seen so many teams burn so much energy on complicated stacks just to drink kool-aid. It’s mind bogglingly frustrating, especially as a contractor. At the end of the day it’s great for me: I get brought into shit shows to clean up the mess. But deep down, I want projects to succeed and clean/sound systems architecture is how you do that. Doesn’t matter if it’s PHP, Python or Java.