{"id":21569458,"url":"https://github.com/naturalcycles/js-platform","last_synced_at":"2026-04-28T15:41:44.560Z","repository":{"id":96374636,"uuid":"271477270","full_name":"NaturalCycles/js-platform","owner":"NaturalCycles","description":"Overview of Natural Cycles JS Platform","archived":false,"fork":false,"pushed_at":"2020-07-08T16:08:54.000Z","size":4,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-22T17:05:52.760Z","etag":null,"topics":["js","meta","platform","typescript"],"latest_commit_sha":null,"homepage":"","language":null,"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/NaturalCycles.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-11T07:11:05.000Z","updated_at":"2021-11-03T01:06:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"94034c8a-07dc-433a-a7d7-eb00f1794d2b","html_url":"https://github.com/NaturalCycles/js-platform","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NaturalCycles/js-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalCycles%2Fjs-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalCycles%2Fjs-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalCycles%2Fjs-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalCycles%2Fjs-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NaturalCycles","download_url":"https://codeload.github.com/NaturalCycles/js-platform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NaturalCycles%2Fjs-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32387921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: 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":["js","meta","platform","typescript"],"created_at":"2024-11-24T11:09:32.961Z","updated_at":"2026-04-28T15:41:39.545Z","avatar_url":"https://github.com/NaturalCycles.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Natural Cycles JS Platform\n\nNatural Cycles JS Platform is an opinionated stack of tools that work well together.\n\n## Highlights\n\n- [Architecture choices](#architecture-choices)\n- [NPM packages](#npm-packages)\n- [CI](#ci)\n- [Blessed packages](#blessed-packages)\n\n## Architecture choices\n\n- TypeScript\n- prettier\n- Jest\n- yarn\n- CircleCI\n- Express.js\n- NoSQL\n\n## NPM packages\n\n###### Kick-start a new package\n\n- [generator-nodejs-lib](https://github.com/NaturalCycles/generator-nodejs-lib)\n- [generator-backend-service](https://github.com/NaturalCycles/generator-backend-service)\n\n###### devDependencies\n\n- [dev-lib](https://github.com/NaturalCycles/dev-lib)\n- [cli](https://github.com/NaturalCycles/cli)\n- [semantic-release](https://github.com/NaturalCycles/semantic-release)\n\n###### Universal (Node.js + Browser)\n\n- [js-lib](https://github.com/NaturalCycles/js-lib)\n- [time-lib](https://github.com/NaturalCycles/time-lib)\n\n###### Node.js\n\n- [nodejs-lib](https://github.com/NaturalCycles/nodejs-lib)\n- [db-lib](https://github.com/NaturalCycles/nodejs-lib)\n  - [mongo-lib](https://github.com/NaturalCycles/mongo-lib)\n  - [firestore-lib](https://github.com/NaturalCycles/firestore-lib)\n  - [datastore-lib](https://github.com/NaturalCycles/datastore-lib)\n  - [mysql-lib](https://github.com/NaturalCycles/mysql-lib)\n  - [redis-lib](https://github.com/NaturalCycles/redis-lib)\n  - [airtable-lib](https://github.com/NaturalCycles/airtable-lib)\n  - [spreadsheet-lib](https://github.com/NaturalCycles/spreadsheet-lib)\n  - [github-db](https://github.com/NaturalCycles/github-db)\n  - sqlite-lib (in progress)\n- [fs-lib](https://github.com/NaturalCycles/fs-lib)\n- [scrubber-lib](https://github.com/NaturalCycles/scrubber-lib)\n\n###### Frontend\n\n- [frontend-lib](https://github.com/NaturalCycles/nodejs-lib)\n\n###### Backend\n\n- [backend-lib](https://github.com/NaturalCycles/nodejs-lib)\n\n### Experimental\n\nPackages that haven't yet proven their usefullness. API may change without notice.\n\n- [junit-lib](https://github.com/NaturalCycles/junit-lib)\n- [json2html](https://github.com/NaturalCycles/json2html)\n- [puppeteer-lib](https://github.com/NaturalCycles/yeoman-lib)\n- [grafana-lib](https://github.com/NaturalCycles/yeoman-lib)\n- [yeoman-lib](https://github.com/NaturalCycles/yeoman-lib)\n- [bench-lib](https://github.com/NaturalCycles/bench-lib)\n- e2e-lib (todo)\n\n# CI\n\nAll packages follow [SemVer](https://semver.org/) (as opposed to [Sentimental versioning](http://sentimentalversioning.org/)) and [Conventional commits](https://www.conventionalcommits.org).\n\nVersions are bumped and released automatically by using [semantic-release](https://github.com/semantic-release/semantic-release).\n\nCurrent CI of choice is CircleCI, but may be switched to Github Actions in future.\n\nCommon CI configuration is abstracted via [orbs](https://github.com/NaturalCycles/orbs).\n\n## Blessed packages\n\n### Already included in libs\n\n- linting / formatting\n  - prettier\n  - tslint (to be replaced by ESLint)\n  - husky\n  - lint-staged\n- testing\n  - jest\n  - test-cafe\n- cli / tools\n  - yargs (alternatives: commander)\n  - inquirer (alternatives: enquirer)\n  - fs-extra\n  - execa\n  - globby\n  - chalk (alternatives: ansi-colors)\n  - dotenv\n  - semver\n  - lru-cache\n  - cheerio\n- typescript\n  - ts-node\n  - tsconfig-paths\n- process management\n  - nodemon\n- validation\n  - Joi\n- date/time\n  - dayjs\n  - timekeeper\n- data / parsers\n  - marked\n  - yamljs\n  - json5\n- http\n  - got\n  - getGot\n  - ky\n\n### Not included in libs\n\n- templating\n  - ejs (alternative: nunjucks)\n  - bcryptjs\n  - node-schedule\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalcycles%2Fjs-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaturalcycles%2Fjs-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalcycles%2Fjs-platform/lists"}