Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: 🐛 Bug Report
about: Something isn't working as expected
title: "[Bug]: "
labels: bug
assignees: ""
---

## Describe the bug

A clear description of what went wrong.

## Blueprint or command used

```json
// paste the blueprint.json (or relevant part) here
```

```bash
scaffinity generate blueprint.json ...
```

## Expected behavior

What you expected to happen.

## Actual behavior

What actually happened. Paste the full terminal output/error if possible.

## Environment

- Scaffinity version: `scaffinity -v`
- Node version: `node -v`
- OS:
- Package manager: npm / pnpm / yarn

## Additional context

Anything else that might help (screenshots, related issues, etc.)
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: ✨ Feature Request
about: Suggest a new feature, command, or blueprint
title: "[Feature]: "
labels: enhancement
assignees: ""
---

## What problem does this solve?

Describe the use case — what are you trying to do that Scaffinity can't do today?

## Proposed solution

How would you like this to work? Include an example command or blueprint snippet if you can.

## Alternatives considered

Any workarounds you're currently using instead.

## Would you be willing to open a PR for this?

- [ ] Yes, I'd like to work on this
- [ ] No, just suggesting
22 changes: 22 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## What does this PR do?

Brief description of the change.

## Related issue

Closes #

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] New community blueprint (`/examples`)
- [ ] Documentation
- [ ] Other

## Checklist

- [ ] `npm run lint` passes
- [ ] `npm test` passes
- [ ] I added/updated tests if relevant
- [ ] I updated the README/docs if relevant
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]

jobs:
test:
name: Lint & Test (Node ${{ matrix.node-version }})
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint

- name: Build
run: npm run build
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

All notable changes to this project will be documented in this file.

## [1.0.0] - 2026-06-30
## [1.0.0](https://github.com/devi5040/scaffinity/releases/tag/v1.0.0)

### Added

- `scaffinity generate` - generate project structure from a JSON blueprint
- `scaffinity export` - export existing project structure to JSON blueprint
- `scaffinity init` - interactive blueprint builder
Expand Down
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ scaffinity generate express-ts-api.json -o ./my-api

Output:

```
```sh
✅ Blueprint loaded

mkdir: my-api/src
Expand Down Expand Up @@ -142,11 +142,14 @@ scaffinity export ./my-project -o team-blueprint.json

Ready-made blueprints in the [`/examples`](./examples) folder:

| Blueprint | Description |
| ------------------------------------------------------- | ----------------------------- |
| [`express-ts-api.json`](./examples/express-ts-api.json) | Express + TypeScript REST API |
| [`nextjs-app.json`](./examples/nextjs-app.json) | Next.js app with route groups |
| Blueprint | Description |
| ------------------------------------------------------------- | ------------------------------------ |
| [`express-ts-api.json`](./examples/express-ts-api.json) | Express + TypeScript REST API |
| [`nextjs-app.json`](./examples/nextjs-app.json) | Next.js app with route groups |
| [`nextjs-app-router.json`](./examples/nextjs-app-router.json) | Next.js App Router `src/app` project |
| [`nest-api.json`](./examples/nest-api.json) | NestJS REST API starter |
| [`nextjs-app.json`](./examples/nextjs-app.json) | Next.js App Router project |
| [`react-native.json`](./examples/react-native.json) | React Native mobile starter |
| [`nest-api.json`](./examples/nest-api.json) | NestJS REST API starter |
| [`t3-stack.json`](./examples/t3-stack.json) | T3 Stack starter |
| [`react-native.json`](./examples/react-native.json) | React Native mobile starter |
Expand Down
35 changes: 35 additions & 0 deletions eslint.config.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import json from "@eslint/json";
import markdown from "@eslint/markdown";
import { defineConfig } from "eslint/config";

export default defineConfig([
{
ignores: ["node_modules/", ".github/", "dist/", "package-lock.json"],
},
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
plugins: { js },
extends: ["js/recommended"],
},
tseslint.configs.recommended,
{
files: ["**/*.json"],
plugins: { json },
language: "json/json",
extends: ["json/recommended"],
},
{
files: ["**/*.jsonc"],
plugins: { json },
language: "json/jsonc",
extends: ["json/recommended"],
},
{
files: ["**/*.md"],
plugins: { markdown },
language: "markdown/gfm",
extends: ["markdown/recommended"],
},
]);
Loading
Loading