···1# Red Dwarf
2Red Dwarf is a Bluesky client that does not use any AppView servers, instead it gathers the data from [Constellation](https://constellation.microcosm.blue/) and each users' PDS.
34-
56huge thanks to [Microcosm](https://microcosm.blue/) for making this possible
7···52and for list feeds, you can just use something like graze or skyfeed to input a list of users and output a custom feed
5354## Tanstack Router
55-it does the job, nothing very specific was used here
00000005657-im planning to use the loader system on select pages to prevent loss of scroll positon and state though its really complex so i havent done it yet but the migration to tanstack query is a huge first step towards this goal00000000000
···1# Red Dwarf
2Red Dwarf is a Bluesky client that does not use any AppView servers, instead it gathers the data from [Constellation](https://constellation.microcosm.blue/) and each users' PDS.
34+
56huge thanks to [Microcosm](https://microcosm.blue/) for making this possible
7···52and for list feeds, you can just use something like graze or skyfeed to input a list of users and output a custom feed
5354## Tanstack Router
55+something specific was used here
56+57+so tanstack router is used as the base, but the home route is using tanstack-router-keepalive to preserve the route for better responsiveness, and it also saves scroll position of feeds into jotai (persistent)
58+59+i previously used a tanstack router loader to ensure the tanstack query cache is ready to prevent scroll jumps but it is way too slow so i replaced it with tanstack-router-keepalive
60+61+## Icons
62+this project uses Material icons. do not the light variant. sometimes i use `Mdi` if the icon needed doesnt exist in `MaterialSymbols`
6364+the project uses unplugin icon auto import, so you can just use the component and itll just work!
65+66+the format is:
67+```tsx
68+<IconMaterialSymbols{icon name here} />
69+// or
70+<IconMdi{icon name here} />
71+```
72+73+you can get the full list of icon names from iconify ([Material Symbols](https://icon-sets.iconify.design/material-symbols/) or [MDI](https://icon-sets.iconify.design/mdi/))
74+75+while it is nice to keep everything consistent by using material icons, if the icon you need is not provided by either material symbols nor mdi, you are allowed to just grab any icon from any pack (please do prioritize icons that fit in)
public/screenshot.jpg
This is a binary file and will not be displayed.
public/screenshot.png
This is a binary file and will not be displayed.
+12-1
src/auto-imports.d.ts
···6// biome-ignore lint: disable
7export {}
8declare global {
9-0000000000010}