Feeds And Archive API

Read it your way

Four ways in, none of them an app

Everything published here is available as a feed. No account, no key, no rate limit worth mentioning.

The whole API

curl "https://beste.co/api/archive?q=estimates&limit=5"

If you build something on top of this, we would like to see it, but you do not have to ask.

About this block

Feeds And Archive APIPRO

A hairline list of every way to follow a publication, each row naming the feed, what it carries and its address, over a copyable one-line request that stands in for the whole API.

Devtools95: Feeds And Archive API

A hairline list of every way to follow a publication, each row naming the feed, what it carries and its address, over a copyable one-line request that stands in for the whole API.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/devtools95?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/devtools95?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/devtools95.tsx and the badge6 component it uses for the eyebrow (installed to components/beste/component/badge6.tsx).

Quick start

The installed file exports devtools95Demo alongside the block: the exact props behind the preview above. Spread it to get a working feeds page in one line.

tsx
import { Devtools95, devtools95Demo } from "@/components/beste/block/devtools95";

export default function FeedsPage() {
  return <Devtools95 {...devtools95Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Devtools95 } from "@/components/beste/block/devtools95";

export default function FeedsPage() {
  return (
    <Devtools95
      eyebrow="Read it your way"
      heading="Four ways in, none of them an app"
      description="Everything published here is available as a feed."
      feeds={[
        {
          name: "RSS",
          description: "Full text of every piece, in publication order.",
          address: "/feed.xml",
          href: "/feed.xml",
        },
      ]}
      snippetLabel="The whole API"
      snippet={'curl "https://beste.co/api/archive?q=estimates&limit=5"'}
      copyLabel="Copy"
      copiedLabel="Copied"
      note="If you build something on this, we would like to see it."
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Badge6 label above the hairline rule
headingstring–Section heading under the rule
descriptionstring–Supporting paragraph
feedsFeedRow[][]One linked row per feed
snippetLabelstring–Label above the request
snippetstring–The request itself, shown in a pre
copyLabelstring–Copy button label
copiedLabelstring–Copy button label after copying
notestring–Single line under the panel
classNamestring–Extra classes for the outer section
ts
type FeedRow = {
  name: string;
  description: string;
  address: string;
  href: string;
};

Behavior notes

  • Copying uses navigator.clipboard?.writeText, guarded with optional chaining, and the snippet stays selectable as the fallback.
  • The copied state has no timer. It holds until the component remounts, so the confirmation does not disappear while it is being read.
  • The snippet is a real pre with overflow-x-auto, so a long request scrolls inside its panel instead of stretching the section.
  • The address column is right aligned from md up, which keeps paths of different lengths in one line down the page.

More DevTools blocks

View all DevTools
PRO

devtools1

API Endpoint Explorer

PRO

devtools96

Quiet API Reference

PRO

devtools4

Error Monitoring Feed

Get Pro access