> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel Bluesky

> An overview of revolution/laravel-bluesky covering requirements, installation, initial configuration, and your first post.

## Overview

[revolution/laravel-bluesky](https://github.com/invokable/laravel-bluesky) is a package that lets you work with the AT Protocol (Bluesky) from Laravel.

The facade is `Revolution\Bluesky\Facades\Bluesky`. You can create posts, retrieve feeds, search, upload media, and more with an API close to Laravel's HTTP client.

## Requirements

* PHP `>= 8.3`
* Laravel `>= 12.x`

## Installation

```bash theme={null}
composer require revolution/laravel-bluesky
```

## Environment variables

If you use App Password authentication, configure your `.env`.

```dotenv theme={null}
BLUESKY_IDENTIFIER=your-handle.bsky.social
BLUESKY_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx
```

## Quick start

### Your first post

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;

$response = Bluesky::login(
    identifier: config('bluesky.identifier'),
    password: config('bluesky.password'),
)->post('Hello Bluesky');
```

### Using TextBuilder for links and tags

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Record\Post;
use Revolution\Bluesky\RichText\TextBuilder;

$post = Post::build(function (TextBuilder $builder) {
    $builder->text('Hello Bluesky')
        ->newLine(count: 2)
        ->link('https://bsky.app/')
        ->newLine()
        ->tag('#Bluesky');
});

$response = Bluesky::login(
    identifier: config('bluesky.identifier'),
    password: config('bluesky.password'),
)->post($post);
```

<Warning>
  Due to a temporary API restriction, `searchPosts()` currently does not work unauthenticated. Use an authenticated session for search as well.
</Warning>

## Documentation

<Columns cols={2}>
  <Card title="Basic client" href="/en/packages/laravel-bluesky/basic-client" icon="terminal-square">
    App Password / OAuth, posts, media, replies, quotes, feeds, and search.
  </Card>

  <Card title="Socialite" href="/en/packages/laravel-bluesky/socialite" icon="shield-check">
    Bluesky-specific Socialite configuration and usage with AT Protocol OAuth (DPoP).
  </Card>

  <Card title="Notification channel" href="/en/packages/laravel-bluesky/notification" icon="bell">
    Post to Bluesky and send DMs via a Laravel Notification channel.
  </Card>

  <Card title="Feed Generator" href="/en/packages/laravel-bluesky/feed-generator" icon="rss">
    Build and publish your own algorithmic feeds.
  </Card>
</Columns>

## Reference links

* GitHub: [invokable/laravel-bluesky](https://github.com/invokable/laravel-bluesky)
* DeepWiki: [invokable/laravel-bluesky](https://deepwiki.com/invokable/laravel-bluesky)


## Related topics

- [Socialite - Laravel Bluesky](/en/packages/laravel-bluesky/socialite.md)
- [Bot tutorial - Laravel Bluesky](/en/packages/laravel-bluesky/bot-tutorial.md)
- [Notification channel - Laravel Bluesky](/en/packages/laravel-bluesky/notification.md)
- [Basic client - Laravel Bluesky](/en/packages/laravel-bluesky/basic-client.md)
- [Authentication methods - Laravel Bluesky](/en/packages/laravel-bluesky/authentication.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.