{"id":20073464,"url":"https://github.com/massivdash/astrox","last_synced_at":"2025-05-05T21:30:47.274Z","repository":{"id":215961336,"uuid":"739162038","full_name":"MassivDash/AstroX","owner":"MassivDash","description":"Astro.build + Actix combo + Tools: A 🦀 Rust orientated monolithic template for building modern web applications.","archived":false,"fork":false,"pushed_at":"2024-12-19T15:15:37.000Z","size":5261,"stargazers_count":10,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T04:23:47.004Z","etag":null,"topics":["actix","astro","monolith","monorepo","rust","svelte","template","typescript","webapp"],"latest_commit_sha":null,"homepage":"https://astrox.spaceout.pl/","language":"Rust","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/MassivDash.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":"2024-01-04T23:12:35.000Z","updated_at":"2025-02-23T14:00:34.000Z","dependencies_parsed_at":"2024-09-12T17:08:10.429Z","dependency_job_id":"689330df-cd77-4589-9fa8-6f60eb90b402","html_url":"https://github.com/MassivDash/AstroX","commit_stats":null,"previous_names":["massivdash/rust-react"],"tags_count":4,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MassivDash%2FAstroX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MassivDash%2FAstroX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MassivDash%2FAstroX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MassivDash%2FAstroX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MassivDash","download_url":"https://codeload.github.com/MassivDash/AstroX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252579993,"owners_count":21771248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["actix","astro","monolith","monorepo","rust","svelte","template","typescript","webapp"],"created_at":"2024-11-13T14:45:54.197Z","updated_at":"2025-05-05T21:30:47.259Z","avatar_url":"https://github.com/MassivDash.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eAstroX (Actix + Astro.build)  \u003c/h1\u003e\n\n█████ ███████ ████████ ██████ ██████ ██ ██\n██ ██ ██ ██ ██ ██ ██ ██ ██ ██  \n ███████ ███████ ██ ██████ ██ ██ ███  \n ██ ██ ██ ██ ██ ██ ██ ██ ██ ██  \n ██ ██ ███████ ██ ██ ██ ██████ ██ ██\n\n\u003cdiv style=\"display: flex; gap: 4rem; width: 100%; justify-content: center; font-size: x-large; align-items: center;\" data-astro-cid-d5b6c6e3=\"\"\u003e \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -10 80 128\" fill=\"none\" width=\"80\" height=\"80\"\u003e \u003cpath d=\"M27.5893 91.1365C22.7555 86.7178 21.3443 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4374 78.2199 52.0358 77.7822 59.2231 74.2459C60.0453 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.3179 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6844 102.089C39.2086 99.8193 38.5065 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5893 91.1365Z\" fill=\"currentColor\"\u003e\u003c/path\u003e \u003cpath d=\"M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z\" fill=\"currentColor\"\u003e\u003c/path\u003e \u003c/svg\u003e \u003cp data-astro-cid-d5b6c6e3=\"\"\u003e+\u003c/p\u003e \u003csvg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"80\" height=\"80\"\u003e \u003cg id=\"logo\" transform=\"translate(53, 53)\"\u003e \u003cpath id=\"r\" transform=\"translate(0.5, 0.5)\" stroke-width=\"1\" stroke-linejoin=\"round\" fill=\"currentColor\" d=\"     M -9,-15 H 4 C 12,-15 12,-7 4,-7 H -9 Z     M -40,22 H 0 V 11 H -9 V 3 H 1 C 12,3 6,22 15,22 H 40     V 3 H 34 V 5 C 34,13 25,12 24,7 C 23,2 19,-2 18,-2 C 33,-10 24,-26 12,-26 H -35     V -15 H -25 V 11 H -40 Z\"\u003e\u003c/path\u003e \u003cg id=\"gear\" mask=\"url(#holes)\"\u003e \u003ccircle r=\"43\" fill=\"none\" stroke-width=\"9\"\u003e\u003c/circle\u003e \u003cg id=\"cogs\"\u003e \u003cpolygon id=\"cog\" stroke-width=\"3\" stroke-linejoin=\"round\" fill=\"currentColor\" points=\"46,3 51,0 46,-3\"\u003e\u003c/polygon\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(11.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(22.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(33.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(45.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(56.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(67.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(78.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(90.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(101.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(112.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(123.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(135.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(146.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(157.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(168.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(180.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(191.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(202.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(213.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(225.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(236.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(247.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(258.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(270.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(281.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(292.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(303.75)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(315.00)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(326.25)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(337.50)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#cog\" transform=\"rotate(348.75)\"\u003e\u003c/use\u003e \u003c/g\u003e \u003cg id=\"mounts\"\u003e \u003cpolygon id=\"mount\" stroke-width=\"6\" stroke-linejoin=\"round\" fill=\"currentColor\" points=\"-7,-42 0,-35 7,-42\"\u003e\u003c/polygon\u003e \u003cuse xlink:href=\"#mount\" transform=\"rotate(72)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#mount\" transform=\"rotate(144)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#mount\" transform=\"rotate(216)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#mount\" transform=\"rotate(288)\"\u003e\u003c/use\u003e \u003c/g\u003e \u003c/g\u003e \u003cmask id=\"holes\"\u003e \u003crect x=\"-60\" y=\"-60\" width=\"120\" height=\"120\" fill=\"white\"\u003e\u003c/rect\u003e \u003ccircle id=\"hole\" cy=\"-40\" r=\"3\"\u003e\u003c/circle\u003e \u003cuse xlink:href=\"#hole\" transform=\"rotate(72)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#hole\" transform=\"rotate(144)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#hole\" transform=\"rotate(216)\"\u003e\u003c/use\u003e \u003cuse xlink:href=\"#hole\" transform=\"rotate(288)\"\u003e\u003c/use\u003e \u003c/mask\u003e \u003c/g\u003e \u003c/svg\u003e \u003cdiv class=\"box\" data-astro-cid-d5b6c6e3=\"\"\u003e \u003ch2 data-astro-cid-d5b6c6e3=\"\"\u003e\n🦀 Rust orientated monolithic template for building modern web\n        applications.\n\u003c/h2\u003e \u003c/div\u003e \u003c/div\u003e\n\n\u003cp\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-0.1.2-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003ca href=\"https://github.com/MassivDash/astrox\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/SpaceoutPl\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter: SpaceoutPl\" src=\"https://img.shields.io/twitter/follow/SpaceoutPl.svg?style=social\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n![CodeQL](https://github.com/MassivDash/ado-npmrc-ts-action/actions/workflows/codeql-analysis.yml/badge.svg)![CI](https://github.com/MassivDash/astrox/actions/workflows/ci.yml/badge.svg)![Compliation](https://github.com/MassivDash/astrox/actions/workflows/release.yml/badge.svg)!\n\n**Platforms**\n\n![windows](https://img.shields.io/badge/Platform-Windows-blue)\n![linux](https://img.shields.io/badge/Platform-Linux-blue)\n![macOs](https://img.shields.io/badge/Platform-MacOs-blue)\n\n## Monolithic repo for developing full stack application, using rust and cargo tools as primary development environment.\n\nFrontend is a standalone astro.build application that will create the frontend bundle served by rust actix server.\n\n## Rust + Astro web development boilerplate.\n\nTo start developing with AstroX you will need rustc \u003e 1.74 and node \u003e 18.14. Clone the project and execute;\n\n```\ncargo run\n```\n\nThat's all you need to get started, the interactive cli will guide you through installation process.\n\n## Features\n\n### CLI\n\nRust written command line interface starts, serves and tests the astro x project. Fast and efficient with only few dependencies will create a professional development environment for rust opinionated project.\n\n#### Cli Project Runner\n\nHandles installation and system checks, it will check the astroX system prerequisites and either help you install or provide you with necessary information to start the project.\n\n- automatic development port rotation for frontend and backend\n- interactive mode, execute actions through cli gui\n- git hooks integration\n- build the packages\n- serve the bundle (with auto restart)\n- test the project\n- execute the project with cmd line arguments\n\n#### Git hooks\n\nPre defined git hooks for quality code writing\n\n- commit msg via commitlint-rs\n- pre-commit (test and lint staged files)\n- pre-push (test all)\n\n#### CLI arguments\n\n```sh\nCommand list:\n--help [print this help ]\n--sync-git-hooks [copy git_hooks folder contents to .git/hooks]\n--remove-git-hooks [remove hooks from .git/hooks folder]\n--build [build production bundle for frontend and backend]\n--serve [start the production server with the frontend build]\n--test [run the tests]\n--create-toml [create a new Astrox.toml file]\n--interactive [start the interactive mode]\n--system-checks [run the system checks]\n--coverage [run cli and backend coverage]\n\n\nCli arguments:\n--host=\"127.0.0.1\" [ip address]\n--port=8080 [actix port number]\n--env=prod / dev [environment]\n--astro-port=4321 [astro development port number]\n--prod-astro-build=true / false [Build astro during cli prod start]\n--set-public-api=https://custom.api/api [cli to astro env creation, used for static server url call building]\n```\n\n### Actix backend\n\nhttps://actix.rs/docs/getting-started/\n\nRust based server from Actix framework.\n\n- serve static astro x files\n- 3rd api call example\n- logging\n- graphql [coming soon]\n- ssr [coming soon]\n\n### Astro\n\nhttps://astro.build/\n\nAstro is a frontend framework that focuses on mainly on delivering html first, the fastest and most versatile of the frameworks allows to incorporate any of the major UI frameworks such as React, Svelte, Vue, Solid.js and others ...\n\nThe boilerplate provides and example of the Astro 4.0 transition capabilities.\n\n## Project Structure\n\n```bash\nAstroX\n├─ .github //workflows and ci/cd checks\n├─ └─ workflows\n├─ └─ ├─ codeql-analysis.yml\n├─ └─ ├─ pr.yml\n├─ └─ └─ relase.yml\n├─ git_hooks // set up git hooks for development\n├─ ├─ commit-msg\n├─ ├─ commit-msg-windows-example\n├─ ├─ pre-commit\n├─ └─ pre-push\n├─ src\n├─ ├─ backend //Actix backend, own rust project\n├─ ├─ ├─ src\n├─ ├─ ├─ ├─ api //Api routes examples\n├─ ├─ ├─ ├─ ├─ hello\n├─ ├─ ├─ ├─ ├─ ├─ get.rs\n├─ ├─ ├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ ├─ ├─ └─ post.rs\n├─ ├─ ├─ ├─ ├─ space_x // server to server call\n├─ ├─ ├─ ├─ ├─ ├─ get.rs\n├─ ├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ args\n├─ ├─ ├─ ├─ ├─ collect_args.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ auth // Simple auth route middleware\n├─ ├─ ├─ ├─ ├─ auth_middleware.rs\n├─ ├─ ├─ ├─ ├─ login.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ cors\n├─ ├─ ├─ ├─ ├─ get_cors_options.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ session // Session middleware examples\n├─ ├─ ├─ ├─ ├─ flash_messages.rs\n├─ ├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ ├─ ├─ session_middleware.rs\n├─ ├─ ├─ ├─ └─ validate_session.rs\n├─ ├─ ├─ └─ main.rs\n├─ ├─ └─ Cargo.toml\n├─ ├─ cli // AstroX project runner\n├─ ├─ ├─ cmds\n├─ ├─ ├─ ├─ tests\n├─ ├─ ├─ ├─ ├─ cmd_list_test.rs\n├─ ├─ ├─ ├─ ├─ interactive_test.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ cmd_list.rs\n├─ ├─ ├─ ├─ execute_cmd.rs\n├─ ├─ ├─ ├─ interactive.rs\n├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ config\n├─ ├─ ├─ ├─ tests\n├─ ├─ ├─ ├─ ├─ get_config_test.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ collect_args.rs\n├─ ├─ ├─ ├─ create_dotenv.rs\n├─ ├─ ├─ ├─ get_config.rs\n├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ └─ toml.rs\n├─ ├─ ├─ development\n├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ └─ start_development.rs\n├─ ├─ ├─ pre_run\n├─ ├─ ├─ ├─ cargo\n├─ ├─ ├─ ├─ ├─ checks.rs\n├─ ├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ ├─ └─ validate.rs\n├─ ├─ ├─ ├─ npm\n├─ ├─ ├─ ├─ ├─ checks.rs\n├─ ├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ ├─ └─ validate.rs\n├─ ├─ ├─ ├─ utils\n├─ ├─ ├─ ├─ ├─ check_semver.rs\n├─ ├─ ├─ ├─ ├─ git_hooks.rs\n├─ ├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ ├─ execute.rs\n├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ └─ system_checks.rs\n├─ ├─ ├─ production\n├─ ├─ ├─ ├─ build_production.rs\n├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ └─ start_production.rs\n├─ ├─ ├─ tests\n├─ ├─ ├─ ├─ execute.rs\n├─ ├─ ├─ └─ mod.rs\n├─ ├─ ├─ utils\n├─ ├─ ├─ ├─ mod.rs\n├─ ├─ ├─ └─ terminal.rs\n├─ ├─ └─ mod.rs\n├─ ├─ frontend // Astro.Build project\n├─ ├─ ├─ .astro\n├─ ├─ ├─ └─ settings.json\n├─ ├─ ├─ public\n├─ ├─ ├─ ├─ astroStation.jpeg\n├─ ├─ ├─ ├─ bgAstro.png\n├─ ├─ ├─ ├─ bgPattern.png\n├─ ├─ ├─ ├─ favicon.svg\n├─ ├─ ├─ ├─ hero.jpeg\n├─ ├─ ├─ └─ herobc.jpeg\n├─ ├─ ├─ src\n├─ ├─ ├─ ├─ axiosInstance\n├─ ├─ ├─ ├─ ├─ axiosBackendInstance.test.ts\n├─ ├─ ├─ ├─ └─ axiosBackendInstance.ts\n├─ ├─ ├─ ├─ components\n├─ ├─ ├─ ├─ ├─ navbar\n├─ ├─ ├─ ├─ ├─ ├─ Navbar.astro\n├─ ├─ ├─ ├─ ├─ ├─ Navbar.test.ts\n├─ ├─ ├─ ├─ ├─ ├─ NavbarItem.astro\n├─ ├─ ├─ ├─ ├─ └─ NavbarItem.test.ts\n├─ ├─ ├─ ├─ ├─ spaceX\n├─ ├─ ├─ ├─ ├─ ├─ spacex.svelte\n├─ ├─ ├─ ├─ ├─ └─ spacex.test.ts\n├─ ├─ ├─ ├─ ├─ zoomImage\n├─ ├─ ├─ ├─ ├─ ├─ zoomImage.astro\n├─ ├─ ├─ ├─ ├─ └─ zoomImage.test.ts\n├─ ├─ ├─ ├─ ├─ Card.astro\n├─ ├─ ├─ ├─ ├─ Footer.astro\n├─ ├─ ├─ ├─ ├─ Hero.astro\n├─ ├─ ├─ ├─ └─ Section.astro\n├─ ├─ ├─ ├─ layouts\n├─ ├─ ├─ ├─ ├─ Layout.astro\n├─ ├─ ├─ ├─ └─ Layout.test.ts\n├─ ├─ ├─ ├─ pages\n├─ ├─ ├─ ├─ ├─ auth\n├─ ├─ ├─ ├─ ├─ └─ protected.astro\n├─ ├─ ├─ ├─ ├─ 404.astro\n├─ ├─ ├─ ├─ ├─ actix.astro\n├─ ├─ ├─ ├─ ├─ astro.astro\n├─ ├─ ├─ ├─ ├─ cli.astro\n├─ ├─ ├─ ├─ └─ index.astro\n├─ ├─ ├─ ├─ sections\n├─ ├─ ├─ ├─ ├─ Home\n├─ ├─ ├─ ├─ ├─ ├─ HomeClone.astro\n├─ ├─ ├─ ├─ ├─ ├─ HomeMiddleLinks.astro\n├─ ├─ ├─ ├─ ├─ └─ HomeSecondary.astro\n├─ ├─ ├─ ├─ └─ imgs\n├─ ├─ ├─ ├─ └─ ├─ actix.png\n├─ ├─ ├─ ├─ └─ ├─ astro.jpeg\n├─ ├─ ├─ ├─ └─ ├─ astro.png\n├─ ├─ ├─ ├─ └─ ├─ astro2.jpeg\n├─ ├─ ├─ ├─ └─ ├─ cli.png\n├─ ├─ ├─ ├─ └─ └─ contact.jpeg\n├─ ├─ ├─ ├─ svgs\n├─ ├─ ├─ ├─ ├─ Actix.astro\n├─ ├─ ├─ ├─ ├─ AstroIcon.astro\n├─ ├─ ├─ ├─ ├─ Github.astro\n├─ ├─ ├─ ├─ ├─ RustIcon.astro\n├─ ├─ ├─ ├─ └─ Spaceout.astro\n├─ ├─ ├─ ├─ tests\n├─ ├─ ├─ ├─ └─ pages.test.ts\n├─ ├─ ├─ └─ env.d.ts\n├─ ├─ ├─ .eslintignore\n├─ ├─ ├─ .eslintrc.cjs\n├─ ├─ ├─ .gitignore\n├─ ├─ ├─ .nvmrc\n├─ ├─ ├─ astro.config.mjs\n├─ ├─ ├─ package.json\n├─ ├─ ├─ prettier.config.cjs\n├─ ├─ ├─ README.md\n├─ ├─ ├─ svelte.config.js\n├─ ├─ ├─ tsconfig.json\n├─ ├─ └─ vitest.config.ts\n├─ └─ main.rs\n├─ .gitignore\n├─ .nvmrc\n├─ Astrox.toml\n├─ Cargo.toml\n└─ readme.md\n```\n\n### Demo\n\nhttps://astrox.spaceout.pl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassivdash%2Fastrox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmassivdash%2Fastrox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassivdash%2Fastrox/lists"}