chore: updated README b8350053
Steve · 2025-11-07 00:25 1 file(s) · +65 −2
README.md +65 −2
1 1
# Alcove
2 2
3 -
End-to-end encrypted RSS reader for the web
3 +
![cover](https://dev.alcove.tools/og.png)
4 +
5 +
A privacy focused RSS reader for the open web
4 6
5 7
> [!WARNING]
6 -
> Project is still under active development
8 +
> Project is still under beta
9 +
> Try it out at [beta.alcove.tools](https://beta.alcove.tools)
10 +
11 +
## Reasoning
12 +
13 +
Alcove is built on two principles: **privacy** and **freedom of speech**.
14 +
15 +
Those two things are becoming harder to find these days, yet blogs and RSS feeds provide a way out. As long as someone is publishing and someone else is listening, these two fundamentals can help keep free speech alive.
16 +
17 +
Alcove accomplishes privacy through a "can't be evil" tech stack, which you can read more about [here](). **TLDR:** All of your feeds and posts that you read are encrypted locally and synced via cryptographic keypairs. Even if we wanted to read your stuff, we can't. We believe this is important as many other RSS readers cannot make the same promise and would have to hand over the data if ordered by authorities.
18 +
19 +
## Tech Stack
20 +
21 +
Alcove is built with [Evolu](https://evolu.dev) to handle the encrypted syncing of feeds. With Evolu each time the app is opened in a browser it spins up an identity used to encrypt and decrypt files, as well as an SQLite instance. As you add feeds or read posts, changes to the db are made and then encrypted before syncing with a relay. The relays let you access your data on another device by recovering your previous identity using a passphrase (mnemonic). Alcove currently has two relay instances:
22 +
23 +
- `wss://relay.alcove.tools` - Bare metal server
24 +
- `wss://relay2.alcove.tools` - Hosted Railway instance
25 +
26 +
The app also has to use a CORS proxy when fetching RSS feeds as most feeds do not allow cross origin fetching. Alcove will try a direct attempt first, and if it fails then it falls back to `proxy.alcove.tools`, which is a simple instance of [cors-proxy](https://github.com/stevedylandev/cors-proxy) that I have running on bare metal. If for any reason the main proxy is down it will use a fallback of `proxy2.alcove.tools` which is on a Cloudflare Worker.
27 +
28 +
> [!NOTE]
29 +
> While Alcove does everyhing possible to provide privacy it is still recommended to use a VPN to help mask IP addresses
30 +
31 +
## Quickstart
32 +
33 +
To start developing Alcove locally follow these steps:
34 +
35 +
1. Make sure [Bun](https://bun.sh) is installed
36 +
37 +
```bash
38 +
bun --version
39 +
```
40 +
41 +
2. Clone and install dependencies
42 +
43 +
```bash
44 +
git clone https://github.com/stevedylandev/alcove.git
45 +
cd alcove
46 +
bun install
47 +
```
48 +
49 +
3. Run the dev server
50 +
51 +
```bash
52 +
bun dev
53 +
```
54 +
55 +
4. Run a local relay (Optional)
56 +
57 +
```bash
58 +
bunx @evolu/relay start
59 +
```
60 +
61 +
Update the relay transport in `src/lib/evolu.ts`
7 62
8 63
## Roadmap
9 64
12 67
- [x] Import/Export account through mnemonic
13 68
- [x] Refresh/Update Feeds
14 69
- [ ] Tweakcn theme switching
70 +
71 +
## Acknowledgements
72 +
73 +
Alcove is heavily inspired by [NetNewsWire](https://netnewswire.com/) and [this post](https://inessential.com/2025/10/04/why-netnewswire-is-not-web-app.html) by Brent Simmons
74 +
75 +
## Questions
76 +
77 +
[Send me an email](mailto:contact@stevedylan.dev?subject=Alcove)!