You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/AGENTS.md
+123Lines changed: 123 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,3 +16,126 @@ npm run knip # Unused files and dependencies
16
16
If `format:check` fails, run `npx prettier --write .` and commit the result.
17
17
18
18
All five commands must exit with code 0 before you push.
19
+
20
+
## Content Authoring Guide
21
+
22
+
### Features
23
+
24
+
Every `.md` file inside `src/collections/feature` will be handled as a feature. Features with `showOnHomepage: true` are displayed on the landing page. Features can also be linked to a feature page via the `featurePage` field, grouping them into category pages at `/features/[slug]`.
25
+
26
+
The Markdown files are separated into two sections:
27
+
28
+
- Frontmatter YAML containing all data other than the content following a set data structure.
29
+
- Content; allows writing markdown that gets converted into HTML when the project is built.
/** Optional caption to be shown underneath the asset (supports inline markdown) */
46
+
caption?:string;
47
+
/** Placement of the asset related to the content */
48
+
alignment:Alignment;
49
+
/** Width of the asset. Choose between 6 (50%), 8 (66.67%), or 12 (100%) */
50
+
columnSpan:ColumnSpan;
51
+
};
52
+
53
+
typeVideo= {
54
+
type:"video";
55
+
/** Path to asset in public folder */
56
+
path:string;
57
+
alt:string;
58
+
caption?:string;
59
+
alignment:Alignment;
60
+
columnSpan:ColumnSpan;
61
+
};
62
+
63
+
typeFeature= {
64
+
name:string;
65
+
/** Whether this feature is shown on the homepage */
66
+
showOnHomepage:boolean; // defaults to false
67
+
tagLine?:string;
68
+
/** Path to related documentation */
69
+
docPath?:string;
70
+
/** WordPress blog post ID for linking to the related blog post */
71
+
blogId?:number;
72
+
/** Fragment identifier appended to the blog post URL */
73
+
blogFragment?:string;
74
+
/** YouTube video URL */
75
+
youtubeLink?:string; // must be a valid URL
76
+
/** Links this feature to a feature page category */
77
+
featurePage?:
78
+
|"accessibility"
79
+
|"app-actions"
80
+
|"build-insights"
81
+
|"design-comparison"
82
+
|"networking"
83
+
|"screenshots-recordings"
84
+
|"simulator-camera"
85
+
|"status-bar"
86
+
|"user-defaults-editor";
87
+
/** Asset can be an image or a video */
88
+
asset:Image|Video;
89
+
};
90
+
```
91
+
92
+
**NOTE:** Video assets need to be placed in the `public/` folder, while image assets need to be placed inside the `src/` folder. Assets in the `public/` folder won't be processed during the building of the project. Astro does not support video processing. We should take care of that ourselves (filesize, quality and resolution). For images this is done automatically. Feel free to use big image assets.
93
+
94
+
An example feature:
95
+
96
+
```md
97
+
---
98
+
showOnHomepage: true
99
+
name: "Quick Actions"
100
+
featurePage: "app-actions"
101
+
asset:
102
+
type: "video"
103
+
path: "/features/quick-actions.mp4"
104
+
alt: "RocketSim panel that shows configurable actions for locations, push notifications and deeplinks."
105
+
alignment: "right"
106
+
columnSpan: 6
107
+
---
108
+
109
+
**Configurable actions** for Deeplinks (Universal Links), Push Notifications, locations, permissions, and quick state resets.
110
+
111
+
-**Bundle Identifier based:** actions automatically show up for recent builds
112
+
- Quickly test **Locations, Push Notifications, and Deeplinks**
113
+
- Use **Reset Keychain** to clear stubborn authentication state faster
114
+
```
115
+
116
+
### Feature Pages
117
+
118
+
Feature pages are category pages that group related features together. They live in `src/collections/feature-page/` and are rendered at `/features/[slug]`. Each feature page has a hero section and an optional bento grid layout.
119
+
120
+
The available feature page slugs are: `accessibility`, `app-actions`, `build-insights`, `design-comparison`, `networking`, `screenshots-recordings`, `simulator-camera`, `status-bar`, `user-defaults-editor`.
121
+
122
+
### Documentation
123
+
124
+
Product documentation is powered by [Starlight](https://starlight.astro.build/) (an Astro integration) and lives in `src/content/docs/docs/`. Pages use `.md` or `.mdx` format with standard Starlight frontmatter (`title`, `description`).
125
+
126
+
The sidebar structure is defined in `astro.config.ts` under `starlight.sidebar`. Some sections use `autogenerate` (auto-discovers pages in a directory), others list pages explicitly by `slug` or `link`.
127
+
128
+
Current sidebar sections: Getting Started, Screenshots & Recordings, Simulator Camera, Status Bar, Design Comparison, App Actions, Networking, Build Insights, Accessibility, Agentic Development, User Defaults Editor, Settings, Support.
129
+
130
+
Images for a doc page should be placed in a subfolder next to the `.md`/`.mdx` file and referenced with relative paths (e.g., ``).
131
+
132
+
Available shortcodes (auto-imported, no import statement needed):
133
+
-`<Youtube id="..." title="..." />` — embeds a YouTube video
134
+
-`<Accordion>` — collapsible content
135
+
-`<Tweet />` — embedded tweet
136
+
137
+
The documentation also generates `llms.txt` and `llms-full.txt` files via the `starlight-llms-txt` plugin for LLM consumption.
138
+
139
+
### Blog
140
+
141
+
The blog is powered by a headless WordPress instance. Blog posts are fetched at build time and statically rendered.
Copy file name to clipboardExpand all lines: docs/README.md
+3-77Lines changed: 3 additions & 77 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,85 +26,11 @@ npm run dev
26
26
27
27
This starts your app in development mode, rebuilding assets on file changes.
28
28
29
-
## Features
30
-
31
-
Every `.md` file inside `src/collections/feature` will be handled as a feature. For now the only place they are used in on our landing page. Every file is converted into a section showcasing the particular feature.
32
-
33
-
The Markdown files are separated into two sections:
34
-
35
-
- Frontmatter YAML containing all data other than the content following a set data structure.
36
-
- Content; allows writing markdown that gets converted into HTML when the project is build
/** Optional caption to be shown underneath the asset (supports inline markdown) */
53
-
caption?:string;
54
-
/** Placement of the asset related to the content */
55
-
alignment:Alignment;
56
-
/** Width of the asset. Choose between 6 (50%) or 8 (66.67%) */
57
-
columnSpan:ColumnSpan;
58
-
};
59
-
60
-
typeVideo= {
61
-
type:"video";
62
-
/** Path to asset public folder */
63
-
path:string;
64
-
alt:string;
65
-
caption?:string;
66
-
alignment:Alignment;
67
-
columnSpan:ColumnSpan;
68
-
};
69
-
70
-
typeFeature= {
71
-
name:string;
72
-
tagLine?:string;
73
-
/** Asset can be a photo or a video */
74
-
asset:Photo|Video;
75
-
/** Order the features will be shown on the landing page */
76
-
sortOrder:number;
77
-
};
78
-
```
79
-
80
-
**NOTE:** Video assets need to be placed in the `public/` folder, while image assets need to be placed inside the `src/` folder. Assets in the `public/` folder won't be processed during the building of the project. Astro does not support video processing. We should take care of that ourselves (filesize, quality and resolution). For images this is done automatically. Feel free to use big image assets.
81
-
82
-
An example feature:
83
-
84
-
```md
85
-
---
86
-
name: "Quick Actions"
87
-
asset:
88
-
type: "image"
89
-
path: "../../assets/features/quick-actions.jpg"
90
-
alt: "RocketSim panel that shows configurable actions for locations, push notifications and deeplinks."
91
-
alignment: "right"
92
-
columnSpan: 6
93
-
sortOrder: 3
94
-
---
95
-
96
-
**Configurable actions** for Deeplinks (Universal Links) and Push Notifications. Control permissions.
97
-
98
-
-**Bundle Identifier based:** actions automatically show up for recent builds
99
-
- Quickly test **Locations, Push Notifications, and Deeplinks**
100
-
-**Grant, revoke, or reset permissions** like photo and location access, allowing you to quicker test related implementations
101
-
```
102
-
103
-
## Blog
29
+
## Content
104
30
105
-
The blog is powered by a headless WordPress instance. The blog posts are fetched at build time and statically rendered.
31
+
Features live in `src/collections/feature/`, feature pages in `src/collections/feature-page/`, and the blog is powered by a headless WordPress instance. See [AGENTS.md](./AGENTS.md) for the full content authoring guide (schemas, examples, and conventions).
0 commit comments