chore: Update template labels and descriptions - #814
Conversation
| "id": "js-bootstrap-cheerio-crawler", | ||
| "name": "js-bootstrap-cheerio-crawler", | ||
| "label": "Bootstrap CheerioCrawler", | ||
| "label": "Crawler starter for experienced developers", |
There was a problem hiding this comment.
A lot of labels were changed to a imperative form (e.g. "Scrape sites that need JavaScript").
Still there are some that are describing what the template is.
Let's try to transform these as well, if possible.
DaveHanns
left a comment
There was a problem hiding this comment.
Small nit, otherwise LGTM 👍
Co-authored-by: Cursor <cursoragent@cursor.com>
d749e4d to
8bcf36e
Compare
| "id": "python-empty", | ||
| "name": "python-empty", | ||
| "label": "Empty Python project", | ||
| "label": "Blank Actor", |
There was a problem hiding this comment.
Not sure if we should drop Python here, and other templates.
|
Let's also "synchronize" starter, blank, empty, etc. |
|
Labels -> Actor template titles / names, descriptions -> Actor template descriptions. Also, these things will show up on:
|
|
Hi @jgagne, will you have time to check it in upcoming week? Thanks! |
|
@patrikbraborec, thanks for the reminder. I'll share my suggestions by the end of the week. |
| "id": "python-playwright", | ||
| "name": "python-playwright", | ||
| "label": "Playwright + Chrome", | ||
| "label": "Scrape sites that need JavaScript", |
There was a problem hiding this comment.
| "label": "Scrape sites that need JavaScript", | |
| "label": "Scrape JavaScript-heavy sites with Playwright", |
Why: Collides with python-selenium and python-crawlee-playwright (3-way tie in Python category). Differentiates by framework.
| "id": "python-selenium", | ||
| "name": "python-selenium", | ||
| "label": "Selenium + Chrome", | ||
| "label": "Scrape sites that need JavaScript", |
There was a problem hiding this comment.
| "label": "Scrape sites that need JavaScript", | |
| "label": "Scrape JavaScript-heavy sites with Selenium", |
Why: Same 3-way collision. Differentiates by framework.
| "id": "python-crawlee-playwright", | ||
| "name": "python-crawlee-playwright", | ||
| "label": "Crawlee + Playwright + Chrome", | ||
| "label": "Scrape sites that need JavaScript", |
There was a problem hiding this comment.
| "label": "Scrape sites that need JavaScript", | |
| "label": "Scrape JavaScript-heavy sites with Crawlee", |
Why: Same 3-way collision. Crawlee = managed infrastructure, not just a browser driver.
| "id": "python-crawlee-beautifulsoup", | ||
| "name": "python-crawlee-beautifulsoup", | ||
| "label": "Crawlee + BeautifulSoup", | ||
| "label": "Crawl a whole website (fast)", |
There was a problem hiding this comment.
| "label": "Crawl a whole website (fast)", | |
| "label": "Crawl a whole website (fast, BeautifulSoup)", |
Why: Collides with python-crawlee-parsel. Library name is the only differentiator.
| "id": "python-crawlee-parsel", | ||
| "name": "python-crawlee-parsel", | ||
| "label": "Crawlee + Parsel", | ||
| "label": "Crawl a whole website (fast)", |
There was a problem hiding this comment.
| "label": "Crawl a whole website (fast)", | |
| "label": "Crawl a whole website (fast, Parsel)", |
Why: Same collision issue.
| "category": "javascript", | ||
| "technologies": ["nodejs", "langchain"], | ||
| "description": "Example of how to use LangChain.js with Apify to crawl, vectorize, and query web data with the OpenAI model.", | ||
| "description": "Crawl a website and ask an AI questions about its content.", |
There was a problem hiding this comment.
| "description": "Crawl a website and ask an AI questions about its content.", | |
| "description": "Ask AI about a website's content.", |
Why: Every other AI template dropped "crawl/scrape" wording. This was the one holdout.
| "category": "python", | ||
| "technologies": ["pydanticai"], | ||
| "description": "A PydanticAI agent designed to generate jokes, showcasing a minimal example using the Pydantic AI framework.", | ||
| "description": "A tiny AI agent example to learn how to build agents.", |
There was a problem hiding this comment.
| "description": "A tiny AI agent example to learn how to build agents.", | |
| "description": "A minimal AI agent that generates jokes, ready to build on.", |
Why: Restores the one memorable detail the rewrite lost ("generates jokes"). Drops pedagogical tone.
| "description": "Crawler example that uses headless Chrome driven by Playwright to scrape a website. Headless browsers render JavaScript and can help when getting blocked.", | ||
| "description": "Scrape sites that load content with JavaScript, using a real browser. Use it when an HTTP scraper comes back empty, like on social feeds, dashboards, or single-page apps.", | ||
| "messages": { | ||
| "postCreate": "To run this actor, you need to have Playwright's browsers installed.\nTo do so, activate the virtual environment in the \".venv\" folder in the actor directory, and run \"playwright install --with-deps\".\nTo install additional Python packages, you need also need to activate the virtual environment in the \".venv\" folder in the actor directory.\n" |
There was a problem hiding this comment.
| "postCreate": "To run this actor, you need to have Playwright's browsers installed.\nTo do so, activate the virtual environment in the \".venv\" folder in the actor directory, and run \"playwright install --with-deps\".\nTo install additional Python packages, you need also need to activate the virtual environment in the \".venv\" folder in the actor directory.\n" | |
| "postCreate": "To run this Actor, you need Playwright's browsers installed.\nActivate the virtual environment in the \".venv\" folder, then run \"playwright install --with-deps\".\nUse the same virtual environment to install additional Python packages." |
Why: Grammar bug with "you need also need to" (duplicated "need"). Also consolidates the redundant .venv instruction and removes trailing newline inconsistency.
| "description": "Scraper example built with Selenium and headless Chrome browser to scrape a website and save the results to storage. A popular alternative to Playwright.", | ||
| "description": "Scrape sites that load content with JavaScript, using a real browser. Use it when an HTTP scraper comes back empty, like on social feeds, dashboards, or single-page apps.", | ||
| "messages": { | ||
| "postCreate": "To run this actor, you need to have the Selenium ChromeDriver installed.\nTo install additional Python packages, you need to activate the virtual environment in the \".venv\" folder in the actor directory." |
There was a problem hiding this comment.
| "postCreate": "To run this actor, you need to have the Selenium ChromeDriver installed.\nTo install additional Python packages, you need to activate the virtual environment in the \".venv\" folder in the actor directory." | |
| "postCreate": "To run this Actor, you need the Selenium ChromeDriver installed.\nTo install additional Python packages, activate the virtual environment in the \".venv\" folder in the actor directory." |
Why: Minor trim with "you need to have the Selenium ChromeDriver installed" → "you need the Selenium ChromeDriver installed." Matches the directness of other postCreate messages.
| "technologies": ["smolagents"], | ||
| "description": "Create an AI news aggregator that fetches and summarizes the latest news based on your interests, using DuckDuckGo search and OpenAI models with Python Smolagents.", | ||
| "description": "An AI agent that finds and summarizes news on topics you choose.", | ||
| "archiveUrl": "https://github.com/apify/actor-templates/blob/master/dist/templates/python-pydanticai.zip?raw=true", |
There was a problem hiding this comment.
| "archiveUrl": "https://github.com/apify/actor-templates/blob/master/dist/templates/python-pydanticai.zip?raw=true", | |
| "archiveUrl": "https://github.com/apify/actor-templates/blob/master/dist/templates/python-smolagents.zip?raw=true", |
Why: Pre-existing bug. Points to python-pydanticai.zip instead of python-smolagents.zip.
jgagne
left a comment
There was a problem hiding this comment.
Two other copy suggestions to consider.
| "id": "python-beautifulsoup", | ||
| "name": "python-beautifulsoup", | ||
| "label": "BeautifulSoup", | ||
| "label": "Scrape a list of web pages", |
There was a problem hiding this comment.
| "label": "Scrape a list of web pages", | |
| "label": "Scrape multiple web pages", |
Why: Creates a cleaner parallel with "Scrape one web page." One/multiple is an instant differentiator when scanning.
| "category": "python", | ||
| "technologies": ["beautifulsoup", "httpx"], | ||
| "description": "Example of a web scraper that uses Python HTTPX to scrape HTML from URLs provided on input, parses it using BeautifulSoup and saves results to storage.", | ||
| "description": "Get data from a list of web pages. Fast and light for simple sites.", |
There was a problem hiding this comment.
| "description": "Get data from a list of web pages. Fast and light for simple sites.", | |
| "description": "Get data from multiple web pages. Fast and light for simple sites.", |
Suggestion to improve labels and description of Actor Templates.