Production web apps with Ruby on Rails.
Learning how to program is an accomplishment unto itself and now you are looking to take to the next level and launch your first app. This series is going to look at what it takes to launch a production web app, responsibly.
Intro
I've been a developer since 2009 and involved with Rails since 2011. I began with a heavy Javascript focus before 2012 and then jumped to Ruby on Rails primarily since then. I've largely spent my time as a Rails rescue developer. When it seems all hope is lost I would come in and fix the applications. I'm making this series to share the knowledge gained through running Rails in production and seeing mistake after mistake repeated again and again.
Why?
For all this new cutting edge tech coming out, apps just seem to be getting worse. A bug used to be something that was avoided. But now they seem to be an integral part of software. We have forgotten that software in the past had to ship and work. Today we accept that bugs are going to be there when it ships but it doesn't have to be that way.
The paradigm shift has changed development. Instead of making something that works superbly and building off of it, teams are starting with shaky foundations with ambitions to fix it later. We slap the term tech debt on it and the foundations come crumbling down when the application gains a few users.
Who is this for?
For non-programmers - Being able to talk effectively to developers is extremely beneficial. You don't need to know what memoization is, but understanding what a front end, back end and a database is are important if you work at a SaaS company.
For people starting a new SaaS company - Building an app is hard. It's almost impossible if you are unfamiliar with software. This guide will allow you to have a technical checklist as you build your application.
For programmers - This guide goes beyond the basics of how to get over the next syntax error. It's intended to be how to program in order to run a real business. Sure, many of the requirements could be held off from a development point of view. Remember, this is about building applications, not about learning Rails or framework.
How?
Every two or so years I write a new app from scratch. For my next app I am focusing on security and privacy in the GDPR era. It's going to integrate heavily with other apps and be highly dynamic (with very little JS) in the UI. I'll introduce it a little later. As I build each part, I'll put together a small series on that particular topic. As I get time to update and review the posts will probably change a bit so check back frequently!
I'll pull from a large archive of repos I've compiled over the years. I have been meaning to consolidate it and finish extracting the code into gems for reuse. When this series is done (as done as it can be), we will have a great rails starter app to use for production SaaS apps and hopefully a bunch of new gems to help you develop great apps quickly.
Let's get started...
- Section 1. Building the foundation
- Chapter 1. Encryption & Hashing
- Concept: Hashing
- Concept: Encryption and signing
- Gem release: Introducing Portunus (Gem release)
- Chaper 2. Identification & Authorization
- Chapter 1. Encryption & Hashing