This file contains important context and guidelines for Claude when working on this Astro website.
This is the marketing and documentation website for Operately - a company operating system that helps organizations run operations, align teams, and drive growth without the need for a COO. Operately brings together goals & OKRs, project management, team workspaces, message boards, and document management into one unified platform.
The website serves both as a marketing site for potential customers and a comprehensive help center for existing users learning to use the platform effectively.
This is an Astro website with the following key integrations:
- Astro 5+ - Main framework
- Tailwind CSS v4 - Styling with Vite plugin
- Starlight+ - Documentation system for
/helpsection - React - Interactive components
- MDX - Markdown content with components
- Uses
@tailwindcss/viteplugin inastro.config.mjs - Main CSS file:
src/styles/global.css - Typography plugin loaded via
@plugin "@tailwindcss/typography"directive in CSS - Custom colors defined in both
tailwind.config.mjsand explicit CSS utilities
src/styles/global.css- Main Tailwind import and custom utilitiessrc/styles/starlight.css- Starlight help section customizationssrc/styles/anchor-links.css- Anchor link styling
Due to Tailwind v4 config reliability issues, custom colors are defined as explicit CSS utilities:
text-operately-blue,bg-operately-blue,border-operately-blue(#3185FF)text-operately-dark-blue, etc. (#024FAC)- Additional tint variations available
- Would prefer to return to Tailwind defaults if possible in future versions
BaseLayout.astro- Main site layout (importsglobal.css)Article.astro- Article/blog layout with prose stylingHandbook.astro,Job.astro,ReleasesLayout.astro- Specialized layouts
Important: All layouts must import ../styles/global.css to ensure Tailwind works properly.
- Config in
src/config/helpCenter.js - Uses
defaultLocale: "root"to avoid URL prefixes - Content in
src/content/docs/help/- comprehensive product documentation including step-by-step guides, feature explanations, and practical examples for all Operately features (goals, projects, workspaces, discussions, documents, team management, etc.) - Custom CSS in
customCssarray - To write or update help pages from a documentation brief (audit, backlog, or notes), follow
.agents/skills/write-help-docs/SKILL.md. Never manually editsrc/content/docs/help/api/— those pages are autogenerated.
- Starlight has its own CSS system that can conflict with Tailwind
- Logo sizing issues often occur after upgrades
- Sidebar navigation can break with CSS conflicts
- Always restart dev server after major config changes
- Check both main site and
/helpsection work - Ensure all layouts import
global.css - Use explicit CSS utilities for custom colors rather than relying on config generation
- Check Starlight changelog for breaking changes
- Test typography on article pages (prose styling)
- Verify custom color utilities still work
- Test both light/dark logo variants
- Article pages use
proseclasses from Typography plugin - Plugin loaded via
@plugindirective, not config - Custom link colors defined in
tailwind.config.mjs
npm run dev- Runs both Astro dev server (4321) and Wrangler (8788)npm run build- Production build- Uses Cloudflare Pages for deployment
- Development uses
.dev.varsinstead of.env - Two-server setup: Astro for content, Wrangler for API functions
- Check if
global.cssis imported in the layout - Restart dev server
- Verify Tailwind plugin is working in
astro.config.mjs
- Check
helpCenter.jsconfiguration - Verify locale settings (use "root" not "en")
- Clear
.astroanddistcache directories
- Ensure
@plugin "@tailwindcss/typography"is inglobal.css - Check if
proseclasses are applied in layout - Verify Typography plugin version compatibility
When working on this website, you should act as both a frontend engineer/designer and a content creator. The extensive product documentation in /src/content/docs/help/ contains detailed descriptions of Operately's features, use cases, and workflows that you can leverage when creating or updating marketing content, landing pages, or other site content.
Every new page must be linked from at least one existing page's content (body text, not just footer or navigation). A page that exists only in the footer is effectively invisible to both users and search engines. When creating a new page:
- Add it to the footer in the appropriate section
- Add at least one contextual link from a related page's body content (e.g., a comparison page links from relevant feature pages, an audience page links from the homepage or related pages)
- If the page replaces or relates to existing pages, cross-link between them
/src/pages/- Main site pages (marketing, landing pages, etc.)/src/content/docs/help/- Comprehensive end-user product documentation (step-by-step guides, feature overviews, tutorials)/src/layouts/- Reusable layouts/src/components/- React/Astro components/src/styles/- CSS files