MCPcopy Index your code
hub / github.com/47chapters/letsgo

github.com/47chapters/letsgo @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
466 symbols 1,580 edges 217 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Check Markdown Links

LetsGo - A Starter Kit for Starting Startups

New SaaS businesses cut corners that are hard to fix later. LetsGo gives you a foundation to prevent this.

This project provides you with the architecture and the tooling that will put your startup on a solid foundation from day one. It helps you save months of work leading to the launch while allowing you to focus on the essence of your product. The day you let the first customer in, you have no technical debt. As you grow, you can continue focusing your resources on what matters most: your customers and your product.

LetsGo Architecture

LetsGo does it by providing a prescriptive architecture implemented with a modern set of technologies and robust operational tooling for managing your app in AWS. On day one you get more than most startups build in the first two years:

  • An application architecture with a web, HTTP API, worker, and database components, all wired up and ready to go.
  • A devops CLI that helps you set up CI/CD and manage several deployments of your app in AWS to help you segregate your production and development workloads or to support dedicated deployments for your customers.
  • Integration with Auth0 to authenticate your users and protect your APIs.
  • Integration with Stripe to automate your billing and subscription lifecycle management.
  • Integration with Slack to keep current with new customers signing up and subscriptions being paid.
  • A flexible tenancy and user model with membership management and invitation flow.
  • A set of modern yet robust technologies including Next.js, Node.js, and Typescript that make your days exciting and the nights boring.
  • LetsGo is OSS under MIT, so there is no vendor lock-in and you can always see what makes it tick.

Getting started

Learn more about the architecture, technology choices, and principles or jump right into your first deployment to AWS tutorial.

If you run into a problem or have a question, file an issue

Let's go!

Documentation

Overview

Why LetsGo?

Tutorials

First deployment to AWS
Building and running locally
Re-deploying to AWS
Setting up authentication with Auth0
Setting up payments with Stripe
Configuring a custom domain

How-Tos

How to use LetsGo?
Run locally
Run tests
Develop the frontend
Develop the API
Develop the worker
Enqueue asynchronous work
Schedule asynchronous work
Access data in the database from code
Process the contact form
Manage configuration
Manage multiple deployments
Manage trust and authentication
Get deployment status
Manage the pricing model and Stripe integration
Send notifications to Slack
Manage scalability
Remove deployments

Background Concepts

Architecture and technology choices
Tenants and users
Data model
Authentication, authorization, and trust
DevOps and dedicated deployments

Reference

LetsGo CLI (yarn ops)
System database categories
@letsgo/constants
@letsgo/db
@letsgo/pricing
@letsgo/queue
@letsgo/slack
@letsgo/stripe
@letsgo/tenant
@letsgo/trust
@letsgo/types

Extension points exported contracts — how you extend this code

GetTenantUsersResponse (Interface)
(no doc)
packages/types/src/index.ts
Identity (Interface)
(no doc)
packages/trust/src/index.ts
EnqueueOptions (Interface)
(no doc)
packages/queue/src/index.ts
SubscriptionPlanChange (Interface)
(no doc)
packages/tenant/src/index.ts
Plan (Interface)
(no doc)
packages/pricing/src/index.ts
DefaultConfig (Interface)
(no doc)
packages/constants/src/index.ts
SlackMessage (Interface)
(no doc)
packages/slack/src/index.ts
StripeConfiguration (Interface)
(no doc)
packages/stripe/src/index.ts

Core symbols most depended-on inside this repo

cn
called by 139
apps/web/src/components/utils.ts
logger
called by 111
apps/api/src/middleware/logger.ts
printLine
called by 45
apps/ops/src/commands/status.ts
createError
called by 23
apps/web/src/app/(dashboard)/api/proxy.ts
putItem
called by 20
packages/db/src/index.ts
serializeIdentity
called by 14
packages/trust/src/index.ts
createTenant
called by 14
packages/tenant/src/index.ts
deleteItem
called by 14
packages/db/src/index.ts

Shape

Function 344
Interface 118
Class 2
Enum 1
Method 1

Languages

TypeScript100%

Modules by API surface

packages/tenant/src/index.ts40 symbols
packages/stripe/src/index.ts28 symbols
apps/ops/src/aws/apprunner.ts25 symbols
packages/trust/src/issuer.ts16 symbols
apps/ops/src/commands/status.ts16 symbols
packages/types/src/index.ts15 symbols
apps/ops/src/aws/lambda.ts15 symbols
packages/db/src/index.ts14 symbols
packages/trust/src/keyResolver.ts11 symbols
apps/ops/src/aws/ssm.ts11 symbols
packages/queue/src/index.ts10 symbols
apps/ops/src/aws/sqs.ts10 symbols

For agents

$ claude mcp add letsgo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact