Refactor CMS to handle ContentLayer and WordPress platforms

This commit refactors the CMS to handle two platforms: ContentLayer and WordPress. The CMS layer is abstracted into a core package, and separate implementations for each platform are created. This change allows the app to switch the CMS type based on environment variable, which can improve the flexibility of content management. It also updates several functions in the `server-sitemap.xml` route to accommodate these changes and generate sitemaps based on the CMS client. Further, documentation content and posts have been relocated to align with the new structure. Notably, this refactor is a comprehensive update to the way the CMS is structured and managed.
This commit is contained in:
giancarlo
2024-04-01 19:47:51 +08:00
parent d6004f2f7e
commit 6b72206b00
62 changed files with 1313 additions and 690 deletions

View File

@@ -0,0 +1,85 @@
---
title: Installing Makerkit
label: Installing Makerkit
description: Learn how to install Makerkit on your local machine
---
If you have bought a license for MakerKit, you have access to all the
repositories built by the MakerKit team. In this document, we will learn how
to fetch and install the codebase.
### Requirements
To get started with the Next.js and Supabase SaaS template, we need to ensure
you install the required software.
- Node.js
- Git
- Docker
### Getting Started with MakerKit
You have two choices for cloning the repository:
1. forking the original repository and cloning it from your fork
2. cloning it manually from the original repository
#### Clone the repository
To get the codebase on your local machine using the original repository, clone the repository with the
following command:
```
git clone --depth=1 git@github.com:makerkit/next-supabase-saas-kit-lite.git my-saas
```
The command above clones the repository in the folder `my-saas` which
you can rename it with the name of your project.
If you forked the repository, point it to your fork instead of the original.
#### Initializing Git
Now, run the following commands for:
1. Moving into the folder
2. Reinitialize your git repository
Personally I re-initialize the Git repository, but it's not required.
```
cd my-saas
rm -rf .git
git init
```
### Setting the Upstream repository, and fetching updates
Now, we can add the original Makerkit repository as "upstream" so we can fetch updates from the main repository:
```
git remote add upstream git@github.com:makerkit/next-supabase-saas-kit-lite.git
git add .
git commit -a -m "Initial Commit"
```
In this way, to fetch updates (after committing your files), simply run:
```
git pull upstream main --allow-unrelated-histories
```
You'll likely run into conflicts when running this command, so carefully choose the changes (sorry!).
### Installing the Node dependencies
Finally, we can install the NodeJS dependencies with `npm`:
```
npm i
```
While the application code is fully working, we now need to set up your Supabase
project.
So let's jump on to the next step!

View File

@@ -0,0 +1,85 @@
---
title: Clone the MakerKit SaaS boilerplate repository
label: Clone the repository
description: Learn how to clone the MakerKit repository and install the NodeJS dependencies.
---
If you have bought a license for MakerKit, you have access to all the
repositories built by the MakerKit team. In this document, we will learn how
to fetch and install the codebase.
### Requirements
To get started with the Next.js and Supabase SaaS template, we need to ensure
you install the required software.
- Node.js
- Git
- Docker
### Getting Started with MakerKit
You have two choices for cloning the repository:
1. forking the original repository and cloning it from your fork
2. cloning it manually from the original repository
#### Clone the repository
To get the codebase on your local machine using the original repository, clone the repository with the
following command:
```
git clone --depth=1 git@github.com:makerkit/next-supabase-saas-kit-lite.git my-saas
```
The command above clones the repository in the folder `my-saas` which
you can rename it with the name of your project.
If you forked the repository, point it to your fork instead of the original.
#### Initializing Git
Now, run the following commands for:
1. Moving into the folder
2. Reinitialize your git repository
Personally I re-initialize the Git repository, but it's not required.
```
cd my-saas
rm -rf .git
git init
```
### Setting the Upstream repository, and fetching updates
Now, we can add the original Makerkit repository as "upstream" so we can fetch updates from the main repository:
```
git remote add upstream git@github.com:makerkit/next-supabase-saas-kit-lite.git
git add .
git commit -a -m "Initial Commit"
```
In this way, to fetch updates (after committing your files), simply run:
```
git pull upstream main --allow-unrelated-histories
```
You'll likely run into conflicts when running this command, so carefully choose the changes (sorry!).
### Installing the Node dependencies
Finally, we can install the NodeJS dependencies with `npm`:
```
npm i
```
While the application code is fully working, we now need to set up your Supabase
project.
So let's jump on to the next step!

View File

@@ -0,0 +1,12 @@
---
title: Getting Started
label: Getting Started
description: Getting started with the Makerkit Kit
---
Makerkit is a Next.js/Remix SaaS Starter that helps you build your own SaaS in minutes. It comes with a fully integrated Stripe billing system, a landing page, and a dashboard.
In this section, we learn how to install and run the SaaS kit on your local
machine.
Buckle up and let's get started!

View File

@@ -0,0 +1,53 @@
---
title: Authentication Overview
label: Overview
description: Learn how authentication works in MakerKit and how to configure it.
---
The way you want your users to authenticate can be driven via configuration.
If you open the global configuration at `src/configuration.ts`, you'll find
the `auth` object:
```tsx title="configuration.ts"
import type { Provider } from '@supabase/gotrue-js/src/lib/types';
auth: {
requireEmailConfirmation: false,
providers: {
emailPassword: true,
phoneNumber: false,
emailLink: false,
oAuth: ['google'] as Provider[],
},
}
```
As you can see, the `providers` object can be configured to only display the
auth methods we want to use.
1. For example, by setting both `phoneNumber` and `emailLink` to `true`, the
authentication pages will display the `Email Link` authentication
and the `Phone Number` authentication forms.
2. Instead, by setting `emailPassword` to `false`, we will remove the
`email/password` form from the authentication and user profile pages.
## Requiring Email Verification
This setting needs to match what you have set up in Supabase. If you require email confirmation before your users can sign in, you will have to flip the following flag in your configuration:
```ts
auth: {
requireEmailConfirmation: false,
}
```
When the flag is set to `true`, the user will not be redirected to the onboarding flow, but will instead see a successful alert asking them to confirm their email. After confirmation, they will be able to sign in.
When the flag is set to `false`, the application will redirect them directly to the onboarding flow.
## Emails sent by Supabase
Supabase spins up an [InBucket](http://localhost:54324/) instance where all the emails are sent: this is where you can find emails related to password reset, sign-in links, and email verifications.
To access the InBucket instance, you can go to the following URL: [http://localhost:54324/](http://localhost:54324/). Save this URL, you will use it very often.

View File

@@ -0,0 +1,30 @@
---
title: Supabase Setup
label: Supabase Setup
description: How to setup authentication in MakerKit using Supabase.
---
Supabase needs a few settings to be configured in their Dashboard to work correctly. This guide will walk you through the steps to get your Supabase authentication setup.
## Authentication URLs
The first thing you need to do is to set the authentication URLs in the Supabase Dashboard. These URLs are used to redirect users to the correct page after they have logged in or signed up.
1. Go to the [Supabase Dashboard](https://app.supabase.io/).
2. Click on the project you want to use.
3. Go to the **Authentication** tab.
4. Click on **URL Configuration**.
5. Add your Site URL to the **Site URL** field. This is the URL of your MakerKit site (e.g. `https://my-site.com`).
6. Add your Redirect URLs to the **Redirect URLs** field. You need to add at least two URLs: This is the URL of your MakerKit site with `/auth/callback` appended to it (e.g. `https://my-site.com/auth/callback`) and another for redirecting users to their password reset page (e.g. `https://my-site.com/settings/profile/password`).
## Custom SMTP (optional)
If you want to send emails from your own domain, you can configure your SMTP settings in the Supabase Dashboard.
This is optional, but recommended if you want to send emails from your own domain.
1. Go to the [Supabase Dashboard](https://app.supabase.io/).
2. Click on the project you want to use.
3. Go to the **Project Settings** tab.
4. Click on **Auth**.
5. Tweak the `SMTP Settings` settings to your liking according to your provider's documentation.

View File

@@ -0,0 +1,23 @@
---
title: Authentication
label: Authentication
description: Learn everything about Authentication in Makerkit
---
MakerKit uses Supabase to manage authentication within your application.
By default, every kit comes with the following built-in authentication methods:
- **Email/Password** - we added, by default, the traditional way of signing in
- **Third Party Providers** - we also added by default Google Auth sign-in
- **Email Links**
- **Phone Number**
You're free to add (or remove) any of the methods supported by Supabase's
Authentication: we will see how.
This documentation will help you with the following:
- **Setup** - setting up your Supabase project
- **SSR** - use SSR to persist your users' authentication, adding new
providers
- **Customization** - an overview of how MakerKit works so that you can adapt
it to your own application's needs