SoftwareSourceCode
SoftwareSourceCode describes a computer program in its human-readable source form. It is the schema.org type for code repositories, scripts, libraries, and any software distributed as source rather than compiled binaries. The type extends CreativeWork, inheriting properties like name, author, description, license, and version, while adding code-specific properties like codeRepository and programmingLanguage.
SoftwareSourceCode is the backbone of the CodeMeta standard, which uses codemeta.json files to provide machine-readable metadata for research software. Academic institutions, open-source projects, and software archives use it for citation, discovery, and FAIR (Findable, Accessible, Interoperable, Reusable) compliance.
Google does not offer rich results for SoftwareSourceCode. Its primary value is in machine-readable metadata for AI engines, package registries, academic indexers (DataCite, OpenAIRE), and citation tools.
When to use SoftwareSourceCode
Use SoftwareSourceCode on any page or metadata file that describes source code:
- Open-source project pages on a company or research website
codemeta.jsonfiles in GitHub/GitLab repositories- Software catalog pages listing tools and libraries
- Academic software landing pages that need citation metadata
Do not use SoftwareSourceCode for compiled applications, mobile apps, or SaaS products. Use SoftwareApplication for those.
Fields
Since Google does not have a dedicated structured data page for SoftwareSourceCode, none of these fields carry a Google requirement status. All are classified as Optional from a search engine perspective. The grouping below reflects practical importance for software metadata.
Core fields
- codeRepository — URL
- programmingLanguage — ComputerLanguage or Text
- version — Number or Text
Inherited from CreativeWork
SoftwareSourceCode inherits all CreativeWork properties. The most commonly used in software metadata:
- name — Text
- description — Text
- author — Person or Organization
- license — URL or CreativeWork
- dateCreated — Date
- dateModified — Date
- url — URL
Complete JSON-LD example
Based on real CodeMeta files from open-source projects:
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "codemetar",
"description": "Generate CodeMeta metadata for R packages",
"version": "0.3.7",
"codeRepository": "https://github.com/ropensci/codemetar",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "R",
"url": "https://r-project.org"
},
"author": {
"@type": "Person",
"name": "Carl Boettiger",
"url": "https://www.carlboettiger.info"
},
"license": "https://spdx.org/licenses/GPL-3.0",
"dateModified": "2024-01-15",
"url": "https://docs.ropensci.org/codemetar/"
}
CodeMeta and codemeta.json
Most real-world SoftwareSourceCode markup lives in codemeta.json files rather than HTML <script> tags. CodeMeta is a community standard that maps software metadata from different ecosystems (npm, PyPI, CRAN, Maven) into schema.org vocabulary. A codemeta.json file placed in a repository root provides structured metadata that academic indexers, citation tools, and AI engines can consume.
The CodeMeta context URL is https://doi.org/10.5063/schema/codemeta-2.0, which extends schema.org with additional software-specific properties.
Webflow implementation
SoftwareSourceCode is uncommon on Webflow sites. The typical use case is a company or research group that maintains a portfolio of open-source tools and wants machine-readable metadata on each project page.
For a Webflow CMS collection of open-source projects:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "{{wf {"path":"name","type":"PlainText"} }}",
"description": "{{wf {"path":"description","type":"PlainText"} }}",
"version": "{{wf {"path":"version","type":"PlainText"} }}",
"codeRepository": "{{wf {"path":"repository-url","type":"PlainText"} }}",
"programmingLanguage": "{{wf {"path":"language","type":"PlainText"} }}"
}
</script>
Schema HQ can generate this markup automatically by mapping Webflow CMS fields to the corresponding SoftwareSourceCode properties.
Validation
Google's Rich Results Test does not validate SoftwareSourceCode since it has no associated rich result type. Use the Schema.org Validator to check for syntax errors and type conformance.