From e18f45bf83331b65c6913317d343a59db3ca6558 Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Fri, 20 Dec 2024 18:47:18 +0100 Subject: [PATCH 1/7] generated descriptions --- src/categories.json | 326 +++++++++++++++++++++++++++++--------------- 1 file changed, 217 insertions(+), 109 deletions(-) diff --git a/src/categories.json b/src/categories.json index cfe41a635..e4181f693 100644 --- a/src/categories.json +++ b/src/categories.json @@ -4,7 +4,8 @@ 3 ], "name": "CMS", - "priority": 1 + "priority": 1, + "description": "Content Management Systems (CMS) are platforms used to create, manage, and modify content on a website without needing specialized technical knowledge. They influence website structure, performance, and overall user experience." }, "2": { "groups": [ @@ -13,35 +14,40 @@ 18 ], "name": "Message boards", - "priority": 1 + "priority": 1, + "description": "Message boards or forums are online platforms where users can post and discuss topics, fostering online communities. The technology powering them can affect page load speed and user interaction." }, "3": { "groups": [ 5 ], "name": "Database managers", - "priority": 2 + "priority": 2, + "description": "Database management systems (DBMS) are software applications used to store, retrieve, and manage data. The performance and scalability of these systems are crucial for website speed and reliability." }, "4": { "groups": [ 3 ], "name": "Documentation", - "priority": 2 + "priority": 2, + "description": "Documentation tools and platforms host information about products, services, or software. The way documentation is delivered can impact user experience and site performance." }, "5": { "groups": [ 6 ], "name": "Widgets", - "priority": 9 + "priority": 9, + "description": "Widgets are small, self-contained applications embedded into a webpage. While they enhance functionality, poorly optimized widgets can negatively impact page load times and user experience." }, "6": { "groups": [ 1 ], "name": "Ecommerce", - "priority": 1 + "priority": 1, + "description": "Ecommerce platforms provide the infrastructure to sell products and services online, managing everything from product catalogs to payments. These technologies directly impact site performance and conversion rates." }, "7": { "groups": [ @@ -49,14 +55,16 @@ 10 ], "name": "Photo galleries", - "priority": 1 + "priority": 1, + "description": "Photo gallery platforms are used to display images on a website. Optimizing these technologies is important for loading speed, image quality, and user engagement." }, "8": { "groups": [ 3 ], "name": "Wikis", - "priority": 1 + "priority": 1, + "description": "Wikis are collaborative websites that allow users to create and edit pages. The technology powering wikis can impact user experience and site performance, particularly if not optimized for large amounts of content." }, "9": { "groups": [ @@ -64,28 +72,32 @@ 7 ], "name": "Hosting panels", - "priority": 2 + "priority": 2, + "description": "Hosting control panels are interfaces for managing web servers and hosting environments. They influence the performance, security, and reliability of a website." }, "10": { "groups": [ 8 ], "name": "Analytics", - "priority": 9 + "priority": 9, + "description": "Analytics tools track user behavior and provide insights into website performance. They are critical for understanding how users interact with a site and identifying areas for optimization." }, "11": { "groups": [ 3 ], "name": "Blogs", - "priority": 1 + "priority": 1, + "description": "Blog platforms allow users to publish and manage articles and posts. They can impact page load speed, rendering, and general site performance, depending on the technology and optimizations." }, "12": { "groups": [ 9 ], "name": "JavaScript frameworks", - "priority": 8 + "priority": 8, + "description": "JavaScript frameworks are used for building dynamic web applications and user interfaces. Their performance is critical for site responsiveness and can impact Core Web Vitals like FID and CLS." }, "13": { "groups": [ @@ -93,14 +105,16 @@ 18 ], "name": "Issue trackers", - "priority": 2 + "priority": 2, + "description": "Issue trackers are used to manage and track bugs, tasks, and features in software development. They contribute to the development lifecycle but their impact on website performance is less direct." }, "14": { "groups": [ 10 ], "name": "Video players", - "priority": 7 + "priority": 7, + "description": "Video players embed videos on websites. Optimizing these, especially for delivery and playback, is crucial for page load, user experience, and preventing performance issues." }, "15": { "groups": [ @@ -108,161 +122,184 @@ 18 ], "name": "Comment systems", - "priority": 9 + "priority": 9, + "description": "Comment systems allow users to post and interact with comments on a website. Their implementation can affect page load speed and overall user experience." }, "16": { "groups": [ 11 ], "name": "Security", - "priority": 9 + "priority": 9, + "description": "Security technologies protect websites from vulnerabilities and attacks. While important, they shouldn't significantly impact site performance when correctly configured." }, "17": { "groups": [ 9 ], "name": "Font scripts", - "priority": 9 + "priority": 9, + "description": "Font loading scripts control how fonts are displayed on a webpage. Proper implementation and optimization are key for preventing layout shifts and improving the user experience." }, "18": { "groups": [ 9 ], "name": "Web frameworks", - "priority": 7 + "priority": 7, + "description": "Web frameworks provide a structure for building web applications. Their performance is crucial for site speed and responsiveness, and they play a key role in Core Web Vitals." }, "19": { "groups": [ 6 ], "name": "Miscellaneous", - "priority": 10 + "priority": 10, + "description": "Miscellaneous tools and technologies encompass those that don't fit into other categories but contribute to the functionality or performance of a website in some way." }, "20": { "groups": [ 9 ], "name": "Editors", - "priority": 4 + "priority": 4, + "description": "Editors are used to create and manage website content, code, and other files. While these don't affect website performance directly, they are important tools in the workflow." }, "21": { "groups": [ 3 ], "name": "LMS", - "priority": 1 + "priority": 1, + "description": "Learning Management Systems (LMS) are used to create, manage, and deliver online courses. Their technology can impact user experience and site performance for students." }, "22": { "groups": [ 7 ], "name": "Web servers", - "priority": 8 + "priority": 8, + "description": "Web servers are software applications that deliver web pages to users' browsers. Their performance is critical for website speed and reliability. Efficient web servers are essential for good user experience." }, "23": { "groups": [ 7 ], "name": "Caching", - "priority": 7 + "priority": 7, + "description": "Caching technologies store frequently accessed data closer to the user to improve page load times. Effective caching strategies are essential for Core Web Vitals." }, "24": { "groups": [ 3 ], "name": "Rich text editors", - "priority": 5 + "priority": 5, + "description": "Rich text editors allow users to create and format text within a web application. The way they are implemented can impact the performance of forms and other user interactions." }, "25": { "groups": [ 9 ], "name": "JavaScript graphics", - "priority": 6 + "priority": 6, + "description": "JavaScript graphics libraries are used to create visual elements on websites. Optimized use of these libraries can enhance user experience without impacting performance negatively." }, "26": { "groups": [ 9 ], "name": "Mobile frameworks", - "priority": 8 + "priority": 8, + "description": "Mobile frameworks are used to create mobile applications and mobile-first websites. Performance of these frameworks is critical for a good experience on mobile devices." }, "27": { "groups": [ 9 ], "name": "Programming languages", - "priority": 5 + "priority": 5, + "description": "Programming languages are used to build website functionalities and backend services. The choice of programming language and optimization affect site performance." }, "28": { "groups": [ 7 ], "name": "Operating systems", - "priority": 6 + "priority": 6, + "description": "Operating systems run web servers and infrastructure. Their stability and performance are essential for the reliability of websites." }, "29": { "groups": [ 3 ], "name": "Search engines", - "priority": 4 + "priority": 4, + "description": "Search engines embedded on websites allow users to find specific content. The efficiency of the engine affects user experience on sites with large amounts of content." }, "30": { "groups": [ 4 ], "name": "Webmail", - "priority": 2 + "priority": 2, + "description": "Webmail systems allow users to send and receive emails through a browser. These can impact site functionality when integrated, particularly in the case of forms or notifications." }, "31": { "groups": [ 7 ], "name": "CDN", - "priority": 9 + "priority": 9, + "description": "Content Delivery Networks (CDNs) distribute website content globally to improve load times for users. They are essential for ensuring good performance, especially for websites with a global audience." }, "32": { "groups": [ 2 ], "name": "Marketing automation", - "priority": 9 + "priority": 9, + "description": "Marketing automation tools streamline marketing activities. Their proper integration is key to avoid performance issues and ensure a smooth user experience." }, "33": { "groups": [ 7 ], "name": "Web server extensions", - "priority": 7 + "priority": 7, + "description": "Web server extensions enhance the capabilities of web servers. Their configuration and performance directly affect server load and website response times." }, "34": { "groups": [ 7 ], "name": "Databases", - "priority": 5 + "priority": 5, + "description": "Databases store website information. Their optimization is crucial for application performance and should be considered for Core Web Vitals." }, "35": { "groups": [ 17 ], "name": "Maps", - "priority": 6 + "priority": 6, + "description": "Map technologies embed maps into websites. Their performance affects load times, particularly when handling large map files or complex renderings." }, "36": { "groups": [ 2 ], "name": "Advertising", - "priority": 9 + "priority": 9, + "description": "Advertising platforms display ads on websites. Optimizing their loading and behavior is crucial to avoid negatively impacting site performance and user experience." }, "37": { "groups": [ 7 ], "name": "Network devices", - "priority": 2 + "priority": 2, + "description": "Network devices, like routers and switches, are fundamental infrastructure for the network. Their operation affects website reliability and connectivity." }, "38": { "groups": [ @@ -270,84 +307,96 @@ 7 ], "name": "Media servers", - "priority": 1 + "priority": 1, + "description": "Media servers store and stream media content. Optimizing them is crucial for fast playback and avoiding interruptions in streaming." }, "39": { "groups": [ 4 ], "name": "Webcams", - "priority": 9 + "priority": 9, + "description": "Webcam integrations are used for video calls and similar functions. Their proper implementation is key for avoiding performance issues on the page." }, "41": { "groups": [ 1 ], "name": "Payment processors", - "priority": 8 + "priority": 8, + "description": "Payment processors handle online transactions. They should be implemented with consideration for site security and load times." }, "42": { "groups": [ 8 ], "name": "Tag managers", - "priority": 9 + "priority": 9, + "description": "Tag managers allow the addition of scripts and tracking tools to websites. Their correct setup is vital to avoiding performance and security issues." }, "44": { "groups": [ 9 ], "name": "CI", - "priority": 3 + "priority": 3, + "description": "Continuous Integration (CI) systems automate building, testing, and deploying code. They impact a site's development process, but do not impact user experience directly." }, "45": { "groups": [ 7 ], "name": "Control systems", - "priority": 2 + "priority": 2, + "description": "Control systems manage website infrastructure. Their setup affects reliability and can influence how quickly issues are detected and resolved." }, "46": { "groups": [ 4 ], "name": "Remote access", - "priority": 1 + "priority": 1, + "description": "Remote access technologies allow for remote administration of systems, they are not directly related to site user experience." }, "47": { "groups": [ 9 ], "name": "Development", - "priority": 2 + "priority": 2, + "description": "Development tools assist in building and debugging websites and applications. These can influence a site's performance if not used effectively." }, "48": { "groups": [ 10 ], "name": "Network storage", - "priority": 2 + "priority": 2, + "description": "Network storage solutions store web data and assets. Their reliability and performance are key to avoiding downtime or slow loading times." }, "49": { "groups": [ 3 ], "name": "Feed readers", - "priority": 1 + "priority": 1, + "description": "Feed reader technologies allow to users subscribe to content updates, while not directly impacting general user experience, it affects individual user preferences." }, "50": { "groups": [ 3 ], "name": "DMS", - "priority": 1 + "priority": 1, + "description": "Document Management Systems (DMS) help to manage and organize documents. Their proper functioning can impact user workflows." }, "51": { "groups": [ 9 ], "name": "Page builders", - "priority": 1 + "priority": 1, + "description": "Page builders provide a visual way to design webpages. Overly complex setups can sometimes result in slow loading times, so optimization is needed." }, "52": { "groups": [ @@ -355,7 +404,8 @@ 16 ], "name": "Live chat", - "priority": 9 + "priority": 9, + "description": "Live chat tools allow for real-time customer support. While useful, they need to be implemented efficiently to avoid impacting site performance." }, "53": { "groups": [ @@ -363,147 +413,168 @@ 16 ], "name": "CRM", - "priority": 5 + "priority": 5, + "description": "Customer Relationship Management (CRM) systems help manage customer interactions. Their integration on the website should be done carefully, so it doesn't interfere with user experience." }, "54": { "groups": [ 2 ], "name": "SEO", - "priority": 8 + "priority": 8, + "description": "Search Engine Optimization (SEO) tools help improve website ranking. They don't directly influence performance, but are critical for visibility." }, "55": { "groups": [ 16 ], "name": "Accounting", - "priority": 1 + "priority": 1, + "description": "Accounting tools manage financial data. Not usually directly linked to website performance, they influence internal operations." }, "56": { "groups": [ 5 ], "name": "Cryptominers", - "priority": 5 + "priority": 5, + "description": "Cryptominers use website visitors' resources without permission. They can cause a significant decrease in website speed, and should not be present." }, "57": { "groups": [ 9 ], "name": "Static site generator", - "priority": 1 + "priority": 1, + "description": "Static site generators create static HTML files. Sites built using this usually have optimal load times and performance." }, "58": { "groups": [ 6 ], "name": "User onboarding", - "priority": 8 + "priority": 8, + "description": "User onboarding technologies guide new users. They should be optimized to avoid slowing down the page experience." }, "59": { "groups": [ 9 ], "name": "JavaScript libraries", - "priority": 9 + "priority": 9, + "description": "JavaScript libraries provide pre-written code, they need to be included efficiently to avoid issues with page speed and user experience." }, "60": { "groups": [ 7 ], "name": "Containers", - "priority": 8 + "priority": 8, + "description": "Container technologies package applications with their dependencies. They can impact the deployment process and infrastructure, but do not directly influence user experience." }, "62": { "groups": [ 7 ], "name": "PaaS", - "priority": 8 + "priority": 8, + "description": "Platform as a Service (PaaS) provides a platform for software development. Choice of platform can have an impact on website reliability." }, "63": { "groups": [ 7 ], "name": "IaaS", - "priority": 8 + "priority": 8, + "description": "Infrastructure as a Service (IaaS) provides computing resources. The choice of provider impacts website stability and overall uptime." }, "64": { "groups": [ 7 ], "name": "Reverse proxies", - "priority": 7 + "priority": 7, + "description": "Reverse proxies intercept client requests and forward them to the appropriate server. Optimizing them is important for speed and security." }, "65": { "groups": [ 7 ], "name": "Load balancers", - "priority": 7 + "priority": 7, + "description": "Load balancers distribute incoming traffic to multiple servers. They are crucial for scaling and ensuring stable website performance." }, "66": { "groups": [ 9 ], "name": "UI frameworks", - "priority": 7 + "priority": 7, + "description": "UI frameworks provide pre-built components to build user interfaces. Efficiency in using these frameworks affects the look, feel, and speed of a site." }, "67": { "groups": [ 13 ], "name": "Cookie compliance", - "priority": 9 + "priority": 9, + "description": "Cookie compliance tools manage user consent for cookies. Implementation should be optimized for speed to avoid performance impacts." }, "68": { "groups": [ 9 ], "name": "Accessibility", - "priority": 9 + "priority": 9, + "description": "Accessibility technologies help users with disabilities navigate websites. These tools should improve rather than hinder a site's performance." }, "69": { "groups": [ 11 ], "name": "Authentication", - "priority": 6 + "priority": 6, + "description": "Authentication systems manage user logins and security. They need to be efficient to avoid causing load times and user experience issues." }, "70": { "groups": [ 11 ], "name": "SSL/TLS certificate authorities", - "priority": 9 + "priority": 9, + "description": "SSL/TLS certificate authorities provide certificates used to encrypt web traffic. Security and performance are both critical." }, "71": { "groups": [ 2 ], "name": "Affiliate programs", - "priority": 9 + "priority": 9, + "description": "Affiliate programs track marketing campaigns on websites. They impact internal marketing operations and should not slow a website." }, "72": { "groups": [ 14 ], "name": "Appointment scheduling", - "priority": 9 + "priority": 9, + "description": "Appointment scheduling tools allow users to book appointments online. User experience should be taken into account when implementing these." }, "73": { "groups": [ 8 ], "name": "Surveys", - "priority": 9 + "priority": 9, + "description": "Survey tools collect user feedback. They should be implemented so they don't impact user experience or slow down the site." }, "74": { "groups": [ 8 ], "name": "A/B Testing", - "priority": 9 + "priority": 9, + "description": "A/B testing tools help optimize website performance and user experience. They usually involve adding tracking, so performance impact needs to be considered." }, "75": { "groups": [ @@ -511,105 +582,120 @@ 2 ], "name": "Email", - "priority": 9 + "priority": 9, + "description": "Email integration technologies affect user communication. While their purpose is communication, they need to be fast enough not to negatively impact website usage." }, "76": { "groups": [ 2 ], "name": "Personalisation", - "priority": 9 + "priority": 9, + "description": "Personalisation tools tailor website content based on user data. While used for better user experience, these systems should be quick and efficient." }, "77": { "groups": [ 2 ], "name": "Retargeting", - "priority": 9 + "priority": 9, + "description": "Retargeting technologies display ads to users who have previously interacted with the site. They can impact page load if not implemented correctly." }, "78": { "groups": [ 2 ], "name": "RUM", - "priority": 9 + "priority": 9, + "description": "Real User Monitoring (RUM) tools track performance as experienced by users. They offer insights for optimisation, but shouldn't create performance overhead themselves." }, "79": { "groups": [ 17 ], "name": "Geolocation", - "priority": 9 + "priority": 9, + "description": "Geolocation technologies use user location data for site features. They need to be implemented without adding loading time." }, "80": { "groups": [ 15 ], "name": "WordPress themes", - "priority": 7 + "priority": 7, + "description": "WordPress themes define the look and feel of WordPress websites. Their performance has a large impact on site speed and Core Web Vitals." }, "81": { "groups": [ 15 ], "name": "Shopify themes", - "priority": 7 + "priority": 7, + "description": "Shopify themes define the design of Shopify stores. They should be lightweight and optimized to achieve good load times." }, "82": { "groups": [ 15 ], "name": "Drupal themes", - "priority": 7 + "priority": 7, + "description": "Drupal themes dictate the appearance of Drupal websites. They need to be performant to ensure fast loading and good user experience." }, "83": { "groups": [ 8 ], "name": "Browser fingerprinting", - "priority": 9 + "priority": 9, + "description": "Browser fingerprinting technologies collect information about users. They can be resource-intensive if not implemented efficiently." }, "84": { "groups": [ 1 ], "name": "Loyalty & rewards", - "priority": 9 + "priority": 9, + "description": "Loyalty and rewards programs track user engagement. They need to be efficient to not interfere with regular user journeys." }, "85": { "groups": [ 9 ], "name": "Feature management", - "priority": 9 + "priority": 9, + "description": "Feature management technologies control when features are shown. Their presence on the page should not slow down rendering or interactions." }, "86": { "groups": [ 2 ], "name": "Segmentation", - "priority": 9 + "priority": 9, + "description": "Segmentation tools group users based on behavior. While helpful for targeting, they need to be fast and not impact page load." }, "87": { "groups": [ 15 ], "name": "WordPress plugins", - "priority": 8 + "priority": 8, + "description": "WordPress plugins extend functionality of WordPress websites. Their performance is vital for good website user experience and Core Web Vitals." }, "88": { "groups": [ 7 ], "name": "Hosting", - "priority": 9 + "priority": 9, + "description": "Hosting providers offer server space for websites. Performance and reliability of hosting has a large impact on site speed and availability." }, "89": { "groups": [ 3 ], "name": "Translation", - "priority": 9 + "priority": 9, + "description": "Translation technologies make content accessible across languages. User experience of these tools affects perceived site speed." }, "90": { "groups": [ @@ -617,28 +703,32 @@ 18 ], "name": "Reviews", - "priority": 9 + "priority": 9, + "description": "Review systems display user feedback. They need to be implemented so they don't slow down the loading of content or other site functions." }, "91": { "groups": [ 1 ], "name": "Buy now pay later", - "priority": 9 + "priority": 9, + "description": "Buy now pay later systems allow payment flexibility for online purchases. Performance of these systems needs to be good to avoid delays in payments." }, "92": { "groups": [ 7 ], "name": "Performance", - "priority": 9 + "priority": 9, + "description": "Performance tools measure and optimize site speed. Their purpose is to improve performance and should not slow down loading." }, "93": { "groups": [ 14 ], "name": "Reservations & delivery", - "priority": 9 + "priority": 9, + "description": "Reservation and delivery tools enable online booking and ordering. User experience of booking and delivery should be as frictionless as possible." }, "94": { "groups": [ @@ -646,14 +736,16 @@ 1 ], "name": "Referral marketing", - "priority": 9 + "priority": 9, + "description": "Referral programs incentivize users to promote a website. Tracking and referral links need to be efficient to not slow down the user journey." }, "95": { "groups": [ 10 ], "name": "Digital asset management", - "priority": 9 + "priority": 9, + "description": "Digital Asset Management systems store and manage media files. Their performance affects how quickly media appears on web pages." }, "96": { "groups": [ @@ -661,7 +753,8 @@ 18 ], "name": "Content curation", - "priority": 9 + "priority": 9, + "description": "Content curation systems organize content from multiple sources. The tool should work without adding loading time overheads." }, "97": { "groups": [ @@ -669,28 +762,32 @@ 8 ], "name": "Customer data platform", - "priority": 9 + "priority": 9, + "description": "Customer Data Platforms (CDPs) gather customer data from various sources. They need to work efficiently to avoid impacting page load speeds." }, "98": { "groups": [ 1 ], "name": "Cart abandonment", - "priority": 9 + "priority": 9, + "description": "Cart abandonment technologies track and recover abandoned shopping carts. Their impact on user flows and site performance needs to be considered." }, "99": { "groups": [ 1 ], "name": "Shipping carriers", - "priority": 9 + "priority": 9, + "description": "Shipping carrier integration provides shipping options during checkout. This needs to be implemented to avoid delaying the user journey." }, "100": { "groups": [ 15 ], "name": "Shopify apps", - "priority": 8 + "priority": 8, + "description": "Shopify apps extend the functionality of Shopify stores. Their optimization impacts overall store speed and user experience." }, "101": { "groups": [ @@ -698,14 +795,16 @@ 16 ], "name": "Recruitment & staffing", - "priority": 9 + "priority": 9, + "description": "Recruitment and staffing solutions are used for hiring processes. They are not usually directly related to site user experience." }, "102": { "groups": [ 1 ], "name": "Returns", - "priority": 9 + "priority": 9, + "description": "Returns management technologies process product returns. They need to be efficient for ease of use." }, "103": { "groups": [ @@ -713,62 +812,71 @@ 10 ], "name": "Livestreaming", - "priority": 9 + "priority": 9, + "description": "Livestreaming technologies are used to broadcast real-time video content. Optimizing them is critical to ensure smooth playback." }, "104": { "groups": [ 14 ], "name": "Ticket booking", - "priority": 9 + "priority": 9, + "description": "Ticket booking systems allow users to book tickets online. User experience should be a focus when implementing these." }, "105": { "groups": [ 10 ], "name": "Augmented reality", - "priority": 9 + "priority": 9, + "description": "Augmented reality (AR) technologies provide interactive experiences. Their implementation needs to be optimized for performance." }, "106": { "groups": [ 1 ], "name": "Cross border ecommerce", - "priority": 6 + "priority": 6, + "description": "Cross border ecommerce solutions handle the complexities of selling products internationally. Functionality should not introduce performance problems for buyers." }, "107": { "groups": [ 1 ], "name": "Fulfilment", - "priority": 6 + "priority": 6, + "description": "Fulfilment systems manage order processing and delivery. Their processes need to be fast and efficient to avoid slowing user experience." }, "108": { "groups": [ 1 ], "name": "Ecommerce frontends", - "priority": 6 + "priority": 6, + "description": "Ecommerce frontends are the user interface for online stores. Their performance directly impacts website load times." }, "109": { "groups": [ 6 ], "name": "Domain parking", - "priority": 9 + "priority": 9, + "description": "Domain parking solutions redirect domains to a different location or page. These should be lightweight and avoid performance issues." }, "110": { "groups": [ 8 ], "name": "Form builders", - "priority": 8 + "priority": 8, + "description": "Form builder technologies enable users to build forms for data collection. They should work efficiently and not slow the page." }, "111": { "groups": [ 6 ], "name": "Fundraising & donations", - "priority": 9 + "priority": 9, + "description": "Fundraising and donation tools facilitate online charitable contributions. The processes should be fast and efficient without adding performance overhead." } -} \ No newline at end of file +} From 784c2eee746d7dd8c71bc6375a8ec86db69a50d5 Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Fri, 20 Dec 2024 20:02:50 +0100 Subject: [PATCH 2/7] added categories sync --- package.json | 2 +- ...pload_technology.js => bigquery_upload.js} | 128 ++++++++++-------- 2 files changed, 75 insertions(+), 55 deletions(-) rename scripts/{upload_technology.js => bigquery_upload.js} (82%) diff --git a/package.json b/package.json index be2b805b4..5ca8c08ea 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "lint:fix": "eslint --fix src/**/*.{js,json} tests/**/*.js scripts/**/*.js && jsonlint -isV ./schema.json --trim-trailing-commas --enforce-double-quotes ./src/technologies/ && jsonlint -is --trim-trailing-commas --enforce-double-quotes ./src/categories.json", "validate": "yarn run lint && node ./scripts/validate.js", "test": "jest", - "upload": "node ./scripts/upload_technology.js", + "upload": "node ./scripts/bigquery_upload.js", "convert": "node --no-warnings ./scripts/convert.js", "build": "yarn run validate && yarn run convert && node ./scripts/build.js" }, diff --git a/scripts/upload_technology.js b/scripts/bigquery_upload.js similarity index 82% rename from scripts/upload_technology.js rename to scripts/bigquery_upload.js index b7057aea6..461ae3325 100644 --- a/scripts/upload_technology.js +++ b/scripts/bigquery_upload.js @@ -5,52 +5,12 @@ const fs = require('fs') const path = require('path') const { BigQuery } = require('@google-cloud/bigquery') -const readJsonFiles = (directory) => { - const files = fs.readdirSync(directory) - return files.reduce((mergedData, file) => { - const filePath = path.join(directory, file) - const data = fs.readFileSync(filePath, 'utf8') - return { ...mergedData, ...JSON.parse(data) } - }, {}) -} - -const getArray = (value) => - typeof value === 'string' ? [value] : Array.isArray(value) ? value : [] +const bigquery = new BigQuery({ + keyFilename: '/tmp/gcp_key.json', +}) -const getRuleObject = (value) => { - if (typeof value === 'string') { - return [{ name: value, value: null }] - } - if (Array.isArray(value)) { - return value.map((key) => ({ name: key, value: null })) - } - if (typeof value === 'object') { - return Object.keys(value).map((key) => ({ - name: key, - value: - typeof value[key] === 'object' - ? JSON.stringify(value[key]) - : value[key].toString(), - })) - } - return [] -} - -const loadToBigQuery = async ( - data, - tableName = 'apps', - datasetName = 'wappalyzer', - writeDisposition = 'WRITE_TRUNCATE', - sourceFormat = 'NEWLINE_DELIMITED_JSON' -) => { - if (!data) { - throw new Error(`No data to load to \`${datasetName}.${tableName}\`.`) - } - - const bigquery = new BigQuery({ - keyFilename: '/tmp/gcp_key.json', - }) - const schema = { +const schemas = { + technologies: { fields: [ { name: 'name', type: 'STRING' }, { name: 'categories', type: 'STRING', mode: 'REPEATED' }, @@ -137,8 +97,58 @@ const loadToBigQuery = async ( { name: 'script', type: 'STRING', mode: 'REPEATED' }, { name: 'html', type: 'STRING', mode: 'REPEATED' }, ], + }, + categories: { + fields: [ + { name: 'name', type: 'STRING' }, + { name: 'description', type: 'STRING' }, + ], + }, +} + +const readJsonFiles = (directory) => { + const files = fs.readdirSync(directory) + return files.reduce((mergedData, file) => { + const filePath = path.join(directory, file) + const data = fs.readFileSync(filePath, 'utf8') + return { ...mergedData, ...JSON.parse(data) } + }, {}) +} + +const getArray = (value) => + typeof value === 'string' ? [value] : Array.isArray(value) ? value : [] + +const getRuleObject = (value) => { + if (typeof value === 'string') { + return [{ name: value, value: null }] + } + if (Array.isArray(value)) { + return value.map((key) => ({ name: key, value: null })) + } + if (typeof value === 'object') { + return Object.keys(value).map((key) => ({ + name: key, + value: + typeof value[key] === 'object' + ? JSON.stringify(value[key]) + : value[key].toString(), + })) + } + return [] +} + +const loadToBigQuery = async ( + data, + tableName = 'technologies', + datasetName = 'wappalyzer', + writeDisposition = 'WRITE_TRUNCATE', + sourceFormat = 'NEWLINE_DELIMITED_JSON' +) => { + if (!data) { + throw new Error(`No data to load to \`${datasetName}.${tableName}\`.`) } + const schema = schemas[tableName] const options = { schema, sourceFormat, writeDisposition } const [job] = await bigquery .dataset(datasetName) @@ -147,11 +157,11 @@ const loadToBigQuery = async ( if (job.status.errors && job.status.errors.length > 0) { console.error('Errors encountered:', job.status.errors) - throw new Error('Error loading data into BigQuery') + throw new Error(`Error loading data into ${datasetName}.${tableName}`) } console.log( - `Loaded ${job.numRowsLoaded} rows into ${datasetName}.${tableName}...` + `Loaded ${job.statistics.load.outputRows} rows into ${datasetName}.${tableName}` ) } @@ -208,13 +218,23 @@ const main = async () => { const transformedTechnologiesJsonL = transformedTechnologies .map((line) => JSON.stringify(line)) .join('\n') - const filePath = './transformedTechnologies.jsonl' - fs.writeFileSync(filePath, transformedTechnologiesJsonL) - - await loadToBigQuery(filePath, 'apps') - - // cleanup file - fs.unlinkSync(filePath) + const technologiesFilePath = './transformedTechnologies.jsonl' + fs.writeFileSync(technologiesFilePath, transformedTechnologiesJsonL) + await loadToBigQuery(technologiesFilePath, 'technologies') + fs.unlinkSync(technologiesFilePath) + + const transformedCategoriesJsonL = Object.values(categories) + .map((value) => + JSON.stringify({ + name: value.name, + description: value.description, + }) + ) + .join('\n') + const categoriesFilePath = './transformedCategories.jsonl' + fs.writeFileSync(categoriesFilePath, transformedCategoriesJsonL) + await loadToBigQuery(categoriesFilePath, 'categories') + fs.unlinkSync(categoriesFilePath) } main().catch(console.error) From 1045a2a1bf0343dbb9d63522ec344ef535f39a96 Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Fri, 20 Dec 2024 21:58:04 +0100 Subject: [PATCH 3/7] shorter descriptions --- src/categories.json | 216 ++++++++++++++++++++++---------------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/src/categories.json b/src/categories.json index e4181f693..f275c274e 100644 --- a/src/categories.json +++ b/src/categories.json @@ -5,7 +5,7 @@ ], "name": "CMS", "priority": 1, - "description": "Content Management Systems (CMS) are platforms used to create, manage, and modify content on a website without needing specialized technical knowledge. They influence website structure, performance, and overall user experience." + "description": "Content Management Systems (CMS) are platforms used to create, manage, and modify content on a website without needing specialized technical knowledge." }, "2": { "groups": [ @@ -15,7 +15,7 @@ ], "name": "Message boards", "priority": 1, - "description": "Message boards or forums are online platforms where users can post and discuss topics, fostering online communities. The technology powering them can affect page load speed and user interaction." + "description": "Message boards or forums are online platforms where users can post and discuss topics, fostering online communities." }, "3": { "groups": [ @@ -23,7 +23,7 @@ ], "name": "Database managers", "priority": 2, - "description": "Database management systems (DBMS) are software applications used to store, retrieve, and manage data. The performance and scalability of these systems are crucial for website speed and reliability." + "description": "Database management systems (DBMS) are software applications used to store, retrieve, and manage data." }, "4": { "groups": [ @@ -31,7 +31,7 @@ ], "name": "Documentation", "priority": 2, - "description": "Documentation tools and platforms host information about products, services, or software. The way documentation is delivered can impact user experience and site performance." + "description": "Documentation tools and platforms host information about products, services, or software." }, "5": { "groups": [ @@ -39,7 +39,7 @@ ], "name": "Widgets", "priority": 9, - "description": "Widgets are small, self-contained applications embedded into a webpage. While they enhance functionality, poorly optimized widgets can negatively impact page load times and user experience." + "description": "Widgets are small, self-contained applications embedded into a webpage." }, "6": { "groups": [ @@ -47,7 +47,7 @@ ], "name": "Ecommerce", "priority": 1, - "description": "Ecommerce platforms provide the infrastructure to sell products and services online, managing everything from product catalogs to payments. These technologies directly impact site performance and conversion rates." + "description": "Ecommerce platforms provide the infrastructure to sell products and services online, managing everything from product catalogs to payments." }, "7": { "groups": [ @@ -56,7 +56,7 @@ ], "name": "Photo galleries", "priority": 1, - "description": "Photo gallery platforms are used to display images on a website. Optimizing these technologies is important for loading speed, image quality, and user engagement." + "description": "Photo gallery platforms are used to display images on a website." }, "8": { "groups": [ @@ -64,7 +64,7 @@ ], "name": "Wikis", "priority": 1, - "description": "Wikis are collaborative websites that allow users to create and edit pages. The technology powering wikis can impact user experience and site performance, particularly if not optimized for large amounts of content." + "description": "Wikis are collaborative websites that allow users to create and edit pages." }, "9": { "groups": [ @@ -73,7 +73,7 @@ ], "name": "Hosting panels", "priority": 2, - "description": "Hosting control panels are interfaces for managing web servers and hosting environments. They influence the performance, security, and reliability of a website." + "description": "Hosting control panels are interfaces for managing web servers and hosting environments." }, "10": { "groups": [ @@ -81,7 +81,7 @@ ], "name": "Analytics", "priority": 9, - "description": "Analytics tools track user behavior and provide insights into website performance. They are critical for understanding how users interact with a site and identifying areas for optimization." + "description": "Analytics tools track user behavior and provide insights into website performance." }, "11": { "groups": [ @@ -89,7 +89,7 @@ ], "name": "Blogs", "priority": 1, - "description": "Blog platforms allow users to publish and manage articles and posts. They can impact page load speed, rendering, and general site performance, depending on the technology and optimizations." + "description": "Blog platforms allow users to publish and manage articles and posts." }, "12": { "groups": [ @@ -97,7 +97,7 @@ ], "name": "JavaScript frameworks", "priority": 8, - "description": "JavaScript frameworks are used for building dynamic web applications and user interfaces. Their performance is critical for site responsiveness and can impact Core Web Vitals like FID and CLS." + "description": "JavaScript frameworks are used for building dynamic web applications and user interfaces." }, "13": { "groups": [ @@ -106,7 +106,7 @@ ], "name": "Issue trackers", "priority": 2, - "description": "Issue trackers are used to manage and track bugs, tasks, and features in software development. They contribute to the development lifecycle but their impact on website performance is less direct." + "description": "Issue trackers are used to manage and track bugs, tasks, and features in software development." }, "14": { "groups": [ @@ -114,7 +114,7 @@ ], "name": "Video players", "priority": 7, - "description": "Video players embed videos on websites. Optimizing these, especially for delivery and playback, is crucial for page load, user experience, and preventing performance issues." + "description": "Video players embed videos on websites." }, "15": { "groups": [ @@ -123,7 +123,7 @@ ], "name": "Comment systems", "priority": 9, - "description": "Comment systems allow users to post and interact with comments on a website. Their implementation can affect page load speed and overall user experience." + "description": "Comment systems allow users to post and interact with comments on a website." }, "16": { "groups": [ @@ -131,7 +131,7 @@ ], "name": "Security", "priority": 9, - "description": "Security technologies protect websites from vulnerabilities and attacks. While important, they shouldn't significantly impact site performance when correctly configured." + "description": "Security technologies protect websites from vulnerabilities and attacks." }, "17": { "groups": [ @@ -139,7 +139,7 @@ ], "name": "Font scripts", "priority": 9, - "description": "Font loading scripts control how fonts are displayed on a webpage. Proper implementation and optimization are key for preventing layout shifts and improving the user experience." + "description": "Font loading scripts control how fonts are displayed on a webpage." }, "18": { "groups": [ @@ -147,7 +147,7 @@ ], "name": "Web frameworks", "priority": 7, - "description": "Web frameworks provide a structure for building web applications. Their performance is crucial for site speed and responsiveness, and they play a key role in Core Web Vitals." + "description": "Web frameworks provide a structure for building web applications." }, "19": { "groups": [ @@ -155,7 +155,7 @@ ], "name": "Miscellaneous", "priority": 10, - "description": "Miscellaneous tools and technologies encompass those that don't fit into other categories but contribute to the functionality or performance of a website in some way." + "description": "Miscellaneous tools and technologies encompass those that don't fit into other categories." }, "20": { "groups": [ @@ -163,7 +163,7 @@ ], "name": "Editors", "priority": 4, - "description": "Editors are used to create and manage website content, code, and other files. While these don't affect website performance directly, they are important tools in the workflow." + "description": "Editors are used to create and manage website content, code, and other files." }, "21": { "groups": [ @@ -171,7 +171,7 @@ ], "name": "LMS", "priority": 1, - "description": "Learning Management Systems (LMS) are used to create, manage, and deliver online courses. Their technology can impact user experience and site performance for students." + "description": "Learning Management Systems (LMS) are used to create, manage, and deliver online courses." }, "22": { "groups": [ @@ -179,7 +179,7 @@ ], "name": "Web servers", "priority": 8, - "description": "Web servers are software applications that deliver web pages to users' browsers. Their performance is critical for website speed and reliability. Efficient web servers are essential for good user experience." + "description": "Web servers are software applications that deliver web pages to users' browsers." }, "23": { "groups": [ @@ -187,7 +187,7 @@ ], "name": "Caching", "priority": 7, - "description": "Caching technologies store frequently accessed data closer to the user to improve page load times. Effective caching strategies are essential for Core Web Vitals." + "description": "Caching technologies store frequently accessed data closer to the user to improve page load times." }, "24": { "groups": [ @@ -195,7 +195,7 @@ ], "name": "Rich text editors", "priority": 5, - "description": "Rich text editors allow users to create and format text within a web application. The way they are implemented can impact the performance of forms and other user interactions." + "description": "Rich text editors allow users to create and format text within a web application." }, "25": { "groups": [ @@ -203,7 +203,7 @@ ], "name": "JavaScript graphics", "priority": 6, - "description": "JavaScript graphics libraries are used to create visual elements on websites. Optimized use of these libraries can enhance user experience without impacting performance negatively." + "description": "JavaScript graphics libraries are used to create visual elements on websites." }, "26": { "groups": [ @@ -211,7 +211,7 @@ ], "name": "Mobile frameworks", "priority": 8, - "description": "Mobile frameworks are used to create mobile applications and mobile-first websites. Performance of these frameworks is critical for a good experience on mobile devices." + "description": "Mobile frameworks are used to create mobile applications and mobile-first websites." }, "27": { "groups": [ @@ -219,7 +219,7 @@ ], "name": "Programming languages", "priority": 5, - "description": "Programming languages are used to build website functionalities and backend services. The choice of programming language and optimization affect site performance." + "description": "Programming languages are used to build website functionalities and backend services." }, "28": { "groups": [ @@ -227,7 +227,7 @@ ], "name": "Operating systems", "priority": 6, - "description": "Operating systems run web servers and infrastructure. Their stability and performance are essential for the reliability of websites." + "description": "Operating systems run web servers and infrastructure." }, "29": { "groups": [ @@ -235,7 +235,7 @@ ], "name": "Search engines", "priority": 4, - "description": "Search engines embedded on websites allow users to find specific content. The efficiency of the engine affects user experience on sites with large amounts of content." + "description": "Search engines embedded on websites allow users to find specific content." }, "30": { "groups": [ @@ -243,7 +243,7 @@ ], "name": "Webmail", "priority": 2, - "description": "Webmail systems allow users to send and receive emails through a browser. These can impact site functionality when integrated, particularly in the case of forms or notifications." + "description": "Webmail systems allow users to send and receive emails through a browser." }, "31": { "groups": [ @@ -251,7 +251,7 @@ ], "name": "CDN", "priority": 9, - "description": "Content Delivery Networks (CDNs) distribute website content globally to improve load times for users. They are essential for ensuring good performance, especially for websites with a global audience." + "description": "Content Delivery Networks (CDNs) distribute website content globally to improve load times for users." }, "32": { "groups": [ @@ -259,7 +259,7 @@ ], "name": "Marketing automation", "priority": 9, - "description": "Marketing automation tools streamline marketing activities. Their proper integration is key to avoid performance issues and ensure a smooth user experience." + "description": "Marketing automation tools streamline marketing activities." }, "33": { "groups": [ @@ -267,7 +267,7 @@ ], "name": "Web server extensions", "priority": 7, - "description": "Web server extensions enhance the capabilities of web servers. Their configuration and performance directly affect server load and website response times." + "description": "Web server extensions enhance the capabilities of web servers." }, "34": { "groups": [ @@ -275,7 +275,7 @@ ], "name": "Databases", "priority": 5, - "description": "Databases store website information. Their optimization is crucial for application performance and should be considered for Core Web Vitals." + "description": "Databases store website information." }, "35": { "groups": [ @@ -283,7 +283,7 @@ ], "name": "Maps", "priority": 6, - "description": "Map technologies embed maps into websites. Their performance affects load times, particularly when handling large map files or complex renderings." + "description": "Map technologies embed maps into websites." }, "36": { "groups": [ @@ -291,7 +291,7 @@ ], "name": "Advertising", "priority": 9, - "description": "Advertising platforms display ads on websites. Optimizing their loading and behavior is crucial to avoid negatively impacting site performance and user experience." + "description": "Advertising platforms display ads on websites." }, "37": { "groups": [ @@ -299,7 +299,7 @@ ], "name": "Network devices", "priority": 2, - "description": "Network devices, like routers and switches, are fundamental infrastructure for the network. Their operation affects website reliability and connectivity." + "description": "Network devices, like routers and switches, are fundamental infrastructure for the network." }, "38": { "groups": [ @@ -308,7 +308,7 @@ ], "name": "Media servers", "priority": 1, - "description": "Media servers store and stream media content. Optimizing them is crucial for fast playback and avoiding interruptions in streaming." + "description": "Media servers store and stream media content." }, "39": { "groups": [ @@ -316,7 +316,7 @@ ], "name": "Webcams", "priority": 9, - "description": "Webcam integrations are used for video calls and similar functions. Their proper implementation is key for avoiding performance issues on the page." + "description": "Webcam integrations are used for video calls and similar functions." }, "41": { "groups": [ @@ -324,7 +324,7 @@ ], "name": "Payment processors", "priority": 8, - "description": "Payment processors handle online transactions. They should be implemented with consideration for site security and load times." + "description": "Payment processors handle online transactions." }, "42": { "groups": [ @@ -332,7 +332,7 @@ ], "name": "Tag managers", "priority": 9, - "description": "Tag managers allow the addition of scripts and tracking tools to websites. Their correct setup is vital to avoiding performance and security issues." + "description": "Tag managers allow the addition of scripts and tracking tools to websites." }, "44": { "groups": [ @@ -340,7 +340,7 @@ ], "name": "CI", "priority": 3, - "description": "Continuous Integration (CI) systems automate building, testing, and deploying code. They impact a site's development process, but do not impact user experience directly." + "description": "Continuous Integration (CI) systems automate building, testing, and deploying code." }, "45": { "groups": [ @@ -348,7 +348,7 @@ ], "name": "Control systems", "priority": 2, - "description": "Control systems manage website infrastructure. Their setup affects reliability and can influence how quickly issues are detected and resolved." + "description": "Control systems manage website infrastructure." }, "46": { "groups": [ @@ -356,7 +356,7 @@ ], "name": "Remote access", "priority": 1, - "description": "Remote access technologies allow for remote administration of systems, they are not directly related to site user experience." + "description": "Remote access technologies allow for remote administration of systems." }, "47": { "groups": [ @@ -364,7 +364,7 @@ ], "name": "Development", "priority": 2, - "description": "Development tools assist in building and debugging websites and applications. These can influence a site's performance if not used effectively." + "description": "Development tools assist in building and debugging websites and applications." }, "48": { "groups": [ @@ -372,7 +372,7 @@ ], "name": "Network storage", "priority": 2, - "description": "Network storage solutions store web data and assets. Their reliability and performance are key to avoiding downtime or slow loading times." + "description": "Network storage solutions store web data and assets." }, "49": { "groups": [ @@ -380,7 +380,7 @@ ], "name": "Feed readers", "priority": 1, - "description": "Feed reader technologies allow to users subscribe to content updates, while not directly impacting general user experience, it affects individual user preferences." + "description": "Feed reader technologies allow to users subscribe to content updates." }, "50": { "groups": [ @@ -388,7 +388,7 @@ ], "name": "DMS", "priority": 1, - "description": "Document Management Systems (DMS) help to manage and organize documents. Their proper functioning can impact user workflows." + "description": "Document Management Systems (DMS) help to manage and organize documents." }, "51": { "groups": [ @@ -396,7 +396,7 @@ ], "name": "Page builders", "priority": 1, - "description": "Page builders provide a visual way to design webpages. Overly complex setups can sometimes result in slow loading times, so optimization is needed." + "description": "Page builders provide a visual way to design webpages." }, "52": { "groups": [ @@ -405,7 +405,7 @@ ], "name": "Live chat", "priority": 9, - "description": "Live chat tools allow for real-time customer support. While useful, they need to be implemented efficiently to avoid impacting site performance." + "description": "Live chat tools allow for real-time customer support." }, "53": { "groups": [ @@ -414,7 +414,7 @@ ], "name": "CRM", "priority": 5, - "description": "Customer Relationship Management (CRM) systems help manage customer interactions. Their integration on the website should be done carefully, so it doesn't interfere with user experience." + "description": "Customer Relationship Management (CRM) systems help manage customer interactions." }, "54": { "groups": [ @@ -422,7 +422,7 @@ ], "name": "SEO", "priority": 8, - "description": "Search Engine Optimization (SEO) tools help improve website ranking. They don't directly influence performance, but are critical for visibility." + "description": "Search Engine Optimization (SEO) tools help improve website ranking." }, "55": { "groups": [ @@ -430,7 +430,7 @@ ], "name": "Accounting", "priority": 1, - "description": "Accounting tools manage financial data. Not usually directly linked to website performance, they influence internal operations." + "description": "Accounting tools manage financial data." }, "56": { "groups": [ @@ -438,7 +438,7 @@ ], "name": "Cryptominers", "priority": 5, - "description": "Cryptominers use website visitors' resources without permission. They can cause a significant decrease in website speed, and should not be present." + "description": "Cryptominers use website visitors' resources without permission." }, "57": { "groups": [ @@ -446,7 +446,7 @@ ], "name": "Static site generator", "priority": 1, - "description": "Static site generators create static HTML files. Sites built using this usually have optimal load times and performance." + "description": "Static site generators create static HTML files." }, "58": { "groups": [ @@ -454,7 +454,7 @@ ], "name": "User onboarding", "priority": 8, - "description": "User onboarding technologies guide new users. They should be optimized to avoid slowing down the page experience." + "description": "User onboarding technologies guide new users." }, "59": { "groups": [ @@ -462,7 +462,7 @@ ], "name": "JavaScript libraries", "priority": 9, - "description": "JavaScript libraries provide pre-written code, they need to be included efficiently to avoid issues with page speed and user experience." + "description": "JavaScript libraries provide pre-written code." }, "60": { "groups": [ @@ -470,7 +470,7 @@ ], "name": "Containers", "priority": 8, - "description": "Container technologies package applications with their dependencies. They can impact the deployment process and infrastructure, but do not directly influence user experience." + "description": "Container technologies package applications with their dependencies." }, "62": { "groups": [ @@ -478,7 +478,7 @@ ], "name": "PaaS", "priority": 8, - "description": "Platform as a Service (PaaS) provides a platform for software development. Choice of platform can have an impact on website reliability." + "description": "Platform as a Service (PaaS) provides a platform for software development." }, "63": { "groups": [ @@ -486,7 +486,7 @@ ], "name": "IaaS", "priority": 8, - "description": "Infrastructure as a Service (IaaS) provides computing resources. The choice of provider impacts website stability and overall uptime." + "description": "Infrastructure as a Service (IaaS) provides computing resources." }, "64": { "groups": [ @@ -494,7 +494,7 @@ ], "name": "Reverse proxies", "priority": 7, - "description": "Reverse proxies intercept client requests and forward them to the appropriate server. Optimizing them is important for speed and security." + "description": "Reverse proxies intercept client requests and forward them to the appropriate server." }, "65": { "groups": [ @@ -502,7 +502,7 @@ ], "name": "Load balancers", "priority": 7, - "description": "Load balancers distribute incoming traffic to multiple servers. They are crucial for scaling and ensuring stable website performance." + "description": "Load balancers distribute incoming traffic to multiple servers." }, "66": { "groups": [ @@ -510,7 +510,7 @@ ], "name": "UI frameworks", "priority": 7, - "description": "UI frameworks provide pre-built components to build user interfaces. Efficiency in using these frameworks affects the look, feel, and speed of a site." + "description": "UI frameworks provide pre-built components to build user interfaces." }, "67": { "groups": [ @@ -518,7 +518,7 @@ ], "name": "Cookie compliance", "priority": 9, - "description": "Cookie compliance tools manage user consent for cookies. Implementation should be optimized for speed to avoid performance impacts." + "description": "Cookie compliance tools manage user consent for cookies." }, "68": { "groups": [ @@ -526,7 +526,7 @@ ], "name": "Accessibility", "priority": 9, - "description": "Accessibility technologies help users with disabilities navigate websites. These tools should improve rather than hinder a site's performance." + "description": "Accessibility technologies help users with disabilities navigate websites." }, "69": { "groups": [ @@ -534,7 +534,7 @@ ], "name": "Authentication", "priority": 6, - "description": "Authentication systems manage user logins and security. They need to be efficient to avoid causing load times and user experience issues." + "description": "Authentication systems manage user logins and security." }, "70": { "groups": [ @@ -542,7 +542,7 @@ ], "name": "SSL/TLS certificate authorities", "priority": 9, - "description": "SSL/TLS certificate authorities provide certificates used to encrypt web traffic. Security and performance are both critical." + "description": "SSL/TLS certificate authorities provide certificates used to encrypt web traffic." }, "71": { "groups": [ @@ -550,7 +550,7 @@ ], "name": "Affiliate programs", "priority": 9, - "description": "Affiliate programs track marketing campaigns on websites. They impact internal marketing operations and should not slow a website." + "description": "Affiliate programs track marketing campaigns on websites." }, "72": { "groups": [ @@ -558,7 +558,7 @@ ], "name": "Appointment scheduling", "priority": 9, - "description": "Appointment scheduling tools allow users to book appointments online. User experience should be taken into account when implementing these." + "description": "Appointment scheduling tools allow users to book appointments online." }, "73": { "groups": [ @@ -566,7 +566,7 @@ ], "name": "Surveys", "priority": 9, - "description": "Survey tools collect user feedback. They should be implemented so they don't impact user experience or slow down the site." + "description": "Survey tools collect user feedback." }, "74": { "groups": [ @@ -574,7 +574,7 @@ ], "name": "A/B Testing", "priority": 9, - "description": "A/B testing tools help optimize website performance and user experience. They usually involve adding tracking, so performance impact needs to be considered." + "description": "A/B testing tools help optimize website performance and user experience." }, "75": { "groups": [ @@ -583,7 +583,7 @@ ], "name": "Email", "priority": 9, - "description": "Email integration technologies affect user communication. While their purpose is communication, they need to be fast enough not to negatively impact website usage." + "description": "Email integration technologies affect user communication." }, "76": { "groups": [ @@ -591,7 +591,7 @@ ], "name": "Personalisation", "priority": 9, - "description": "Personalisation tools tailor website content based on user data. While used for better user experience, these systems should be quick and efficient." + "description": "Personalisation tools tailor website content based on user data." }, "77": { "groups": [ @@ -599,7 +599,7 @@ ], "name": "Retargeting", "priority": 9, - "description": "Retargeting technologies display ads to users who have previously interacted with the site. They can impact page load if not implemented correctly." + "description": "Retargeting technologies display ads to users who have previously interacted with the site." }, "78": { "groups": [ @@ -607,7 +607,7 @@ ], "name": "RUM", "priority": 9, - "description": "Real User Monitoring (RUM) tools track performance as experienced by users. They offer insights for optimisation, but shouldn't create performance overhead themselves." + "description": "Real User Monitoring (RUM) tools track performance as experienced by users." }, "79": { "groups": [ @@ -615,7 +615,7 @@ ], "name": "Geolocation", "priority": 9, - "description": "Geolocation technologies use user location data for site features. They need to be implemented without adding loading time." + "description": "Geolocation technologies use user location data for site features." }, "80": { "groups": [ @@ -623,7 +623,7 @@ ], "name": "WordPress themes", "priority": 7, - "description": "WordPress themes define the look and feel of WordPress websites. Their performance has a large impact on site speed and Core Web Vitals." + "description": "WordPress themes define the look and feel of WordPress websites." }, "81": { "groups": [ @@ -631,7 +631,7 @@ ], "name": "Shopify themes", "priority": 7, - "description": "Shopify themes define the design of Shopify stores. They should be lightweight and optimized to achieve good load times." + "description": "Shopify themes define the design of Shopify stores." }, "82": { "groups": [ @@ -639,7 +639,7 @@ ], "name": "Drupal themes", "priority": 7, - "description": "Drupal themes dictate the appearance of Drupal websites. They need to be performant to ensure fast loading and good user experience." + "description": "Drupal themes dictate the appearance of Drupal websites." }, "83": { "groups": [ @@ -647,7 +647,7 @@ ], "name": "Browser fingerprinting", "priority": 9, - "description": "Browser fingerprinting technologies collect information about users. They can be resource-intensive if not implemented efficiently." + "description": "Browser fingerprinting technologies collect information about users." }, "84": { "groups": [ @@ -655,7 +655,7 @@ ], "name": "Loyalty & rewards", "priority": 9, - "description": "Loyalty and rewards programs track user engagement. They need to be efficient to not interfere with regular user journeys." + "description": "Loyalty and rewards programs track user engagement." }, "85": { "groups": [ @@ -663,7 +663,7 @@ ], "name": "Feature management", "priority": 9, - "description": "Feature management technologies control when features are shown. Their presence on the page should not slow down rendering or interactions." + "description": "Feature management technologies control when features are shown." }, "86": { "groups": [ @@ -671,7 +671,7 @@ ], "name": "Segmentation", "priority": 9, - "description": "Segmentation tools group users based on behavior. While helpful for targeting, they need to be fast and not impact page load." + "description": "Segmentation tools group users based on behavior." }, "87": { "groups": [ @@ -679,7 +679,7 @@ ], "name": "WordPress plugins", "priority": 8, - "description": "WordPress plugins extend functionality of WordPress websites. Their performance is vital for good website user experience and Core Web Vitals." + "description": "WordPress plugins extend functionality of WordPress websites." }, "88": { "groups": [ @@ -687,7 +687,7 @@ ], "name": "Hosting", "priority": 9, - "description": "Hosting providers offer server space for websites. Performance and reliability of hosting has a large impact on site speed and availability." + "description": "Hosting providers offer server space for websites." }, "89": { "groups": [ @@ -695,7 +695,7 @@ ], "name": "Translation", "priority": 9, - "description": "Translation technologies make content accessible across languages. User experience of these tools affects perceived site speed." + "description": "Translation technologies make content accessible across languages." }, "90": { "groups": [ @@ -704,7 +704,7 @@ ], "name": "Reviews", "priority": 9, - "description": "Review systems display user feedback. They need to be implemented so they don't slow down the loading of content or other site functions." + "description": "Review systems display user feedback." }, "91": { "groups": [ @@ -712,7 +712,7 @@ ], "name": "Buy now pay later", "priority": 9, - "description": "Buy now pay later systems allow payment flexibility for online purchases. Performance of these systems needs to be good to avoid delays in payments." + "description": "Buy now pay later systems allow payment flexibility for online purchases." }, "92": { "groups": [ @@ -720,7 +720,7 @@ ], "name": "Performance", "priority": 9, - "description": "Performance tools measure and optimize site speed. Their purpose is to improve performance and should not slow down loading." + "description": "Performance tools measure and optimize site speed." }, "93": { "groups": [ @@ -728,7 +728,7 @@ ], "name": "Reservations & delivery", "priority": 9, - "description": "Reservation and delivery tools enable online booking and ordering. User experience of booking and delivery should be as frictionless as possible." + "description": "Reservation and delivery tools enable online booking and ordering." }, "94": { "groups": [ @@ -737,7 +737,7 @@ ], "name": "Referral marketing", "priority": 9, - "description": "Referral programs incentivize users to promote a website. Tracking and referral links need to be efficient to not slow down the user journey." + "description": "Referral programs incentivize users to promote a website." }, "95": { "groups": [ @@ -745,7 +745,7 @@ ], "name": "Digital asset management", "priority": 9, - "description": "Digital Asset Management systems store and manage media files. Their performance affects how quickly media appears on web pages." + "description": "Digital Asset Management systems store and manage media files." }, "96": { "groups": [ @@ -754,7 +754,7 @@ ], "name": "Content curation", "priority": 9, - "description": "Content curation systems organize content from multiple sources. The tool should work without adding loading time overheads." + "description": "Content curation systems organize content from multiple sources." }, "97": { "groups": [ @@ -763,7 +763,7 @@ ], "name": "Customer data platform", "priority": 9, - "description": "Customer Data Platforms (CDPs) gather customer data from various sources. They need to work efficiently to avoid impacting page load speeds." + "description": "Customer Data Platforms (CDPs) gather customer data from various sources." }, "98": { "groups": [ @@ -771,7 +771,7 @@ ], "name": "Cart abandonment", "priority": 9, - "description": "Cart abandonment technologies track and recover abandoned shopping carts. Their impact on user flows and site performance needs to be considered." + "description": "Cart abandonment technologies track and recover abandoned shopping carts." }, "99": { "groups": [ @@ -779,7 +779,7 @@ ], "name": "Shipping carriers", "priority": 9, - "description": "Shipping carrier integration provides shipping options during checkout. This needs to be implemented to avoid delaying the user journey." + "description": "Shipping carrier integration provides shipping options during checkout." }, "100": { "groups": [ @@ -787,7 +787,7 @@ ], "name": "Shopify apps", "priority": 8, - "description": "Shopify apps extend the functionality of Shopify stores. Their optimization impacts overall store speed and user experience." + "description": "Shopify apps extend the functionality of Shopify stores." }, "101": { "groups": [ @@ -796,7 +796,7 @@ ], "name": "Recruitment & staffing", "priority": 9, - "description": "Recruitment and staffing solutions are used for hiring processes. They are not usually directly related to site user experience." + "description": "Recruitment and staffing solutions are used for hiring processes." }, "102": { "groups": [ @@ -804,7 +804,7 @@ ], "name": "Returns", "priority": 9, - "description": "Returns management technologies process product returns. They need to be efficient for ease of use." + "description": "Returns management technologies process product returns." }, "103": { "groups": [ @@ -813,7 +813,7 @@ ], "name": "Livestreaming", "priority": 9, - "description": "Livestreaming technologies are used to broadcast real-time video content. Optimizing them is critical to ensure smooth playback." + "description": "Livestreaming technologies are used to broadcast real-time video content." }, "104": { "groups": [ @@ -821,7 +821,7 @@ ], "name": "Ticket booking", "priority": 9, - "description": "Ticket booking systems allow users to book tickets online. User experience should be a focus when implementing these." + "description": "Ticket booking systems allow users to book tickets online." }, "105": { "groups": [ @@ -829,7 +829,7 @@ ], "name": "Augmented reality", "priority": 9, - "description": "Augmented reality (AR) technologies provide interactive experiences. Their implementation needs to be optimized for performance." + "description": "Augmented reality (AR) technologies provide interactive experiences." }, "106": { "groups": [ @@ -837,7 +837,7 @@ ], "name": "Cross border ecommerce", "priority": 6, - "description": "Cross border ecommerce solutions handle the complexities of selling products internationally. Functionality should not introduce performance problems for buyers." + "description": "Cross border ecommerce solutions handle the complexities of selling products internationally." }, "107": { "groups": [ @@ -845,7 +845,7 @@ ], "name": "Fulfilment", "priority": 6, - "description": "Fulfilment systems manage order processing and delivery. Their processes need to be fast and efficient to avoid slowing user experience." + "description": "Fulfilment systems manage order processing and delivery." }, "108": { "groups": [ @@ -853,7 +853,7 @@ ], "name": "Ecommerce frontends", "priority": 6, - "description": "Ecommerce frontends are the user interface for online stores. Their performance directly impacts website load times." + "description": "Ecommerce frontends are the user interface for online stores." }, "109": { "groups": [ @@ -861,7 +861,7 @@ ], "name": "Domain parking", "priority": 9, - "description": "Domain parking solutions redirect domains to a different location or page. These should be lightweight and avoid performance issues." + "description": "Domain parking solutions redirect domains to a different location or page." }, "110": { "groups": [ @@ -869,7 +869,7 @@ ], "name": "Form builders", "priority": 8, - "description": "Form builder technologies enable users to build forms for data collection. They should work efficiently and not slow the page." + "description": "Form builder technologies enable users to build forms for data collection." }, "111": { "groups": [ @@ -877,6 +877,6 @@ ], "name": "Fundraising & donations", "priority": 9, - "description": "Fundraising and donation tools facilitate online charitable contributions. The processes should be fast and efficient without adding performance overhead." + "description": "Fundraising and donation tools facilitate online charitable contributions." } } From 087f752aef7a0e4ce78f1734e3e3d05a155af9d3 Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Tue, 14 Jan 2025 19:16:15 +0100 Subject: [PATCH 4/7] avoid category name repetition --- src/categories.json | 336 ++++++++++++++++++++++---------------------- 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/src/categories.json b/src/categories.json index f275c274e..3a81a3f35 100644 --- a/src/categories.json +++ b/src/categories.json @@ -5,7 +5,7 @@ ], "name": "CMS", "priority": 1, - "description": "Content Management Systems (CMS) are platforms used to create, manage, and modify content on a website without needing specialized technical knowledge." + "description": "Platforms used to create, manage, and modify content on a website without needing specialized technical knowledge" }, "2": { "groups": [ @@ -15,7 +15,7 @@ ], "name": "Message boards", "priority": 1, - "description": "Message boards or forums are online platforms where users can post and discuss topics, fostering online communities." + "description": "Online platforms where users can post and discuss topics, fostering online communities" }, "3": { "groups": [ @@ -23,7 +23,7 @@ ], "name": "Database managers", "priority": 2, - "description": "Database management systems (DBMS) are software applications used to store, retrieve, and manage data." + "description": "Software applications used to store, retrieve, and manage data" }, "4": { "groups": [ @@ -31,7 +31,7 @@ ], "name": "Documentation", "priority": 2, - "description": "Documentation tools and platforms host information about products, services, or software." + "description": "Tools and platforms to host information about products, services, or software" }, "5": { "groups": [ @@ -39,7 +39,7 @@ ], "name": "Widgets", "priority": 9, - "description": "Widgets are small, self-contained applications embedded into a webpage." + "description": "Small, self-contained applications embedded into a webpage" }, "6": { "groups": [ @@ -47,7 +47,7 @@ ], "name": "Ecommerce", "priority": 1, - "description": "Ecommerce platforms provide the infrastructure to sell products and services online, managing everything from product catalogs to payments." + "description": "Platforms providing the infrastructure to sell products and services online, managing everything from product catalogs to payments" }, "7": { "groups": [ @@ -56,7 +56,7 @@ ], "name": "Photo galleries", "priority": 1, - "description": "Photo gallery platforms are used to display images on a website." + "description": "Platforms used to display images on a website" }, "8": { "groups": [ @@ -64,7 +64,7 @@ ], "name": "Wikis", "priority": 1, - "description": "Wikis are collaborative websites that allow users to create and edit pages." + "description": "Collaborative websites that allow users to create and edit pages" }, "9": { "groups": [ @@ -73,7 +73,7 @@ ], "name": "Hosting panels", "priority": 2, - "description": "Hosting control panels are interfaces for managing web servers and hosting environments." + "description": "Interfaces for managing web servers and hosting environments" }, "10": { "groups": [ @@ -81,7 +81,7 @@ ], "name": "Analytics", "priority": 9, - "description": "Analytics tools track user behavior and provide insights into website performance." + "description": "Tools that track user behavior and provide insights into website performance" }, "11": { "groups": [ @@ -89,7 +89,7 @@ ], "name": "Blogs", "priority": 1, - "description": "Blog platforms allow users to publish and manage articles and posts." + "description": "Platforms that allow users to publish and manage articles and posts" }, "12": { "groups": [ @@ -97,7 +97,7 @@ ], "name": "JavaScript frameworks", "priority": 8, - "description": "JavaScript frameworks are used for building dynamic web applications and user interfaces." + "description": "Used for building dynamic web applications and user interfaces" }, "13": { "groups": [ @@ -106,7 +106,7 @@ ], "name": "Issue trackers", "priority": 2, - "description": "Issue trackers are used to manage and track bugs, tasks, and features in software development." + "description": "Used to manage and track bugs, tasks, and features in software development" }, "14": { "groups": [ @@ -114,7 +114,7 @@ ], "name": "Video players", "priority": 7, - "description": "Video players embed videos on websites." + "description": "Embed videos on websites" }, "15": { "groups": [ @@ -123,7 +123,7 @@ ], "name": "Comment systems", "priority": 9, - "description": "Comment systems allow users to post and interact with comments on a website." + "description": "Allow users to post and interact with comments on a website" }, "16": { "groups": [ @@ -131,7 +131,7 @@ ], "name": "Security", "priority": 9, - "description": "Security technologies protect websites from vulnerabilities and attacks." + "description": "Technologies that protect websites from vulnerabilities and attacks" }, "17": { "groups": [ @@ -139,7 +139,7 @@ ], "name": "Font scripts", "priority": 9, - "description": "Font loading scripts control how fonts are displayed on a webpage." + "description": "Control how fonts are displayed on a webpage" }, "18": { "groups": [ @@ -147,7 +147,7 @@ ], "name": "Web frameworks", "priority": 7, - "description": "Web frameworks provide a structure for building web applications." + "description": "Provide a structure for building web applications" }, "19": { "groups": [ @@ -155,7 +155,7 @@ ], "name": "Miscellaneous", "priority": 10, - "description": "Miscellaneous tools and technologies encompass those that don't fit into other categories." + "description": "Tools and technologies that don't fit into other categories" }, "20": { "groups": [ @@ -163,15 +163,15 @@ ], "name": "Editors", "priority": 4, - "description": "Editors are used to create and manage website content, code, and other files." + "description": "Used to create and manage website content, code, and other files" }, - "21": { + "21": { "groups": [ 3 ], "name": "LMS", "priority": 1, - "description": "Learning Management Systems (LMS) are used to create, manage, and deliver online courses." + "description": "Used to create, manage, and deliver online courses" }, "22": { "groups": [ @@ -179,7 +179,7 @@ ], "name": "Web servers", "priority": 8, - "description": "Web servers are software applications that deliver web pages to users' browsers." + "description": "Software applications that deliver web pages to users' browsers" }, "23": { "groups": [ @@ -187,15 +187,15 @@ ], "name": "Caching", "priority": 7, - "description": "Caching technologies store frequently accessed data closer to the user to improve page load times." + "description": "Technologies that store frequently accessed data closer to the user to improve page load times" }, - "24": { + "24": { "groups": [ 3 ], "name": "Rich text editors", "priority": 5, - "description": "Rich text editors allow users to create and format text within a web application." + "description": "Allow users to create and format text within a web application" }, "25": { "groups": [ @@ -203,15 +203,15 @@ ], "name": "JavaScript graphics", "priority": 6, - "description": "JavaScript graphics libraries are used to create visual elements on websites." + "description": "Libraries used to create visual elements on websites" }, - "26": { + "26": { "groups": [ 9 ], "name": "Mobile frameworks", "priority": 8, - "description": "Mobile frameworks are used to create mobile applications and mobile-first websites." + "description": "Used to create mobile applications and mobile-first websites" }, "27": { "groups": [ @@ -219,15 +219,15 @@ ], "name": "Programming languages", "priority": 5, - "description": "Programming languages are used to build website functionalities and backend services." - }, - "28": { + "description": "Build website functionalities and backend services" + }, + "28": { "groups": [ 7 ], "name": "Operating systems", "priority": 6, - "description": "Operating systems run web servers and infrastructure." + "description": "Run web servers and infrastructure" }, "29": { "groups": [ @@ -235,7 +235,7 @@ ], "name": "Search engines", "priority": 4, - "description": "Search engines embedded on websites allow users to find specific content." + "description": "Embedded on websites to allow users to find specific content" }, "30": { "groups": [ @@ -243,47 +243,47 @@ ], "name": "Webmail", "priority": 2, - "description": "Webmail systems allow users to send and receive emails through a browser." + "description": "Systems that allow users to send and receive emails through a browser" }, - "31": { + "31": { "groups": [ 7 ], "name": "CDN", "priority": 9, - "description": "Content Delivery Networks (CDNs) distribute website content globally to improve load times for users." + "description": "Distribute website content globally to improve load times for users" }, - "32": { + "32": { "groups": [ 2 ], "name": "Marketing automation", "priority": 9, - "description": "Marketing automation tools streamline marketing activities." + "description": "Tools that streamline marketing activities" }, - "33": { + "33": { "groups": [ 7 ], "name": "Web server extensions", "priority": 7, - "description": "Web server extensions enhance the capabilities of web servers." + "description": "Enhance the capabilities of web servers" }, - "34": { + "34": { "groups": [ 7 ], "name": "Databases", "priority": 5, - "description": "Databases store website information." + "description": "Store website information" }, - "35": { + "35": { "groups": [ 17 ], "name": "Maps", "priority": 6, - "description": "Map technologies embed maps into websites." + "description": "Technologies that embed maps into websites" }, "36": { "groups": [ @@ -291,40 +291,40 @@ ], "name": "Advertising", "priority": 9, - "description": "Advertising platforms display ads on websites." + "description": "Platforms that display ads on websites" }, - "37": { + "37": { "groups": [ 7 ], "name": "Network devices", "priority": 2, - "description": "Network devices, like routers and switches, are fundamental infrastructure for the network." + "description": "Like routers and switches, are fundamental infrastructure for the network" }, - "38": { + "38": { "groups": [ 10, 7 ], "name": "Media servers", "priority": 1, - "description": "Media servers store and stream media content." + "description": "Store and stream media content" }, - "39": { + "39": { "groups": [ 4 ], "name": "Webcams", "priority": 9, - "description": "Webcam integrations are used for video calls and similar functions." + "description": "Integrations used for video calls and similar functions" }, - "41": { + "41": { "groups": [ 1 ], "name": "Payment processors", "priority": 8, - "description": "Payment processors handle online transactions." + "description": "Handle online transactions" }, "42": { "groups": [ @@ -332,23 +332,23 @@ ], "name": "Tag managers", "priority": 9, - "description": "Tag managers allow the addition of scripts and tracking tools to websites." - }, - "44": { + "description": "Allow the addition of scripts and tracking tools to websites" + }, + "44": { "groups": [ 9 ], "name": "CI", "priority": 3, - "description": "Continuous Integration (CI) systems automate building, testing, and deploying code." + "description": "Systems that automate building, testing, and deploying code" }, - "45": { + "45": { "groups": [ 7 ], "name": "Control systems", "priority": 2, - "description": "Control systems manage website infrastructure." + "description": "Manage website infrastructure" }, "46": { "groups": [ @@ -356,47 +356,47 @@ ], "name": "Remote access", "priority": 1, - "description": "Remote access technologies allow for remote administration of systems." + "description": "Technologies that allow for remote administration of systems" }, - "47": { + "47": { "groups": [ 9 ], "name": "Development", "priority": 2, - "description": "Development tools assist in building and debugging websites and applications." + "description": "Tools that assist in building and debugging websites and applications" }, - "48": { + "48": { "groups": [ 10 ], "name": "Network storage", "priority": 2, - "description": "Network storage solutions store web data and assets." + "description": "Solutions that store web data and assets" }, - "49": { + "49": { "groups": [ 3 ], "name": "Feed readers", "priority": 1, - "description": "Feed reader technologies allow to users subscribe to content updates." + "description": "Technologies that allow users to subscribe to content updates" }, - "50": { + "50": { "groups": [ 3 ], "name": "DMS", "priority": 1, - "description": "Document Management Systems (DMS) help to manage and organize documents." + "description": "Help to manage and organize documents" }, - "51": { + "51": { "groups": [ 9 ], "name": "Page builders", "priority": 1, - "description": "Page builders provide a visual way to design webpages." + "description": "Provide a visual way to design webpages" }, "52": { "groups": [ @@ -405,40 +405,40 @@ ], "name": "Live chat", "priority": 9, - "description": "Live chat tools allow for real-time customer support." + "description": "Tools that allow for real-time customer support" }, - "53": { + "53": { "groups": [ 2, 16 ], "name": "CRM", "priority": 5, - "description": "Customer Relationship Management (CRM) systems help manage customer interactions." + "description": "Systems that help manage customer interactions" }, - "54": { + "54": { "groups": [ 2 ], "name": "SEO", "priority": 8, - "description": "Search Engine Optimization (SEO) tools help improve website ranking." + "description": "Tools that help improve website ranking" }, - "55": { + "55": { "groups": [ 16 ], "name": "Accounting", "priority": 1, - "description": "Accounting tools manage financial data." - }, - "56": { + "description": "Tools that manage financial data" + }, + "56": { "groups": [ 5 ], "name": "Cryptominers", "priority": 5, - "description": "Cryptominers use website visitors' resources without permission." + "description": "Use website visitors' resources without permission" }, "57": { "groups": [ @@ -446,15 +446,15 @@ ], "name": "Static site generator", "priority": 1, - "description": "Static site generators create static HTML files." + "description": "Create static HTML files" }, - "58": { + "58": { "groups": [ 6 ], "name": "User onboarding", "priority": 8, - "description": "User onboarding technologies guide new users." + "description": "Technologies that guide new users" }, "59": { "groups": [ @@ -462,15 +462,15 @@ ], "name": "JavaScript libraries", "priority": 9, - "description": "JavaScript libraries provide pre-written code." + "description": "Provide pre-written code" }, - "60": { + "60": { "groups": [ 7 ], "name": "Containers", "priority": 8, - "description": "Container technologies package applications with their dependencies." + "description": "Technologies that package applications with their dependencies" }, "62": { "groups": [ @@ -478,31 +478,31 @@ ], "name": "PaaS", "priority": 8, - "description": "Platform as a Service (PaaS) provides a platform for software development." + "description": "Provides a platform for software development" }, - "63": { + "63": { "groups": [ 7 ], "name": "IaaS", "priority": 8, - "description": "Infrastructure as a Service (IaaS) provides computing resources." + "description": "Provides computing resources" }, - "64": { + "64": { "groups": [ 7 ], "name": "Reverse proxies", "priority": 7, - "description": "Reverse proxies intercept client requests and forward them to the appropriate server." - }, + "description": "Intercept client requests and forward them to the appropriate server" + }, "65": { "groups": [ 7 ], "name": "Load balancers", "priority": 7, - "description": "Load balancers distribute incoming traffic to multiple servers." + "description": "Distribute incoming traffic to multiple servers" }, "66": { "groups": [ @@ -510,7 +510,7 @@ ], "name": "UI frameworks", "priority": 7, - "description": "UI frameworks provide pre-built components to build user interfaces." + "description": "Provide pre-built components to build user interfaces" }, "67": { "groups": [ @@ -518,39 +518,39 @@ ], "name": "Cookie compliance", "priority": 9, - "description": "Cookie compliance tools manage user consent for cookies." + "description": "Tools that manage user consent for cookies" }, - "68": { + "68": { "groups": [ 9 ], "name": "Accessibility", "priority": 9, - "description": "Accessibility technologies help users with disabilities navigate websites." + "description": "Technologies that help users with disabilities navigate websites" }, - "69": { + "69": { "groups": [ 11 ], "name": "Authentication", "priority": 6, - "description": "Authentication systems manage user logins and security." + "description": "Systems that manage user logins and security" }, - "70": { + "70": { "groups": [ 11 ], "name": "SSL/TLS certificate authorities", "priority": 9, - "description": "SSL/TLS certificate authorities provide certificates used to encrypt web traffic." + "description": "Provide certificates used to encrypt web traffic" }, - "71": { + "71": { "groups": [ 2 ], "name": "Affiliate programs", "priority": 9, - "description": "Affiliate programs track marketing campaigns on websites." + "description": "Track marketing campaigns on websites" }, "72": { "groups": [ @@ -558,40 +558,40 @@ ], "name": "Appointment scheduling", "priority": 9, - "description": "Appointment scheduling tools allow users to book appointments online." + "description": "Tools that allow users to book appointments online" }, - "73": { + "73": { "groups": [ 8 ], "name": "Surveys", "priority": 9, - "description": "Survey tools collect user feedback." + "description": "Tools that collect user feedback" }, - "74": { + "74": { "groups": [ 8 ], "name": "A/B Testing", "priority": 9, - "description": "A/B testing tools help optimize website performance and user experience." + "description": "Tools that help optimize website performance and user experience" }, - "75": { + "75": { "groups": [ 4, 2 ], "name": "Email", "priority": 9, - "description": "Email integration technologies affect user communication." + "description": "Integration technologies that affect user communication" }, - "76": { + "76": { "groups": [ 2 ], "name": "Personalisation", "priority": 9, - "description": "Personalisation tools tailor website content based on user data." + "description": "Tools that tailor website content based on user data" }, "77": { "groups": [ @@ -599,15 +599,15 @@ ], "name": "Retargeting", "priority": 9, - "description": "Retargeting technologies display ads to users who have previously interacted with the site." + "description": "Technologies that display ads to users who have previously interacted with the site" }, - "78": { + "78": { "groups": [ 2 ], "name": "RUM", "priority": 9, - "description": "Real User Monitoring (RUM) tools track performance as experienced by users." + "description": "Tools that track performance as experienced by users" }, "79": { "groups": [ @@ -615,7 +615,7 @@ ], "name": "Geolocation", "priority": 9, - "description": "Geolocation technologies use user location data for site features." + "description": "Technologies that use user location data for site features" }, "80": { "groups": [ @@ -623,7 +623,7 @@ ], "name": "WordPress themes", "priority": 7, - "description": "WordPress themes define the look and feel of WordPress websites." + "description": "Define the look and feel of WordPress websites" }, "81": { "groups": [ @@ -631,7 +631,7 @@ ], "name": "Shopify themes", "priority": 7, - "description": "Shopify themes define the design of Shopify stores." + "description": "Define the design of Shopify stores" }, "82": { "groups": [ @@ -639,31 +639,31 @@ ], "name": "Drupal themes", "priority": 7, - "description": "Drupal themes dictate the appearance of Drupal websites." + "description": "Dictate the appearance of Drupal websites" }, - "83": { + "83": { "groups": [ 8 ], "name": "Browser fingerprinting", "priority": 9, - "description": "Browser fingerprinting technologies collect information about users." + "description": "Technologies that collect information about users" }, - "84": { + "84": { "groups": [ 1 ], "name": "Loyalty & rewards", "priority": 9, - "description": "Loyalty and rewards programs track user engagement." + "description": "Programs that track user engagement" }, - "85": { + "85": { "groups": [ 9 ], "name": "Feature management", "priority": 9, - "description": "Feature management technologies control when features are shown." + "description": "Technologies that control when features are shown" }, "86": { "groups": [ @@ -671,23 +671,23 @@ ], "name": "Segmentation", "priority": 9, - "description": "Segmentation tools group users based on behavior." + "description": "Tools that group users based on behavior" }, - "87": { + "87": { "groups": [ 15 ], "name": "WordPress plugins", "priority": 8, - "description": "WordPress plugins extend functionality of WordPress websites." + "description": "Extend functionality of WordPress websites" }, - "88": { + "88": { "groups": [ 7 ], "name": "Hosting", "priority": 9, - "description": "Hosting providers offer server space for websites." + "description": "Providers that offer server space for websites" }, "89": { "groups": [ @@ -695,7 +695,7 @@ ], "name": "Translation", "priority": 9, - "description": "Translation technologies make content accessible across languages." + "description": "Technologies that make content accessible across languages" }, "90": { "groups": [ @@ -704,40 +704,40 @@ ], "name": "Reviews", "priority": 9, - "description": "Review systems display user feedback." + "description": "Systems that display user feedback" }, - "91": { + "91": { "groups": [ 1 ], "name": "Buy now pay later", "priority": 9, - "description": "Buy now pay later systems allow payment flexibility for online purchases." + "description": "Systems that allow payment flexibility for online purchases" }, - "92": { + "92": { "groups": [ 7 ], "name": "Performance", "priority": 9, - "description": "Performance tools measure and optimize site speed." + "description": "Tools that measure and optimize site speed" }, - "93": { + "93": { "groups": [ 14 ], "name": "Reservations & delivery", "priority": 9, - "description": "Reservation and delivery tools enable online booking and ordering." + "description": "Tools that enable online booking and ordering" }, - "94": { + "94": { "groups": [ 2, 1 ], "name": "Referral marketing", "priority": 9, - "description": "Referral programs incentivize users to promote a website." + "description": "Programs that incentivize users to promote a website" }, "95": { "groups": [ @@ -745,33 +745,33 @@ ], "name": "Digital asset management", "priority": 9, - "description": "Digital Asset Management systems store and manage media files." + "description": "Systems that store and manage media files" }, - "96": { + "96": { "groups": [ 2, 18 ], "name": "Content curation", "priority": 9, - "description": "Content curation systems organize content from multiple sources." + "description": "Systems that organize content from multiple sources" }, - "97": { + "97": { "groups": [ 2, 8 ], "name": "Customer data platform", "priority": 9, - "description": "Customer Data Platforms (CDPs) gather customer data from various sources." + "description": "Gather customer data from various sources" }, - "98": { + "98": { "groups": [ 1 ], "name": "Cart abandonment", "priority": 9, - "description": "Cart abandonment technologies track and recover abandoned shopping carts." + "description": "Technologies that track and recover abandoned shopping carts" }, "99": { "groups": [ @@ -779,7 +779,7 @@ ], "name": "Shipping carriers", "priority": 9, - "description": "Shipping carrier integration provides shipping options during checkout." + "description": "Integration that provides shipping options during checkout" }, "100": { "groups": [ @@ -787,7 +787,7 @@ ], "name": "Shopify apps", "priority": 8, - "description": "Shopify apps extend the functionality of Shopify stores." + "description": "Extend the functionality of Shopify stores" }, "101": { "groups": [ @@ -796,7 +796,7 @@ ], "name": "Recruitment & staffing", "priority": 9, - "description": "Recruitment and staffing solutions are used for hiring processes." + "description": "Solutions used for hiring processes" }, "102": { "groups": [ @@ -804,7 +804,7 @@ ], "name": "Returns", "priority": 9, - "description": "Returns management technologies process product returns." + "description": "Technologies that process product returns" }, "103": { "groups": [ @@ -813,39 +813,39 @@ ], "name": "Livestreaming", "priority": 9, - "description": "Livestreaming technologies are used to broadcast real-time video content." + "description": "Technologies used to broadcast real-time video content" }, - "104": { + "104": { "groups": [ 14 ], "name": "Ticket booking", "priority": 9, - "description": "Ticket booking systems allow users to book tickets online." + "description": "Systems that allow users to book tickets online" }, - "105": { + "105": { "groups": [ 10 ], "name": "Augmented reality", "priority": 9, - "description": "Augmented reality (AR) technologies provide interactive experiences." + "description": "Technologies that provide interactive experiences" }, - "106": { + "106": { "groups": [ 1 ], "name": "Cross border ecommerce", "priority": 6, - "description": "Cross border ecommerce solutions handle the complexities of selling products internationally." + "description": "Solutions that handle the complexities of selling products internationally" }, - "107": { + "107": { "groups": [ 1 ], "name": "Fulfilment", "priority": 6, - "description": "Fulfilment systems manage order processing and delivery." + "description": "Systems that manage order processing and delivery" }, "108": { "groups": [ @@ -853,30 +853,30 @@ ], "name": "Ecommerce frontends", "priority": 6, - "description": "Ecommerce frontends are the user interface for online stores." + "description": "The user interface for online stores" }, "109": { - "groups": [ + "groups": [ 6 ], "name": "Domain parking", "priority": 9, - "description": "Domain parking solutions redirect domains to a different location or page." + "description": "Solutions that redirect domains to a different location or page" }, - "110": { + "110": { "groups": [ 8 ], "name": "Form builders", "priority": 8, - "description": "Form builder technologies enable users to build forms for data collection." + "description": "Technologies that enable users to build forms for data collection" }, - "111": { + "111": { "groups": [ 6 ], "name": "Fundraising & donations", "priority": 9, - "description": "Fundraising and donation tools facilitate online charitable contributions." + "description": "Tools that facilitate online charitable contributions" } } From 5bd69c6ca5eaa366c2a6f3609eee5fe87bb3523c Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Wed, 15 Jan 2025 16:07:44 +0000 Subject: [PATCH 5/7] sorted arrays --- scripts/bigquery_upload.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/bigquery_upload.js b/scripts/bigquery_upload.js index 461ae3325..665993f4c 100644 --- a/scripts/bigquery_upload.js +++ b/scripts/bigquery_upload.js @@ -116,7 +116,7 @@ const readJsonFiles = (directory) => { } const getArray = (value) => - typeof value === 'string' ? [value] : Array.isArray(value) ? value : [] + typeof value === 'string' ? [value] : Array.isArray(value) ? value.sort() : [] const getRuleObject = (value) => { if (typeof value === 'string') { @@ -176,7 +176,7 @@ const main = async () => { name: key, categories: technologies[key].cats.map( (category) => categories[category].name - ), + ).sort(), } ;[ From 44c03ecd4872b76fdc850e2dfc665daf007bf558 Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Wed, 15 Jan 2025 16:24:16 +0000 Subject: [PATCH 6/7] lint --- scripts/bigquery_upload.js | 6 +- src/categories.json | 552 ++++++++++++++++++------------------- 2 files changed, 279 insertions(+), 279 deletions(-) diff --git a/scripts/bigquery_upload.js b/scripts/bigquery_upload.js index 665993f4c..a8f864bbb 100644 --- a/scripts/bigquery_upload.js +++ b/scripts/bigquery_upload.js @@ -174,9 +174,9 @@ const main = async () => { const transformedTechnologies = Object.keys(technologies).map((key) => { const app = { name: key, - categories: technologies[key].cats.map( - (category) => categories[category].name - ).sort(), + categories: technologies[key].cats + .map((category) => categories[category].name) + .sort(), } ;[ diff --git a/src/categories.json b/src/categories.json index 3a81a3f35..36a1c9205 100644 --- a/src/categories.json +++ b/src/categories.json @@ -1,882 +1,882 @@ { "1": { + "description": "Platforms used to create, manage, and modify content on a website without needing specialized technical knowledge", "groups": [ 3 ], "name": "CMS", - "priority": 1, - "description": "Platforms used to create, manage, and modify content on a website without needing specialized technical knowledge" + "priority": 1 }, "2": { + "description": "Online platforms where users can post and discuss topics, fostering online communities", "groups": [ 3, 4, 18 ], "name": "Message boards", - "priority": 1, - "description": "Online platforms where users can post and discuss topics, fostering online communities" + "priority": 1 }, "3": { + "description": "Software applications used to store, retrieve, and manage data", "groups": [ 5 ], "name": "Database managers", - "priority": 2, - "description": "Software applications used to store, retrieve, and manage data" + "priority": 2 }, "4": { + "description": "Tools and platforms to host information about products, services, or software", "groups": [ 3 ], "name": "Documentation", - "priority": 2, - "description": "Tools and platforms to host information about products, services, or software" + "priority": 2 }, "5": { + "description": "Small, self-contained applications embedded into a webpage", "groups": [ 6 ], "name": "Widgets", - "priority": 9, - "description": "Small, self-contained applications embedded into a webpage" + "priority": 9 }, "6": { + "description": "Platforms providing the infrastructure to sell products and services online, managing everything from product catalogs to payments", "groups": [ 1 ], "name": "Ecommerce", - "priority": 1, - "description": "Platforms providing the infrastructure to sell products and services online, managing everything from product catalogs to payments" + "priority": 1 }, "7": { + "description": "Platforms used to display images on a website", "groups": [ 3, 10 ], "name": "Photo galleries", - "priority": 1, - "description": "Platforms used to display images on a website" + "priority": 1 }, "8": { + "description": "Collaborative websites that allow users to create and edit pages", "groups": [ 3 ], "name": "Wikis", - "priority": 1, - "description": "Collaborative websites that allow users to create and edit pages" + "priority": 1 }, "9": { + "description": "Interfaces for managing web servers and hosting environments", "groups": [ 5, 7 ], "name": "Hosting panels", - "priority": 2, - "description": "Interfaces for managing web servers and hosting environments" + "priority": 2 }, "10": { + "description": "Tools that track user behavior and provide insights into website performance", "groups": [ 8 ], "name": "Analytics", - "priority": 9, - "description": "Tools that track user behavior and provide insights into website performance" + "priority": 9 }, "11": { + "description": "Platforms that allow users to publish and manage articles and posts", "groups": [ 3 ], "name": "Blogs", - "priority": 1, - "description": "Platforms that allow users to publish and manage articles and posts" + "priority": 1 }, "12": { + "description": "Used for building dynamic web applications and user interfaces", "groups": [ 9 ], "name": "JavaScript frameworks", - "priority": 8, - "description": "Used for building dynamic web applications and user interfaces" + "priority": 8 }, "13": { + "description": "Used to manage and track bugs, tasks, and features in software development", "groups": [ 3, 18 ], "name": "Issue trackers", - "priority": 2, - "description": "Used to manage and track bugs, tasks, and features in software development" + "priority": 2 }, "14": { + "description": "Embed videos on websites", "groups": [ 10 ], "name": "Video players", - "priority": 7, - "description": "Embed videos on websites" + "priority": 7 }, "15": { + "description": "Allow users to post and interact with comments on a website", "groups": [ 3, 18 ], "name": "Comment systems", - "priority": 9, - "description": "Allow users to post and interact with comments on a website" + "priority": 9 }, "16": { + "description": "Technologies that protect websites from vulnerabilities and attacks", "groups": [ 11 ], "name": "Security", - "priority": 9, - "description": "Technologies that protect websites from vulnerabilities and attacks" + "priority": 9 }, "17": { + "description": "Control how fonts are displayed on a webpage", "groups": [ 9 ], "name": "Font scripts", - "priority": 9, - "description": "Control how fonts are displayed on a webpage" + "priority": 9 }, "18": { + "description": "Provide a structure for building web applications", "groups": [ 9 ], "name": "Web frameworks", - "priority": 7, - "description": "Provide a structure for building web applications" + "priority": 7 }, "19": { + "description": "Tools and technologies that don't fit into other categories", "groups": [ 6 ], "name": "Miscellaneous", - "priority": 10, - "description": "Tools and technologies that don't fit into other categories" + "priority": 10 }, "20": { + "description": "Used to create and manage website content, code, and other files", "groups": [ 9 ], "name": "Editors", - "priority": 4, - "description": "Used to create and manage website content, code, and other files" + "priority": 4 }, - "21": { + "21": { + "description": "Used to create, manage, and deliver online courses", "groups": [ 3 ], "name": "LMS", - "priority": 1, - "description": "Used to create, manage, and deliver online courses" + "priority": 1 }, "22": { + "description": "Software applications that deliver web pages to users' browsers", "groups": [ 7 ], "name": "Web servers", - "priority": 8, - "description": "Software applications that deliver web pages to users' browsers" + "priority": 8 }, "23": { + "description": "Technologies that store frequently accessed data closer to the user to improve page load times", "groups": [ 7 ], "name": "Caching", - "priority": 7, - "description": "Technologies that store frequently accessed data closer to the user to improve page load times" + "priority": 7 }, - "24": { + "24": { + "description": "Allow users to create and format text within a web application", "groups": [ 3 ], "name": "Rich text editors", - "priority": 5, - "description": "Allow users to create and format text within a web application" + "priority": 5 }, "25": { + "description": "Libraries used to create visual elements on websites", "groups": [ 9 ], "name": "JavaScript graphics", - "priority": 6, - "description": "Libraries used to create visual elements on websites" + "priority": 6 }, - "26": { + "26": { + "description": "Used to create mobile applications and mobile-first websites", "groups": [ 9 ], "name": "Mobile frameworks", - "priority": 8, - "description": "Used to create mobile applications and mobile-first websites" + "priority": 8 }, "27": { + "description": "Build website functionalities and backend services", "groups": [ 9 ], "name": "Programming languages", - "priority": 5, - "description": "Build website functionalities and backend services" - }, - "28": { + "priority": 5 + }, + "28": { + "description": "Run web servers and infrastructure", "groups": [ 7 ], "name": "Operating systems", - "priority": 6, - "description": "Run web servers and infrastructure" + "priority": 6 }, "29": { + "description": "Embedded on websites to allow users to find specific content", "groups": [ 3 ], "name": "Search engines", - "priority": 4, - "description": "Embedded on websites to allow users to find specific content" + "priority": 4 }, "30": { + "description": "Systems that allow users to send and receive emails through a browser", "groups": [ 4 ], "name": "Webmail", - "priority": 2, - "description": "Systems that allow users to send and receive emails through a browser" + "priority": 2 }, - "31": { + "31": { + "description": "Distribute website content globally to improve load times for users", "groups": [ 7 ], "name": "CDN", - "priority": 9, - "description": "Distribute website content globally to improve load times for users" + "priority": 9 }, - "32": { + "32": { + "description": "Tools that streamline marketing activities", "groups": [ 2 ], "name": "Marketing automation", - "priority": 9, - "description": "Tools that streamline marketing activities" + "priority": 9 }, - "33": { + "33": { + "description": "Enhance the capabilities of web servers", "groups": [ 7 ], "name": "Web server extensions", - "priority": 7, - "description": "Enhance the capabilities of web servers" + "priority": 7 }, - "34": { + "34": { + "description": "Store website information", "groups": [ 7 ], "name": "Databases", - "priority": 5, - "description": "Store website information" + "priority": 5 }, - "35": { + "35": { + "description": "Technologies that embed maps into websites", "groups": [ 17 ], "name": "Maps", - "priority": 6, - "description": "Technologies that embed maps into websites" + "priority": 6 }, "36": { + "description": "Platforms that display ads on websites", "groups": [ 2 ], "name": "Advertising", - "priority": 9, - "description": "Platforms that display ads on websites" + "priority": 9 }, - "37": { + "37": { + "description": "Like routers and switches, are fundamental infrastructure for the network", "groups": [ 7 ], "name": "Network devices", - "priority": 2, - "description": "Like routers and switches, are fundamental infrastructure for the network" + "priority": 2 }, - "38": { + "38": { + "description": "Store and stream media content", "groups": [ 10, 7 ], "name": "Media servers", - "priority": 1, - "description": "Store and stream media content" + "priority": 1 }, - "39": { + "39": { + "description": "Integrations used for video calls and similar functions", "groups": [ 4 ], "name": "Webcams", - "priority": 9, - "description": "Integrations used for video calls and similar functions" + "priority": 9 }, - "41": { + "41": { + "description": "Handle online transactions", "groups": [ 1 ], "name": "Payment processors", - "priority": 8, - "description": "Handle online transactions" + "priority": 8 }, "42": { + "description": "Allow the addition of scripts and tracking tools to websites", "groups": [ 8 ], "name": "Tag managers", - "priority": 9, - "description": "Allow the addition of scripts and tracking tools to websites" - }, - "44": { + "priority": 9 + }, + "44": { + "description": "Systems that automate building, testing, and deploying code", "groups": [ 9 ], "name": "CI", - "priority": 3, - "description": "Systems that automate building, testing, and deploying code" + "priority": 3 }, - "45": { + "45": { + "description": "Manage website infrastructure", "groups": [ 7 ], "name": "Control systems", - "priority": 2, - "description": "Manage website infrastructure" + "priority": 2 }, "46": { + "description": "Technologies that allow for remote administration of systems", "groups": [ 4 ], "name": "Remote access", - "priority": 1, - "description": "Technologies that allow for remote administration of systems" + "priority": 1 }, - "47": { + "47": { + "description": "Tools that assist in building and debugging websites and applications", "groups": [ 9 ], "name": "Development", - "priority": 2, - "description": "Tools that assist in building and debugging websites and applications" + "priority": 2 }, - "48": { + "48": { + "description": "Solutions that store web data and assets", "groups": [ 10 ], "name": "Network storage", - "priority": 2, - "description": "Solutions that store web data and assets" + "priority": 2 }, - "49": { + "49": { + "description": "Technologies that allow users to subscribe to content updates", "groups": [ 3 ], "name": "Feed readers", - "priority": 1, - "description": "Technologies that allow users to subscribe to content updates" + "priority": 1 }, - "50": { + "50": { + "description": "Help to manage and organize documents", "groups": [ 3 ], "name": "DMS", - "priority": 1, - "description": "Help to manage and organize documents" + "priority": 1 }, - "51": { + "51": { + "description": "Provide a visual way to design webpages", "groups": [ 9 ], "name": "Page builders", - "priority": 1, - "description": "Provide a visual way to design webpages" + "priority": 1 }, "52": { + "description": "Tools that allow for real-time customer support", "groups": [ 4, 16 ], "name": "Live chat", - "priority": 9, - "description": "Tools that allow for real-time customer support" + "priority": 9 }, - "53": { + "53": { + "description": "Systems that help manage customer interactions", "groups": [ 2, 16 ], "name": "CRM", - "priority": 5, - "description": "Systems that help manage customer interactions" + "priority": 5 }, - "54": { + "54": { + "description": "Tools that help improve website ranking", "groups": [ 2 ], "name": "SEO", - "priority": 8, - "description": "Tools that help improve website ranking" + "priority": 8 }, - "55": { + "55": { + "description": "Tools that manage financial data", "groups": [ 16 ], "name": "Accounting", - "priority": 1, - "description": "Tools that manage financial data" - }, - "56": { + "priority": 1 + }, + "56": { + "description": "Use website visitors' resources without permission", "groups": [ 5 ], "name": "Cryptominers", - "priority": 5, - "description": "Use website visitors' resources without permission" + "priority": 5 }, "57": { + "description": "Create static HTML files", "groups": [ 9 ], "name": "Static site generator", - "priority": 1, - "description": "Create static HTML files" + "priority": 1 }, - "58": { + "58": { + "description": "Technologies that guide new users", "groups": [ 6 ], "name": "User onboarding", - "priority": 8, - "description": "Technologies that guide new users" + "priority": 8 }, "59": { + "description": "Provide pre-written code", "groups": [ 9 ], "name": "JavaScript libraries", - "priority": 9, - "description": "Provide pre-written code" + "priority": 9 }, - "60": { + "60": { + "description": "Technologies that package applications with their dependencies", "groups": [ 7 ], "name": "Containers", - "priority": 8, - "description": "Technologies that package applications with their dependencies" + "priority": 8 }, "62": { + "description": "Provides a platform for software development", "groups": [ 7 ], "name": "PaaS", - "priority": 8, - "description": "Provides a platform for software development" + "priority": 8 }, - "63": { + "63": { + "description": "Provides computing resources", "groups": [ 7 ], "name": "IaaS", - "priority": 8, - "description": "Provides computing resources" + "priority": 8 }, - "64": { + "64": { + "description": "Intercept client requests and forward them to the appropriate server", "groups": [ 7 ], "name": "Reverse proxies", - "priority": 7, - "description": "Intercept client requests and forward them to the appropriate server" - }, + "priority": 7 + }, "65": { + "description": "Distribute incoming traffic to multiple servers", "groups": [ 7 ], "name": "Load balancers", - "priority": 7, - "description": "Distribute incoming traffic to multiple servers" + "priority": 7 }, "66": { + "description": "Provide pre-built components to build user interfaces", "groups": [ 9 ], "name": "UI frameworks", - "priority": 7, - "description": "Provide pre-built components to build user interfaces" + "priority": 7 }, "67": { + "description": "Tools that manage user consent for cookies", "groups": [ 13 ], "name": "Cookie compliance", - "priority": 9, - "description": "Tools that manage user consent for cookies" + "priority": 9 }, - "68": { + "68": { + "description": "Technologies that help users with disabilities navigate websites", "groups": [ 9 ], "name": "Accessibility", - "priority": 9, - "description": "Technologies that help users with disabilities navigate websites" + "priority": 9 }, - "69": { + "69": { + "description": "Systems that manage user logins and security", "groups": [ 11 ], "name": "Authentication", - "priority": 6, - "description": "Systems that manage user logins and security" + "priority": 6 }, - "70": { + "70": { + "description": "Provide certificates used to encrypt web traffic", "groups": [ 11 ], "name": "SSL/TLS certificate authorities", - "priority": 9, - "description": "Provide certificates used to encrypt web traffic" + "priority": 9 }, - "71": { + "71": { + "description": "Track marketing campaigns on websites", "groups": [ 2 ], "name": "Affiliate programs", - "priority": 9, - "description": "Track marketing campaigns on websites" + "priority": 9 }, "72": { + "description": "Tools that allow users to book appointments online", "groups": [ 14 ], "name": "Appointment scheduling", - "priority": 9, - "description": "Tools that allow users to book appointments online" + "priority": 9 }, - "73": { + "73": { + "description": "Tools that collect user feedback", "groups": [ 8 ], "name": "Surveys", - "priority": 9, - "description": "Tools that collect user feedback" + "priority": 9 }, - "74": { + "74": { + "description": "Tools that help optimize website performance and user experience", "groups": [ 8 ], "name": "A/B Testing", - "priority": 9, - "description": "Tools that help optimize website performance and user experience" + "priority": 9 }, - "75": { + "75": { + "description": "Integration technologies that affect user communication", "groups": [ 4, 2 ], "name": "Email", - "priority": 9, - "description": "Integration technologies that affect user communication" + "priority": 9 }, - "76": { + "76": { + "description": "Tools that tailor website content based on user data", "groups": [ 2 ], "name": "Personalisation", - "priority": 9, - "description": "Tools that tailor website content based on user data" + "priority": 9 }, "77": { + "description": "Technologies that display ads to users who have previously interacted with the site", "groups": [ 2 ], "name": "Retargeting", - "priority": 9, - "description": "Technologies that display ads to users who have previously interacted with the site" + "priority": 9 }, - "78": { + "78": { + "description": "Tools that track performance as experienced by users", "groups": [ 2 ], "name": "RUM", - "priority": 9, - "description": "Tools that track performance as experienced by users" + "priority": 9 }, "79": { + "description": "Technologies that use user location data for site features", "groups": [ 17 ], "name": "Geolocation", - "priority": 9, - "description": "Technologies that use user location data for site features" + "priority": 9 }, "80": { + "description": "Define the look and feel of WordPress websites", "groups": [ 15 ], "name": "WordPress themes", - "priority": 7, - "description": "Define the look and feel of WordPress websites" + "priority": 7 }, "81": { + "description": "Define the design of Shopify stores", "groups": [ 15 ], "name": "Shopify themes", - "priority": 7, - "description": "Define the design of Shopify stores" + "priority": 7 }, "82": { + "description": "Dictate the appearance of Drupal websites", "groups": [ 15 ], "name": "Drupal themes", - "priority": 7, - "description": "Dictate the appearance of Drupal websites" + "priority": 7 }, - "83": { + "83": { + "description": "Technologies that collect information about users", "groups": [ 8 ], "name": "Browser fingerprinting", - "priority": 9, - "description": "Technologies that collect information about users" + "priority": 9 }, - "84": { + "84": { + "description": "Programs that track user engagement", "groups": [ 1 ], "name": "Loyalty & rewards", - "priority": 9, - "description": "Programs that track user engagement" + "priority": 9 }, - "85": { + "85": { + "description": "Technologies that control when features are shown", "groups": [ 9 ], "name": "Feature management", - "priority": 9, - "description": "Technologies that control when features are shown" + "priority": 9 }, "86": { + "description": "Tools that group users based on behavior", "groups": [ 2 ], "name": "Segmentation", - "priority": 9, - "description": "Tools that group users based on behavior" + "priority": 9 }, - "87": { + "87": { + "description": "Extend functionality of WordPress websites", "groups": [ 15 ], "name": "WordPress plugins", - "priority": 8, - "description": "Extend functionality of WordPress websites" + "priority": 8 }, - "88": { + "88": { + "description": "Providers that offer server space for websites", "groups": [ 7 ], "name": "Hosting", - "priority": 9, - "description": "Providers that offer server space for websites" + "priority": 9 }, "89": { + "description": "Technologies that make content accessible across languages", "groups": [ 3 ], "name": "Translation", - "priority": 9, - "description": "Technologies that make content accessible across languages" + "priority": 9 }, "90": { + "description": "Systems that display user feedback", "groups": [ 2, 18 ], "name": "Reviews", - "priority": 9, - "description": "Systems that display user feedback" + "priority": 9 }, - "91": { + "91": { + "description": "Systems that allow payment flexibility for online purchases", "groups": [ 1 ], "name": "Buy now pay later", - "priority": 9, - "description": "Systems that allow payment flexibility for online purchases" + "priority": 9 }, - "92": { + "92": { + "description": "Tools that measure and optimize site speed", "groups": [ 7 ], "name": "Performance", - "priority": 9, - "description": "Tools that measure and optimize site speed" + "priority": 9 }, - "93": { + "93": { + "description": "Tools that enable online booking and ordering", "groups": [ 14 ], "name": "Reservations & delivery", - "priority": 9, - "description": "Tools that enable online booking and ordering" + "priority": 9 }, - "94": { + "94": { + "description": "Programs that incentivize users to promote a website", "groups": [ 2, 1 ], "name": "Referral marketing", - "priority": 9, - "description": "Programs that incentivize users to promote a website" + "priority": 9 }, "95": { + "description": "Systems that store and manage media files", "groups": [ 10 ], "name": "Digital asset management", - "priority": 9, - "description": "Systems that store and manage media files" + "priority": 9 }, - "96": { + "96": { + "description": "Systems that organize content from multiple sources", "groups": [ 2, 18 ], "name": "Content curation", - "priority": 9, - "description": "Systems that organize content from multiple sources" + "priority": 9 }, - "97": { + "97": { + "description": "Gather customer data from various sources", "groups": [ 2, 8 ], "name": "Customer data platform", - "priority": 9, - "description": "Gather customer data from various sources" + "priority": 9 }, - "98": { + "98": { + "description": "Technologies that track and recover abandoned shopping carts", "groups": [ 1 ], "name": "Cart abandonment", - "priority": 9, - "description": "Technologies that track and recover abandoned shopping carts" + "priority": 9 }, "99": { + "description": "Integration that provides shipping options during checkout", "groups": [ 1 ], "name": "Shipping carriers", - "priority": 9, - "description": "Integration that provides shipping options during checkout" + "priority": 9 }, "100": { + "description": "Extend the functionality of Shopify stores", "groups": [ 15 ], "name": "Shopify apps", - "priority": 8, - "description": "Extend the functionality of Shopify stores" + "priority": 8 }, "101": { + "description": "Solutions used for hiring processes", "groups": [ 6, 16 ], "name": "Recruitment & staffing", - "priority": 9, - "description": "Solutions used for hiring processes" + "priority": 9 }, "102": { + "description": "Technologies that process product returns", "groups": [ 1 ], "name": "Returns", - "priority": 9, - "description": "Technologies that process product returns" + "priority": 9 }, "103": { + "description": "Technologies used to broadcast real-time video content", "groups": [ 1, 10 ], "name": "Livestreaming", - "priority": 9, - "description": "Technologies used to broadcast real-time video content" + "priority": 9 }, - "104": { + "104": { + "description": "Systems that allow users to book tickets online", "groups": [ 14 ], "name": "Ticket booking", - "priority": 9, - "description": "Systems that allow users to book tickets online" + "priority": 9 }, - "105": { + "105": { + "description": "Technologies that provide interactive experiences", "groups": [ 10 ], "name": "Augmented reality", - "priority": 9, - "description": "Technologies that provide interactive experiences" + "priority": 9 }, - "106": { + "106": { + "description": "Solutions that handle the complexities of selling products internationally", "groups": [ 1 ], "name": "Cross border ecommerce", - "priority": 6, - "description": "Solutions that handle the complexities of selling products internationally" + "priority": 6 }, - "107": { + "107": { + "description": "Systems that manage order processing and delivery", "groups": [ 1 ], "name": "Fulfilment", - "priority": 6, - "description": "Systems that manage order processing and delivery" + "priority": 6 }, "108": { + "description": "The user interface for online stores", "groups": [ 1 ], "name": "Ecommerce frontends", - "priority": 6, - "description": "The user interface for online stores" + "priority": 6 }, "109": { - "groups": [ + "description": "Solutions that redirect domains to a different location or page", + "groups": [ 6 ], "name": "Domain parking", - "priority": 9, - "description": "Solutions that redirect domains to a different location or page" + "priority": 9 }, - "110": { + "110": { + "description": "Technologies that enable users to build forms for data collection", "groups": [ 8 ], "name": "Form builders", - "priority": 8, - "description": "Technologies that enable users to build forms for data collection" + "priority": 8 }, - "111": { + "111": { + "description": "Tools that facilitate online charitable contributions", "groups": [ 6 ], "name": "Fundraising & donations", - "priority": 9, - "description": "Tools that facilitate online charitable contributions" + "priority": 9 } } From 8d9f30a98aabda09c4f282f9e8eee6188aed899e Mon Sep 17 00:00:00 2001 From: Max Ostapenko <1611259+max-ostapenko@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:10:56 +0100 Subject: [PATCH 7/7] proof-read --- src/categories.json | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/categories.json b/src/categories.json index 36a1c9205..a37350769 100644 --- a/src/categories.json +++ b/src/categories.json @@ -92,7 +92,7 @@ "priority": 1 }, "12": { - "description": "Used for building dynamic web applications and user interfaces", + "description": "Software used for building dynamic web applications and user interfaces", "groups": [ 9 ], @@ -100,7 +100,7 @@ "priority": 8 }, "13": { - "description": "Used to manage and track bugs, tasks, and features in software development", + "description": "Platforms used to manage and track bugs, tasks, and features in software development", "groups": [ 3, 18 @@ -109,7 +109,7 @@ "priority": 2 }, "14": { - "description": "Embed videos on websites", + "description": "Tools that embed videos on websites", "groups": [ 10 ], @@ -134,7 +134,7 @@ "priority": 9 }, "17": { - "description": "Control how fonts are displayed on a webpage", + "description": "Technologies that control how fonts are displayed on a webpage", "groups": [ 9 ], @@ -142,7 +142,7 @@ "priority": 9 }, "18": { - "description": "Provide a structure for building web applications", + "description": "Software that provides a structure for building web applications", "groups": [ 9 ], @@ -158,7 +158,7 @@ "priority": 10 }, "20": { - "description": "Used to create and manage website content, code, and other files", + "description": "Tools used to create and manage website content, code, and other files", "groups": [ 9 ], @@ -166,7 +166,7 @@ "priority": 4 }, "21": { - "description": "Used to create, manage, and deliver online courses", + "description": "Platforms used to create, manage, and deliver online courses", "groups": [ 3 ], @@ -246,7 +246,7 @@ "priority": 2 }, "31": { - "description": "Distribute website content globally to improve load times for users", + "description": "(Content Delivery Network) Distribute website content globally to improve load times for users", "groups": [ 7 ], @@ -262,7 +262,7 @@ "priority": 9 }, "33": { - "description": "Enhance the capabilities of web servers", + "description": "Software that enhances the capabilities of web servers", "groups": [ 7 ], @@ -270,7 +270,7 @@ "priority": 7 }, "34": { - "description": "Store website information", + "description": "Software used to store website information", "groups": [ 7 ], @@ -294,7 +294,7 @@ "priority": 9 }, "37": { - "description": "Like routers and switches, are fundamental infrastructure for the network", + "description": "Routers, switches and other technologies that are fundamental infrastructure for the network", "groups": [ 7 ], @@ -302,7 +302,7 @@ "priority": 2 }, "38": { - "description": "Store and stream media content", + "description": "Platforms used to store and stream media content", "groups": [ 10, 7 @@ -319,7 +319,7 @@ "priority": 9 }, "41": { - "description": "Handle online transactions", + "description": "Systems that handle online transactions", "groups": [ 1 ], @@ -327,7 +327,7 @@ "priority": 8 }, "42": { - "description": "Allow the addition of scripts and tracking tools to websites", + "description": "Tools that allow the addition of scripts and tracking tools to websites", "groups": [ 8 ], @@ -343,7 +343,7 @@ "priority": 3 }, "45": { - "description": "Manage website infrastructure", + "description": "Technologies to manage website infrastructure", "groups": [ 7 ], @@ -383,7 +383,7 @@ "priority": 1 }, "50": { - "description": "Help to manage and organize documents", + "description": "(Document Management Systems) Help to manage and organize documents", "groups": [ 3 ], @@ -408,7 +408,7 @@ "priority": 9 }, "53": { - "description": "Systems that help manage customer interactions", + "description": "(Customer Relationship Management) Systems that help manage customer interactions", "groups": [ 2, 16 @@ -417,7 +417,7 @@ "priority": 5 }, "54": { - "description": "Tools that help improve website ranking", + "description": "(Search Engine Optimization) Tools that help improve website ranking", "groups": [ 2 ], @@ -433,7 +433,7 @@ "priority": 1 }, "56": { - "description": "Use website visitors' resources without permission", + "description": "Use website visitors' resources to generate cryptocurrency", "groups": [ 5 ], @@ -441,7 +441,7 @@ "priority": 5 }, "57": { - "description": "Create static HTML files", + "description": "Tools to create static HTML files", "groups": [ 9 ], @@ -457,7 +457,7 @@ "priority": 8 }, "59": { - "description": "Provide pre-written code", + "description": "Collections of pre-written JavaScript code", "groups": [ 9 ], @@ -577,7 +577,7 @@ "priority": 9 }, "75": { - "description": "Integration technologies that affect user communication", + "description": "Systems that manage email communication", "groups": [ 4, 2 @@ -642,7 +642,7 @@ "priority": 7 }, "83": { - "description": "Technologies that collect information about users", + "description": "Technologies that collect data to identify users", "groups": [ 8 ],