<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url><loc>https://www.portaljs.com</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/build</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/ckan</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/arcgis-hub</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/ckan</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/custom-solution</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/dataverse</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/dkan</loc><lastmod>2026-07-07T06:58:34.480Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/opendatasoft</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/compare/socrata</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/data-portals</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/faq</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/git</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/learn</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/learn/metadata</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/openmetadata</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/partners</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/pricing</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/purview</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/solutions/open-data</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/welcome</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/attribute-relation-file-format-arff</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/auto-publish-your-datasets-using-travis-ci</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/automated-kpis-collection-and-visualization-of-the-funnels</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/automatically-updated-core-datasets-on-datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/basics-of-metadata-how-it-helps-to-understand-your-data</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/civic-data-portal-examples</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/ckan-resource-uploads-via-api</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/ckan-vs-portaljs-cloud</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/comparotron-a-simple-way-to-visualize-and-share-comparisons</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/core-data-essential-datasets-for-data-wranglers-and-data-scientists</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/covid19-and-compartmental-models-in-epidemiology</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/create-a-simple-catalog-of-anything-using-markdown</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/data-desktop-app-alpha-release</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/data-validation-in-the-datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/datasets-in-zip-format</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/effortless-user-management-portaljs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/enhancing-geospatial-data-visualization-with-portaljs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/example-ckan-2021</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/excel-files-on-the-datahub-automated-previews-and-data-extraction</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/frictionless-specs-european-commission</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/generate-an-interactive-webpage-from-csv-data-and-markdown</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-rich-metadata-powers-data-discovery-in-modern-data-catalogs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-to-initialize-a-data-package-using-data-tool</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-to-reduce-data-portal-costs-by-90-percent</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-to-use-data-packages-from-r</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-to-use-multiple-datahub-accounts</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/how-we-rebuilt-a-legacy-ckan-portal-into-a-static-read-only-site-with-portaljs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/import-online-data-files-directly-with-scheduling</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/improved-reporting-and-debugging-of-data-publishing</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/introducing-private-datasets-on-the-datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/introducing-visualizations-in-portaljs-cloud</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/javascript-sdk-for-data-deployment</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/keep-your-portal-data-fresh-a-hands-on-guide-to-the-portaljs-cloud-api</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/machine-learning-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/making-portalJS-cloud-admin-panel-accessible</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/markdowndb-basics-tutorial-2023</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/markdowndb-launch</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/mcp-server-ai-assistants-to-improve-data-portals</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/new-features-and-improvements</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/new-machine-learning-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/online-validation-tool</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/open-data-day-covid-19</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/pharmaceutical-drug-spending</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/portaljs-cloud-apis</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/portaljs-cloud-frontend-customization</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/portaljs-cloud-geospatial</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/portaljs-cloud-private-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/portaljs-is-now-ai-native</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/previews-for-large-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/q1-2018-review</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/rebuilt-city-of-kyle-open-data-portal-in-30-minutes-with-claude-code</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/revamped-awesome-collections-data-sets-that-are-grouped-by-subject</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/scaling-portaljs-data-with-giftless-and-r2</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/see-events-and-activity-related-to-datasets-or-publishers</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/sports-data-on-datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/summer-updates-2023</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/supercharging-data-portals-with-the-portaljs-mcp-server</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/talk-to-your-data-portal-in-plain-english-introducing-queryless-ai</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/the-metadata-standards-landscape-making-data-discoverable-across-organizations</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/the-new-look-of-portaljs-cloud</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/the-open-spending-revamp-behind-the-scenes</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/turning-openmetadata-into-a-user-friendly-data-portal-with-portaljs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/upgrade-to-data-package-specs-v1</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/vega-upgrade-spec-v3</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/why-NASA-and-anyone-using-CKAN-should-consider-a-decoupled-front-end-with-PortalJS</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/why-portaljs-is-the-future-of-decoupled-frontend-for-data-portals</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/why-we-decoupled-CKAN-frontend</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/blog/world-bank-indicators-on-datahub</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/a-global-transport-hub-building-a-shared-open-data-infrastructure-for-30-plus-transport-organizations</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/eiti-fully-customizable-data-portal-in-minutes</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/espai-de-dades-third-sector-data-portal</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/london-borough-of-hounslow</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/modernizing-lincolnshire-county-council39s-open-data-portal</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/open-energy-data-how-ssen-tackled-massive-challenge-portaljs-ckan</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/simplifying-healthcare-metadata</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/case-studies/uae-moei-scalable-platform-government-data-publishing</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/account</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/getting-started</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/groups</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/harvesters</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/mcp-server</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/organizations</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/portal</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/users</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/cloud/docs/visualizations</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/developers/automating-ckan-resource-cloudflare-r2-workers</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/developers/comprehensive-guide-building-robust-data-portal-ckan</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/developers/create-data-catalog-portaljs-ckan</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/developers/create-github-backed-data-catalog-portaljs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/developers/enabling-direct-file-uploads-api-ckan-cloudflare</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs/creating-new-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs/deploying-your-portaljs-app</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs/searching-datasets</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs/setup</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/docs/showing-metadata</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/guide</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/analytics</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/blog</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/comments</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/data-rich-documents</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/markdown</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/seo</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
<url><loc>https://www.portaljs.com/opensource/howtos/sitemap</loc><lastmod>2026-07-07T06:58:34.481Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
</urlset>