tRPC Content API
tRPC Endpoints
tRPC Content API
Public Glider-owned content feed endpoints for product surfaces.
POST
tRPC Content API
The
Fetch the latest four Glider team portfolios:
content.* namespace is available on the public tRPC base endpoint:
- Base endpoint:
POST /v1/trpc - Namespace:
content.* - Auth: public
- Upstream: Glider blog and Glider-owned public strategy blueprints
- Server cache: 7200 seconds in process memory for successful refreshes; failed refreshes and curated fallback responses retry after 60 seconds
Procedures
-
content.getLatestBlogPosts- Purpose: fetch the latest posts from the Glider blog for dashboard and product education surfaces
- Input:
- optional
limit, 1-8, default4
- optional
- Upstream source:
https://blog.glider.fi/rss/ - Response includes normalized post
id,title,url,excerpt,imageUrl,publishedAt,categories,author,sourceUrl,fetchedAt, and cache metadata
-
content.getLatestTeamPortfolios- Purpose: fetch the latest public strategy blueprints owned by the canonical Glider team user for dashboard discovery surfaces
- Input:
- optional
limit, 1-8, default4
- optional
- Source:
- canonical user id
a725e6a1-8872-45ae-a753-c853b0dd848b - linked addresses in
user_addresses - public rows in
strategy_blueprints - excludes curated internal/test blueprint ids that should not appear on discovery surfaces
- canonical user id
- Response includes normalized portfolio
id,blueprintId,name,description,createdAt,updatedAt,fetchedAt,ownerUserId, and cache metadata
Runtime Notes
- The platform API parses Ghost RSS server-side so browser clients do not depend on RSS CORS behavior.
- RSS refreshes are bounded by timeout, content type, and response size before XML parsing.
- The team portfolio shelf resolves the canonical Glider user to linked wallet addresses server-side; browser clients never send or filter by the team wallet.
- If a refresh fails after a successful fetch, the API returns the cached posts
or portfolios with
cache.stale: trueand a short retry TTL. - If the upstream feed or database query is unavailable and no cache exists, the
procedure returns a small curated fallback list with
cache.source: "fallback"andcache.stale: true.