I first heard about Slack from my friend Matt (shout out to Final!). He was helping me out with some Rails issues so we started using Slack and I liked it. Specifically, the chat interaction. But also all the integrations. I wasn’t thinking of it as a tool to end all tools at first, just a chat tool with some cool integrations. Then I created a Slack account for StackShare, and that’s when things got real.
Sentry got easier to stay on top of, Heroku was easier to see activity from, discussions were more fluid, and the mobile app was killer. Most of the tools I use either don’t have a mobile app or have shitty ones. Slack is like a replacement for all the mobile apps my tools should have.
I don’t find Slack particularly useful for focused discussions, so I doubt it will replace email anytime soon for us. Things like product discussions/debates are best via email. It forces you to think before you type and have a clear back and forth with someone.
Small gripe: I wish Slack would disable email notifications by default, I still haven’t figured out how to turn those off.
Uservoice fits our use-case really well. StackShare isn’t a business-critical application so we don’t need to be on call 24/7 with a full on Help Desk. We just need a way for people to get in contact with us through the site that doesn’t require them to send an email. It’s Free for our level of use. And it is actually a full-on Help Desk, so if we do need some more robust features, they’re there.
Works, most of the time. Really bad for international calls out, but perfect for everything else. If the Mac's Messages app actually worked I would totally use it from Screen Sharing, I recall using it a while back and it was flawless. As with a lot of other Apple Software, can’t figure out how to get it working on my new Macbook Pro. I gave up after about an hour of trying to set it up.
Free Heroku add-on. Not particularly useful for us. Rails profilers tend to do a better job at the app level. And I can never really figure out what’s going on with Heroku by looking at New Relic. I don’t know if we’re just not using New Relic correctly or if it really does just suck for our use case. But I guess some insight is better than none.
One thing I really wish GitHub had: Trello-style kanban for Issues. There are a bunch of services and tools that add Kanban to GitHub Issues. But Trello just seems far better. If GitHub had it’s own kanban tool, I’d probably use it. Right now it’s pretty painful to try to tie cards to commits manually (when/if we remember to).
So a while back we needed a super simple way to accept payments, but we didn’t want to add it to the codebase. Mainly because we were doing a lot of one-offs. The main use case was sponsorship for our weekly newsletter. We just needed to charge vendors a one-time fee.
I had heard of Wufoo’s Stripe integration, so that seemed like the best solution. And it was. Super simple to set up, no need to add SSL or get certs. I’m not sure if a lot of people know about the Wufoo-Stripe integration, but I think this could be useful for a lot of other startups. We still use it today, we’ll be adding payments to the main app pretty soon though.
I like that they know how to handle Heroku app domains. The one-click to add feature is nice, super simple and easy to use. My only complaint is that I have to use a different provider for our actual domain registration. Would be nice to just have DNSimple handle all of that.
MailChimp integration. When we move off of MailChimp entirely, it’ll be nice and smooth. We can keep our metrics, lists, templates. None of that is particularly difficult to grab, but makes the choice here clearer. Also, I think you get some cool discounts if you use Mandrill.
So we started out with a service called Adminium, it was really useful. But when we hit the table limit, we realized we were paying for something we could easily get for free. My friend Cyrus suggested RailsAdmin, so we made the switch. I like RailsAdmin because almost everything works without any configuration. It’s basically a UI for your PG db. We use it to debug issues and update content.
Great service, gives me piece of mind. One thing I really don't like: they set the default notification downtime to 2 min or greater. I missed a total of 13 minutes of downtime for our blog over a three month period back before we moved it over to the rails app because there was basically one minute here, one minute there. I was pretty angry when I found out they weren't notifying me. But then I realized that it probably makes sense. But they should be more transparent and make it clear that there is a 2 minute window when you first set up alerts.
Works great. We use it for any and all e-signature documents (investment, contracts, agreements, etc.). I like that you can pay once and forget it (with the yearly subscription option). The e-audit trail feature is nice too, not sure if that’s standard on all e-sig solutions now, but nice either way.
The first live version of Leanstack was actually a WordPress site. There wasn’t a whole lot going on at first. We had static pages with static content that needed to be updated manually. Then came the concept of user-generated content and we made the switch to a full on Rails app in November of last year. Nick had a lot of experience with Rails so that made the decision pretty easy. But I had also played around with Rails previously and was comfortable working with it. I also knew I’d need to hire engineers with a lot more experience building web apps than I do, so I wanted to go with a language and framework other people would have experience with. Also, the sheer number of gems and tools available for Rails is pretty amazing (shout to RubyToolbox ).
I don’t see us ever having to move away from Rails really, but I could be wrong. Leanstack was built in Rails 3. For StackShare we decided to upgrade to Rails 4. Biggest issue with that has been caching. DHH decided to remove the standard page and action caching in favor of key-based caching (source)[http://edgeguides.rubyonrails.org/caching_with_rails.html#page-caching]. Probably a good thing from a framework-perspective. But pretty shitty to have to learn about that after testing out your new app and realizing nothing is cached anymore :( We’ll need to spend some more time implementing "Russian Doll Caching", but for now we’ve got a random mixture of fragment and action caching (usually one or the other) based on which pages are most popular.
Only thing worth noting here is that we saw some major issues with memory swapping on Heroku with Ruby 2.1.2. We weren’t the only ones. So we actually reverted back to 2.0.0. Here’s what happened: . We’re planning to upgrade to 2.1.4 once we’ve had time to test thoroughly.
Leanstack was on Bootstrap 2. Chose this because it is wildly popular, so it’s active, has been used a lot in production, and has a ton of features. Anything you need to do from a UI perspective, there’s likely a plugin for it already part of the library. Haven’t tried the others, but we're happy with BS.
For StackShare, we upgraded to Bootstrap 3. I don’t like that they changed the name of columns, essentially breaking the grid layout for Bootstrap 2 and below, so that was a real pain to update. I hope they don’t do that again. Once we have more bandwidth, we’re totally going to decouple our markup from Bootstrap.
Personally, I really like HAML. Not having to use open and close tags is a huge time saver. As a result, writing markup with HAML is much more pleasant. HAML essentially forces you to be very strict about spacing, organization, and structure. It also makes the markup easier to read. Protip: I use this pretty frequently: htmltohaml.com
Not having to deal with servers is a huge win for us. There are certainly trade-offs (having to wait if the platform is down as opposed to being able to fix the issue), but we’re happy being on Heroku right now. Being able to focus 100% of our technical efforts on application code is immensely helpful.
Two dynos seems to be the sweet spot for our application. We can handle traffic spikes and get pretty consistent performance otherwise.
We have a total of four apps on Heroku: Legacy Leanstack, StackShare Prod, StackShare Staging, StackShare Dev. Protip: if you’re setting up multiple environments based on your prod environment, just run heroku fork app name. Super useful, it copies over your db, add-ons, and settings.
We have a develop branch on GitHub that we push to dev to test out, then if everything is cool we push it to staging and eventually prod. Hotfixes of course go straight to staging and then prod usually.
We chose CloudFront mostly because it’s incredibly popular. But also because it’s the recommended CDN for Heroku, which means there shouldn’t be any problems using them together. Rails makes it really easy to drop in a CDN reference for your app so that when your assets get compiled, they’re shipped off to the CDN and then deployed with your app.
So anytime we push to Heroku, we’re pushing up to CloudFront (if the assets don’t already exist). One major issue we still haven’t been able to solve involves Fonts. Has anyone actually been able to get fonts served up through CloudFront using Rails 4 and Heroku? Literally spent hours researching this and can’t find any solutions. We ended up just referencing a CDN for all the font libraries.
We have a separate distribution for each environment, since I don’t think it’s possible to use the same distribution for the multiple domains.
I’ve known Peter at Segment for about a year now. I think I first got wind of Segment through their Analytics Academy. Segment seemed like it could be really useful for folks that have a lot of analytics solutions. For us, it was more of a future-proof sort of thing. Where I knew we’d need more analytics (by more, I mean something other than Google Analytics) eventually so this seemed like an easy way to add new ones later on. It’s definitely been useful so far and I’m looking forward to using it more as we add more analytics solutions.
We originally decided to use Trello because GitHub Issues were getting way too crowded and overwhelming. Also, GitHub Issues are great for detailed bits of work, but they're not so great at high-level tasks or buckets of work. The milestones stuff in there just doesn’t cut it.
We love Trello. It's great because it’s super flexible. Almost to a fault. The one thing I wish it had: velocity. Not sure why they don’t add that, but I would so use it. Right now we just add an estimate of hours at the top of the description field. I also wish they had a more robust Calendar and concept of time. Trying to get Trello to act like a product planning tool is almost impossible. And using other tools is a nightmare. So we’re kind of stuck using Trello as-is. But Trello as-is is > all the other PM tools we’ve tried (and we’ve tried a lot).
I’ve known the Keen IO team since I started working on Leanstack and they’ve been super helpful. Leanstack didn’t have too much use for something like Keen early on. But recently we started talking to vendors that wanted access to basic analytics for their pages (views and clicks). So we started thinking about how we could provide customer-facing dashboards. That’s when Josh over at Keen suggested Keen, and it seemed like a great fit. Not only could we use Keen for external dashboards, but we could use it to get insight into usage for our own purposes.
At the same time they were working on an open source library called CommonWeb that helps you track everything happening on your site with little-to-no configuration. So we signed up and agreed to be a guinea pig for their new library to see how CommonWeb could help us. It’s been super useful so far. We now know who’s logging in to StackShare, how long they were on the site, and which content they contribute; we have much better insight into funnels, and we’ll soon have dashboards. The Keen team has been great as far as support (thanks Alex!). I think we’re really going to be able to improve the site once we start using the data we’re collecting, super excited about that. We’re definitely going to be using their new open source dashboards.
Lots of companies I respect were using it + open-source + great features and UI. Went for the hosted version, since it plays nice with Heroku. I like how they group together similar errors, give you the ability to mute events or mark them as solved. P.S. check out the Founder Stories feature we did on Sentry if you want to know how they started, its an awesome story.
So many features. Before deciding on MailChimp, I did a bunch of research on the other options. MailChimp blows the other services out of the water when it comes to features.
I was pretty pissed once we had to start paying because it was (at the time) more than we were paying for hosting which is pretty ridiculous. Then I started playing with some of the transactional services and started going through the motions of recreating all the little stuff MailChimp has. Four hours later, realized it wasn't worth it.
With that said, the cost is still pretty steep when put in the context of our total tool/service spend so we’ll be using Mandrill for everything pretty soon, we already use it for Transactional Emails. Pro Tip: use the two-factor auth app Alter-Ego and you get 10% off your MailChimp bill, every month. Security FTW.
Huge time saver. I used to tweet from the Leanstack account in real-time. Then I somehow found out that people don’t actually do that anymore. I had heard of Buffer somehow, so I tried it out and was on the free tier for a while. Then I realized I could save a ton of time by just scheduling tweets once/week. Then I hit the Free plan limit, and I upgraded and started the once/week scheduling. I’ve been happy ever since. Protip: use the “Shuffle” feature after scheduling a lot of tweets at once to mix it up a bit