Author: bharatkalluri

  • The self hosting dream

    If mobile apps have gotten so good with local sqlite databases, why can’t we hold ourselves to the same standards for servers?

    Families or individuals should be able to self host their own software under a sub-domain, give limited access to its some folks and run the show from their servers.

    A man can dream, So let’s dream for a bit..

    In an ideal world, a customer orders a box with storage of say, a TB and a domain for a year as well.. Should have a small screen which boots up.

    Something like Umbrel home.

    On power on, the screen boots up. Post startup asks you to connect Ethernet and once done asks you to scan a QR code which will open a url for onboarding. Where it’ll ask

    • Admin username & password
    • Base domain or maybe tailscale setup for networking.

    At this point , an authentication solution like authentik is setup which all the services will use going forward.

    At this point a vpn, something like Tailscale should also be setup so that secure access is shared cross devices.

    Now the installer suggests installing some apps like Jellyfin, omnivore, vaultwarden, WordPress etc.. & guides the user to start using that website on their other devices. The App Store clearly highlights which apps support SSO and which apps don’t.

    Apps should not ask for any input from the user, similar to how mobile apps don’t ask anything from the customer while installing. Similarly during uninstalling, the app will ask if it wants to delete data along with it or not.

    App Store listings should also come with companion app information along with QR codes for installing them on other devices. The App Store should also have feedback/reviews similar to Apple App Store.

    If an app requests for file permissions, they should just pop up stating that they require access to a certain directory similar to how phones do it.

    Stuff like backups are sorted so that if the device happens to be corrupted or non functional for some reason, you should be able to connect the phone & hit restore to the latest functional version. Even backups at a app level are sorted so that restoring to a particular checkpoint is seamless & can be done through admin panel.

    Upgrading storage should be a breeze, similar to how you would plug in a 512 GB SD card and move data into it.

    Support should be always at reach, maybe with a cost per consultation. So that if an elderly person is not able to log into her Jellyfin account, someone can take control & fix it seamlessly.

    Autoscaling should be possible, the user should be able to purchase a new node and during onboarding select that this is a non leader node. The leader will be responsible for managing load.

  • Practical self hosting

    Self hosting absolutely everything I feel is not practical as of today. Hopefully it will be possible one day, but currently is not. In that case, what can we actually self host? Maybe the question to ask is, why do we self host?

    Why do we self host?

    Privacy : Placing all our personal data in the hands of large multi national companies which in-turn sell our data or use it to train their large scale AI models is unfortunately the world we live in today. With self hosting, privacy is protected.

    Cost : Sometimes the storage costs of certain services mean that the subscription cost of services tend to be prohibitive. Self hosting that service means that we don’t have to incur that cost.

    Why don’t we already self host everything?

    Although this sounds like a stupid question, its very important to think through this one. The reasons I specifically do not self host for the longest time is

    • Deployment complexity: A non issue with projects like Caprover
    • Opportunity cost of failures: sometimes the opportunity cost of an action failing is higher than the subscription cost itself. For example, the opportunity cost of an email send or receive failure could mean a lot. During some ops work or because of some other random reason, what if the disk gets corrupted or data gets partially deleted. Can I just hit a button and restore my stack back what it was today morning? This seemingly simple ask is surprisingly complex.
    • Missing Network effect: Cannot move people from Instagram or Whatsapp. With the current setup, meta knows everything and there is nothing we can do about it if we want to live normally in this society unfortunately.

    With this information, what is that I use day to day but can’t self host (for context, look into the stack post)

    • Finance apps : PayTM, Fi bank etc.. obviously
    • Social media & distribution channel apps: Instagram, Whatsapp etc.. cannot ask people to move to matrix suddenly. Similarly Uber, Youtube, Prime video cannot be a self hosted solution since the moat is the network.
    • Critical communication apps: gmail, google calendar. The cost of missing an email or an invite is super high and not worth it. Better to switch to more secure apps like proton mail etc..

    So what can we self host then?

    App picks

    Library streaming solution – Jellyfin

    Libraries tend to be irrationally large after a while, hosting jellyfin on a old PC at home & using that as a base and streaming media to your TV / mobile across your family members & yourself is extremely cost effective. Going the subscription route will be extremely expensive.

    Password management – Vaultwarden

    Bitwarden is a beautifully done software to manage passwords across all kinds of devices. Vaultwarden is the rust implementation of Bitwarden.

    Bookmarks management – Omnivore

    Looking forward for omnivore to wrap up their self hosting setup so that I can start self hosting. Right now it does not exist.

    Status monitoring – Statping

    Simple, straight to the point and solid. Recommended!

    Missing apps in the ecosystem

    • A great to do app similar to TickTick with solid reminders, good apps on mobile & collaboration.
    • Sync solutions for photos & files. Automatically backing up photos, videos & documents so that information is not lost. An alternative for iCloud.
    • A great note taking / voice notes app with solid mobile apps and collaboration. Alternative for iCloud notes, simplenote etc..
    • Health tracking, ideally with hardware.
  • My digital garden workflow

    I’ve been searching for long on how to get this right. I think I have simple enough requirements, but have been complicating it without a reason.

    Here is what I want

    • WYSIWYG editor for easy writing
    • Drafts
    • Writing on mobile / tab / laptop
    • Light website which loads decently fast
    • Good search

    The idea is that, If something comes to mind. Converting it to text & putting it out in the garden should be friction less.

    Current setup

    WordPress happens to tick all the boxes. Now I run wordpress on a 7$ instance on Digital Ocean.

    It has

    • A fantastic editor
    • Support for drafts
    • Insane collection of themes
    • Great app to write & manage the website on the go (WordPress Jetpack)
    • Good search
    • Light website with cloudflare caching
  • Self quantification

    The idea is of collecting data points about thyself, in hope of drawing constructive inferences and use that to make positive changes to lifestyle.

    Here are some data points I would like to collate and analyze

    Data sources

    • Movies watched: Trakt
    • Books read: Goodreads
    • Song listening history: Last.fm
    • Run tracking: Strava
    • Habits
    • Programs used on the computer
    • Travel data
    • Caffeine intake
    • Food and corresponding calories
    • Financial Transactions
    • Podcasts
    • Chat history
    • Videos watched
    • Videos linked
    • Articles read
    • Articles liked
    • Websites visited
    • Articles I would want to refer later
    • Notes from books
    • Sleep tracking
    • Purchasing history
    • What do I ask alexa?
    • EMail data
    • Keystrokes
    • Calendar events
    • Phone calls
    • Investments
    • Apps used on phone
    • Mood tracking
  • Command line tools

    I use many CLI tools for my day to day job.

    The emphasis on compatibility means that tools can be stitched together to accomplish a lot of things. I use a combination of saw, choose, jq & grep to parse production JSON logs all the time, and it is possible because each of them does one thing and does it well & most importantly is designed to allow data to be piped in and results to be piped out.

    Some of my favorites

    • FZF: A command line fuzzy finder. In my opinion, one of the smartest and well-made tools which just does one thing, but does it impeccably. I use this to replace ctrl + R to fuzzy search through history every day.
    • saw: A AWS cloudwatch tool
    • choose: alternative to cut
    • jq: command line JSON processor
    • aws cli: the official AWS command line application
    • zoxide: A smarter cd alternative
  • Minimalism

    “We buy things we don’t need with money we don’t have to impress people we don’t like.” ― Chuck Palahniuk, Fight Club

    There is a principle from extreme programming called YAGNI, stands for “you ain’t gonna need it”. I think this applies very well to possessions in life too. We own a lot of things we do not need and carry no emotional value. If an item does not provide value, get rid of it.

    Experiment to see what it takes to travel with less & experience more: One bag

  • One bag

    A man is rich in proportion to the things he can live without – Henry David Thoreau

    Philosophy

    Life would be much more simpler and high quality if all we need fits in a 50lt bag.

    List

    • 50 liter Backpack
    • Smaller backpack for travel

    Wear

    • 6 T shirts (mostly march tees)
    • 4 pairs of sweat pants
    • 1 Hoodie (march coffee hoodie or white hoodie. iff weather is cold)
    • 6 pairs of socks
    • Travel under garments
    • 4 gym pants
    • 4 gym shirts
    • Travel towel
    • Sun glasses
    • Head cover for while wearing helmet
    • Neck pillow

    Electronics

    • Phone with a good camera (iphone SE)
    • Earphones (Airpods)
    • Type C charger
    • Apple Watch charger
    • Kindle with at least 5 books ready to go
    • Laptop
    • Smart watch
    • USB thumb drive
    • Type C to HDMI cable
    • Power bank (ideally compatible with both laptop and phone)
    • Wireless Mouse
    • Bluetooth speaker

    Wallet

    • Proof of Identity
      • Aadhaar card
      • PAN
      • Passport
      • Driving License
    • 1 Credit card
    • 1 Debit card
    • Some cash. If international, some cash in dollars.
    • Prints of visa and other tickets if needed

    Toiletries

    • Sunscreen
    • Shampoo
    • Razor
    • Soap
    • Deo
    • Toothbrush, tongue cleaner & toothpaste
    • Comb
    • Trimmer
    • Nail cutter

    Miscellaneous

    • Medicines
  • Quotes

    A compilation of my favorites

    And those who were seen dancing were thought to be insane by those who could not hear the music – Nietzsche

    If someone says it’s raining and another person says it’s dry, it’s not your job to quote them both. Your job is to look out of the window and find out which is true – Jonathan Foster on journalists

    We buy things we don’t need with money we don’t have to impress people we don’t like – Chuck Palahniuk, Fight Club

    Yeah, seems like we’re all trying to climb a ladder. It’s crazy what we’ll do to climb it faster. It’s like we throw away the things in life that really matter. Just so we can make it to the top and wonder what we’re even climbing after – NF in 10 Feet Down

    Ships are safe at the harbour, but that’s not what they are built for

    If someone could only see your actions but not hear your words, what would they say your priorities are?

    Hard times create strong men. Strong men create good times. Good times create weak men. And, weak men create hard times. – G. Michael Hopf, Those Who Remain

    A true selfless act will always spark another – Dialogue from Klaus

  • Welcome to my digital garden

    This is my personal wiki where I share everything I know & learn. Think of this more to be public note taking.

    I try to dive into a lot of fields. Next time the same path is traversed by someone else, It should be significantly easier and faster. Hence, this is an effort to document my explorations of various rabbit holes & notes on opinions.

    Who am I?

    Hi, I’m Bharat Kalluri, I lead banking engineering team @ Refyne. I’ve been lucky enough to be a founding member and have witnessed the company scale from scratch.

    I love trekking, writing & teaching. You can mostly find me reading a book or listening to podcasts.

    Some interesting starting points

  • Ideapad

    Personal finance manager & tracker

    • Solving for: visibility into finances for course correction & planning
    • Sources to snapshot personal finance data from
      • zerodha coin for MF
      • zerodha kite for stock markets
      • HDFC FD for FD
      • HDFC savings for savings

    Dump notes and retrieve on demand

    • Solving for: The paralysis of organization
    • Two modes: input / search
    • Input mode
      • no distractions, command k to search existing files and quickly jump in and write
      • opens up a new note with heading & notes
      • tags on demand, command+p and add tags
      • metadata will be captured as you type, auto suggest tags on demand using chatGPT
    • Grep mode
      • Search by tags, synonyms, plain text, image metadata, URLs