Ruby on Rails

Summarized using AI

The Rails Tutorial Story

Michael Hartl • February 03, 2011 • San Pedro, CA

In this talk titled 'The Rails Tutorial Story', Michael Hartl shares his journey in creating the Ruby on Rails Tutorial project, inspired by the challenges he faced in solving his financial problems after a failed startup. Drawing on his academic background in theoretical physics and the influence of entrepreneur Paul Graham, Hartl recounts his experiences transitioning from academia to entrepreneurship, highlighting his early project 'RailsSpace' and its shortcomings amidst the evolution of Rails technology.

Key points from Hartl's journey include:
- Background: Hartl's background in physics and his shift to entrepreneurship after attending Y Combinator influenced his approach to solving financial problems.
- Initial Projects: His first project, 'RailsSpace', gained traction but quickly became outdated due to the rapid development of Rails.
- Y Combinator Experience: At Y Combinator's demo day, he presented 'RailsSpace', which led to unexpected popularity despite not being a viable business model.
- Creating Value: An important lesson Hartl learned was that people are willing to pay for products they find valuable; thus he envisioned a comprehensive Rails education resource based on his earlier successes.
- Polytechnic Creation: To facilitate the creation of educational content, he developed 'Polytechnic', a system for producing both free HTML and paid PDF versions of his books and screencasts.
- Freemium Model: Hartl implemented a freemium model, offering a free online version alongside paid options, which helped him attract an audience and provide quality educational resources.
- Community Engagement: His experiences demonstrated the importance of networking at conferences and leveraging community support in launching projects.
- Sales Success: Surprisingly, Hartl found a strong market for the PDF versions of his books and screencasts, validating his belief that people opt to pay for convenience and value.

Hartl concluded with insights into creating educational content, asserting the significance of giving away free resources while simultaneously providing paid options, which can stimulate strong community support and generate income. He emphasized the importance of addressing educational gaps in open-source software documentation to create business models that align financial incentives with high-quality content delivery.

The Rails Tutorial Story
Michael Hartl • February 03, 2011 • San Pedro, CA

Conceived in the throes of the Y Combinator entrepreneur program, the Ruby on Rails Tutorial project was designed to "solve my money problem" without the roller-coaster ride of a Silicon Valley startup. This

LA RubyConf 2011

00:00:37.100 I'm here to tell you the story of a Rails tutorial project.
00:00:42.540 And I just want to do a quick survey: how many people here have read the Rails Tutorial book or are familiar with it?
00:00:49.140 Okay, quite a lot of people. That's great! Now, a little bit of my background to set the stage for the Rails tutorial project.
00:00:59.340 I have a background in theoretical physics, and I conducted physics research in graduate school at Caltech, where I also taught classes in the core physics curriculum.
00:01:12.180 While in grad school, I got bitten by the entrepreneurial bug, and after graduating, I decided to pursue a different path instead of becoming an academic.
00:01:25.939 One of the influences for me was a series of essays by Paul Graham, including one titled 'How to Start a Startup.' Interestingly, Paul has a similar background; he earned a PhD in computer science from Harvard but chose not to become an academic.
00:01:37.799 One thing he discovered after graduating was that consulting was like turning water; it was easy, but he knew he would drown if he stopped.
00:01:49.680 So, he decided he wanted to solve his money problems by starting a startup.
00:01:55.140 I thought that seemed like a good idea. What happened with Paul's company was that he ended up selling it to Yahoo for a substantial amount of money, addressing his money problems.
00:02:12.420 I thought, 'Well, maybe I can solve my money problem and start a startup too.' The startup I began with one of my Caltech friends was a fantasy sports startup.
00:02:24.180 Unfortunately, for a variety of reasons, it didn't work out, including some factors beyond our control.
00:02:35.900 So I was left with another kind of money problem: I didn't have much money after the startup.
00:02:41.340 I had been in grad school, and you can do the math on how much money I had floating around.
00:02:54.000 After the first shutdown, one of my friends from Caltech approached me about writing a book on Rails, and I thought that would be a good idea.
00:03:04.680 Maybe if I wrote a book, it would help my career. We wrote this book together called 'RailsSpace.' I'd like to apologize for the title; this was my fault.
00:03:16.379 The title, 'RailsSpace: Building a Social Networking Website with Ruby on Rails,' led people to think it was about social networking.
00:03:22.860 In reality, it was just a Rails tutorial book using a social networking website as its example application.
00:03:35.760 Now, the publisher wanted to call it 'Ruby on Rails Tutorial,' which I thought was a boring and lame name.
00:03:42.860 So I talked them into 'RailsSpace.' That's my fault, but I think I might atone for that mistake.
00:03:50.760 Surprisingly, 'RailsSpace' was very well received. For maybe the first six months, it was considered one of the best Rails tutorials out there.
00:04:02.640 But then something happened: the REST revolution hit. When we started 'RailsSpace,' Rails was at version 1.1.
00:04:09.299 Those of you who are involved in Rails application development know that there was a significant shift in how Rails applications were structured.
00:04:22.019 We had some RESTful structured application code in the book, but most of the book wasn't RESTful, and it went out of date pretty quickly.
00:04:33.960 Even though it did well for a technical book, it wasn't enough to solve my money problem.
00:04:41.460 As a result, I decided to start another startup. It takes me a while to learn things; I guess I'm a slow learner.
00:04:53.280 I applied and was accepted into a program called Y Combinator, which was started by Paul Graham.
00:05:01.680 I'm not going to go into details; there were a few iterations. At one point, we had to focus on our pitch.
00:05:19.440 Some people say they are interested in hearing what the ideas were; if you're interested in that, I wouldn't want to talk about it. It was painful at times.
00:05:31.100 At the end of this entrepreneur program, they have a big demo day where you pitch to a large number of investors, including some of the biggest names in Silicon Valley.
00:05:42.000 Paul often told us to fear demo day, saying it was like facing a shark or a hippo.
00:06:00.560 I recall someone asking me, 'What was your book about again? Something related to social networks?' That's how 'RailsSpace' was born.
00:06:08.460 It was created out of desperation to have something to present on demo day, and it did get quite a bit of adoption.
00:06:15.060 For a time, it was one of the top most popular repositories on GitHub, even though it wasn't really a business.
00:06:28.020 We attracted some investor interest and were on the brink of raising a substantial amount of money around October 2008.
00:06:36.000 Do you remember what the market was doing in October 2008? It turns out that was a bad time to be near a funding round.
00:06:44.880 Our potential investors kind of gave us the runaround for a while, eventually saying they would be happy to fund us if we could prove we had a mature product with lots of traction.
00:06:54.360 For those of you who don't know, this is how they say no in Silicon Valley—it's a polite no.
00:07:01.080 Unfortunately, it left me in the same situation—I've got a looming money problem, and it's not working out.
00:07:18.600 I started to think about this and decided to analyze it from first principles.
00:07:24.599 There's a balance between risk and reward. On the low-risk side, you have a job, which is often viewed negatively in the entrepreneurial community, but actually solves an important problem.
00:07:39.719 On the high-risk side is a startup—it's really high risk but also potentially brings a high reward.
00:07:52.080 If things go well, you might end up like other companies, such as Heroku.
00:08:05.599 However, the reality is that if you start a startup, you're more likely to end up like my situation.
00:08:19.680 I began to reflect on this risk-reward balance and thought there are many good reasons to start a startup, but solving your money problem may not be one of them.
00:08:25.920 I figured there might be a sweet spot in between—a medium risk and medium reward situation.
00:08:39.719 If you want to end up like a pirate sitting on a pile of gold, but without facing failure, you need to consider your options.
00:08:46.080 I reflected on the core principle of startups: to make something people want. This is incredibly difficult; it's even a motto of Y Combinator.
00:09:04.920 Looking back, I realized I had made something that people wanted with 'RailsSpace.' It performed well, so I thought I could write another Rails tutorial book.
00:09:17.220 However, I knew a single technical book would not solve my money problem either.
00:09:34.860 My knowledge of the market for Rails educational products indicated a gap—a need for a long, comprehensive introduction to Rails.
00:09:50.880 I envisioned a series of screencasts that would be much more comprehensive than what had been created previously.
00:10:05.040 Drawing from my experience teaching the core physics curriculum at Caltech, I believed that becoming a confident Rails developer required about 20 hours of instruction.
00:10:10.980 I realized that because Rails 3 was on its way, there might be good timing to create these resources.
00:10:27.180 One of the first marketing principles I learned was the importance of addressing a market you understand deeply.
00:10:37.800 This implicit idea suggests that you should focus on what you're good at, and I knew I could write a good book based on my prior success with 'RailsSpace.'
00:10:52.440 I was also confident in creating screencasts, which is essentially teaching, and I had experienced considerable success in that domain.
00:11:06.360 There was another principle I adopted early on, which was later reinforced by someone very influential in my life: you should give something away.
00:11:26.140 This is a powerful marketing tool, and from the beginning, I wanted my book to be available for free as HTML.
00:11:32.960 I envisioned this not as charity but as a strategic business decision—having a free HTML book online would attract inbound links.
00:11:43.200 Additionally, because it’s free, people are much more likely to refer others to it, which is beneficial for search engine indexing.
00:11:54.080 Giving away a book could also generate good karma—people notice when you do good, and you can even receive heartwarming messages.
00:12:05.160 However, I recognized that as great as it was to give away free books online, it wouldn't solve my money problem.
00:12:16.180 So, I devised a plan: I would publish an HTML book for free, then create a PDF version of the same book and some screencasts.
00:12:27.940 I wasn't going to sell the book itself, but I had a vision here.
00:12:38.880 Yes, it's surprising to think about selling a PDF of a book available online for free, but people will buy it.
00:12:48.240 In order to realize this vision, I needed some tools to implement this dual-publishing model.
00:12:58.920 I wanted to start with a single source file and convert it to both an HTML book and to PDF.
00:13:06.420 After evaluating various options, I realized none met all my needs.
00:13:13.260 So, I rolled up my sleeves and wrote my own system called 'Polytechnic.'
00:13:22.680 Polytechnic is based on Donald Knuth's TeX typesetting engine, particularly using LaTeX—a series of programs built upon TeX for creating documents.
00:13:34.020 It then converts a selected subset of LaTeX to HTML.
00:13:39.960 I found existing solutions unsatisfactory, as they were often too general.
00:13:45.600 With Polytechnic, I created a tailored tool that met my needs.
00:13:52.020 One requirement was the ability to typeset code, and so I ensured the output in both webpage and PDF formats closely matched.
00:14:04.620 The online book is a 500-page PDF, and it's all available now at 'railstutorial.org.'
00:14:12.360 One of the reasons I chose LaTeX was because it allows for excellent mathematical typesetting.
00:14:20.579 I created a web page with nice typesetting using MathJax, which facilitated easy rendering.
00:14:31.500 As I developed 'Polytechnic,' I faced a challenge I must confess: I'm not an expert in academic computer science.
00:14:38.460 I struggled to navigate the complexities of writing a parser for a markup system, but I decided not to let that hinder me.
00:14:54.420 I found inspiration in simpler solutions, exemplified by the source code from Markdown, which encourages straightforward substitutions.
00:15:09.420 I didn't need to be a computer science genius—I just needed to keep things simple.
00:15:19.440 And so I began creating the 'Polytechnic' system, feeling confident from the outset.
00:15:26.220 But you can't just give away something; you also have to promote it.
00:15:36.960 Through practice, I learned how to market my products effectively.
00:15:42.240 I connected with an awesome individual, Peter Cooper, who launched the first four chapters of my book on Rails Inside.
00:15:57.720 If you're considering a similar route, remember: humans are social beings.
00:16:05.520 They are more likely to help if they have met you or someone gives them a personal introduction.
00:16:17.760 Conferences are an excellent opportunity for networking—everyone here has followed this rule.
00:16:26.940 The value of a conference lies not only in the talks but also in networking.
00:16:37.560 I also found success through frequent small launches, rolling out the first four chapters, then releasing one chapter each time.
00:16:54.600 Each release was an event where I would update my news feed, tweet, and submit to Hacker News.
00:17:07.200 But still, I faced the problem of not resolving my money issues.
00:17:12.000 I want to discuss the e-commerce tools I utilized. Selling products online can be paralyzing due to the multitude of choices.
00:17:24.540 I adopted a mantra: worry about it when you're rich. You will face the harsh reality of payment processing, but you will need to choose defaults.
00:17:43.620 I used PayPal for transactions and for making PDF downloads, I chose a simple payment tool.
00:17:55.080 Whenever it was time to launch the PDF, I launched 'Rails 3 Redux Tutorial'.
00:18:04.440 Remember, it's crucial to promote your product.
00:18:12.480 With an effective release on Ruby Inside, my book gained traction.
00:18:24.720 People were excited about my work; I even received posts about it on leading Ruby blogs.
00:18:32.640 However, I still grappled with not solving my immediate financial needs.
00:18:40.140 I discovered an unexpected truth: people would buy a PDF version of my book despite its availability online for free.
00:19:00.000 After the initial launch, I continually sold several PDFs daily, even months later.
00:19:11.700 As surprising as it sounded, many people expressed their desire to support my work.
00:19:25.920 One individual emailed me saying he’d purchased the PDF and later found it free online, requesting a refund.
00:19:38.940 I granted the refund, and what was inspiring was the back-and-forth conversation that came after.
00:19:49.560 He ultimately chose to buy it again, realizing its value enhanced his learning experience.
00:20:08.520 Thus, I solidified that people genuinely want to support your work when they find it valuable.
00:20:20.700 Now let’s talk about my flagship product: the screencasts. They represent the last part of my toolchain.
00:20:31.680 Making screencasts was straightforward, and to do so, I chose ScreenFlow, an amazing tool that offers everything you need.
00:20:41.160 I spent over two and a half months crafting over 15 hours of content, and when it came time to launch, the excitement was palpable.
00:20:52.500 The result was that people wanted to pay for my screencasts.
00:21:01.680 One day, I received an inquiry from a person in Nigeria regarding payment issues with PayPal.
00:21:14.400 Through our correspondence, I offered him a free link to my materials, hoping to resolve his situation.
00:21:26.160 To my surprise, he insisted on figuring out a way to pay, showcasing the absurd lengths people may go to support your work.
00:21:39.720 This experience ignited my belief that if you provide value, people will want to pay for it.
00:21:55.560 Now, reflecting on my approach: I have an HTML document freely available online, which contrasts with the sale of my PDF and corresponding screencasts.
00:22:12.960 Interestingly, this is a viable freemium model: by giving away the full book while selling the PDF and screencasts.
00:22:29.700 This model can apply to plenty of content types, but here’s a suggestion for folks involved in open-source software.
00:22:43.320 Open-source software often suffers from poor documentation; addressing this could enhance user experience.
00:22:55.560 I propose aligning financial incentives for producing quality documentation—it would create significant value.
00:23:09.960 The fundamental idea would involve creating and providing free HTML documentation or tutorials, then constructing a corresponding paid PDF and screencasts.
00:23:22.920 While you might notice my tools, one variable you may lack is my system—Polytechnic.
00:23:34.320 I aim to keep 'Polytechnic' private until it meets the standard of quality for the documentation it would support.
00:23:45.240 Fortunately, I have a model to write an article or book on using 'Polytechnic,' making it available for free and then producing a PDF and screencast from it.
00:23:57.600 Not only will 'Polytechnic' be useful for documentation, but it will also benefit from the business model it was developed around.
00:24:06.600 Finally, I'd like to acknowledge those who lent me support throughout this journey.
00:24:19.560 I appreciate Peter Cooper, Greg Pollock, Maddie... and Eddie, who have played critical roles in launching this project.
00:24:31.680 OB Fernandez offered invaluable help as the editor of the professional Ruby series.
00:24:53.820 Amy Hoy and Josh Boquet inspired me with their approach to information products.
00:25:07.290 Lastly, Derek Sivers, with his insights, greatly influenced my strategy, and then there’s my friend Evan Dork, who helped design 'RailsSpace.'
00:25:21.540 Publishing online allows for outreach and feedback; I received many corrections that helped improve the quality.
00:25:39.060 My time here today has been enjoyable, and I appreciate the chance to share my story. Thank you!
00:25:54.060 We have time for questions. Yes, thank you Michael; I found this very insightful. Why do people buy the PDF when it’s freely available online?
00:26:16.680 People prefer having a file they can take with them, which offers convenient offline access. They might also wish to store it on devices like their USB drive or Kindle.
00:26:50.100 In particular, I plan to support EPUB formats, providing even more access to different systems.
00:27:11.640 And about how many copies of the screencasts have I sold? I can't reveal exact numbers, but it’s several hundreds.
00:27:28.260 I've thought about broader publishing opportunities, inspired by various projects. While my focus remains on educational technical content, I consider scaling my work.
00:27:42.960 I believe the key is capturing my teaching methods effectively and providing scalable educational solutions.
00:27:56.640 Any further questions? It’s been a pleasure discussing this.
00:28:06.180 I appreciate your interest in aligning education with practical, engaging content delivery.
00:28:20.520 Thank you for the wonderful engagement, everyone!
Explore all talks recorded at LA RubyConf 2011
+5