Skip to content

Fix formatting table icons #1016

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Apr 14, 2025
Merged

Fix formatting table icons #1016

merged 8 commits into from
Apr 14, 2025

Conversation

sarahfossheim
Copy link
Collaborator

Fixes: #1012

Name of the icons is now formatted differently, changing to %20. Example from the issues (Framer Sites) shows an icon in the table now.

@@ -96,12 +95,13 @@ class TableLinked {
cell.classList.add('app-cell');

const img = document.createElement('span');
const imgUrl = `https://cdn.httparchive.org/static/icons/${formattedApp}.png`;
const imgUrl = `https://cdn.httparchive.org/static/icons/${encodeURI(app)}.png`;
Copy link
Contributor

@max-ostapenko max-ostapenko Feb 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sarahfossheim please use the icon name from the technology data.
It is not always equal to technology name.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@max-ostapenko I see the example you linked to ends with .svg, does this mean the file format is expected to come from there as well? Because not all of them seem to have the correct format.

For example:

{
    "technology": "1C-Bitrix",
    "category": "CMS, Ecommerce",
    "description": "1C-Bitrix is a system of web project management, universal software for the creation, support and successful development of corporate websites and online stores.",
    "icon": "1C-Bitrix.svg",
    "origins": {
        "mobile": 85308,
        "desktop": 58771
    }
}

"icon": "1C-Bitrix.svg" would turn into:
https://cdn.httparchive.org/static/icons/1C-Bitrix.svg

But that gives the following error:

<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
</Error>

Whereas https://cdn.httparchive.org/static/icons/1C-Bitrix.png loads the image:
1C-Bitrix

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, you're right.
Let's use the full name WITH extension.
I'll fix the extension in tech data.

The icon property comes from a submitted detection rule, but then we do conversion to PNG.

At first, I thought I could adjust the icon names to your approach with technology names, but there are a number of icons that are reused by multiple technologies.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now live.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will update tomorrow to use the icon name with extension then 💯

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@max-ostapenko Is it normal that some techs still return an error? I guess some we just don't have an icon for?

For example this still gives an error:

https://cdn.httparchive.org/static/icons/Skilldo.png

{
    "technology": "Skilldo",
    "category": "CMS",
    "description": "Skilldo is a content management system written in PHP and paired with a MySQL or MariaDB database.",
    "icon": "Skilldo.png",
    "origins": {
        "mobile": 2027,
        "desktop": 1573
    }
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an issue on icons pipeline - icon exists, but wasn't picked up in the conversion step.
Need to adjust github action to keep all in sync - a couple of days for that.

@sarahfossheim sarahfossheim marked this pull request as ready for review March 3, 2025 15:06
Copy link
Member

@tunetheweb tunetheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, once @max-ostapenko answers your question.

@tunetheweb
Copy link
Member

@sarahfossheim when I try this branch all the icons are broken. Does it need an update?

@max-ostapenko
Copy link
Contributor

It may be a backend issue: path in API inconsistent with location.
I expect to have a PR in wappalyzer shortly to sort the icons sync to Cloud Storage (over the last several weeks I hope I found the simple setup).
Let's return to this PR once we have a fixed backend.

@tunetheweb
Copy link
Member

Yes but the main branch it works (apart from some issues as per the original issue). But this branch none of them work.

@sarahfossheim
Copy link
Collaborator Author

@tunetheweb I have a mixed set of results when I test:

  • Icons in the drilldown page work for me
  • Icons in the comparison page work up until 30 technologies. If more than 30 are selected I get an error from the API (see screenshot).
  • Categories page was not making the API call to fetch the icons → That's now fixed, however if more than 30 techs are displayed on the page the same issue as the comparison page happens.

So seemed to be a combo of the front-end like you mentioned (fixed now 🤞🏻) and the API like @max-ostapenko suggested.

Doesn't work

31 techs: (URL)

500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Works

30 techs: (URL)

[{"technology": "1C-Bitrix", "category": "CMS, Ecommerce", "description": "1C-Bitrix is a system of web project management, universal software for the creation, support and successful development of corporate websites and online stores.", "icon": "1C-Bitrix.png", "origins": {"mobile": 89103, "desktop": 61852}}, {"technology": "Adobe Experience Manager", "category": "CMS", "description": "Adobe Experience Manager (AEM) is a content management solution for building websites, mobile apps and forms.", "icon": "Adobe Experience Platform.png", "origins": {"mobile": 24123, "desktop": 22921}}, {"technology": "Contao", "category": "CMS", "description": "Contao is an open source CMS that allows you to create websites and scalable web applications.", "icon": "Contao.png", "origins": {"mobile": 18056, "desktop": 12004}}, {"technology": "Contentful", "category": "CMS", "description": "Contentful is an API-first content management platform to create, manage and publish content on any digital channel.", "icon": "Contentful.png", "origins": {"mobile": 14567, "desktop": 14707}}, {"technology": "Craft CMS", "category": "CMS", "description": "Craft CMS is a content management system for building bespoke websites.", "icon": "Craft CMS.png", "origins": {"mobile": 18117, "desktop": 18210}}, {"technology": "DNN", "category": "CMS", "description": null, "icon": "DNN.png", "origins": {"mobile": 14302, "desktop": 14125}}, {"technology": "Drupal", "category": "CMS", "description": "Drupal is a free and open-source web content management framework.", "icon": "Drupal.png", "origins": {"mobile": 179797, "desktop": 171185}}, {"technology": "Duda", "category": "CMS, Page builders", "description": "Duda is a user-friendly website builder and CMS platform that enables businesses and individuals to create responsive, mobile-friendly websites without extensive coding knowledge.", "icon": "Duda.png", "origins": {"mobile": 93661, "desktop": 67713}}, {"technology": "Gnuboard", "category": "CMS", "description": "Gnuboard is an open-source bulletin board system or CMS from South Korea.", "icon": "default.png", "origins": {"mobile": 13171, "desktop": 16242}}, {"technology": "GoDaddy Website Builder", "category": "CMS", "description": null, "icon": "GoDaddy.png", "origins": {"mobile": 33609, "desktop": 26099}}, {"technology": "Google Sites", "category": "CMS", "description": null, "icon": "Google Sites.png", "origins": {"mobile": 21144, "desktop": 16901}}, {"technology": "Hatena Blog", "category": "Blogs, CMS", "description": "Hatena Blog is one of the traditional blog platforms in Japan.", "icon": "Hatena.png", "origins": {"mobile": 24815, "desktop": 21796}}, {"technology": "HubSpot CMS Hub", "category": "CMS", "description": "CMS Hub is a content management platform by HubSpot for marketers to manage, optimize, and track content performance on websites, blogs, and landing pages.", "icon": "HubSpot.png", "origins": {"mobile": 23485, "desktop": 25959}}, {"technology": "Jimdo", "category": "CMS", "description": "Jimdo is a website-builder and all-in-one hosting solution, designed to enable users to build their own websites.", "icon": "Jimdo.png", "origins": {"mobile": 49361, "desktop": 29887}}, {"technology": "Joomla", "category": "CMS", "description": "Joomla is a free and open-source content management system for publishing web content.", "icon": "Joomla.png", "origins": {"mobile": 228254, "desktop": 168912}}, {"technology": "Magento", "category": "CMS, Ecommerce", "description": "Magento is an open-source ecommerce platform written in PHP.", "icon": "Magento.png", "origins": {"mobile": 57732, "desktop": 54953}}, {"technology": "October CMS", "category": "CMS", "description": "October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework.", "icon": "October CMS.png", "origins": {"mobile": 13328, "desktop": 10930}}, {"technology": "Odoo", "category": "CMS", "description": "Odoo is business management software which includes CRM, ecommerce, billing, accounting, manufacturing, warehouse, project management, and inventory management.", "icon": "Odoo.png", "origins": {"mobile": 14381, "desktop": 13061}}, {"technology": "OpenCart", "category": "CMS, Ecommerce", "description": "OpenCart is a free and open-source ecommerce platform used for creating and managing online stores. It is written in PHP and uses a MySQL database to store information.", "icon": "OpenCart.png", "origins": {"mobile": 37349, "desktop": 28978}}, {"technology": "PrestaShop", "category": "CMS, Ecommerce", "description": "PrestaShop is a freemium, open-source ecommerce solution, written in the PHP programming language with support for the MySQL database management system.", "icon": "PrestaShop.png", "origins": {"mobile": 100571, "desktop": 86727}}, {"technology": "Shopify", "category": "CMS, Ecommerce", "description": "Shopify is a subscription-based software that allows anyone to set up an online store and sell their products. Shopify store owners can also sell in physical locations using Shopify POS, a point-of-sale app and accompanying hardware.", "icon": "Shopify.png", "origins": {"mobile": 618806, "desktop": 531848}}, {"technology": "Skolengo", "category": "CMS, LMS", "description": "Skolengo is an Education Management Software developed by Kosmos Education.", "icon": "Skolengo.png", "origins": {"mobile": 14390, "desktop": 12937}}, {"technology": "Squarespace", "category": "CMS", "description": "Squarespace provides Software-as-a-Service (SaaS) for website building and hosting, and allows users to use pre-built website templates.", "icon": "Squarespace.png", "origins": {"mobile": 248955, "desktop": 239090}}, {"technology": "TYPO3 CMS", "category": "CMS", "description": "TYPO3 is a free and open-source Web content management system written in PHP.", "icon": "TYPO3.png", "origins": {"mobile": 73500, "desktop": 58816}}, {"technology": "Tilda", "category": "CMS", "description": "Tilda is a web design tool.", "icon": "Tilda.png", "origins": {"mobile": 86799, "desktop": 41448}}, {"technology": "Tistory", "category": "Blogs, CMS", "description": "Tistory is a South Korean blog-publishing service that allows private or multi-user blogs.", "icon": "Tistory.png", "origins": {"mobile": 48961, "desktop": 66576}}, {"technology": "Webflow", "category": "CMS, Page builders", "description": "Webflow is Software-as-a-Service (SaaS) for website building and hosting.", "icon": "webflow.png", "origins": {"mobile": 111176, "desktop": 111046}}, {"technology": "Weebly", "category": "CMS", "description": "Weebly is a website and ecommerce service.", "icon": "Weebly.png", "origins": {"mobile": 65137, "desktop": 57895}}, {"technology": "Wix", "category": "Blogs, CMS", "description": "Wix provides cloud-based web development services, allowing users to create HTML5 websites and mobile sites.", "icon": "Wix.png", "origins": {"mobile": 455745, "desktop": 335946}}, {"technology": "WordPress", "category": "Blogs, CMS", "description": "WordPress is a free and open-source content management system written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system.", "icon": "WordPress.png", "origins": {"mobile": 5716750, "desktop": 4609189}}]
Long JSON response

@sarahfossheim
Copy link
Collaborator Author

@tunetheweb also I see there's a conflict with the main branch meanwhile, will solve after our call today

@max-ostapenko
Copy link
Contributor

@sarahfossheim I resynced the icons. Do you still notice issues?

@sarahfossheim
Copy link
Collaborator Author

@max-ostapenko icons work for me :)

Also updated the dropdowns to 10, 20, 30 techs per page, instead of 10, 25, 50, to avoid it throws an error when selecting more than 30.

@tunetheweb tunetheweb merged commit e5382b5 into main Apr 14, 2025
9 checks passed
@tunetheweb tunetheweb deleted the 1012-fix-icons branch April 14, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tech Report: SVG icons aren't ever used
3 participants