top | item 10165967

Stripe: Open Source

581 points| benjamindc | 10 years ago |stripe.com | reply

64 comments

order
[+] LukeHoersten|10 years ago|reply
Usually it feels like companies open source projects are kind of lame or just to look fashionable. These projects are extensive and awesome. I love the personal projects section at the bottom of the page. You can see why Stripe is so successful. They truly have a dev culture and that's a lot more than most companies that just say they have a dev culture. At Stripes scale and size that's a big success.
[+] nathancahill|10 years ago|reply
True. I just came across Rickshaw[0] from Shutterstock. I'd love to use it, but there hasn't been a commit in 8 months, pull requests are backlogged and there's a thread titled "Is Rickshaw dead?"[1] that hasn't had any response in months (either to shift maintenance to someone else or kill/fork the project).

It looks like a poster child of companies open source projects done wrong. I'm sure it was developed for internal use, made public with a prominent "Open Source! We're Hiring!"[2] and then mostly forgotten about. Not that maintenance is easy! It's a big commitment, which is why Stripe really shines here: not just for open sourcing their code, but for maintaining their projects continuously.

[0] https://github.com/shutterstock/rickshaw

[1] https://github.com/shutterstock/rickshaw/issues/517

[2] http://code.shutterstock.com/rickshaw/

[+] DamnInteresting|10 years ago|reply
I recently changed my website's donation page to a Stripe-powered system, and their API was a pleasure to work with. Having worked with horrible payment processors throughout my webdev career, I kept waiting for the other shoe to drop--but it's been a couple of months now, and so far it's still just the one shoe.
[+] Killswitch|10 years ago|reply
> Usually it feels like companies open source projects are kind of lame or just to look fashionable.

I don't understand this. You think Netflix and Facebook's Open source projects are lame?

[+] scotchio|10 years ago|reply
Love the logo! Did something similar here [1] for our blog's creative/digital arm [2] with actually a somewhat similar approach. Probably a few months ago. Their's is a little more elegant though :)

I just want to make a quick comment: Everything the Stripe's front-end guys touch is pure and magical perfection. They definitely have a killer front-end team - design, UI/UX, and more.

[1] http://codepen.io/ncerminara/pen/MYvELv

[2] https://digital.scotch.io

[+] benjamindc|10 years ago|reply
Glad you noticed the easter-egg on the logo :p
[+] aquilaFiera|10 years ago|reply
Love Conway's Game of Life in the background.
[+] rbinv|10 years ago|reply
Toally. I actually removed the <header> (id="intro") node to see more of it. Awesome touch.
[+] d2xdy2|10 years ago|reply
That whole page is gorgeous, but GoL in the background is the icing on the cake
[+] jypepin|10 years ago|reply
yeah it's awesome. I'd love to actually how they implemented it. It's gorgeous.
[+] jtchang|10 years ago|reply
Any chance you could let me click on a cell in the game of life in the background to add another cell? That would surely result in lots more time wasted on that page :)
[+] krithix|10 years ago|reply
(I work at Stripe.) We're also accepting applications for our second Open-Source Retreat: https://stripe.com/blog/open-source-retreat-2016
[+] mauricioc|10 years ago|reply
Nice program! There seems to be a typo relating to start/end dates, though: It says the grant lasts for "three months", but the quoted period is "from January 15th until March 15th, 2016".
[+] voltagex_|10 years ago|reply
I hope one day one of my pet projects is big enough for a program like this.
[+] sbensu|10 years ago|reply
Some of the projects (e.g., jepsen) are quite impressive. I bet that displays like this one beat any office perk when it comes to hiring.
[+] jaryd|10 years ago|reply
Would be interested to hear from the devs about the actual reasons they chose to write unilog (https://github.com/stripe/unilog) instead of using multilog (which ships with Daemontools).

Agreed that multilog is arcane and weird but what are the actual problems with it that unilog solves?

[+] ebroder|10 years ago|reply
(I'm an infrastructure engineer at Stripe)

This actually took a fair amount of digging! We've been using some version of unilog for over 4 years now (longer than I've been at Stripe), and we'd mostly forgotten why we switched. What follows is more the result of historical exploration and guesswork than authoritative statement of original truth.

I'm fairly confident that the impetus for unilog was timestamp prefixes for our log lines. We wanted timestamps (so that we weren't dependent on all applications adding them). multilog is capable of doing writing out timestamps, but it formats them with TAI64N. We wanted something more human-parseable.

Once we had it, we started adding other features. These days, I'd say the most useful thing unilog does for us is buffer log lines in memory. We would occasionally see disk writes on EC2 hang for long enough that the in-kernel (64k) pipe buffer would fill up and cause applications to stall.

[+] elithrar|10 years ago|reply
Some great stuff here! The 'personal projects' are a nice touch: I've been using Goji (https://github.com/zenazn/goji) for a while now as my 'go to' router+context combo for Go web services. Small, extensible and compatible with the other tools out there.
[+] Rainymood|10 years ago|reply
Stripe's front end game is on point so hard. Jezus!
[+] squiggy22|10 years ago|reply
OP (Benjamin de Cock) is one talented guy. Some of his work is phenomenal.
[+] prezjordan|10 years ago|reply
Wow, the "Personal projects" section is a really great idea.
[+] mcorrand|10 years ago|reply
On the subject of the jquery.payment lib, I remember noticing that the validation functions it provides for various credit cards are not exactly the same as the ones in stripe.js, and actually better.

I would have to look at my commit history to remember what exactly were the differences though. I think it could match the various credit card types with fewer digits entered or was better for cvv validation of amex cards.

[+] jordanlev|10 years ago|reply
I get the impression that stripe has abandoned jquery.payment (or at least it's a side project and not part of their core offering?). Because it does not actually work out of the box with the stripe.js library (see https://github.com/stripe/jquery.payment/issues/160 , which has a lot of "+1's" from other people but no response from stripe or whoever it is that maintains this library).
[+] sandGorgon|10 years ago|reply
why did you guys invent mosql [1] ? you are clearly loving postgres and cannot get rid of it... but potentially with jsonb in 9.5 [2] you can get rid of mongodb.

With the kind of resources you have, you could fix the few things about postgres that you dont like.

[1] https://github.com/stripe/mosql/blob/master/README.md

[2] https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9....

[+] ahachete|10 years ago|reply
Or use ToroDB (http://www.torodb.com) that speaks the MongoDB protocol but stores the data relationally, in PostgreSQL. Directly. No ETL, no mosql required :)

(ToroDB developer here)

[+] joeblau|10 years ago|reply
I really like the bottom section where they are highlighting individual projects from members of their team. I think that really helps instill a sense of ownership and would definitely me make me excited about working there if I was featured.
[+] fredliu|10 years ago|reply
That game of life animation background is really mesmerizing to watch!
[+] thecodemonkey|10 years ago|reply
Wow! That logo and animation has scaringly close resemblance to the one on https://digital.scotch.io
[+] brandon272|10 years ago|reply
I don't find them to be at all similar aside from the larger concept of having "large pixels convene to form pixelized text", which I'm sure has been done plenty of times before.

The text is different. The color is different. The animation is different. The code is different. It's a unique implementation.

[+] fndrplayer13|10 years ago|reply
Cool that you guys are show-casing your work. I've looked over mosql before. Cool stuff and worth checking out.
[+] hellbanner|10 years ago|reply
Very nice page & I like that they put employee's personal projects at the bottom!
[+] rglover|10 years ago|reply
Shit, Benjamin! So good. Every time. Great work :)