rust reimplentation of sequoia.pub
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

rsequoia vs Sequoia — differences#

rsequoia is a Rust reimplementation of sequoia-cli. This document notes the differences.

Additions (not in original Sequoia)#

OAuth token authentication#

rsequoia accepts pre-authenticated OAuth tokens via environment variables:

  • RSEQUOIA_ACCESS_TOKEN — Bearer token
  • RSEQUOIA_DID — AT Protocol DID
  • RSEQUOIA_PDS_URL — PDS base URL

This is the highest-priority auth method, above app passwords and stored credentials. It enables integration with tools like lichen that already manage their own AT Protocol OAuth flow.

Library usage#

rsequoia is structured as a Rust library (lib.rs) with a binary entry point. All modules (config, credentials, discovery, publish, inject, pds_client, markdown, types) are public and can be imported directly into other Rust projects.

Missing features (in original Sequoia but not here)#

Bluesky post creation#

Sequoia can optionally create a Bluesky post (app.bsky.feed.post) with an external embed linking to each published document. rsequoia does not create Bluesky posts.

bskyPostRef field#

Sequoia tracks the Bluesky post reference in the document record's bskyPostRef field. rsequoia does not set this field.

content union field#

The standard.site document schema has a content field defined as an open union. Neither Sequoia nor rsequoia populate this — both use textContent (plain text) instead.

basicTheme field#

The standard.site publication schema has a basicTheme field for styling hints. Neither Sequoia nor rsequoia set this field.

sync command#

Sequoia has a sequoia sync command that fetches remote state and reconciles with local files. rsequoia does not have a sync command — it only pushes local state to the PDS.

autoSync config#

Sequoia's config supports autoSync for automatic frontmatter updates with AT URIs. rsequoia does not modify source files.

pathTemplate config#

Sequoia supports pathTemplate with token replacement ({slug}, {year}, etc.) for URL generation. rsequoia uses pathPrefix + slug only.

removeIndexFromSlug config#

Sequoia can strip /index suffixes from slugs. rsequoia handles this but does not expose it as a config option.

UI config#

Sequoia has a ui config section. rsequoia does not (it is CLI-only).

Behavioral differences#

Credential storage location#

  • Sequoia: ~/.config/sequoia/credentials.json
  • rsequoia: ~/.config/rsequoia/credentials.json

Environment variable names#

  • Sequoia: SEQUOIA_PROFILE for profile selection
  • rsequoia: RSEQUOIA_ACCESS_TOKEN, RSEQUOIA_DID, RSEQUOIA_PDS_URL for OAuth

Both support ATP_IDENTIFIER, ATP_APP_PASSWORD, and PDS_URL.

canonicalUrl field#

Both Sequoia and rsequoia add a canonicalUrl field to document records. This field is NOT in the standard.site lexicon schema but is used for linking back to the original site.

Text content extraction#

Both strip markdown to plain text for textContent, capped at 10,000 characters. The exact stripping logic may differ slightly between implementations.

standard.site lexicon conformance#

Both rsequoia and Sequoia implement the same subset of the standard.site lexicons:

site.standard.document — all required fields (site, title, publishedAt) plus optional path, description, coverImage, textContent, tags, updatedAt.

site.standard.publication — all required fields (url, name) plus optional icon, description, preferences.