loading...
Cover image for defe - All your Tech Updates at one place

defe - All your Tech Updates at one place

bhupesh profile image Bhupesh Varshney ๐Ÿ‘พ Originally published at bhupesh.codes ใƒปUpdated on ใƒป3 min read

TLDR;

I created defe(devfeed), a WebApp & CLI for aggregating popular "Tech" feeds for developers & Tech Enthusiasts

Why did I built this ยฏ_(ใƒ„)_/ยฏ

Well I like reading tech, this involves subscribing to newsletters & listening to various podcasts.
But the only problem with this is that all of this is distributed causing me to waste my time by installing various apps (which I open only once per day, No hard feelings for DEV, I โค๏ธ it) & subscribing to a number of newsletters.

How Am I suppose to read these quickly ๐Ÿ˜…

Well of course you have feedly but hey its not free right ?
That's why I thought of creating a FOSS alternative which is

  • Simple Enough to use (Minimal UI)
  • Is available for multiple clients (PWA & CLI for terminal lovers)
  • Can show me information while I'm travelling

Features โœจ

  • PWA PWA Stats
  • Read & Share Stories
  • Dark Mode *
  • Minimal UI
  • CLI
  • Filter Feed

Is that it ?
No
defe is a package, so you can make Bots ๐Ÿค– using it.

from defe import defe
import pprint

f = defe.feed()

pprint.pprint(f.news())

Enter fullscreen mode Exit fullscreen mode

This will print all the News from available News Feeders. You can read the documentation on how to use the package.

How its built ๐Ÿค”

The architecture is fairly simple

An Overview of how defe works

Multiple feeders are fetched at the same time using ThreadPoolExecutor() & are kept in a cache.

Feeders are web-sources which have a public feed (RSS/Atom) link
You can have a look at all the feeders here.

Let's say you request /news or run defe news (on CLI) all the available feeders under News category would be fetched simultaneously and are pushed in a disk based cache, subsequent requests will come from this cache.
For now the cache expiry time-limit is set to 1 hr by default (future releases might have a option to clear cache manually)

I used the following stack to build defe

  • Python
  • JavaScript

Few pre-built libraries/components which helped me build defe

  • MaterialzeCSS For the front-end of WebApp
  • feedparser For parsing RSS/Atom feeds of web sources.
  • diskcache Used for temporarily storing feeds for faster access.

How it looks ๐Ÿ”ฅ

Here is a demo for the defe CLI

And the WebApp Looks like

Contribute ๐Ÿค—

Bhupesh-V/defe - GitHub

I still have a lot of ideas to improve defe, but not all of it I can do alone, I require your help โค๏ธ
Feel free to contribute at

You can also request feeders by commenting your favourite sites below
or add them yourself

Add your favorite feeders #1

Send in RSS/Atom Feeds of your favorite sites, newsletters, podcasts. Make sure you are only editing one of these files

Don't forget to read the CONTRIBUTING guidelines before sending any PR.


This issue will remain open so you can always contribute ๐Ÿค—

Future Vision ๐Ÿ‘๏ธ

Some of the things I wish to implement in future

  • Push Notifications
  • Bookmark Stories
  • Play Podcasts right in terminal (for defe CLI)
  • Custom Feeds

You can have a look at projects board for more upcoming features in defe.

Feedback ๐Ÿ’ญ

Did you like defe ? or maybe its something you want to say, comment below
You can reach me directly at
Telegram | Twitter | E-mail

Discussion

pic
Editor guide
Collapse
codemouse92 profile image
Jason C. McDonald

Niiiiice!

Reports of RSS's death are greatly exaggerated.

Collapse
delta456 profile image
Swastik Baranwal

This is really good! I always wanted something like this!

Collapse
bhupesh profile image
Bhupesh Varshney ๐Ÿ‘พ Author

Glad you liked it ๐Ÿค—