{"id":19024106,"url":"https://github.com/astrohelm/svelte-workspace","last_synced_at":"2026-04-10T12:32:08.203Z","repository":{"id":194370890,"uuid":"690698525","full_name":"astrohelm/svelte-workspace","owner":"astrohelm","description":"Astrohelm example of sveltekit workspace  📝","archived":false,"fork":false,"pushed_at":"2023-09-12T17:35:53.000Z","size":114,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-19T13:45:55.666Z","etag":null,"topics":["astrohelm","bun","eslint","example","javascript","preset","prettier","starter-kit","svelte","sveltekit","ts","typescript","workspace"],"latest_commit_sha":null,"homepage":"https://astrohelm.ru","language":"CSS","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/astrohelm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2023-09-12T17:35:11.000Z","updated_at":"2023-09-30T11:34:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"9476b665-0c13-492a-a34f-0418cd9e0e9f","html_url":"https://github.com/astrohelm/svelte-workspace","commit_stats":null,"previous_names":["astrohelm/svelte-workspace"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/astrohelm/svelte-workspace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrohelm%2Fsvelte-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrohelm%2Fsvelte-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrohelm%2Fsvelte-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrohelm%2Fsvelte-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrohelm","download_url":"https://codeload.github.com/astrohelm/svelte-workspace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrohelm%2Fsvelte-workspace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31642758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["astrohelm","bun","eslint","example","javascript","preset","prettier","starter-kit","svelte","sveltekit","ts","typescript","workspace"],"created_at":"2024-11-08T20:34:50.408Z","updated_at":"2026-04-10T12:32:08.134Z","avatar_url":"https://github.com/astrohelm.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eAstrohelm sveltekit workspace\u003c/h1\u003e\n\n\u003ch2 align=\"center\"\u003eInstallation guide 🚀\u003c/h2\u003e\n\n### First step: workspace installation\n\nUse next commands to install and update your workspace Or use this repository as a template repository, if so - you can\nskip this step.\n\n```bash\n  # Download repository\n  git clone https://github.com/astrohelm/node-workspace\n  rm -rf ./path/to/workspace/.git ./path/to/workspace/package-lock.json\n  cd ./path/to/workspace/\n  # Update and install dependencies\n  ncu -u\n  npm i\n  # Update node.js (optional()\n  nvm install latest\n  nvm use latest\n```\n\n### Second step: Package personalization\n\nUpdate package json, all with prefix \u003ccode\u003eyour-\u003c/code\u003e\u003cbr/\u003e If your nodejs version newer than package.json current add\n\u003ccode\u003e|| your-node-version\u003c/code\u003e.\n\n```js\n// package.json\n{\n  \"license\": \"MIT\",\n  \"version\": \"0.0.1\",\n  \"type\": \"module\",\n  \"name\": \"your-package-name\",\n  \"homepage\": \"https://astrohelm.ru\",\n  \"description\": \"your-package-description\",\n  \"author\": \"your-name \u003cyour-mail\u003e\",\n  \"keywords\": [\"your-keyword #1\", \"your-keyword #n\"],\n  \"readmeFilename\": \"README.md\",\n  \"repository\": { \"type\": \"git\", \"url\": \"git+https://github.com/astrohelm/your-package-name.git\" },\n  \"bugs\": { \"url\": \"https://github.com/astrohelm/your-package-name/issues\", \"email\": \"your-mail\" },\n\n  \"scripts\": {\n    \"dev\": \"vite dev\",\n    \"build\": \"vite build\",\n    \"start\": \"vite preview\",\n    \"check\": \"svelte-kit sync \u0026\u0026 svelte-check --tsconfig ./tsconfig.json\",\n    \"check:watch\": \"svelte-kit sync \u0026\u0026 svelte-check --tsconfig ./tsconfig.json --watch\",\n    \"test\": \"vitest\",\n    \"lint\": \"prettier --plugin-search-dir . --check . \u0026\u0026 eslint .\",\n    \"format\": \"prettier --plugin-search-dir . --write .\"\n  },\n\n  \"devDependencies\": {\n    \"@sveltejs/kit\": \"^1.20.4\",\n    \"@types/cookie\": \"^0.5.1\",\n    \"@typescript-eslint/eslint-plugin\": \"^5.45.0\",\n    \"@typescript-eslint/parser\": \"^5.45.0\",\n    \"eslint\": \"^8.28.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-svelte\": \"^2.30.0\",\n    \"postcss\": \"^8.4.29\",\n    \"postcss-html\": \"^1.5.0\",\n    \"postcss-safe-parser\": \"^6.0.0\",\n    \"postcss-scss\": \"^4.0.8\",\n    \"prettier\": \"^2.8.0\",\n    \"prettier-plugin-svelte\": \"^2.10.1\",\n    \"sass\": \"^1.66.1\",\n    \"stylelint\": \"^15.10.3\",\n    \"stylelint-config-html\": \"^1.1.0\",\n    \"stylelint-config-rational-order\": \"^0.1.2\",\n    \"stylelint-config-recommended-scss\": \"^13.0.0\",\n    \"stylelint-config-standard\": \"^34.0.0\",\n    \"stylelint-order\": \"^6.0.3\",\n    \"stylelint-prettier\": \"^4.0.2\",\n    \"stylelint-scss\": \"^5.1.0\",\n    \"svelte\": \"^4.0.5\",\n    \"svelte-adapter-bun\": \"^0.5.0\",\n    \"svelte-check\": \"^3.4.3\",\n    \"tslib\": \"^2.4.1\",\n    \"typescript\": \"^5.0.0\",\n    \"vite\": \"^4.4.2\",\n    \"vitest\": \"^0.34.0\"\n  }\n}\n```\n\n### Third step: About files\n\nGo to CHANGELOG.md and update it for your package. _WARNING !_ Don't fotget about date (xxxx-xx-xx).\n\n```md\n\u003c!-- CHANGELOG.md --\u003e\n\n# Changelog\n\n## [Unreleased][unreleased]\n\n## [0.0.1][] - xxxx-xx-xx\n\n- Stable release version\n- Repository created\n\n[unreleased]: https://github.com/astrohelm/your-package-name/compare/v0.0.1...HEAD\n[0.0.1]: https://github.com/astrohelm/your-package-name/releases/tag/v0.0.1\n```\n\nUpdate AUTHORS\n\n```md\n \u003c!-- AUTHORS --\u003e\n\nyour-name \u003cyour-mail\u003e\n```\n\n### Almost last step: Update README.md\n\nReplace your README.md with next information and change Your-package-name to actual.\n\n```md\n\u003c!-- README.md --\u003e\n\u003ch1 align=\"center\"\u003eYour-package-name v0.0.1\u003c/h1\u003e\n\n\u003ch2 align=\"center\"\u003eInitial release 🚀\u003c/h2\u003e\n\n\u003ch2 align=\"center\"\u003eCopyright \u0026 contributors\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\nCopyright © 2023 \u003ca href=\"https://github.com/astrohelm/Your-package-name/graphs/contributors\"\u003eAstrohelm contributors\u003c/a\u003e.\nYour-package-name is \u003ca href=\"./LICENSE\"\u003eMIT licensed\u003c/a\u003e.\u003cbr/\u003e\nYour-package-name is part of \u003ca href=\"https://github.com/astrohelm\"\u003eAstrohelm ecosystem\u003c/a\u003e.\n\u003c/p\u003e\n```\n\n### Last step: Save results\n\n_WARNING !_ Update this file before moving throw this step.\n\nCreate a new package in [organization][https://github.com/astrohelm/] repository. Use next commands to save you package.\n\n```bash\ngit init\ngit remote add origin your-package-location\n# Start from here, if you used template\ngit branch -M main # if your default branch is not main\ngit commit -am \"Repository init\"\ngit tag v0.0.1\ngit push origin main\ngit push origin v0.0.1\ngit checkout -b dev\ngit push origin dev\n```\n\nReturn to your organization repository and do:\n\n- Add keywords\n- Update description\n- Draft release with `v0.0.1` tag and `v0.0.1` as a title and updated README file as description.\n\n\u003e If you creating library you may publish it now to npm with `npm publish` command.\n\nCongratulations, package initialized 🚀\n\n\u003ch2 align=\"center\"\u003eUsage guide\u003c/h2\u003e\n\n## Preparing `yarn install \u0026\u0026 yarn build`\n\nMake sure that you haven't `node_modules` folder, it can make conflicts with docker volume, else then remove it.\n\n1. Go to `config/env` folder and create env files.\n\n- Create `.env` file if you would use one file for production and development environments.\n\n- Create `.env.[mode]` where mode is production or development, to use this file only for specific environment.\n\n2. Install dependencies with `yarn install`\n3. Run `yarn build` to compile svelte\n\nNow you prepared to lunch your strapi instance 🚀\n\n## Development mode `yarn dev`\n\nTo run development with docker \u0026 makefile run:\n\n```bash\n  make docker-build mode=dev container=website-dev\n  make docker-up mode=dev container=website-dev\n  make docker-stop container=website-dev\n```\n\nor Docker only variant:\n\n```bash\n  docker build . -f ./Dockerfile.dev -t website-dev\n  docker run -d \\\n    -p 3000:3000 \\\n    -v `pwd`:/opt/app \\\n    --name website-dev \\\n    website-dev\n  # docker stop website-dev\n```\n\n## Production mode `bun start`\n\nTo run production with docker \u0026 makefile run:\n\n```bash\n  make docker-build mode=prod container=website-prod\n  make docker-up mode=prod container=website-prod\n  make docker-stop container=website-prod\n```\n\nor Docker only variant:\n\n```bash\n  docker build . -f ./Dockerfile.prod -t website-prod\n  docker run -d \\\n    -p 3000:3000 \\\n    -v `pwd`:/opt/app \\\n    --env-file=./config/env/.env.production\n    --name website-prod \\\n    website-prod\n  # docker stop website-prod\n```\n\n## Deployment\n\nTo deploy website, use next compose command:\n\n```bash\nmake compose-up mode=deploy\n# or\ndocker compose -f docker-compose.deploy.yml up --build --force-recreate\n```\n\n## Project structure\n\n### About exports / imports / re-exports\n\nIn `tsconfig.json` you can find folder shortcuts. All folders created with pattern Information expert so no need to\nwrite long imports, just import all you need with one row, for example:\n\nAll what you need should be imported like example below:\n\n```js\nimport { Slider, createFetcher, Pagination, store } from '$client';\n/*\n  As you can see it exports:\n    Slider form interface folder;\n    createFetcher from $shared folder;\n    Pagination from widgets folder;\n    Store from client folder;\n*/\n```\n\nBeside the fact that it exports all of that, it also exports types from `.d.ts` files around index.js, so you will have\ntypes too without any need to create `.ts` files;\n\n```js\nimport { cms, createFetcher, crm } from '$server';\n/*\n  As you can see it exports:\n    cms from $server/cms;\n    crm from $server/crm.js;\n    createFetcher from $shared;\n*/\n```\n\nOther shortcuts\n\n```js\nimport { TEntity, TComponent, TSeo } from '$types';\nimport { createFetcher, netPath } from '$shared';\nimport '$styles';\n```\n\n### More about folders\n\n- `config` - contains all configuration: csp, environment files, certificates\n- `tests`\n  - `integration` - integration tests\n  - `unity` - unit tests\n- `static` - static files, do not store them here, only for favicon\n- `src`\n  - `routes` - stands for routing, here you can find all project pages;\n  - `server` - server side library\n  - `client` - client side library\n    - `widgets` - components with business logic, for example children elements of slider or form, pagination or seo\n    - `interface` - no business logic components, for example links, buttons or parents of other components;\n    - `store` - client side state storage, here we store shared between pages data;\n  - `shared` - shared library between client and server sides.\n  - `styles` - global styles\n  - `types` - all types.\n  - `params` - this folder is `routes` folder dependency.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrohelm%2Fsvelte-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrohelm%2Fsvelte-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrohelm%2Fsvelte-workspace/lists"}