BlueSky & more on desktop lazurite.stormlightlabs.org/
tauri rust typescript bluesky appview atproto solid
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add license (MIT)

+33 -12
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2026 Owais J. 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+6
README.md
··· 1 1 # Lazurite (for Desktop) 2 2 3 + This app is the "successor" to [bsky-browser](https://tangled.org/did:plc:xg2vq45muivyy3xwatcehspu/skybidi) and companion to [Lazurite for Mobile](https://github.com/stormlightlabs/lazurite). 4 + 3 5 ## Features 4 6 5 7 - Account switching ··· 22 24 23 25 - [Aeronaut for BlueSky](https://apps.apple.com/us/app/aeronaut-for-bluesky/id6670275450) (Mac Only) 24 26 - [pds.ls](https://pds.ls) 27 + 28 + ## License 29 + 30 + MIT
+1
src-tauri/Cargo.toml
··· 4 4 description = "A Tauri App" 5 5 authors = ["Owais J. <me@desertthunder.dev>"] 6 6 edition = "2021" 7 + license = "MIT" 7 8 8 9 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 10
+2 -2
src/components/AppRail.tsx
··· 27 27 28 28 function RailNavigation(props: { collapsed: boolean; hasSession: boolean }) { 29 29 return ( 30 - <div class="grid gap-1 max-[1180px]:col-start-2 max-[1180px]:row-start-1 max-[1180px]:flex max-[1180px]:min-w-0 max-[1180px]:items-center max-[1180px]:gap-2 max-[1180px]:overflow-x-auto max-[1180px]:overscroll-contain max-[1180px]:[scrollbar-width:none] max-[1180px]:[&::-webkit-scrollbar]:hidden max-[760px]:col-start-auto max-[760px]:row-start-auto"> 30 + <div class="grid gap-1 max-[1180px]:col-start-2 max-[1180px]:row-start-1 max-[1180px]:flex max-[1180px]:min-w-0 max-[1180px]:items-center max-[1180px]:gap-2 max-[1180px]:overflow-x-auto max-[1180px]:overscroll-contain max-[1180px]:[scrollbar-width:none] max-[1180px]:[&::-webkit-scrollbar]:hidden"> 31 31 <Show 32 32 when={props.hasSession} 33 33 fallback={<RailButton end compact={props.collapsed} href="/auth" label="Accounts" icon="profile" />}> ··· 60 60 ) { 61 61 return ( 62 62 <aside 63 - class="flex min-h-screen min-w-0 flex-col gap-6 overflow-visible bg-surface-container-lowest px-6 pb-6 pt-6 transition-[padding,gap] duration-300 ease-out max-[1180px]:grid max-[1180px]:min-h-0 max-[1180px]:grid-cols-[auto_minmax(0,1fr)] max-[1180px]:items-center max-[1180px]:gap-x-4 max-[1180px]:gap-y-3 max-[1180px]:p-4 max-[760px]:grid-cols-1 max-[760px]:items-stretch" 63 + class="flex min-h-screen min-w-0 flex-col gap-6 overflow-visible bg-surface-container-lowest px-6 pb-6 pt-6 transition-[padding,gap] duration-300 ease-out max-[1180px]:grid max-[1180px]:min-h-0 max-[1180px]:grid-cols-[auto_minmax(0,1fr)] max-[1180px]:items-center max-[1180px]:gap-x-4 max-[1180px]:gap-y-3 max-[1180px]:p-4" 64 64 classList={{ "items-center px-4": props.collapsed && !props.narrow, "gap-5": props.collapsed && !props.narrow }} 65 65 aria-label="Primary navigation"> 66 66 <RailHeader collapsed={props.collapsed} onToggleCollapse={props.onToggleCollapse} />
+3 -10
src/components/panels/Header.tsx
··· 1 - import { LazuriteLogo } from "../Wordmark"; 2 - 3 1 type HeaderPanelProps = { metaLabel: string }; 4 2 5 3 export function HeaderPanel(props: HeaderPanelProps) { 6 4 return ( 7 5 <header class="grid gap-4 xl:grid-cols-[minmax(0,1fr)_auto] xl:items-start"> 8 - <div class="flex items-center gap-5"> 9 - <span class="grid shrink-0 place-items-center rounded-xl bg-white/4 p-3 text-primary shadow-[inset_0_0_0_1px_rgba(255,255,255,0.04)]"> 10 - <LazuriteLogo class="h-12 w-12" /> 11 - </span> 12 - <div class="grid gap-0.5"> 13 - <h1 class="m-0 text-[clamp(1.6rem,3vw,2.4rem)] font-semibold leading-[1.08] tracking-[-0.03em]">Lazurite</h1> 14 - <p class="m-0 text-xs text-on-surface-variant">Powered by Bluesky</p> 15 - </div> 6 + <div class="grid gap-0.5"> 7 + <h1 class="m-0 text-[clamp(1.6rem,3vw,2.4rem)] font-semibold leading-[1.08] tracking-[-0.03em]">Lazurite</h1> 8 + <p class="m-0 text-xs text-on-surface-variant">Powered by Bluesky</p> 16 9 </div> 17 10 <p class="overline-copy text-xs tracking-[0.18em] text-on-surface-variant xl:pt-2">{props.metaLabel}</p> 18 11 </header>