{"id":40824272,"url":"https://github.com/tberey/typescript-node-fresh-start-template","last_synced_at":"2026-01-21T22:11:06.254Z","repository":{"id":42899070,"uuid":"252780646","full_name":"tberey/typescript-node-fresh-start-template","owner":"tberey","description":"A blank canvas for any Node and TypeScript project, with only the most common and helpful (but lightweight) modules introduced. Use as a template to begin any new TypeScript with Nodejs project.","archived":false,"fork":false,"pushed_at":"2023-02-03T21:53:31.000Z","size":687,"stargazers_count":2,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-04T09:55:03.683Z","etag":null,"topics":["blank","blank-project","easy","easy-to-use","fresh","javascript","new","new-project","node","node-js","node-typescript","nodejs","npm","quick","quickstart","simple","template","template-project","templates","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/tberey/typescript-node-fresh-start-template/blob/master/README.md","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tberey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2020-04-03T16:11:23.000Z","updated_at":"2021-08-03T19:36:52.000Z","dependencies_parsed_at":"2023-01-28T19:00:59.226Z","dependency_job_id":null,"html_url":"https://github.com/tberey/typescript-node-fresh-start-template","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/tberey/typescript-node-fresh-start-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tberey%2Ftypescript-node-fresh-start-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tberey%2Ftypescript-node-fresh-start-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tberey%2Ftypescript-node-fresh-start-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tberey%2Ftypescript-node-fresh-start-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tberey","download_url":"https://codeload.github.com/tberey/typescript-node-fresh-start-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tberey%2Ftypescript-node-fresh-start-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28645193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"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":["blank","blank-project","easy","easy-to-use","fresh","javascript","new","new-project","node","node-js","node-typescript","nodejs","npm","quick","quickstart","simple","template","template-project","templates","typescript"],"created_at":"2026-01-21T22:11:05.524Z","updated_at":"2026-01-21T22:11:06.247Z","avatar_url":"https://github.com/tberey.png","language":"TypeScript","readme":"\u003c!--\n*** Using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n\n\u003c!-- PROJECT SHIELDS/BADGES --\u003e\n[![Workflow][workflow-shield]][workflow-url]\n[![Issues][issues-shield]][issues-url]\n[![Version][version-shield]][version-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Forks][forks-shield]][forks-url]\n[![Contributors][contributors-shield]][contributors-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\n\n\u003c!-- PROJECT LOGO \u0026 TITLE --\u003e\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tberey\"\u003e\n    \u003cimg src=\"public/assets/img.png\" alt=\"Logo\" width=\"73\" height=\"70\"\u003e\n  \u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n  \u003cdiv align=\"center\"\u003e\u003ch1\u003eNode.ts\u003c/h1\u003eA Fresh \u0026 Blank Template,\u003cbr\u003eto start something new in TypeScript and Nodejs\u003c/div\u003e\n  \u003cdiv align=\"right\"\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://github.com/tberey/typescript-node-fresh-start-template/blob/master/README.md\"\u003e\u003cstrong\u003eDocumentation »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"#usage\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/tberey/typescript-node-fresh-start-template/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/tberey/typescript-node-fresh-start-template/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open=\"open\" style=\"padding:4px;display:inline;border-width:1px;border-style:solid;\"\u003e\n  \u003csummary\u003e\u003cb style=\"display: inline-block\"\u003e\u003cu\u003eContents\u003c/u\u003e\u003c/b\u003e\u003c/summary\u003e\n    \u003col\u003e\n        \u003cli\u003e\n        \u003ca href=\"#about-this-project\"\u003eAbout\u003c/a\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#tech-stack\"\u003eTech Stack\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n        \u003ca href=\"#startup\"\u003eStartup\u003c/a\u003e\n        \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\n          \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n          \u003cul\u003e\n            \u003cli\u003e\u003ca href=\"#screenshots\"\u003eScreenshots\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#complete-setup-instructions\"\u003eComplete Setup Instructions\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#changelog\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e\n    \u003c/ol\u003e\n\u003c/details\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- ABOUT THis PROJECT --\u003e\n## About This Project\nThis is a fresh \u0026 blank template, with some of the most common and helpful (but basic) modules included, as well as automatic [logging](#screenshots) configured out the box. After installation and starting the application, you will have a simple and empty HTTP REST Server hosted locally, ready-to-go. Everything inclusive of this template will be completely up to date, and updated each time it is installed, so it will never depreciate and is safe to use over time repeatedly. This is the perfect starting point for any project, as you can simply install this template and then start importing your own modules, or writing your own code, without any hassle. Completely compatible with any vision or modules.\n\n**A new project can be written in either TypeScript or JavaScript, without any further changes needed, however this template is set up and intended for TS, making use of it's typesetting, pre-compiling abilities, and simplicity in an object-oriented approach.**\n\n*This template is completely unrestricted, and free for anyone to use, unlimited, with no credit or acknowledgements needed. There are no signs of any ownership, or personal touches, inside the codebase.*\n\n\u003cbr\u003e\n\n### Tech Stack\n* [Typescript](https://www.typescriptlang.org/) - Write in TypeScript (or JS), Compiles down to JavaScript.\n* [NodeJS](https://nodejs.org/en/) - Node Runtime Environment.\n* [ExpressJS](https://expressjs.com/) - Server \u0026 Router Infrastructure Framework.\n* [EJS](https://ejs.co/) - Serves Client Views.\n* [ESLint](https://eslint.org/) - Code Parsing, Styling \u0026 Error Checking.\n* [Mocha-Chai](https://mochajs.org/) - Testing with Mocha Framework, using the Chai Library.\n* [Nodemon](https://nodemon.io/) - Restart Application without Compiling, on a Change to Watched Files.\n* [Rimraf](https://www.npmjs.com/package/rimraf) - Directory Cleaner Tool.\n* [Dotenv](https://www.npmjs.com/package/dotenv) - Project Secrets Stored in a Local .env File.\n* [SimpleTxtLogger](https://www.npmjs.com/package/simple-txt-logger) - Logging tool.\n* [@types/*](https://www.npmjs.com/package/@types/node) - Various JS-\u003eTS Typesetting modules, to import types. Needed to use a JavaScript module with TypeScript when strict settings are enabled, or to make use of TS only features against a imported module.\n\n\u003cbr\u003e\n\n*- See [Complete Instructions](#complete-setup-instructions) to create this template yourself, without any of the extra optional modules.*\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- STARTUP --\u003e\n## Startup\nFor help or guidance in downloading and running the application, see the following subsections.\n\n\u003cbr\u003e\n\n#### Prerequisites\n[You must have npm (node package manager) and Nodejs installed on your system!](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n\n1. Update npm:\n  ```sh\n  npm install npm@latest -g\n  ```\n\u003cbr\u003e\n\n#### Installation\n1. Clone/Download:\n  ```sh\n  git clone https://github.com/tberey/typescript-node-fresh-start-template.git\n  ```\n2. Install:\n  ```sh\n  npm install\n  ```\n3. Start:\n  ```sh\n  npm run start\n  ```\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\n| Endpoint | Action/Desc. | Full URI \u003ci\u003e(hosted locally, for some port; e.g.: 3000, which is default for this template)\u003c/i\u003e |\n|:---|:---|:---|\n| \u003cul\u003e\u003cli\u003eGET \"/\"\u003c/li\u003e\u003c/ul\u003e | Homepage:\u003cbr\u003eThe client-side landing page. | \u003cul\u003e\u003cli\u003e\"`http://localhost:3000/`\"\u003c/li\u003e\u003c/ul\u003e |\n\n\u003cbr\u003e\n\n### Screenshots\n\nLogging Sample\u003cbr\u003e\n![Screenshot#1](https://github.com/tberey/typescript-node-fresh-start-template/blob/master/screenshots/local-logs-sample.png?raw=true)\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n## Complete Setup Instructions\nThe following steps are complete instruction to create this template, but without any of the extra modules, and begin a brand new project in Nodejs with TypeScript from a blank slate. The commands are shell commands, to be carried out in a terminal, console or other shell environment.\n\n1. Create a new local directory and change current directory to new one:\n  ```sh\n  mkdir \u003cPROJECT_NAME\u003e \u0026\u0026 cd \u003cPROJECT_NAME\u003e\n  ```\n2. Initialize a new package.json file:\n  ```sh\n  npm init -y\n  ```\n3. Install TypeScript dependencies:\n  ```sh\n  npm i --save-dev typescript ts-node\n  ```\n4. Initialize a new tsconfig.json file:\n  ```sh\n  npx tsc --init\n  ```\n5. [Optional] Some basic parameters to use in the tsconfig.json file. [My settings for this file can be found here](https://github.com/tberey/typescript-node-fresh-start-template/blob/master/tsconfig.json) also, to copy \u0026 paste. Otherwise, adjust this further with own preferences, or leave it as is.\n  ```sh\n  {\n    \"compilerOptions\": {\n      \"target\": \"es6\",\n      \"module\": \"commonjs\",\n      \"declaration\": true,\n      \"sourceMap\": true,\n      \"outDir\": \"build\",\n      \"rootDir\": \"./\",\n      \"strict\": true,\n      \"esModuleInterop\": true\n    }\n  }\n  ```\n6. Create main.ts, the entry point into the application:\n  ```sh\n  echo \"console.log('Hello, World');\" \u003e main.ts\n  ```\n7. [Optional] Some basic information and scripts, for the package.json file:\n  ```sh\n  {\n    \"name\": \"\u003cApp-Name\u003e\",\n    \"version\": \"1.0.0\",\n    \"description\": \"\u003cApp_Desc\u003e\",\n    \"main\": \"build/main.js\",\n    \"types\": \"build/main.d.ts\"\n    \"scripts\": {\n      \"setup\": \"npm update \u0026\u0026 npm install\",\n      \"build\": \"tsc\",\n      \"start\": \"node build/main.js\",\n      \"start:src\": \"ts-node main.ts\"\n    }\n  }\n  ```\n8. [Optional] Install, compile and start application (it won't do much yet, but you're off to a running start now):\n  ```sh\n  npm run setup\n  npm run build\n  npm run start\n  ```\n\u003csub\u003e\u003cb\u003e\u003ci\u003e^ Step 8.: These commands require the optional Step 7 to have been followed, to work as intended.\u003cbr\u003e'npm run setup' installs and updates the project and it's dependencies, 'build' will compile the project into browser/app runnable JS, and 'start' will run the project, from the compiled files in build. 'start:src' runs the project from the source TS file, so compilation is not necessary.\u003c/i\u003e\u003c/b\u003e\u003c/sub\u003e\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\nBelow is the refined and confirmed roadmap, that has been planned for completion. See [open issues][issues-url] and also the [project board][project-url], for any other proposed features or known issues, which may not be listed below.\n\n| Feature/Task/Bugfix | Details | Version \u003ci\u003e(if released)\u003c/i\u003e | Notes |\n|:---|:---|:---|:---|\n| \u003ci\u003eBug#1\u003c/i\u003e | \u003ci\u003eBug details...\u003c/i\u003e | \u003ci\u003e0.0.1\u003c/i\u003e | \u003ci\u003eexample#1\u003c/i\u003e |\n| \u003ci\u003eFeature#4\u003c/i\u003e | \u003ci\u003eFeature details...\u003c/i\u003e |   | \u003ci\u003eexample#2\u003c/i\u003e |\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- CHANGELOG --\u003e\n## Changelog\n\n| Version | Date | Changes |\n|:---|:---|:---|\n| 1.0.0 | 2021-07-09 | \u003cul\u003e\u003cli\u003eInitial Commit.\u003c/li\u003e\u003cli\u003eAdd initial directory structure and files.\u003c/li\u003e\u003cli\u003eAdd Screenshots directory, and images.\u003c/li\u003e\u003cli\u003eCreate and format README.md\u003c/li\u003e\u003c/ul\u003e |\n| 1.0.1 | 2021-07-14 | \u003cul\u003e\u003cli\u003eRemoval of local SimpleTxtLogger file. Addition of SimpleTxtLogger as a npm module.\u003c/li\u003e\u003cli\u003eUpdate README.md\u003c/li\u003e\u003c/ul\u003e |\n| 1.0.2 | 2021-08-01 | \u003cul\u003e\u003cli\u003eUpdate tsconfig.\u003c/li\u003e\u003cli\u003eUpdate README.md\u003c/li\u003e\u003c/ul\u003e |\n| 1.0.3 | 2021-08-03 | \u003cul\u003e\u003cli\u003eAdd Rollbar config and class.\u003c/li\u003e\u003cli\u003eFix Spelling.\u003c/li\u003e\u003cli\u003eUpdate README.md\u003c/li\u003e\u003c/ul\u003e |\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\nContributions are welcomed and, of course, **greatly appreciated**.\n\n1. Fork the Project.\n2. Create your Feature Branch (`git checkout -b feature/Feature`)\n3. Commit your Changes (`git commit -m 'Add some Feature'`)\n4. Push to the Branch (`git push origin feature/Feature`)\n5. Open a Pull Request.\n\n\u003cbr\u003e\u003chr\u003e\u003cbr\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n### Contact\n\n\u003cb\u003eTom Berey\u003c/b\u003e; \u003ci\u003eProject Manager, Lead Developer, Principal Tester \u0026 Customer Services;\u003c/i\u003e\u003cbr\u003etomberey1@gmail.com;\n\n* [Issues \u0026 Requests.][issues-url]\n* [My Other Projects.](https://github.com/tberey?tab=repositories)\n* [Personal Website.](https://tberey.github.io/)\n* [Linked In.](https://uk.linkedin.com/in/thomas-berey)\n\n\u003cbr\u003e\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n### Acknowledgements\n\n* [Me](https://github.com/tberey)\n\n\n\n\n\n\u003c!-- SPECIFIC URLS - NEED CHANGING PER PROJECT --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[workflow-shield]: https://github.com/tberey/typescript-node-fresh-start-template/actions/workflows/codeql-analysis.yml/badge.svg\n[workflow-url]: https://github.com/tberey/typescript-node-fresh-start-template/actions\n[version-shield]: https://img.shields.io/github/v/release/tberey/typescript-node-fresh-start-template\n[version-url]: https://github.com/tberey/typescript-node-fresh-start-template/releases/\n[stars-shield]: https://img.shields.io/github/stars/tberey/typescript-node-fresh-start-template.svg\n[stars-url]: https://github.com/tberey/typescript-node-fresh-start-template/stargazers\n[contributors-shield]: https://img.shields.io/github/contributors/tberey/typescript-node-fresh-start-template.svg\n[contributors-url]: https://github.com/tberey/typescript-node-fresh-start-template/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/tberey/typescript-node-fresh-start-template.svg\n[forks-url]: https://github.com/tberey/typescript-node-fresh-start-template/network/members\n[issues-shield]: https://img.shields.io/github/issues/tberey/typescript-node-fresh-start-template.svg\n[issues-url]: https://github.com/tberey/typescript-node-fresh-start-template/issues\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?logo=linkedin\u0026colorB=555\n[linkedin-url]: https://uk.linkedin.com/in/thomas-berey\n[project-url]: https://github.com/tberey/typescript-node-fresh-start-template/projects","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftberey%2Ftypescript-node-fresh-start-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftberey%2Ftypescript-node-fresh-start-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftberey%2Ftypescript-node-fresh-start-template/lists"}