{"id":37146018,"url":"https://github.com/patheticgeek/prjkt","last_synced_at":"2026-01-14T17:00:50.169Z","repository":{"id":44648023,"uuid":"449990081","full_name":"patheticGeek/prjkt","owner":"patheticGeek","description":"Easily start a new project without the burden of remembering 10 things to do","archived":false,"fork":false,"pushed_at":"2022-02-04T21:36:16.000Z","size":585,"stargazers_count":6,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-09T13:38:56.584Z","etag":null,"topics":["automation","in-portfolio","scaffolding"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/prjkt","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patheticGeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-20T07:03:03.000Z","updated_at":"2025-01-13T15:37:43.000Z","dependencies_parsed_at":"2022-09-26T21:51:05.033Z","dependency_job_id":null,"html_url":"https://github.com/patheticGeek/prjkt","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/patheticGeek/prjkt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patheticGeek%2Fprjkt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patheticGeek%2Fprjkt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patheticGeek%2Fprjkt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patheticGeek%2Fprjkt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patheticGeek","download_url":"https://codeload.github.com/patheticGeek/prjkt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patheticGeek%2Fprjkt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28427181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","in-portfolio","scaffolding"],"created_at":"2026-01-14T17:00:30.499Z","updated_at":"2026-01-14T17:00:49.955Z","avatar_url":"https://github.com/patheticGeek.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prjkt\n\nProject scaffolding made easy!\n\n![Demo](/assets/demo.gif \"Demo\")\n\n## Table of contents\n\n- [Motivation](#motivation)\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n    - [CLI Usage](#cli-usage)\n      - [Create](#create)\n      - [Create flags](#create-flags)\n      - [List Default Actions](#list-default-actions)\n    - [prjkt.yaml file](#prjktyaml-file)\n      - [Example file](#example-file)\n      - [Messages](#messages)\n      - [Actions](#actions)\n\n## Motivation\nHeavily Inspired by [degit](https://www.npmjs.com/package/degit). I liked the concept of it and what it had for plan. But by looking at repo it seems there's no development going on with it so i decided to make this while learning go.\n\n## Features\n\n- Clones the repo and removes git\n- Magically detects type of project and suggests automatic actions to easily setup new projects\n- Repos can have a config file to customize actions done after cloning of repo\n\nFor more progress check the [Plan #1](https://github.com/patheticGeek/prjkt/issues/1)\n\n## Installation\n\n##### With npm (Preferred)\n\n```\nnpm i -g prjkt\nprjkt help\n```\n\n##### With npx\nYou can directly run it\n\n```\nnpx prjkt help\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eBy cloning the repo\u003c/summary\u003e\n\n1. Clone the repo\n    ```\n    git clone https://github.com/patheticGeek/prjkt.git\n    ```\n2. Install\n    ```\n    go install .\n    ```\n3. Test if it's working with\n    ```\n    prjkt help\n    ```\n\u003c/details\u003e\n\n## Usage:\n\n### CLI usage:\n\n#### Create\n\nThis will clone in the `my-project` folder and remove git from the project and run any actions if specified in repo or will detect the type of project and suggest some default actions.\n\n```\nprjkt create patheticGeek/pg-nextjs-boilerplate my-project\n# or\nprjkt c patheticGeek/pg-nextjs-boilerplate my-project\n# or\nprjkt c patheticGeek/pg-nextjs-boilerplate\n```\nThe last one will create a folder called my-prjkt.\n\nThe repo can have a [`prjkt.yaml` file](#prjktyaml-file) that defines what [actions](#actions) should be done after cloning.\n\n#### Create Flags\n\nCreate commands has some flags you can specify\n\n\n- `preserve-git`: Doesn't remove git from the project\n  ```\n  prjkt create --preserve-git patheticGeek/pg-nextjs-boilerplate\n  ```\n- `no-actions`: Don't run any actions specified in prjkt.yaml\n  ```\n  prjkt create --no-actions patheticGeek/pg-nextjs-boilerplate\n  ```\n- `action`: Specify a default action, this overrides the prjkt.yaml if preset\n  ```\n  prjkt create --action=node patheticGeek/pg-nextjs-boilerplate\n  ```\n  To check available default action see [List default actions](#list-default-actions)\n\nNOTE: These flags come before the arguments (the url and destination)\n\n#### List default actions\n\nLists all the available default actions\n\n```\nprjkt list-actions\n```\n\n#### More\n\nFor more details run:\n```\nprjkt help\n```\n\nFor more details on create run:\n```\nprjkt help create\n```\n\n### `prjkt.yaml` file\n\nIt's a simple file you can store in the root folder and does stuff after repo has been cloned.\n\n### Example file\n\nHere's what a basic config would look like for a js project\n\n```yaml\nwelcome_message: \"Getting things ready for ya mate\"\n\nactions:\n  - \n    name: Delete readme, prjkt.yaml, lock file(s)\n    type: delete\n    files: README.md, prjkt.yaml, *lock*\n  -\n    name: Install dependencies\n    type: exec-option\n    prompt: Pick your poison\n    options: pnpm, yarn, npm, none\n    option-pnpm: pnpm i\n    option-yarn: yarn\n    option-npm: npm i\n  -\n    name: Set project name\n    type: replace\n    prompt: So what are we makin today?\n    to_replace: \u003c\u003cproject_name\u003e\u003e\n    files: package.json, **/*.ts\n\nno_actions_message: \"Such a smart A$$\"\n\nerror_message: \"LOL this shit broke already!\"\n\nsuccess_message: \"This went smoother than it did while showing off to my friends! ✨ Enjoy\"\n```\n\nFor more templates/examples [look here](https://github.com/patheticGeek/prjkt-templates/tree/main/defaults)\n\n### Messages\n\nYou can have 3 types of messages:\n1. `welcome_message`: This shows up when the repo is cloned and before the actions have run\n2. `error_message`: This shows if there was an error in one of the actions\n3. `success_message`: This shows up if the actions run successfully\n4. `no_actions_message`: If user sets the no-actions flag this will be shown instead of success/error messages\n\n### Actions\n\nThere can be an actions array to define what to do after repo has been cloned\nThe following actions are present currently:\n\n- `replace`: Replace a string in files with user input\n    ```yaml\n    actions:\n      -\n        name: Set the project name\n        type: replace\n        # What user sees as the question\n        prompt: Name of the project\n        # The string to replace\n        to_replace: \u003c\u003cproject_name\u003e\u003e\n        # The files to set the name in\n        # Can be a glob pattern or file path\n        files: package.json, **/*.ts\n    ```\n- `delete`: Delete some files\n    ```yaml\n    actions:\n      - \n        name: Deleting readme, prjkt.yaml, lock file(s)\n        type: delete\n        # Files or globe patterns to delete\n        files: README.md, prjkt.yaml, *lock*\n    ```\n- `exec`: Execute a command\n    ```yaml\n    actions:\n      -\n        name: Run a command\n        type: exec\n        # Command to run, will run in the project dir\n        run: echo Hello world!\n        # keep going even if this command fails (default: false)\n        continue: true\n    ```\n- `exec-option`: Execute command based on user's selection\n    ```yaml\n    actions:\n      -\n        name: Install dependencies\n        type: exec-option\n        # The message user sees\n        prompt: Pick your poison\n        # options the user can choose from\n        options: pnpm, yarn, npm, none\n        # option-[user choice] will be ran\n        # if key is not found just continue\n        option-pnpm: pnpm i\n        option-yarn: yarn\n        option-npm: npm i\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatheticgeek%2Fprjkt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatheticgeek%2Fprjkt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatheticgeek%2Fprjkt/lists"}