Skip to main content
Home

Built and signed on GitHub Actions

A CLI that creates the files and directories needed to work with the following tools... AWS CDK - Amplify/AppSync/Cognito/SES/R53 + NextJS 14

This package works with Node.js, Deno
This package works with Node.js
This package works with Deno
JSR Score
100%
Published
8 months ago (0.2.18)

"wus" - Bootstrap your Fullstack SaaS.

A no install CLI, that bootstraps your workspace to build serverless (Appsync + DynamoDB + Amplify G1) apps with NextJS 14 (SSR) "auto-magically" ✨.

About

Modern SaaS projects have many dependencies, using this CLI I've created a template for my preferred AWS Stack.

📋 Here are just some of the big features!

  • Separate Environemnts.

  • ✅ Fullstack CI/CD - On push to a specific branch, deploy the fullstack.

  • ✅ Build time generation of Amplify G1 config.

  • ✅ TS AppSync Resolver Bundling.

  • ✅ Extend your IAC using CDK.

  • ✅ NextJS 14 App Router + NextUI + ServerActions.

  • 🏗️ SES PROD Automation.

  • 🏗️ More Frontend options (Install Radix UI or NextUI as CLI options).

Stack

By default you get the following but this can be modified as needed.

Backend

IAC uses the AWS CDK.

  • Appsync - The ./api directory will contain the resolvers, schema and build script to compile .TS to .JS

  • Lambda, S3, Dynamodb, Cognito and other components are all included in the ./lib directory.

Hosting

The Frontend uses NextJS 14 + Amplify Client libs.

  • NextJS 14 - The ./frontend directory contains all frontend using the app router.

    • Server Actions.
    • AppSync codegen.
    • NextUI + Tailwind.
  • Amplify - The frontend is hosted in Amplify with SSR support.

CI/CD is all handeled by Amplify.

Environment Support

The CLI will deploy all resources in isolated environments. This CLI was built using Deno 2.

CLI TODO

  • 🏗️ Optimise the CLI to handle spawning processes.
  • 🏗️ Add a remote git origin.
  • 🏗️ Support bootstrapping SPA.
  • 🏗️ WIP on CLI UI.

Example

"wus" takes 3x arguments...

🙋🏾‍♂️ Welcome to the "Work-U SaaS" or "wus" CLI

Usage: wuss APP_NAME APP_CODE DOMAINNAME

Options: -h, --help Show this help message and exit

Arguments: -a, --APP_NAME The name of the application, eg: 'My-SaaS-App' -c, --APP_CODE The code for the application, eg: 'MSA' -d, --DOMAINNAME The domain name for the application, eg: 'my-saas-app.com'

Examples:

This will bootstrap a new SaaS application with the name 'My-SaaS-App', code 'MSA' and domain 'my-saas-app.com'

deno run jsr:@work-u/saas-cli -a My-SaaS-App -c MSA -d my-saas-app.com
Built and signed on
GitHub Actions

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@work-u/saas-cli

Import symbol

import * as saas_cli from "@work-u/saas-cli";
or

Import directly with a jsr specifier

import * as saas_cli from "jsr:@work-u/saas-cli";

Add Package

pnpm i jsr:@work-u/saas-cli
or (using pnpm 10.8 or older)
pnpm dlx jsr add @work-u/saas-cli

Import symbol

import * as saas_cli from "@work-u/saas-cli";

Add Package

yarn add jsr:@work-u/saas-cli
or (using Yarn 4.8 or older)
yarn dlx jsr add @work-u/saas-cli

Import symbol

import * as saas_cli from "@work-u/saas-cli";

Add Package

vlt install jsr:@work-u/saas-cli

Import symbol

import * as saas_cli from "@work-u/saas-cli";

Add Package

npx jsr add @work-u/saas-cli

Import symbol

import * as saas_cli from "@work-u/saas-cli";