A website for the ATmosphereConf
at main 90 lines 4.0 kB view raw view rendered
1# ATmosphereConf 2 3> ![NOTE] There is a Github repo at <https://tangled.org/@atprotocol.dev/ATmosphereConf.org> that was another start to this. We are using Railway for hosting, and it has Github integration for deploys, so we're going to use this for now and then figure out how to sync both, and primarily use tangled for issues and development. 4 5Main website: https://atmosphereconf.org (currently redirects to our ticketing landing page) 6 7News & Updates: <https://news.atprotocol.org> (powered by Leaflet!) 8Save the Date with an RSVP on [Smoke Signal](https://smokesignal.events/did:plc:lehcqqkwzcwvjvw66uthu5oq/3lte3c7x43l2e) 9 10We will be building out a conference website with a handful of ATProto specific features. 11 12For open discussion, and for those who are joining as active volunteers, please visit the [community forum](https://discourse.atprotocol.community/c/atmosphereconf/25/none). 13 14## Conference Profile 15For 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. 16 17# Astro ATProto OAuth Starter 18 19A 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. 20 21This starter includes: 22- Complete OAuth authentication flow using `@atproto/oauth-client-node` 23- Cookie-based session management 24- Profile display after authentication 25- Login/logout endpoints 26- Tailwind CSS and DaisyUI styling 27 28## 🚀 Getting Started 29 301. **Install dependencies:** 31 ```sh 32 npm install 33 ``` 34 352. **Configure environment variables:** 36 ```sh 37 cp .env.template .env 38 ``` 39 Edit `.env` if you need to change the port (default: 4321) or set a public URL. 40 413. **Start the development server:** 42 ```sh 43 npm run dev 44 ``` 45 The app will be available at `http://localhost:4321` 46 474. **Try logging in:** 48 Enter your AT Protocol handle (e.g., `alice.bsky.social`) to authenticate. 49 50## 📁 Project Structure 51 52```text 53/ 54├── public/ 55├── src/ 56│ ├── lib/ 57│ │ ├── context.ts # OAuth client singleton 58│ │ ├── oauth.ts # OAuth client configuration 59│ │ ├── session.ts # Session management 60│ │ └── storage.ts # Cookie-based stores 61│ ├── pages/ 62│ │ ├── api/ 63│ │ │ ├── login.ts # Login endpoint 64│ │ │ ├── logout.ts # Logout endpoint 65│ │ │ └── oauth/ 66│ │ │ └── callback.ts # OAuth callback handler 67│ │ └── index.astro # Main page with login UI 68│ └── styles.css 69└── package.json 70``` 71 72## 🧞 Commands 73 74All commands are run from the root of the project, from a terminal: 75 76| Command | Action | 77| :------------------------ | :----------------------------------------------- | 78| `npm install` | Installs dependencies | 79| `npm run dev` | Starts local dev server at `localhost:4321` | 80| `npm run build` | Build your production site to `./dist/` | 81| `npm run preview` | Preview your build locally, before deploying | 82| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | 83| `npm run astro -- --help` | Get help using the Astro CLI | 84 85## 📚 Learn More 86 87- [Astro Documentation](https://docs.astro.build) 88- [AT Protocol Documentation](https://atproto.com) 89- [@atproto/oauth-client-node](https://github.com/bluesky-social/atproto/tree/main/packages/oauth/oauth-client-node) 90- [Bluesky](https://bsky.app)