0% found this document useful (0 votes)
251 views52 pages

Building My Saas

The document discusses how to code a SaaS application using a JAMstack architecture. It recommends using a headless CMS like Strapi to provide an API for the frontend. It also suggests hosting on DigitalOcean for ease of deployment and using pre-built apps from their marketplace to simplify setup. The key is focusing on the core value for customers rather than recreating features already provided by other services.

Uploaded by

fdvgdf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
251 views52 pages

Building My Saas

The document discusses how to code a SaaS application using a JAMstack architecture. It recommends using a headless CMS like Strapi to provide an API for the frontend. It also suggests hosting on DigitalOcean for ease of deployment and using pre-built apps from their marketplace to simplify setup. The key is focusing on the core value for customers rather than recreating features already provided by other services.

Uploaded by

fdvgdf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

NOT

How to Code a

SaaS
@ChrisOnCode
Hi I’m Chris
DigitalOcean 😃 Scotch.io 😃 @ChrisOnCode

@ChrisOnCode
What’s the fastest way
to get paying customers?

@ChrisOnCode
Agenda
A SaaS called scotch.io

Anatomy of a SaaS

Idea for a JavaScript SaaS

@ChrisOnCode
Scotch.io Lifecycle

Side Project
Provide Value (Content)
Get Users
Monetize
Analyze and Grow
Sell or Continue
@ChrisOnCode
Biggest scotch.io mistakes…

Quantity > Quality


Built our own CMS
Focused on performance

@ChrisOnCode
@ChrisOnCode
The main takeaway…

Focus on your

Value
@ChrisOnCode
What is the problem
you are solving?

@ChrisOnCode
Scotch.io Best Features

Content
Design
@ChrisOnCode
Let’s talk
SaaS

@ChrisOnCode
Scotch.io Architecture

App Database
Server Server

Droplet Droplet
Droplet

@ChrisOnCode
Scotch.io
AppArchitecture
Server

PHP Ruby Database


Server
Go
Droplet Droplet

JavaScript
Droplet

@ChrisOnCode
Scotch.io Architecture

App Database
Server Server

Droplet Droplet
Droplet

@ChrisOnCode
Scotch.io Architecture
Database Server

MySQL
App
Server
Postgres
Droplet Droplet

MongoDB
Droplet

@ChrisOnCode
Scotch.io Architecture

App Database
Server Server

Droplet Droplet
Droplet

@ChrisOnCode
Core Decisions

Language
Database
Where to store code
Where to host app
View layer
API
@ChrisOnCode
Pick what your team is comfortable with

@ChrisOnCode
Pick what gets you to ship fastest

@ChrisOnCode
Database Server App Server

DigitalOcean Droplet DigitalOcean Droplet

@ChrisOnCode
Database Server App Server

DigitalOcean Droplet DigitalOcean Droplet

@ChrisOnCode
Core Decisions

Language Networking
Database CDN
Where to store code CMS
Where to host app Forms
API View layer

@ChrisOnCode
Extra Functionality

Authentication
Payments
E-commerce
Search
Emails (Transactional)

@ChrisOnCode
Growing and Maintaining

Analytics
Customer Feedback
Ads
Emails (Marketing)

@ChrisOnCode
App Stuff Networking E-commerce
Database Payments
Database Server Forms
App Server
Authentication Search
CDN View Layer
API CMS Emails
DigitalOcean Droplet DigitalOcean Droplet

@ChrisOnCode
Payments Forms
Authentication E-commerce
Networking Search

App Stuff CMS


API
Database Server App Server

Database View Layer


DigitalOcean Droplet DigitalOcean Droplet

Emails
CDN

@ChrisOnCode
Payments Forms
Authentication E-commerce
Networking Search

App Stuff

API Database Server View Layer App Server

Database DigitalOcean Droplet DigitalOcean Droplet

Emails
CMS CDN

@ChrisOnCode
What do my customers really care about?

@ChrisOnCode
Core Decisions

Language Networking
Database CDN
Where to store code CMS
Where to host app Forms
API View layer

@ChrisOnCode
Authentication

@ChrisOnCode
Authentication

!// login a user


auth0.loginWithPopup(params);

!// get user info


auth0.getUser();

@ChrisOnCode
Payments

@ChrisOnCode
Payments

!// charge a customer


Paddle.Checkout.open({ product: 12345 });

@ChrisOnCode
Headless CMS

@ChrisOnCode
Emails

@ChrisOnCode
@ChrisOnCode
Analytics
Authentication
Customer Feedback
Payments
Ads
E-commerce
Emails (Marketing)
Search
Emails (Transactional)

@ChrisOnCode
We have whole teams of devs
waiting to work for us.

@ChrisOnCode
How could I build a SaaS in 2020?
in JavaScript

@ChrisOnCode
JAMstack Architecture

Headless CMS

Database App API Frontend

@ChrisOnCode
Strapi Frontend

@ChrisOnCode
JAMstack Architecture

Headless CMS

Strapi Frontend

@ChrisOnCode
1-Click
DigitalOcean Apps

@ChrisOnCode
marketplace.digitalocean.com

@ChrisOnCode
Strapi as a Headless CMS

Language Networking
Database API
Where to host app CMS

@ChrisOnCode
View layer

@ChrisOnCode
plugins: [
{
View layer
resolve: `gatsby-source-strapi`,
options: {
apiURL: `http:!//localhost:1337`,
contentTypes: [`article`, `user`],
singleTypes: [`home-page`, `contact`],
loginData: {
identifier: "",
password: "",
},
},
},
]
@ChrisOnCode
{ View layer
allStrapiArticle {
edges {
node {
id
title
content
}
}
}
}
@ChrisOnCode
If my SaaS flops…

@ChrisOnCode
At least I didn’t write my own CMS!

@ChrisOnCode
Summary
Focus on core value proposition

Outsource things that don’t matter

@ChrisOnCode
Creating a SaaS is easier in 2020.
If you choose to make it easier.

@ChrisOnCode

You might also like