Skip to content

Commit ce8c4e7

Browse files
committed
Add architecture documentation
1 parent 4709861 commit ce8c4e7

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

ARCHITECTURE.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Architecture Documentation for `create-t3-app`
2+
3+
## Overview
4+
5+
The `create-t3-app` repository is a CLI tool designed to scaffold a new T3 application using modern web technologies such as **Next.js**, **TRPC**, and **Prisma**. It provides a streamlined way to initialize a project with preconfigured best practices and dependencies.
6+
7+
## Folder Structure
8+
9+
```
10+
├── packages/
11+
│ └── create-t3-app/
12+
│ ├── index.ts # Main entry point for the CLI
13+
│ ├── cli/
14+
│ │ ├── commands/
15+
│ │ │ ├── create.ts # Logic for creating a new T3 app
16+
│ │ │ └── utils.ts # Utility functions for CLI commands
17+
│ │ └── cli.ts # Command-line interface setup
18+
│ ├── templates/
19+
│ │ ├── nextjs/ # Templates for Next.js configuration
20+
│ │ ├── trpc/ # Templates for TRPC setup
21+
│ │ └── prisma/ # Templates for Prisma ORM initialization
22+
│ ├── utils/
23+
│ │ ├── fs.ts # File system utilities
24+
│ │ └── prompts.ts # Prompting utilities for user interaction
25+
│ └── package.json # Package definition for the CLI
26+
└── README.md # Project overview and usage guide
27+
```
28+
29+
## Core Components
30+
31+
### CLI Interface
32+
33+
The CLI is built using standard Node.js and command-line libraries. It provides an intuitive interface for users to interact with the scaffolding logic.
34+
35+
### Scaffolding Logic
36+
37+
The `index.ts` file serves as the central orchestrator for the scaffolding process. It coordinates the creation of files, directories, and configurations based on user inputs and predefined templates.
38+
39+
### Template System
40+
41+
Templates for **Next.js**, **TRPC**, and **Prisma** are stored in the `templates/` directory. These templates are dynamically populated with user-specific values during the scaffolding process.
42+
43+
### Utilities
44+
45+
The `utils/` directory contains helper functions for file operations, prompt handling, and template rendering.
46+
47+
## Integration with Technologies
48+
49+
### Next.js
50+
51+
Next.js is used as the framework for building the application. The scaffolding logic includes Next.js configuration files and boilerplate code for routing, API routes, and static generation.
52+
53+
### TRPC
54+
55+
TRPC is integrated for backend API communication. It enables strong typing and efficient communication between the frontend and backend layers of the application.
56+
57+
### Prisma
58+
59+
Prisma is used as the ORM for database interactions. The scaffolding logic includes Prisma schema files and CLI commands for database migrations and model generation.
60+
61+
## Evolution and Development
62+
63+
The project has seen continuous improvement through regular commits addressing security, bug fixes, and feature enhancements. Notable commits include updates to dependencies, scaffolding logic refinements, and integration improvements.
64+
65+
This architecture allows for flexibility and scalability while maintaining clean separation of concerns and leveraging the strengths of each technology.

0 commit comments

Comments
 (0)