Press Kit
Give journalists your logos, colours, screenshots, and boilerplate on one public page.
What it adds
A public page of downloadable brand assets, colour values, screenshots, and approved boilerplate copy.
What your agent is told to do
5
What your agent is told to do
5-
1
Serve every asset through the app's existing file download path so that access, headers, and content types are handled the same way as everywhere else, rather than linking directly at raw storage.
-
2
Store the correct format and media type per asset and derive the filename and extension from the stored record, never from the label an author typed.
-
3
Present each logo variant on the background it is designed for, and reuse the app's theme-aware asset switching so the page shows the right variant in light and dark rather than a washed-out logo on the wrong panel.
-
4
Publish the usage rules as text on the page and include them as a file inside every archive, so the rules travel with the assets rather than staying behind on a page nobody bookmarked.
-
5
Do not build the archive on demand in the web request. Generate it in the background when assets change and serve the stored file, because zipping a large asset set inline will time out.
Edge cases it handles
8
Edge cases it handles
8- A bulk download of a large asset archive built during the request will time out or die behind a proxy. Prepare the archive ahead of time and serve it as a static file with a resumable download.
- Light and dark logo variants look broken on the wrong background. Render each on its intended background, label which is which, and never let the page theme swap one for the other silently.
- Superseded assets stay linked from press coverage published years ago. Keep the old URL alive but serve a page explaining the asset is retired and pointing at the current one, rather than deleting the file.
- Vector and raster files served with the wrong extension or content type download as something the recipient cannot open. Match the extension, the stored media type, and the response headers.
- Usage rules that only appear on the page get separated from the files immediately. Include them in the archive and reference them next to every individual download.
- Colour values need to be copyable as text in more than one notation, because a journalist and a designer want different formats.
- Screenshots go stale faster than logos. Show when each asset was last updated so nobody ships a picture of a two-year-old interface.
- The page is public and links to real files, so it will be scraped. Rate limit the archive download and keep individual asset requests cheap.
Definition of done
9
Definition of done
9- Every asset downloads with a filename, extension, and content type derived from its stored record.
- The full archive is pre-generated and served as a stored file rather than built during the request.
- Light and dark logo variants each render on an appropriate background and are labelled.
- Usage rules appear on the page and are included inside every archive.
- Retired assets keep their URLs and resolve to a page pointing at the current version.
- Colour values can be copied in more than one notation.
- Each asset shows when it was last updated.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Reading Progress Bar
Reading Progress Bar
A slim bar showing how far through an article the reader has scrolled.
What it does
A thin progress indicator pinned to the top of article pages, tracking scroll through the body text.
How it works
- 1 Measure progress against the article body element only. Take the top and bottom of the prose, not the height of the document.
- 2 Recalculate the body height when the page reflows: late-loading images, expanded sections, embeds, and font swaps all change the total after first paint.
- 3 Reuse the app's existing Progress Indicator System tokens for the bar's colour and height rather than introducing a new accent, and keep it visually distinct from Route Change Progress so the two are not confused.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/reading-progress-bar
FAQ Section
FAQ Section
Add an expandable list of questions and answers to any page, in the order you choose.
What it does
A reorderable set of question and answer pairs rendered as an accessible expand-collapse list on any page.
How it works
- 1 Build it on real disclosure semantics with a button that toggles its own panel, so keyboard and screen reader users get the behaviour for free.
- 2 Give every question a stable anchor derived from its text and keep it after edits, so a support reply can link straight to one answer.
- 3 Allow answers to contain formatted text, lists, and links, and reuse the app's existing content editor and its sanitisation rules rather than accepting raw markup.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/faq-section
Testimonials Section
Testimonials Section
Collect real customer quotes with attribution and show them on your public pages.
What it does
A store of customer quotes with name, role, photo, and rating, plus a section that renders them on public pages.
How it works
- 1 Record consent as a field on the testimonial, along with when and how it was given, and refuse to publish a quote that does not have it.
- 2 Route submitted testimonials through the app's existing moderation queue rather than publishing them on arrival. Reuse the existing text moderation and image moderation checks if the app has them.
- 3 Reuse the app's existing avatar and image upload path for the photo and logo, including its size and type limits and its stored variants. Do not add a second upload endpoint with different rules.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/testimonials-section
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.