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)