# Getting started

### Who is this for?

* People who have been hacking away a few applications and are now looking to achieve professional quality.
* Solo founders who wants to build a high quality SaaS product.

### What does it cover?

Everything you need to know to be able to build, run, scale and maintain a web application.

* How to build the most common features
* Automate code quality check
* Unit, Integration and E2E tests
* Deploy apps on AWS
* Secure your API, server and database
* Take payment for a monthly subscription

### What are we building?

![](https://2559875260-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnRxZ2gbXvMdM70TAFz%2F-LrANY3f9Fbe2if0f85I%2F-LrANZl5eN4aUdaGntLT%2Fimage.png?alt=media\&token=11ce6147-42fa-4c12-8e5c-c5b3f3dcb58e)

A collaborative bookmarking SaaS application with the following features:

* User sign in/up
* Add, update and delete links
* Organise your links with tags
* Add and remove collaborators
* Realtime comments

To achieve that we will:

* Build a [GraphQL](https://graphql.org) API with [Subscriptions](https://www.apollographql.com/docs/react/advanced/subscriptions/), package it in a [Docker](https://www.docker.com) container and deploy it to [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/).
* Build a [React](https://reactjs.org) application using [Styled-Components](https://www.styled-components.com) and [Apollo](https://www.apollographql.com) and host it on [S3](https://aws.amazon.com/s3/)**.**
* Store our data in [Postgres](https://www.postgresql.org) managed by [RDS](https://aws.amazon.com/rds/) in a [Private VPC](https://aws.amazon.com/vpc/).
* Use [CloudFront](https://aws.amazon.com/cloudfront/) to enable HTTPS, serve S3 files and redirect URLs.
* Buy a domain on [Route53](https://aws.amazon.com/route53/)
* Manage our cloud resources with [CloudFormation](https://aws.amazon.com/cloudformation/).

### Resources to read before you start

* [Introduction To JavaScript](https://www.codecademy.com/learn/introduction-to-javascript)
* [Learn CSS](https://www.codecademy.com/learn/learn-css)
* [React tutorial](https://reactjs.org/tutorial/tutorial.html)
* [How do I start with Node.js after I installed it?](https://nodejs.org/en/docs/guides/getting-started-guide/)
* [GitHub guide](https://guides.github.com/activities/hello-world/)
* [TypeScript in 5 minutes](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html)
* [Getting started with Docker](https://docs.docker.com/get-started/)

You don't need in-depth knowledge about those technologies to follow the tutorial.

{% hint style="info" %}
Any questions? Find me on Twitter [@florianherrengt](https://twitter.com/florianherrengt).

Want to hire us? [Let's chat.](https://calendly.com/florianherrengt/15min)&#x20;
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tutorial.specian.co.uk/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
