A starter kit backend framework powered by Express, TypeScript, EJS Engine, and Prisma ā designed for rapid development, simplicity, and scalability.
npm install create-craftjsA starter kit backend powered by Express, TypeScript, EJS Engine, and Prisma ā designed for rapid development, simplicity, and scalability.
---
- Express.js based API architecture
- TypeScript support out of the box
- Prisma ORM with scalable database structure
- CLI tool (craft) for project automation
- Built-in Logger, Validation, Error handler, and Request lifecycle
- Predefined project structure for fast onboarding
---
š” Note: EJS View Engine is included but disabled by default. To enable it:
Open src/application/web.ts and uncomment the following lines:
``bash
import expressLayouts from "express-ejs-layouts";
import path from "path";
web.set("view engine", "ejs");
web.set("views", path.join(\_\_dirname, "..", "views"));
web.use(expressLayouts);
web.set("layout", "layouts/main");
`
Then, go to src/routes/main-route.ts and uncomment this:
`bash`
mainRouter.get("/", (req, res) => {
res.render("index", { title: "Home Page" });
});
`bash`
npx create-craftjs@latest my-app
OR
`bash`
npm init craftjs@latest my-app
`bash`
cd my-app
`bash`
npm install
node craft key:generate
node craft db:generate
node craft db:migrate
node craft db:seed
node craft dev
`bash`
node craft help
---
``
my-app/
āāā craft/
āāā logs/
āāā prisma/
āāā public/
āāā src/
ā āāā apidocs/
ā āāā config/
ā āāā controllers/
ā āāā dtos/
ā āāā middleware/
ā āāā repositories/
ā āāā routes/
ā āāā services/
ā āāā utils/
ā āāā validations/
ā āāā views/
ā āāā main.ts
āāā temp/
āāā test/
āāā .env
āāā .env.example
āāā .gitignore
āāā babel.config.json
āāā craft.js
āāā docker-compose.yml
āāā Dockerfile
āāā nodemon.json
āāā package-lock.json
āāā package.json
āāā prisma.config.ts
āāā README.md
āāā tsconfig.json
---
| Command | Description |
| ----------------------- | ------------------------------ |
| craft build:docker | Deploy Docker for production |craft build
| | Build for production |craft db:fresh
| | Run Prisma migrate reset |craft db:generate
| | Generate Prisma client |craft db:migrate
| | Run Prisma migrations |craft db:seed
| | Run Prisma Seeder |craft dev
| | Run in development mode |craft key:generate
| | Generate secret keys |craft make:apidocs
| | Make Apidocs File |craft make:command
| | Make Command File |craft make:controller
| | Make Controller File |craft make:dto
| | Make Data Transfer Object File |craft make:middleware
| | Make Middleware File |craft make:repository
| | Make repository File |craft make:route
| | Make Route File |craft make:service
| | Make Service File |craft make:test
| | Make Test case |craft make:utils
| | Make Utils |craft make:validation
| | Make Validation |craft make:view
| | Make View |craft start
| | Start production server |craft test` | Run Jest tests |
|
---
Made by @muhammadisa-n