Skip to main content
Glama

GQLTeam (Dan Podina)

Server Details

Services, case studies, articles and contact details of software architect Dan Podina.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

10 tools
get_articleGet articleA
Read-onlyIdempotent
Inspect

One article in full, including the complete post body as Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesArticle slug, for example owasp-asvs-levels

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety and idempotency profile. The description adds value by specifying that the output includes the complete post body as Markdown, which is behavioral information about the response format. It doesn't contradict annotations and adds context beyond what they provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with no filler. It front-loads the core purpose ('One article in full') and adds a key detail about the response format (Markdown). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with a single well-documented parameter and no output schema, the description tells the agent everything essential: it returns the full article including body in Markdown. It doesn't mention metadata or any error conditions, but given the annotations cover the safety profile and the schema covers the parameter, it's largely complete. A minor gap is that it doesn't state whether the response includes any other fields (e.g., title, date), but 'full' implies everything.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – the single parameter 'slug' has a clear description with an example. The tool description doesn't add any extra parameter semantics; it just says it returns one article. Since the schema fully documents the parameter, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (one article) and what it returns (full content including body as Markdown). It distinguishes itself from list_articles implicitly by saying 'one article in full,' but doesn't explicitly name the alternative or contrast with siblings like get_case_study or get_service. The verb is implied ('get') but understandable from the tool name and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need the full article content, but doesn't explicitly say when to use this instead of list_articles or other get_* tools. There is no mention of 'use this for full details' or naming alternatives. The context of sibling tools suggests a distinction, but the description itself provides no explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_case_studyGet case studyA
Read-onlyIdempotent
Inspect

One case study in full, including the complete page body as Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesCase study slug, for example labrago or sabra

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is established. The description adds useful behavioral context by specifying the return includes the complete body as Markdown, which goes beyond what the structured annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. It front-loads the core behavior—'one case study in full'—and then adds the key detail about Markdown body format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has one well-documented parameter, and the annotations cover safety. The description explains what is returned, including the full page body as Markdown, which is sufficient for an agent to select and invoke it correctly without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the slug parameter is well documented with examples in the schema. The description adds no additional parameter-level information, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a single case study in full, including the complete page body as Markdown. It distinguishes the tool from list_case_studies by emphasizing 'one' and 'in full', and from get_article by focusing on the case study resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: if you need one full case study, use this tool. However, it does not explicitly state when to prefer it over sibling tools such as list_case_studies or get_article, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contact_and_bookingGet contact and booking detailsA
Read-onlyIdempotent
Inspect

How to get in touch: email, phone, the booking link for a free 30 minute review, contact page, response time and location.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and idempotentHint=true, so the tool's safe, non-mutating nature is covered. The description adds value by specifying the returned content types (email, phone, booking link, response time, location), which is useful in the absence of an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the tool's purpose and enumerates the included details without wasted words. Every listed item adds useful information for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, read-only, idempotent tool, the description is complete: it lists the concrete result contents and the annotations cover behavior. No output schema exists, but the enumerated fields compensate by telling the agent what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there is no parameter documentation burden. The description appropriately focuses on what information the tool returns rather than input details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Get contact and booking details' provides a clear verb and resource, and the description enumerates exactly what is included: email, phone, booking link, contact page, response time, and location. This distinguishes it from siblings like get_article or get_profile, though the description itself relies partly on the title for the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need contact or booking information, and the listed contents make that context clear. However, it offers no explicit guidance on when to use this tool versus alternatives like get_profile or search, and no exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profileGet profileA
Read-onlyIdempotent
Inspect

Who Dan Podina is: role, company, location, expertise, current roles, links, contact details and the ventures he runs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful context about what fields the profile includes, but it does not disclose any additional behavioral traits like authentication, availability, or response structure beyond the content list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately identifies the subject and then provides a compact list of the profile's contents. Every element contributes meaning, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool, the annotations, and the empty input schema, the description covers the main content an agent needs. It could be more explicit about return shape, but the field enumeration gives sufficient grounding for a no-parameter profile lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is effectively 100%, so there is no parameter burden on the description. The baseline of 4 applies because there is nothing for the description to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a profile of Dan Podina, enumerating role, company, location, expertise, current roles, links, contact details, and ventures. It is specific about the resource and content, though it relies on the title for the verb and slightly overlaps with siblings like get_contact_and_booking and get_ventures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_ventures or get_contact_and_booking. The description implies general profile lookup but does not state exclusions or routing logic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_serviceGet serviceA
Read-onlyIdempotent
Inspect

One service in full: headline stats, FAQ, the offer, and the complete page body as Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesService slug, for example compliance or graphql-architecture

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds meaningful behavioral context beyond the annotations by specifying the return composition: headline stats, FAQ, offer, and the full page body rendered as Markdown. It does not contradict any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence. It front-loads the key idea ('One service in full') and then immediately lists the exact contents returned, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, idempotent single-resource fetch, the description adequately covers what will be returned. Error behavior and response shape are not described, but with no output schema and a single required slug parameter, this is a minor gap rather than a critical omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for the only parameter, slug, with a clear example ('compliance' or 'graphql-architecture'). The description adds no additional parameter-level meaning, so the baseline of 3 for complete schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource ('one service') and the scope ('in full'), and enumerates the specific content returned: 'headline stats, FAQ, the offer, and the complete page body as Markdown.' This distinguishes it from list_services and other get_* siblings, which fetch different resources or list summaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing 'One service in full' implies this is the tool to use when a complete single service is needed, but it does not explicitly state when to prefer it over alternatives such as list_services or search. There is no direct mention of exclusions or sibling routing, so usage guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_venturesGet venturesB
Read-onlyIdempotent
Inspect

The products and open source projects Dan Podina runs, with role and links.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds minor context about return contents (role and links) but does not disclose list shape, ordering, or any edge-case behavior. This is acceptable for a simple getter but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no filler, naming the resource and its key attributes. It is front-loaded and easy to scan, though it could arguably be compressed further without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only, idempotent tool with existing annotations, this description is sufficient. It tells the agent what the tool returns and distinguishes it from siblings. An output schema is absent, but for this trivial call shape the description covers what matters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to clarify. The schema's empty properties object is complete, and the description adds nothing necessary. Baseline 4 for a no-parameter tool is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a distinct resource: products and open source projects with role and links. It clearly separates get_ventures from siblings like get_article or get_profile, even though it uses a noun phrase rather than an explicit verb like 'retrieves'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives. No exclusions, no context about whether to use search or a list_* sibling, and no mention of use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_articlesList articlesA
Read-onlyIdempotent
Inspect

Blog articles, newest first, with publication date, tags and reading time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds output ordering and field context but does not disclose pagination, limits, or whether full article content is included. This is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single succinct sentence fragment that front-loads the resource and includes only meaningful details: ordering and response fields. No redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, the description conveys the core return shape and order, and annotations cover the behavioral safety profile. The main minor gap is whether results are paginated or include all articles, but this is not a major omission given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema leaves nothing to document and the description has no parameter burden. The baseline of 4 applies because there are no parameter semantics to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the exact resource ('Blog articles') and specifies ordering ('newest first') and included fields. Combined with the title's verb 'List', it clearly distinguishes this from sibling tools like list_case_studies and list_services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving blog article listings and sets ordering expectations, but it does not explicitly state when to prefer this over alternatives such as get_article or search. The usage context is mostly inferred from the tool name and sibling structure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_case_studiesList case studiesA
Read-onlyIdempotent
Inspect

Case studies and shipped projects, with industry, technologies, headline metrics and current status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful content context (industry, technologies, metrics, status) but does not disclose ordering, pagination, or whether the list is exhaustive, which would strengthen transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise clause with no filler or repetition. Every phrase adds meaning about the tool's returned content, and it is appropriately sized for a zero-parameter list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-parameter list tool with no output schema, the description adequately identifies the resource and key content fields. It is complete enough for an agent to invoke correctly, though a brief note on when to prefer get_case_study would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter ambiguity and the baseline is 4. The description's mention of returned fields is more about output semantics than parameters, but this is not a gap given the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name supply the verb 'list' and the description identifies the resource: case studies/shipped projects with specific content fields. It is distinguishable from siblings like list_articles and get_case_study by resource type, though the description itself does not explicitly contrast it with get_case_study.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus get_case_study, search, or list_articles. There is no mention of prerequisites, alternatives, or exclusions, so an agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesList servicesA
Read-onlyIdempotent
Inspect

Every consulting service offered, with the slug to pass to get_service.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds value beyond annotations by revealing the output's downstream use as the slug input to get_service, which is useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, informative sentence with no filler. The scope and the connection to get_service are both front-loaded and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only, idempotent list tool, the description is complete. It tells the agent what is returned and how to use the result, and annotations cover the operational safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description correctly does not attempt to document nonexistent parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: it returns every consulting service offered. It also differentiates from siblings like get_service by framing the output as the slug source for that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is clear and unambiguous: call this to enumerate services and obtain slugs for get_service. It does not explicitly state exclusions, but the zero-parameter list semantics make alternatives obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedget_article
    • First observedget_case_study
    • First observedget_contact_and_booking
    • First observedget_profile
    • First observedget_service
    • First observedget_ventures
    • First observedlist_articles
    • First observedlist_case_studies
    • First observedlist_services
    • First observedsearch

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Turn any .NET test-automation solution into a queryable map in one SQLite file — features, steps, API clients, page objects, and their dependencies. Zero config, no AI, no network, 100% deterministic.
    4
    11
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool maps to a distinct resource or action: individual articles, case studies, services, profile, ventures, contact info, and search are clearly separated. The only mild overlap is contact details appearing in both get_profile and get_contact_and_booking, but their purposes remain distinct.

Naming Consistency5/5

Tool names follow a consistent get_<singular> / list_<plural> convention, with search as a single clear outlier. The pattern makes it easy to predict that list_* returns collections and get_* returns one item.

Tool Count5/5

Ten tools is well-scoped for a personal website and consulting content server. Each tool covers a meaningful retrieval need without redundancy or bloat.

Completeness5/5

The server provides complete read-side coverage for the apparent domain: listing and retrieving articles, case studies, and services, plus profile, ventures, contact, and cross-content search. No create/update/delete operations are needed for a public content site, so there are no meaningful gaps.

Resources