A website for the ATmosphereConf
1# ATmosphereConf
2
3Main website: https://atmosphereconf.org (currently redirects to our ticketing landing page)
4
5News & Updates: <https://news.atprotocol.org> (powered by Leaflet!)
6Save the Date with an RSVP on [Smoke Signal](https://smokesignal.events/did:plc:lehcqqkwzcwvjvw66uthu5oq/3lte3c7x43l2e)
7
8We will be building out a conference website with a handful of ATProto specific features.
9
10For open discussion, and for those who are joining as active volunteers, please visit the [community forum](https://discourse.atprotocol.community/c/atmosphereconf/25/none).
11
12## Conference Profile
13For starters, we're going to have a custom conference profile. Attendees and speakers (and anyone else!) can login and create an extended profile. Inspired by [Discover Toronto](https://discover.toronto.inc/), we had an [initial discussion in the forum](https://discourse.atprotocol.community/t/conference-profiles/186) and are going to work on fleshing this out here with detailed issues.
14
15# Astro ATProto OAuth Starter
16
17A minimal [Astro](https://astro.build) starter template demonstrating OAuth authentication with AT Protocol (ATProto), the decentralized social networking protocol used by Bluesky and other services.
18
19This starter includes:
20- Complete OAuth authentication flow using `@atproto/oauth-client-node`
21- Cookie-based session management
22- Profile display after authentication
23- Login/logout endpoints
24- Tailwind CSS and DaisyUI styling
25
26## 🚀 Getting Started
27
281. **Install dependencies:**
29 ```sh
30 npm install
31 ```
32
332. **Configure environment variables:**
34 ```sh
35 cp .env.template .env
36 ```
37 Edit `.env` if you need to change the port (default: 4321) or set a public URL.
38
393. **Start the development server:**
40 ```sh
41 npm run dev
42 ```
43 The app will be available at `http://localhost:4321`
44
454. **Try logging in:**
46 Enter your AT Protocol handle (e.g., `alice.bsky.social`) to authenticate.
47
48## 📁 Project Structure
49
50```text
51/
52├── public/
53├── src/
54│ ├── lib/
55│ │ ├── context.ts # OAuth client singleton
56│ │ ├── oauth.ts # OAuth client configuration
57│ │ ├── session.ts # Session management
58│ │ └── storage.ts # Cookie-based stores
59│ ├── pages/
60│ │ ├── api/
61│ │ │ ├── login.ts # Login endpoint
62│ │ │ ├── logout.ts # Logout endpoint
63│ │ │ └── oauth/
64│ │ │ └── callback.ts # OAuth callback handler
65│ │ └── index.astro # Main page with login UI
66│ └── styles.css
67└── package.json
68```
69
70## 🧞 Commands
71
72All commands are run from the root of the project, from a terminal:
73
74| Command | Action |
75| :------------------------ | :----------------------------------------------- |
76| `npm install` | Installs dependencies |
77| `npm run dev` | Starts local dev server at `localhost:4321` |
78| `npm run build` | Build your production site to `./dist/` |
79| `npm run preview` | Preview your build locally, before deploying |
80| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
81| `npm run astro -- --help` | Get help using the Astro CLI |
82
83## 📚 Learn More
84
85- [Astro Documentation](https://docs.astro.build)
86- [AT Protocol Documentation](https://atproto.com)
87- [@atproto/oauth-client-node](https://github.com/bluesky-social/atproto/tree/main/packages/oauth/oauth-client-node)
88- [Bluesky](https://bsky.app)