This is the public-facing cloud documentation site for the University of California, Santa Barbara (UCSB). It is published at https://docs.cloud.ucsb.edu and built with Jekyll + GitHub Pages using the vsoch/docsy-jekyll remote theme.
The audience is faculty, researchers, staff (including IT staff), and students at UCSB. Many readers are not cloud professionals. Write for that audience.
- Be clear, concise, and simple. Use short sentences and plain language. Avoid jargon; when a technical term is unavoidable, define it on first use or link to the Glossary (
pages/glossary.md). - Spell out acronyms on first use (e.g., "Service Control Policy (SCP)"). After that, the acronym alone is fine within the same page.
- Do not reproduce cloud-provider documentation. Never copy procedural steps, service descriptions, or reference material from AWS, Azure, or GCP docs. Instead, summarize what UCSB users need to know in one or two sentences and link to the official docs.
- Focus on what is UCSB-specific. The value of this site is the campus context — SSO setup, guardrails, procurement, compliance posture, support contacts, and campus networking. Everything else should point to the provider's docs.
- Keep pages short. If a page exceeds ~800 words, consider splitting it or trimming content that belongs in provider docs.
- Don't repeat yourself (DRY). If information already exists on another page of this site, link to it instead of restating it. Duplicated content becomes a maintenance burden and leads to inconsistencies.
- Use the Glossary for definitions. When a UCSB-specific term needs defining, add it to
pages/glossary.mdin alphabetical order — don't define it inline on the page. The Glossary links to provider glossaries (AWS, Azure, GCP) at the top; never duplicate terms that already appear there unless there is a UCSB-specific reason. Suggest new Glossary entries when it seems sensible.
docs/
general/ # Cross-provider guidance (identity, security, compliance, cost, etc.)
aws/ # AWS-specific pages
azure/ # Azure-specific pages
gcp/ # GCP-specific pages
pages/ # Top-level site pages (getting-started, glossary, about, docs index)
_data/ # Navigation and TOC definitions
_includes/ # Reusable HTML partials (alerts, header, footer)
assets/ # CSS, images
_data/toc.ymldefines the sidebar table of contents. When you add or rename a page, update the TOC entry to match._data/navigation.ymldefines the top navigation bar.pages/docs.mdcontains a full link list of every documentation page. Update it whenever a page is added or removed.- Provider and section index pages (e.g.,
docs/aws/index.md,docs/general/index.md) often list links to their child pages at the bottom. Update those links when adding or removing pages in that section. - Pages in
docs/use thedocscollection (defined in_config.yml). Theirpermalinkfrontmatter controls the URL. - When removing a page, always add a
redirect_fromentry in the YAML frontmatter of whichever page replaces it, so existing bookmarks and search-engine links continue to work:redirect_from: - /docs/aws/old-page-name
- Every content file starts with YAML frontmatter (
---delimiters). Required fields:title,description,permalink. Includelast_reviewed(ISO date) when updating a page. Updatelast_reviewedto today's date whenever you make substantive changes to a page. - Internal links must use the
relative_urlfilter so the site works under anybaseurl:{% raw %}[Link text]({{ "/docs/aws/networking" | relative_url }}){% endraw %} - Images go in
assets/img/. Reference them withrelative_url:{% raw %}{% endraw %} - Use the
alert.htmlinclude for callout boxes:Supported types:{% raw %}{% capture alert_content %}Your message here.{% endcapture %} {% include alert.html type="info" title="Note" content=alert_content %}{% endraw %}info,warning,danger,success. - Use Markdown tables, headings (
##,###), and bullet lists. Avoid raw HTML unless required for accessibility or layout. - Use
---(horizontal rule) to separate major sections on a page. - ServiceNow links: When directing users to open a support ticket, always link to the Campus Cloud ServiceNow catalog item:
[ServiceNow ticket](https://ucsb.service-now.com/it?id=it_sc_cat_item&sys_id=c60e6bf2dbf398900c2e38f0ad961908&sysparm_category=eb1eaff2dbf398900c2e38f0ad9619d5)
All content must meet WCAG 2.1 AA guidelines (https://www.w3.org/TR/WCAG21/). Follow the UCSB Web Accessibility Standards at https://webguide.ucsb.edu/accessibility-0.
Key requirements:
- Every image must have meaningful
alttext. Decorative images usealt="". - Use proper heading hierarchy (
##→###→####). Never skip levels. - Links must have descriptive text — never use "click here" or bare URLs as link text.
- Tables must have header rows. Keep tables simple; avoid nested or merged cells.
- Ensure sufficient color contrast (4.5:1 for normal text, 3:1 for large text).
The following GitHub repositories contain the infrastructure-as-code that defines each provider's landing zone. Use git on the command line to clone or inspect them when you need to verify how the landing zones actually work.
Before accessing these repos, verify that git is available and configured (e.g., run git ls-remote on one of the repos). If it is not available or authentication fails, ask the user how to proceed and explain that you need repo access to verify accuracy.
| Provider | Repository |
|---|---|
| AWS | campus-cloud-aws-landing-zone |
| Azure | campus-cloud-azure-landing-zone |
| GCP | campus-cloud-gcp-landing-zone |
Rules for using these repos:
- Verify accuracy. These repos are the source of truth. Before writing or updating documentation about guardrails, networking, roles, org policies, or any landing zone behavior, cross-check the relevant repo. Push back on the user if a requested change contradicts what the code actually does.
- GCP repo: ignore
/modulesand/environmentfolders. Those directories are not relevant to documentation. Focus on the other top-level directories. - Only document customer-facing information. Do not expose back-end implementation details such as internal project names, folder IDs, group names, OU IDs, or infrastructure plumbing. The audience cares about what they can see and do in their own accounts — not how the platform is built behind the scenes.
- Push back on bad ideas. If a proposed change would duplicate provider docs, break accessibility, introduce jargon, contradict the landing zone repos, or make the site harder to maintain, say so and suggest an alternative.
- Ask clarifying questions. When the request is ambiguous, when instructions conflict, or when you are unsure about the intended outcome, ask the user rather than guessing. More questions lead to better clarity, which leads to better results.
- Do not add pages or TOC entries without confirming the intent and updating all affected locations:
_data/toc.yml,_data/navigation.yml,pages/docs.md, and the relevant section index pages. See Content Structure above for details. - Do not modify
_config.ymlwithout explicit approval — it controls site-wide settings and the deployment URL. - Site reviews: When asked to review the site, check what's out-of-date, or suggest improvements, read every page of the site thoroughly. Compare content against the current state of the landing zone git repos and the accessibility guidelines. Also check every internal link: verify the target permalink exists, ensure all links use the
relative_urlfilter (not bare relative paths), and confirm anchor fragments point to real headings. When fixing or removing a link target, add aredirect_fromentry on the destination page so existing bookmarks and search-engine links continue to work. Present prioritized suggestions to the user — accuracy issues, broken links, and accessibility violations first, then style and content improvements.