{"id":15464320,"url":"https://github.com/nitya/contoso-real-estate-devguide","last_synced_at":"2026-05-06T20:33:56.061Z","repository":{"id":182339759,"uuid":"668339024","full_name":"nitya/contoso-real-estate-devguide","owner":"nitya","description":"A Developer Guide to Deconstructing The Azure-Samples/Contoso-Real-Estate reference application","archived":false,"fork":false,"pushed_at":"2023-07-19T15:15:03.000Z","size":932,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T17:30:23.563Z","etag":null,"topics":["architecture","astro","azure","developer-guide","end-to-end","end-to-end-testing","enterprise-grade","sample"],"latest_commit_sha":null,"homepage":"https://nitya.github.io/contoso-real-estate-devguide/","language":"MDX","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/nitya.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":null,"support":null,"governance":null}},"created_at":"2023-07-19T15:11:05.000Z","updated_at":"2023-07-21T13:45:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a1730a8-2f87-4b70-bc9a-d0770869c1d1","html_url":"https://github.com/nitya/contoso-real-estate-devguide","commit_stats":null,"previous_names":["nitya/contoso-real-estate-devguide"],"tags_count":0,"template":false,"template_full_name":"30DaysOf/astro-starlight-ghpages","purl":"pkg:github/nitya/contoso-real-estate-devguide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitya%2Fcontoso-real-estate-devguide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitya%2Fcontoso-real-estate-devguide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitya%2Fcontoso-real-estate-devguide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitya%2Fcontoso-real-estate-devguide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nitya","download_url":"https://codeload.github.com/nitya/contoso-real-estate-devguide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitya%2Fcontoso-real-estate-devguide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32711248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"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":["architecture","astro","azure","developer-guide","end-to-end","end-to-end-testing","enterprise-grade","sample"],"created_at":"2024-10-02T00:33:14.130Z","updated_at":"2026-05-06T20:33:56.023Z","avatar_url":"https://github.com/nitya.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Astro Starlight On GitHub Pages\n\n\u003e Objectives\n\nBuild and deploy an Astro Starlight Documentation site to GitHub Pages.\nExplore features and customization - validate its use as reusable template.\n\n---\n\n## 1. Why Astro?\n\nAstro is a free, open-source option for static site generation that bills itself as _the all-in-one web framework designed for speed_. Three features that make it interesting:\n - Islands architecture - with **zero client-side JS**\n - Plays well with others - **bring your own components**\n - Rich ecosystem - **content focused \u0026 community-driven**\n\nThis gives you the benefits of performance \u0026 flexibility, with rich themes and integrations for quickstart adoption. It's a rising star for JS frameworks and used by industry teams - stability ftw.\n\n---\n\n## 2. Why Starlight?\n\nAstro has a [large collection of themes](https://astro.build/themes) supporting different site categories and frontend technology components. The [\"Official\" filter](https://astro.build/themes?search=\u0026categories%5B%5D=official) identifies themes created by the Astro team. [Starlight](https://astro.build/themes/details/starlight/) is the default **documentation focused** framework from Astro, currently in very early release. It promises:\n - fast, accessible, easy-to-use websites\n - site-navigation, search, i18n, SEO support\n - code highlighting, dark mode, easy-to-read typography\n - write in Markdown, MDX or Markdoc\n\nPlus all Astro benefits (e.g., bring your own UI components).\n\n - [See the GitHub Repo](https://github.com/withastro/starlight)\n - [Read the Docs](https://starlight.astro.build/)\n - [Get Started](https://starlight.astro.build/getting-started/)\n\n---\n## 3. Quickstart \n\n1. Verify you have Node.js installed. I use `nvm` and default to the LTS version for Node.js.\n\n    ```bash\n    $ nvm use --lts\n    Now using node v18.16.0 (npm v9.6.7)\n    ```\n\n2. Scaffold out a Starlight project with Astro.\n\n    ```bash\n    $ npm create astro@latest -- --template starlight\n    ```\n\n    As part of setup, you define the destination folder (`website`), install dependencies and configure Typescript, git usage.\n\n3. Preview the default Starlight site.\n\n    ```bash\n    $ cd website\n    $ npm run dev\n    ```\n\n    This runs a dev server on `http://localhost:3001` which watches `src/content` for changes (hot reload).\n\n4. Open the browser to that URL and let's see what we got:\n\n      \u003e A Landing Page (Light Mode)\n\n    ![Starlight Landing Page, Light mode](./static/02-landing-light.png)\n\n      \u003e A Landing Page (Dark Mode)\n\n    ![Starlight Landing Page, Dark mode](./static/01-landing-dark.png)\n\n      \u003e A Documentation Page (Default)\n\n    ![Starlight Documentation Page, Default](./static/03-page-original.png)\n\n      \u003e The Documentation Page Updated (Hot Reload)\n\n    ![Starlight Documentation Page, Updated](./static/04-page-updated.png)\n\n      \u003e The Search Feature (oh-oh!)\n\n    ![Starlight Search Feature, Disabled](./static/05-default-search.png)\n\n4. Alright, let's try to build the **production** version of the site locally.\n\n    ```bash\n    $ cd website\n    $ npm run build\n    ...\n    ...\n    Finished in 0.13 seconds\n    08:53:44 PM [build] 4 page(s) built in 4.61s\n    08:53:44 PM [build] Complete!\n    ```\n5. You'll notice this builds the production version in the `dist` folder. Let's preview it.\n\n    ```bash\n    $ npm run preview\n    ```\n    The output indicates the production server is running at `http://localhost:3000` - let's open that up. You see the same pages as before - but now let's try search. _In fact, let's search for the changed text from above to see if it can be found_.\n\n    \u003e Search for \"Related References\" in Production\n\n    OMG - it works!! We didn't have to do anything extra to activate search indexes. Basic keyword search out of the box!\n\n    ![Starlight Production Preview, search](./static/06-production-search.png)\n\n---\n\n4. Deployment\n\nBefore we explore deploying the production build to GitHub Pages, let's commit the current version. **Done!**\n\nNow, let's [deploy the Astro Site to GitHub Pages](https://docs.astro.build/en/guides/deploy/github/). Astro provides an official `withastro/action` that should make this easy.\n\n 1. Set `site` and `base` options in `astro.config.js`\n 2. Create `.github/workflows/deploy.yml` and copy [the provided workflow](https://docs.astro.build/en/guides/deploy/github/).\n 3. Since we have our site source in the `website/` subfolder (vs. root of repo), uncomment the `with` section of the install steps in workflow and set the `path` to `./website`\n 4. Go to the GitHub repo's [Settings \u003e Pages](https://github.com/30DaysOf/astro-starlight-ghpages/settings/pages) configuration. Choose `GitHub Actions` as the Source of your site. \n \n**Commit the changes in your code to GitHub**. You should see the deploy action run. If successful, the GitHub Pages endpoint should show the deployed site.  It's LIVE! [https://30daysof.github.io/astro-starlight-ghpages/](https://30daysof.github.io/astro-starlight-ghpages/)!!\n\n\n\u003e Issue: Hero links not resolving base path correctly\n\nThe \"Example Guide\" button on the landing page is mapped to \"/guides/example/\" but when clicked, does not take base prefix (repo path) into account, resulting in a 404. The same route used from the sidebar works just fine. **I am assuming this has to do with the difference in how links are resolved in frontmatter vs. markdown** _Issue raised in community chat. Waiting for response_.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitya%2Fcontoso-real-estate-devguide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitya%2Fcontoso-real-estate-devguide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitya%2Fcontoso-real-estate-devguide/lists"}