Internal

Admin reference

This page is not access-controlled. The site is static and has no authentication, so anyone who visits /admin can read everything on it. Keep it to things you would not mind being read.

Picking this back up later

There is no link that can reopen a Cowork session — it is a desktop app, not a URL, and a session is not a thing that can be addressed from a web page. What actually restores the context is the folder: open Claude, start Cowork, and point it at the working directory below. The repository carries the full history, and every version in the log further down is a real tag you can check out.

Working folder
C:\Users\levin\OneDrive\Lev Real Estate\Carolina Garage Crafters\CGC Web
Repository
github.com/Levworks/CGC-Web
Deploys
Cloudflare Pages, automatically on push to main
Roll back
git checkout v2.09 — any tag in the log below

Before this goes live

10 things shipped in a deliberately temporary state. Each is fine while the site is being built and shown to people, and not fine on a production site taking real enquiries. Kept here rather than in a chat log, which evaporates.

  1. legalBasemap is a recoloured Google Maps capture

    Recolouring a Google Maps screenshot and publishing it on a commercial site is not clearly within their terms. OpenStreetMap explicitly permits screenshot use with attribution and drops into the same build pipeline unchanged — the projection is re-fitted from the town labels, so nothing depends on the source. Swap the capture and change the attribution line.

    public/service-area.webp, ServiceAreaSection.astro

  2. security/admin has no access control

    The site is static and has no authentication, so anyone who guesses the URL can read the admin page. Nothing on it is secret today, but that stops being true the moment zoning notes or customer detail go on it. Cloudflare Access sits in front of the route without any code in this project.

    Cloudflare dashboard, not the repo

  3. securityCustomer accounts are not real

    The sign-in page deliberately has no password field, because a form that collects one and does nothing with it is worse than no form. It takes an email and says accounts are not open. Real accounts need a provider and a decision about where saved configurations live; Supabase is already connected to the workspace.

    src/pages/login.astro

  4. contentEvery price reads TBD

    All 42 options show TBD. The site's central claim is published, fixed pricing — it cannot go live making that claim with no prices behind it.

    src/lib/services.ts

  5. contentZoning table is empty

    Setbacks, height caps and impervious limits have to be transcribed from the ordinances rather than recalled. Left empty on purpose: a table that looks authoritative and is wrong costs more than no table.

    src/lib/zoning.ts

  6. polishThe guided tour runs on every load

    It holds the page for about four seconds every single visit, including for returning customers. Flip RUN_ONCE to true and it becomes first-visit-only — the localStorage key and the ?guide=1 override are already wired.

    src/components/GuideOverlay.astro

  7. polishNo navigation below 1024px

    Six nav items plus a logo, theme toggle and CTA do not fit at tablet width, so the nav is hidden there. There has never been a mobile menu; a drawer is the fix and is not built.

    src/components/Header.astro

  8. polishOption rows show a chevron but are not clickable

    Every row in the options table ends in a right chevron, which promises a click that does nothing.

    src/components/ServiceDetail.astro

  9. contentCopy that needs your eye, not mine

    The About Us section is deliberately qualitative — years in business, homes delivered and licence numbers are facts only you have. Most option descriptions are my draft. The Rowan and Stanly county chips sit mostly outside the shaded radius they appear beside.

    AboutSection.astro, src/lib/services.ts

  10. content2D Siteplan and 3D Configurator are placeholders

    Both sections describe a tool that does not exist yet and say so. The process course above them presents both as steps in a workflow customers are being invited into.

    src/pages/index.astro

Setbacks & dimensional standards

No figures loaded

This table is deliberately empty. Setbacks, height caps and impervious limits are the numbers a build gets designed around and a permit gets refused over, so they have to be transcribed from the ordinance rather than recalled. Drop them intosrc/lib/zoning.ts and they appear here.

Pull from:

  • Charlotte Unified Development Ordinance — accessory structure standards, and the dimensional table for each residential district
  • Mecklenburg County zoning ordinance, for the unincorporated areas
  • Town ordinances for Huntersville, Cornelius, Davidson, Matthews, Mint Hill and Pineville — each adopts its own, they are not Charlotte's
  • Union, Cabarrus, Gaston, Iredell, Lincoln, Rowan and Stanly county ordinances
  • Any applicable overlay: historic district, watershed, floodplain, airport noise
  • The subdivision's own covenants — often stricter than the ordinance, and not enforced by the county

Version log

Generated from the git tags, so it cannot drift from what shipped.60 releases, newest first.

  1. v2.202026-08-09sections no longer arrive pre-folded from a header jump
  2. v2.192026-08-09name the counties
  3. v2.182026-08-09service area is North Carolina only, and cut off at the line
  4. v2.172026-08-09panelling ghost fix, and four real sections behind the nav
  5. v2.162026-08-09header navigation, with a two-level Service Menu
  6. v2.152026-08-09Services list copy
  7. v2.142026-08-09centre the list under Services, balance the two columns around it
  8. v2.132026-08-09Services copy goes three across, middle becomes a list
  9. v2.122026-08-09one pass instead of two
  10. v2.112026-08-09run the tour on every load
  11. v2.102026-08-09hold the tour until the load screen is gone, and run it twice
  12. v2.092026-08-09guide caption joins the spotlight, tour runs once, fold timing
  13. v2.082026-08-09tour pacing, a clear backdrop, and the fixtures actually lighting
  14. v2.072026-08-09guided first run, step one
  15. v2.062026-08-09demolition and carport conversion artwork - every option now drawn
  16. v2.052026-08-092nd Story artwork, and size the art column per service again
  17. v2.042026-08-09drawn artwork for both carport services
  18. v2.032026-08-08give light mode its own copper, and fix what the audit turned up
  19. v2.022026-08-08swap in the redrawn detached artwork
  20. v2.012026-08-08make the attached panel the same card as the detached one
  21. v2.002026-08-08use the drawn garage artwork in the options table
  22. v1.992026-08-08add the process flow as the third course
  23. v1.982026-08-08redraw the option icons as architectural line art
  24. v1.972026-08-08set the Services paragraph in Source Serif italic
  25. v1.962026-08-07new Services copy, middle paragraph in italic
  26. v1.952026-08-07angle and soften the glow cutoff, sharpen the card shadows
  27. v1.942026-08-07cut the lamp glow off at the shade's lower rim
  28. v1.932026-08-07lamp spill, faster button sweep, burnt-in header, extra services copy
  29. v1.922026-08-07split the difference on the dark surface
  30. v1.912026-08-07keep the previous surface, frost the buttons, add a light sweep
  31. v1.902026-08-07adopt the style guide (dark palette, type scale, one button system)
  32. v1.892026-08-07v1.89
  33. v1.882026-08-07v1.88
  34. v1.872026-08-07v1.87
  35. v1.862026-08-07v1.86
  36. v1.852026-08-07v1.85
  37. v1.842026-08-07v1.84
  38. v1.832026-08-07v1.83
  39. v1.822026-08-07v1.82
  40. v1.812026-08-07v1.81
  41. v1.802026-08-07v1.80
  42. v1.792026-08-06v1.79
  43. v1.782026-08-06v1.78
  44. v1.772026-08-06v1.77
  45. v1.762026-08-06v1.76
  46. v1.752026-08-06v1.75
  47. v1.742026-08-06v1.74
  48. v1.732026-08-06v1.73
  49. v1.722026-08-06v1.72
  50. v1.712026-08-06v1.71
  51. v1.702026-08-06v1.70
  52. v1.692026-08-06v1.69
  53. v1.682026-08-06v1.68
  54. v1.672026-08-06v1.67
  55. v1.662026-08-06v1.66
  56. v1.652026-08-06v1.65
  57. v1.642026-08-06v1.64
  58. v1.632026-08-06v1.63
  59. v1.622026-08-06v1.62
  60. v1.612026-08-06v1.61
Back to the site