···11-This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
11+# 🦋 bsky.md — Bluesky as Markdown
2233-## Getting Started
33+**Live: https://bsky-md.vercel.app**
4455-First, run the development server:
55+Fetch any public Bluesky content as clean, portable Markdown. No auth, no API key, just a URL.
6677-```bash
88-npm run dev
99-# or
1010-yarn dev
1111-# or
1212-pnpm dev
1313-# or
1414-bun dev
1515-```
77+## Endpoints
1681717-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
99+| Route | Description |
1010+|-------|-------------|
1111+| `GET /profile/:handle` | Bio, stats, avatar/banner |
1212+| `GET /profile/:handle/posts` | Paginated posts feed |
1313+| `GET /profile/:handle/post/:rkey` | Single post with embeds |
1414+| `GET /profile/:handle/post/:rkey/thread` | Full self-reply thread |
1515+| `GET /profile/:handle/feed/:rkey` | Public custom feed |
1616+| `GET /profile/:handle/likes` | Posts the user liked |
1717+| `GET /profile/:handle/followers` | Follower list |
1818+| `GET /profile/:handle/following` | Following list |
1919+| `GET /search?q=:query` | Full-text post search |
2020+| `GET /trending` | Trending topics right now |
2121+| `GET /llms.txt` | Machine-readable API guide for agents |
18221919-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
2323+## Features
20242121-This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
2525+- Rich text facets → Markdown links (mentions, URLs, hashtags)
2626+- Image embeds with alt text + full CDN URLs
2727+- Video embeds (thumbnail + HLS link)
2828+- External link cards (title, description, thumbnail)
2929+- Quote posts rendered as blockquotes
3030+- Custom feeds (What's Hot, etc.)
3131+- Trending topics
3232+- Pagination cursors on all list endpoints
3333+- `Content-Type: text/markdown`, open CORS, edge-cached
22342323-## Learn More
3535+## Usage
3636+3737+```bash
3838+# Profile
3939+curl https://bsky-md.vercel.app/profile/bsky.app
4040+4141+# Posts
4242+curl https://bsky-md.vercel.app/profile/bsky.app/posts
4343+4444+# What's Hot feed
4545+curl https://bsky-md.vercel.app/profile/bsky.app/feed/whats-hot
24462525-To learn more about Next.js, take a look at the following resources:
4747+# Search
4848+curl "https://bsky-md.vercel.app/search?q=atproto"
26492727-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
2828-- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
5050+# Trending
5151+curl https://bsky-md.vercel.app/trending
5252+```
29533030-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
5454+## For LLMs
31553232-## Deploy on Vercel
5656+See [`/llms.txt`](https://bsky-md.vercel.app/llms.txt) for a machine-readable guide to every endpoint.
33573434-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
5858+## Stack
35593636-Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
6060+Next.js 16 · TypeScript · `@atproto/api` · Deployed on Vercel
+3-1
app/layout.tsx
···55 title: 'bsky.md — Bluesky as Markdown',
66 description:
77 'Fetch any public Bluesky profile, post, feed, or search as clean Markdown. No auth, no API key.',
88- icons: { icon: '/icon.svg' },
88+ icons: {
99+ icon: "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🦋</text></svg>",
1010+ },
911}
10121113export default function RootLayout({ children }: { children: React.ReactNode }) {