152 karma · joined March 6, 2018
https://wakatime.com/
https://twitter.com/@WakaTime
https://github.com/wakatime
Also interested in the costs for your setup. My costs are in my other comment [1].
* Flask + Flask-Login + Flask-SQLAlchemy [1]
* uWSGI app servers [2]
* Nginx web servers [3]
* Dramatiq/Celery with RabbitMQ for background tasks
* Combination of Postgres, S3, and DigitalOcean Spaces for storing customer data [4]
* SSDB (disk-based Redis) for caching, global locks, rate limiting, queues and counters used in application logic, etc [5]
I like how OP shows the service providers he uses, and why he decides not to self-host those parts of his infra. Also, there's a large up front cost involved for any stack (Rails, Django, k8s). I'd be interested in a more detailed writeup with configs, to try out OP's auto-scaling setup. My configs are linked in the gist below [2] for my non-auto-scaling Flask setup.
I spend about $4,000/mo on infra costs. S3 is $400/mo, Mailgun $600/mo, and DigitalOcean is $3,000/mo. Our scale/server load might be different, but I'm still interested in what the costs would be with your setup.
[1] https://wakatime.com/blog/33-flask-part-2-building-a-restful...
[2] https://gist.github.com/alanhamlett/ac34e683efec731990a75ab6...
[3] https://wakatime.com/blog/23-how-to-scale-ssl-with-haproxy-a...
[4] https://wakatime.com/blog/46-latency-of-digitalocean-spaces-...
[5] https://wakatime.com/blog/45-using-a-diskbased-redis-clone-t...
That's the key. To find the time thinking just fill in the gaps between the time spent coding. For ex, the GIF in this post https://wakatime.com/blog/27-fill-the-gaps-in-your-coding-ac...
For example, the total combined hours spent programming the wakatime.com website over the last 7 years was 4,035 hours.
10,000 hours assumes an 8 hour workday. For coding time like WakaTime measures (actual hands on keyboard time), the goal should be 2,000 hours.
https://wakatime.com/blog/46-latency-of-digitalocean-spaces-...
https://wakatime.com/blog/46-latency-of-digitalocean-spaces-...
That ofc means the common practice of advertisers pasting a JavaScript snippet, the network doing a review process, then rendering that snippet as an advertisement on some property would not be allowed on this Ad Network.
[1] https://www.nytimes.com/2009/09/13/business/media/13note.htm...
[2] https://www.washingtonpost.com/news/the-switch/wp/2014/01/04...
1. Stripe
2. Braintree
3. Coinbase Commerce
4. GitHub Marketplace
For the same reasons as rwieruch's comment above, some international customers prefer PayPal: https://news.ycombinator.com/item?id=22178646
We built our own quote logic including prorating, etc. then apply that as recurring subscription using Braintree if customer wants to pay with PayPal, or Stripe if customer wants to pay with credit/debit card.
Breakdown by processor:
73% Stripe
26% Braintree/PayPal
0.7% GitHub Marketplace
0.3% Coinbase Commerce
[2]: https://stripe.com/
[3]: https://www.braintreepayments.com/
PGTune just automates the RAM + Connections math you would normally do manually. PGTune is a good starting point, but you still need to know what each config does and configure beyond PGTune. Nobody is saying PGTune does your configs for you, it's just automating what we always did manually before.
... the list keeps going.
[1] DigitalOcean Droplets > AWS Ec2 (based on our production metrics)
[2] AWS S3 > DigitalOcean Spaces (based on our production metrics)