Introduction and Purpose
**Referenced Files in This Document** - [README.md](file://README.md) - [worker.js](file://worker.js) - [src/index.njk](file://src/index.njk) - [src/about.njk](file://src/about.njk) - [src/alliance.njk](file://src/alliance.njk) - [src/alliance-login.njk](file://src/alliance-login.njk) - [src/alliance-members.njk](file://src/alliance-members.njk) - [src/alliance-knowledge.njk](file://src/alliance-knowledge.njk) - [src/_data/site.json](file://src/_data/site.json) - [src/_data/homepage.json](file://src/_data/homepage.json) - [src/_data/alliancePage.json](file://src/_data/alliancePage.json) - [src/_data/capabilities.json](file://src/_data/capabilities.json) - [src/_data/testimonials.json](file://src/_data/testimonials.json) - [src/_data/clients.json](file://src/_data/clients.json)Table of Contents
- Introduction
- Project Structure
- Core Components
- Architecture Overview
- Detailed Component Analysis
- Dependency Analysis
- Performance Considerations
- Troubleshooting Guide
- Conclusion
Introduction
Ace Strategies Prime is a professional platform that serves two complementary audiences:
- Potential clients and partners seeking expert guidance in government relations, stakeholder engagement, and strategic communications for the Australian market.
- Existing members of the Invest Australia Alliance (IAA), who access a secure member portal for curated resources, insights, and collaboration tools.
The platform’s mission is to help organisations navigate Australia’s complex policy and regulatory environment, build trusted relationships with key stakeholders, and accelerate successful market entry and growth. It positions itself as a boutique consultancy with comprehensive capabilities, combining agile advisory with a vetted partner network spanning legal, financial, operational, and strategic domains.
Key objectives:
- Deliver integrated strategic communications and government relations services tailored to the Australian context.
- Enable IAA members to access exclusive resources, knowledge, and tools through a secure, frictionless member portal.
- Provide authoritative, real-time insights, including polling data, to inform strategic decisions.
- Offer a modern, accessible, and searchable digital experience powered by a fast static site and lightweight runtime.
Project Structure
The repository is an Eleventy-powered static site with a Cloudflare Worker that handles member authentication, OAuth for the CMS, and a live polling API. The site includes:
- Marketing-facing pages (homepage, about, capabilities, news, team, contact).
- IAA-specific pages (landing, login, members dashboard, knowledge base).
- A Git-backed CMS (Sveltia) for editorial workflows.
- Global data files for site metadata, capabilities, testimonials, clients, and IAA partner listings.
- Obsidian integration for knowledge base authoring.
graph TB
subgraph "Static Site (Eleventy)"
A["Homepage<br/>index.njk"]
B["About<br/>about.njk"]
C["Capabilities<br/>capabilities.json"]
D["Testimonials<br/>testimonials.json"]
E["Clients<br/>clients.json"]
F["IAA Landing<br/>alliance.njk"]
G["IAA Login<br/>alliance-login.njk"]
H["IAA Members<br/>alliance-members.njk"]
I["IAA Knowledge<br/>alliance-knowledge.njk"]
J["Site Config<br/>site.json"]
end
subgraph "Runtime (Cloudflare Worker)"
W["worker.js"]
end
subgraph "CMS"
K["Sveltia CMS<br/>admin/index.html"]
end
A --> W
F --> W
G --> W
H --> W
I --> W
W --> |"Static Assets"| A
W --> |"Static Assets"| F
W --> |"Static Assets"| G
W --> |"Static Assets"| H
W --> |"Static Assets"| I
K --> |"Git-backed edits"| A
K --> |"Git-backed edits"| F
K --> |"Git-backed edits"| H
K --> |"Git-backed edits"| I
Diagram sources
- [src/index.njk:1-164](file://src/index.njk#L1-L164)
- [src/about.njk:1-143](file://src/about.njk#L1-L143)
- [src/alliance.njk:1-164](file://src/alliance.njk#L1-L164)
- [src/alliance-login.njk:1-73](file://src/alliance-login.njk#L1-L73)
- [src/alliance-members.njk:1-58](file://src/alliance-members.njk#L1-L58)
- [src/alliance-knowledge.njk:1-96](file://src/alliance-knowledge.njk#L1-L96)
- [src/_data/site.json:1-20](file://src/_data/site.json#L1-L20)
- [worker.js:1-321](file://worker.js#L1-L321)
Section sources
- [README.md:80-156](file://README.md#L80-L156)
- [src/_data/site.json:1-20](file://src/_data/site.json#L1-L20)
Core Components
- Marketing website: Presents Ace Strategies’ capabilities, client outcomes, leadership, and thought leadership. It highlights integrated services such as government relations, stakeholder engagement, strategic communications, media management, research and polling, and market entry.
- IAA member portal: Provides secure access to member-only resources, dashboards, and a searchable knowledge base. Authentication is handled via magic-link emails with robust session management.
- Live polling data: Exposes real-time polling metrics sourced from a Google Sheet via a cached API endpoint.
- CMS and knowledge base: Git-backed editorial workflows for content and knowledge articles, with Obsidian integration for authoring.
Target audiences:
- Potential clients: Prospects evaluating Ace Strategies’ services and IAA’s market entry capabilities.
- Existing IAA members: Practitioners and executives needing secure access to curated resources and insights.
- Content editors: Internal and external editors using Sveltia CMS or Obsidian to publish and update content.
Positioning and value:
- Ace Strategies positions itself as a boutique firm with deep Australian expertise, offering agile, high-impact advisory and a vetted partner network to reduce risk and accelerate success.
- For government relations practitioners, the platform offers:
- A reliable, searchable knowledge base for research and reference.
- Secure member access to resources and collaboration tools.
- Real-time polling data to inform strategic decisions.
- A streamlined CMS for publishing and maintaining content.
Section sources
- [README.md:3-7](file://README.md#L3-L7)
- [src/_data/capabilities.json:1-53](file://src/_data/capabilities.json#L1-L53)
- [src/_data/testimonials.json:1-24](file://src/_data/testimonials.json#L1-L24)
- [src/_data/clients.json:1-104](file://src/_data/clients.json#L1-L104)
- [src/index.njk:1-164](file://src/index.njk#L1-L164)
- [src/about.njk:1-143](file://src/about.njk#L1-L143)
- [src/alliance.njk:1-164](file://src/alliance.njk#L1-L164)
Architecture Overview
The platform combines a static site generator with a lightweight runtime for authentication, OAuth, and APIs. Requests are served by the Cloudflare Worker, which intercepts member-gated routes and API endpoints, delegating other traffic to static assets.
sequenceDiagram
participant U as "User"
participant W as "Cloudflare Worker"
participant KV as "KV Namespaces"
participant R as "Resend API"
participant S as "Static Assets"
U->>W : "GET /alliance/members/*"
W->>W : "Parse cookie"
alt "Valid session"
W->>S : "Serve requested page"
else "No/invalid session"
W->>U : "302 Redirect to /alliance/login/?next=..."
end
U->>W : "POST /alliance/login/ (email)"
W->>KV : "Lookup approved member"
alt "Approved"
W->>KV : "Store token (TTL)"
W->>R : "Send magic link email"
end
W-->>U : "302 Redirect to /alliance/login/?sent=1"
U->>W : "GET /alliance/verify?token=..."
W->>KV : "Retrieve token"
alt "Valid"
W->>KV : "Delete token"
W-->>U : "302 Redirect to /alliance/members/ with session cookie"
else "Invalid/expired"
W-->>U : "302 Redirect to /alliance/login/?error=expired"
end
Diagram sources
- [worker.js:78-177](file://worker.js#L78-L177)
Section sources
- [worker.js:1-321](file://worker.js#L1-L321)
- [README.md:425-477](file://README.md#L425-L477)
Detailed Component Analysis
Marketing Website Pages
- Homepage: Highlights strategic capabilities, testimonials, team, news, and affiliations. It showcases the firm’s integrated approach and invites engagement.
- About: Introduces leadership, values, and methodology, reinforcing trust and expertise.
- Capabilities: Presents six service pillars with imagery and descriptions, linking to dedicated service pages.
- Testimonials and Clients: Feature client outcomes and trusted partnerships to build credibility.
These pages collectively communicate Ace Strategies’ mission and value to potential clients and stakeholders.
Section sources
- [src/index.njk:1-164](file://src/index.njk#L1-L164)
- [src/about.njk:1-143](file://src/about.njk#L1-L143)
- [src/_data/capabilities.json:1-53](file://src/_data/capabilities.json#L1-L53)
- [src/_data/testimonials.json:1-24](file://src/_data/testimonials.json#L1-L24)
- [src/_data/clients.json:1-104](file://src/_data/clients.json#L1-L104)
IAA Landing and Positioning
- IAA landing page: Articulates the alliance’s methodology, capabilities, engagement model, and partner network. It positions IAA as a de-risked pathway to market entry with comprehensive, vetted support.
- Target audience: International businesses exploring Australia’s market entry landscape and seeking strategic intelligence, regulatory expertise, and operational infrastructure.
Section sources
- [src/alliance.njk:1-164](file://src/alliance.njk#L1-L164)
- [src/_data/alliancePage.json:1-78](file://src/_data/alliancePage.json#L1-L78)
IAA Member Portal
- Login: Magic-link authentication to prevent password management while ensuring strong security.
- Members dashboard: Curated tiles and resource downloads for members.
- Knowledge base: Tag-filtered index of internal and member-only articles, with Obsidian integration for authoring.
flowchart TD
Start(["User accesses /alliance/members/*"]) --> CheckCookie["Check ace_member_session cookie"]
CheckCookie --> HasSession{"Valid session?"}
HasSession --> |Yes| Serve["Serve requested page"]
HasSession --> |No| RedirectLogin["Redirect to /alliance/login/?next={original}"]
LoginStart["User submits email on /alliance/login/"] --> Lookup["Lookup approved member in KV"]
Lookup --> Approved{"Approved?"}
Approved --> |Yes| StoreToken["Store token in MAGIC_TOKENS (TTL)"]
StoreToken --> SendEmail["Send magic link via Resend"]
Approved --> |No| ShowMessage["Show generic 'check your email' message"]
SendEmail --> RedirectSent["Redirect to /alliance/login/?sent=1"]
Verify["User clicks magic link"] --> Validate["Validate token in KV"]
Validate --> Valid{"Valid?"}
Valid --> |Yes| IssueCookie["Issue session cookie and redirect to /alliance/members/"]
Valid --> |No| Expired["Redirect to /alliance/login/?error=expired"]
Diagram sources
- [worker.js:78-177](file://worker.js#L78-L177)
- [src/alliance-login.njk:1-73](file://src/alliance-login.njk#L1-L73)
- [src/alliance-members.njk:1-58](file://src/alliance-members.njk#L1-L58)
Section sources
- [worker.js:1-321](file://worker.js#L1-L321)
- [src/alliance-login.njk:1-73](file://src/alliance-login.njk#L1-L73)
- [src/alliance-members.njk:1-58](file://src/alliance-members.njk#L1-L58)
- [src/alliance-knowledge.njk:1-96](file://src/alliance-knowledge.njk#L1-L96)
Live Polling Data Endpoint
- Purpose: Provide real-time polling metrics sourced from a Google Sheet via a cached API endpoint.
- Use: Inform strategic decisions around political and public sentiment.
- Security: Requires Worker secrets for Sheets access and enforces caching headers.
Section sources
- [worker.js:230-276](file://worker.js#L230-L276)
- [README.md:497-511](file://README.md#L497-L511)
CMS and Knowledge Base Authoring
- Sveltia CMS: Git-backed editor accessible at /admin/, enabling editors to manage content collections and global data.
- Obsidian integration: Articles authored in Obsidian sync to the knowledge base, supporting wikilinks and callouts.
Section sources
- [README.md:174-204](file://README.md#L174-L204)
- [README.md:373-423](file://README.md#L373-L423)
Dependency Analysis
High-level dependencies:
- Static site generation (Eleventy) produces HTML/CSS/JS.
- Cloudflare Worker intercepts member-gated routes, handles OAuth, and exposes APIs.
- KV namespaces store approved members and temporary tokens.
- Resend sends magic-link emails.
- Google Sheets powers live polling data.
- Sveltia CMS and Obsidian enable content authoring and publishing.
graph LR
Eleventy["Eleventy Build"] --> Site["_site/"]
Worker["Cloudflare Worker"] --> Site
Worker --> KV["KV Namespaces"]
Worker --> Resend["Resend API"]
Worker --> Sheets["Google Sheets API"]
CMS["Sveltia CMS"] --> Repo["Git Repository"]
Obsidian["Obsidian Vault"] --> Repo
Diagram sources
- [README.md:33-44](file://README.md#L33-L44)
- [worker.js:1-321](file://worker.js#L1-L321)
Section sources
- [README.md:33-669](file://README.md#L33-L669)
Performance Considerations
- Static-first architecture: Eleventy builds a fully static site, minimised in production, reducing server load and latency.
- Client-side search: Pagefind indexing is generated at build time, keeping runtime search fast and offline-capable.
- Lightweight runtime: Cloudflare Worker handles only authentication, OAuth, and APIs, delegating most traffic to static assets.
- Caching: Polling API responses are cached to reduce repeated API calls.
[No sources needed since this section provides general guidance]
Troubleshooting Guide
Common operational checks:
- Member authentication: Ensure KV namespaces and secrets are configured; confirm approved member keys exist and magic link tokens are stored with TTL.
- Email delivery: Verify Resend API key and sender configuration.
- Polling data: Confirm Google Sheets ID and API key are set; ensure the correct sheet range is used.
- CMS access: Validate Sveltia CMS OAuth settings and CORS preflight handling.
Section sources
- [README.md:497-521](file://README.md#L497-L521)
- [README.md:523-554](file://README.md#L523-L554)
- [worker.js:70-76](file://worker.js#L70-L76)
- [worker.js:123-147](file://worker.js#L123-L147)
Conclusion
Ace Strategies Prime is a purpose-built platform that blends a professional marketing presence with a secure, efficient member portal for Invest Australia Alliance. It communicates a clear mission: to help organisations navigate Australia’s government relations and stakeholder engagement landscape with agility, expertise, and a vetted partner network. For government relations practitioners, it offers a reliable knowledge base, secure member access, and timely polling insights—all delivered through a modern, fast, and maintainable stack.