Category: Uncategorized

  • Product thinking principles

    I don’t have a MBA. I make products all the time and I fumble. A lot. And then I learn the hard way. So here’s a documentation of all the product principles I’ve stumbled into the hard way.

    Mistakes I’ve made

    • I build tools for a better version of people’s behaviour rather than tools for people’s actual behaviour. Accept humans exactly as they behave today. Build around their laziness, forgetfulness, existing habits, social context and moments of motivation.

    Frameworks and mental models

    Just a heads up. You can have all this in place and still end up with a shitty product. Just like if you don’t know cooking but have all the best kitchen equipment, you’ll still end up with a bad dish.

    The fundamental shift in thinking is that the user is lazy and does not want to do grunt work. But wants the rewards of the grunt work. Build for a 10x improvement over the baseline. All of this stuff will just help you fight your default thinking so that you think comprehensively and exhaustively.

    1. Jobs to be done: very simple idea. When [situation], I want to [motivation], so I can [desired outcome]. The trigger or situation and motivation is very very important.
    2. Figure out the trigger -> action -> reward loop. Be brutal about this. To some extent this is the same as above.
    3. Activation/Aha moment: What is the earliest moment when the user understands why this product deserves to exist? And then figure out TTV, time to value. Minimize TTV brutally. The lesser the TTV, the more you’ll retain your users.
    4. Frequency × Pain matrix: High freq, high pain? Awesome! Low freq, low pain: Bad. Its a matrix, you get it.
    5. Hair-on-Fire Test: What happens if my product disappears, ideally the user should really feel bad that they’ll have to go back to their shitty manual workaround.
    6. Riskiest Assumption Test (RAT): List out all assumptions, figure out the assumptions if wrong kill the product. Then just sit and validate that.
    7. Retention before Growth: Figure out what keeps people around rather then sign up. There’s no point if a million people sign up but no one sticks around.

    Now everytime I have an idea, I run it past these points, mull over it for a while and then commit to a solution. Coding comes last.

  • How I take my personal notes, with AI

    Obsidian is awesome. It has always been my favourite way of note taking. But with AI taking over, it was the last missing piece now. Obsidian is I think the best way to take notes and work on inferences from our existing notes hands down. With some skills and some routines, this is as powerful as having a PA I feel. I’m not over hyping it, I promise.

    Sync across devices

    I happen to have an iPhone & an macbook pro, so iCloud is a given. Now Obsidian vaults can be placed in iCloud since they are just markdown files. Which means I can edit my notes on both my phone and my laptop. This is a crucial piece for the puzzle.

    Philosophy

    Now that sync is sorted, next we get into the philosophy of note taking.

    Always keep the raw files

    have the raw files stored up in a folder. LLMs can make mistakes and it always helps to have the sources handy. Also, LLMs do a great job at simplifying data from complex raw files. This is the most important step.

    Write with AI

    Voice as input has gotten really good. Now you don’t need to sit down and type out every word, just dictate and AI will do a good job of cleaning stuff up and writing a nice update to a note or a new note. Make use of this convenience to add data into the vault as much as possible.

    Daily notes as a journal

    You could argue that daily notes are also a raw source. I don’t disagree. That’s one way to look at it. Just make sure to journal all the important points so that when looking back it helps to connect the dots. I also roll up daily notes monthly once into a large monthly note since I don’t seem to like the clutter of having one note per day, but this is just personal preference.

    Projects

    Track all the projects, with all the attachments (in raw folder) under one folder. If you are shifting houses, that’s a project. If you are planning to upgrade your CPU and analyzing where the bottleneck is , that’s a project. Its funny, but every month you’ll have some or the other projects. Its worthwhile to keep notes and findings around them in one place.

    Hobbies

    These are what are called living notes, they tend to slowly evolve over time with projects and other information. Worthwhile to keep them somewhere neatly.

    And then everything else, I tend to keep health, wealth, community and self as other top level folders.

    Data sources

    The raw folder is really powerful. You can store pdfs, csvs, power points or whatever you feel like there. and then point the AI at it and extract valuable info. here are the data sources I update frequently or every month atleast

    1. Voice notes – I use voicenotes.ai extensively and have a obsidian plugin to sync all my voicenotes to this folder
    2. bank statements – If you want to understand something, follow the money. This contains the bank statements of my bank statements, credit cards etc.. really high signal info.
    3. investments – I connected the zerodha MCP to AI and it pulls down my current state of investments and stores a snapshot of it here. useful for audit trail.
    4. order history – I pull data from amazon using Amazon order history reporter in csv files and store it here.
    5. calendars – I pull data from my google calendar using gws cli. I tend to create events when I plan on doing something or when I’m doing something, for instance when I’m travelling, movie bookings etc..

    and everything else just lives somewhere else. For example, there are other misc folders contain tickets, invoices, payslips etc.. the AI decides where to put what.

    Rituals

    The monthly review

    The most high signal activity I do with my notes. Every month start I make sure all the data is populated for the last month and ask it to do a monthly review of the previous month. The broad structure is as follows.

    # Health## Data- [[raw/calendars/2026-04/[email protected]]]- [[raw/calendars/google/2026-04.json]]## State...## Focus1. ...2. ...---# Wealth## Data- [[raw/bank-statements/hdfc/2026-04-01-hdfc-bank-statement.csv]]- [[raw/credit-card-statements/diners-black/2026-04-01-diners-black-cc-statement.xls]]- [[raw/investments/zerodha/2026-04.json]]### Spending by Category ... (a large table of category wise spends)### Notable...## Focus1. ...2. ...3. ...---# Community## State...## Focus1. ...---# Looking Ahead...

    Skeleton structure for monthly review

    With the raw sources intact, the monthly summary is very high signal. Overtime I also roll up monthly summaries into quarterly summaries and yearly summaries. Its really nice to zoom out and get a view of the basics.

    I’ve made this a skill now and I just invoke the skill every month end for this entire thng to finish. Its really powerful.

    How this all translates

    The obvious upside of having monthly reviews and visibility into all major aspects of life. Course correcting and measuring becomes easier since there is data to backup almost everything. There are other upsides which are very interesting, here are some examples

    1. Recently we were planning a roadtrip from Bangalore to Allepy. There is already a travelling hobby note stating where we want to go sometime, there was a note with a travel subscription where we could get discounted rates on hotels. So now with that context, codex was comfortable able to plan out a seven day road trip with stops every 300 kms with bookings where we could get discounted stays. Its really awesome how much it can stich data nicely once given the sources.
    2. Was considering if I should apply for & get a amazon icici credit card given I already have a diners black card. was able to quickly pull out yearly order volume, check cashback/reward point rates across cards and decide that with my historic order volume, the new credit card does not add any significant upside. so decided against it.
    3. Recently I was shifting houses, AI really came in handy to remember how much deposit I paid last time (bank statements), helped in remembering and shortlisting properties we searched for and for many other small things. AI really helps in project context (given raw files are rich)
    4. Some simple questions get really easily answered, some questions I just recently asked
      1. How many computer mice did I buy? (too many 🤣)
      2. How many times did we eat outside last month?
      3. How much did the standing desk cost? How much did the CPU cost? When did I buy the macbook? How much was the deposit we paid for the current rental property?
      4. When is the last time I ran a 10k? : I had strava data synced so this came handy

    This is a living system, so as it evolves I’ll keep this updated. But that’s what I have for now. Cheers!

  • Principles

    This is a really, really messy & a incomplete living document. I don’t live up to these principles myself all the time, and a lot of them are still forming. But its worth writing about them nonetheless. So here goes nothing.


    systems over discipline

    Never rely on discipline, change is the only constant. The discipline you have today will not continue to stay after 2 years or 20 years. For long lasting change, you’ll need systems you cannot buy out of.

    reality over stories

    Your mind will always come up with convenient stories, excuses and emotional truths. Reality does not care. Look at the numbers, look at the behavior, look at the actual outcome. If reality and your story disagree, your story is wrong.

    freedom over lifestyle

    Freedom is always more valuable than lifestyle inflation. The more fixed costs, dependencies and obligations you pile on, the less room you have to think clearly and act decisively. Protect optionality.

    compounding over immediacy

    Small good decisions repeated for years matter more than any short burst of intensity. Think in decades. Most things worth having come from compounding.

    intentionality over drift

    Life can very easily become an accidental collection of obligations, habits and compromises. Do not let that happen. Be deliberate about how you live, what you tolerate and what you are building towards.

    substance over appearance

    Do not be fooled by polish, marketing or social proof. A thing should work well, age well and make structural sense. This applies to products, people, companies, houses and even advice.

    peace is not a luxury

    A peaceful home, a stable mind and good relationships are not side quests. They are infrastructure. If the foundation is shaky, everything else becomes unnecessarily hard.

    environment shapes behavior

    People like to believe behavior comes from character alone, but environment has far more power than they admit. Spaces, defaults, friction, incentives and social context shape outcomes. Design better environments.

    good enough is often enough

    Optimization is useful until it becomes paralysis. There is a point beyond which better decisions stop mattering and execution matters more. Learn to identify that point and move.

    non negotiables reduce confusion

    If something matters deeply, decide it once and make it non negotiable. Be rigid on principles and flexible on tactics. Re-deciding important things every week is how standards erode.

    ownership over excuses

    Context matters, constraints matter, bad luck matters. But after acknowledging all of that, the question still remains: what are you going to do now? Excuses may be valid, but they are rarely useful.

    consistency over intensity

    A few great days can never make up for months of chaos. Boring consistency beats dramatic effort almost every time. Build a life that works on ordinary days, because ordinary days are most of life.

    clarity over avoidance

    Most avoided problems do not disappear, they compound. If something is off in health, money, work or relationships, face it early. Clear truths are easier to work with than vague dread.

    presence is love

    For the people who matter, presence is not a small thing. Attention, steadiness and showing up properly matter more than grand gestures done once in a while.

  • A Home Should Reduce Friction

    Home’s are about character and utility. A home should feel lived in, should reflect the owners taste and passions. And most importantly should reduce friction and help people do the right things, easily.

    This is easier said than done, homes are easily one of the places where we spend time the most. So its important homes are tastefully done.

    This is my take on how to curate a good home.

    Lighting & Ventilation

    First, the most important and fundamental piece of this puzzle. The house looks as good as the light and air in it. If you are choosing your home, make sure its one with a great amount of light in the morning and there is comfortable ventilation. Getting ample sunlight and natural air into the home makes a massive amount of difference.

    Now in the times when sunlight does not suffice, we need artificial lighting. All artificial lighting is not created the same. There are broadly four types of lighting

    1. General lights: Tubelights, the most common ones in Indian households. We default to this for a good reason, but this is not it.
    2. Decorative / Mood lighting: This is the lights you see in restaurants etc.. Lights at different temperatures to account for the occasion.
    3. Accent lighting: Lights to emphasize something, usually a painting or a sculpture etc..
    4. Task lighting: Reading lamps and such. Made for the task at hand.

    I know it sounds bonkers, but it is said that a room should have around five light sources. But the thing is it works really well if you do. Here’s an example, let’s consider a hypothetical living room

    1. A general light, white tube light. The default.
    2. A floor lamp on a corner of the room next to the sofa
    3. An accent light for a painting in the hall
    4. One reading light for reading at the sofa
    5. Warm lights for actual daily living

    Seems like a lot at first, but its pretty practical and will make a lot of difference. While watching a movie, its feels much better to have mood lighting rather than a general white light. Also during night, accent lights double up as beautiful night time lights.

    Movement

    It is said that atleast 2-3 feet of walkway is required for people to comfortably walk. When this simple condition is not met, the house starts feeling cramped. Its worthwhile to note where the choke points of the house are and start freeing them up to help movement.

    Make sure there is lighting in the night setup and the spaces are without obstructions to make sure that navigating the house in the night is easy.

    Furniture that invites the right behavior

    Chairs invite sitting and conversation, wide chairs with good hand rests make people feel comfortable. Sofas which structurally prohibit sleeping in them invite very different behavior compared to sofas which are flat and allow that. Its really fascinating how much people behave differently just on the basis of the furniture they are in. So choose furniture wisely.

    Compact and foldable furniture often ages better than large pieces. Furniture with legs where you can see the floor makes the room feel larger. An added bonus is that it also makes cleaning easier.

    Automation

    This is something I’m a big fan of, usually in homes you don’t do just one isolated action. You do chains of actions.

    For instance, if you want to bath. You just don’t switch on the geyser, you also switch it off after say 15 minutes. Now this is a two step chain. Say for example you want to watch a movie with your partner, this involves switching off the general lighting, switching on the mood lighting & switching on the TV and the sound system. This is a three step chain. Another example, if you are going out for a dinner, you will check and make sure all the lights, geysers, fans etc.. are all off, all other doors are closed and only then lock the door. This is more than a six step process usually. If you keenly observe, there are a lot of chains of actions you do at home.

    Automation just makes them one shot so that friction is reduced. Some things which will greatly help simplify your day to day are

    1. Smart switches (which have hardware overrides) for everything. Now everything can be easily controlled from one place. Also, scenes can be setup so that if you activate a movie night scene, general lights are turned off, mood lighting kicks in and TV and sound system are switched on.
    2. Robot vaccum cleaner, a massive help so that when you are back home the house is clean.

    This is a living document, I’m yet to go through making interiors from scratch. So I’ll keep updating this as I go.

    But this is what I have for now, hope you found something useful in this. Thanks for the read!

  • Agentic engineering 101

    There are a million blog posts out there talking about this. This is just the setup which has been working for me. I’ll keep it short and to the point as usual.

    Philosophy

    Before outlining steps, let’s first talk about what are the philosophies to keep in mind when doing agentic engineering.

    Progressive disclosure

    Agents thrive in context, but also get overburdened when there is too much context. Progressive disclosure helps the agent learn stuff when it needs it. Not remember everything by default. Makes the agent smart.

    Domain

    Domain is more important than ever. Agentic engineering helps you go fast, but if you are going fast in the wrong direction. You’ll be at the wrong place. Focus on domain from day zero. Refactors are fast in the AI world, but that should not mean that you differ important decisions in the future cause fast does not mean absent.

    Plan extensively

    Think of the entire stack of solution before commiting to development. A flushed out plan has very high returns,

    Closing the loop

    Agents are only as good as you let them be. If the agent vaguely understands where it’s supposed to go, but has no clarity. Again it’ll run fast and reach the wrong place. Closing the loop means giving it enough tools so that it can understand if it has completed the implementation correctly or incorrectly. If you are reaching out to tools, remember that your AI also needs it.

    Reflection & Taste

    Different people have different opinions. Some people prefer functional to object oriented, prefer dynamic to statically typed languages etc.. This taste needs to be captured incrementally so that

    Implementation

    Now that the philosophy is out of the way, let’s talk about tangible steps to get there.

    Flush out AGENTS.md / CLAUDE.md

    This is the single most high leverage item you can possibly do. Keep it short and sharp. Cover

    1. What does the service do, why does it exist, what is it solving for
    2. Stack in a couple of words, instructions on how to run, pull secrets etc..
    3. Programming principles & repo level conventions (preferred logger, preferred programming and testing patterns etc..)
    4. For local testing, how to bypass/generate auth tokens etc.. so that the agent is not blocked until you explain how to test (Close the loop)

    Do not make this too large. If there are domain specific content, put it in the corresponding folder so that when needed the agent picks it up (progressive disclosure).

    Fundamentals – lint, typecheck, test, format

    The usuals, just putting this out for completeness. Make sure all of this is well done so that the agent can do the basics and get consistent code out.

    Skills

    Do this if and only if you are done with the above point. Skills are one more way of progressively disclosing steps to achieve a goal in a repeated task. Skills again can be configured at a user level & project level.

    If you have tools which you frequently use, I would suggest installing/creating a skill for that and reusing it.

    Here are some skills I use on a daily basis

    User level Skills

    1. frontend-design
    2. copywriting
    3. seo-audit
    4. agent-browser
    5. skill-creator

    Project level skills

    Most of these are manually created using the skill creator, most of these are very specific to the project being worked on & the environment it was setup into.

    1. debug-data-pull : with instructions on how to pull data from the postgres/mongodb/redis databases. Which tables are important and how do they relate etc…
    2. debug-logs : with instructions on how to pull logs, which stream to read from in corresponding environments etc…

    Integration tests

    Test like the user. With end to end integration tests, its easier than ever to test the entire application. Its even better because once you tell the agent how to write e2e tests, it can write pretty complex UI interaction tests using agent browser skills.

    This is a big part of closing the loop. once the test suite is up, then the agent can run the backend, run the frontend, write and run tests, figure out if the expected behaviour is met or not. If not, then explore the codebase and fix the implementation, run tests again. This loop is what makes agents so damn powerful.

    Prefer a mono-repo

    I’ve never really supported the idea of having hundreds of microservices. I’ve always been a believer of the majestic monolith. I think its a better idea than ever before to subscribe to majestic monolith.

    The fact that you can run frontend, backend, integration tests, share types, from the same repo is beautiful for agents because they can just go and see how stuff is implemented and learn from it. It can also aggressively run compile/type check to see what implementations are breaking and how if something does break.

    With agent browser and other skills, agents can also now run the frontend and the backend, e2e tests, fix bugs & make PRs along with notes. Once you see the potential, there is no going back.

    Reflect periodically

    Every time you see the agent stumble, remember to add something in the corresponding claude.md . This is tedious at first, but compounds very fast. In a week or two, you’ll have a very strong file which outlines your taste and then depending on the steer-ability of the LLM, it’ll radically simplify your life.

    I would suggest even having a skill, which you can run every end of session to see if there is any learnings to add. But along with this, you should also make sure that you’re claude.md is not too large.

    MCPs

    These are far and few, but they are important. MCPs bridge the gap where CLIs don’t exist. if there is a cli, you should just write a skill for the CLI and let the agent use it as it sees fit. But for some applications, MCPs tend to be better.

    The only MCP I use on a daily basis is metabase-server. Just because there is no official metabase CLI yet.

  • Buy It For Life — BIFL — Indian edition

    BIFL stands for Buy It For Life.

    For someone who is into Minimalism & believes in Curating life, BIFL feels like a natural progression to get into.

    I personally feel there is not enough literature for BIFL in India. But the traditional Indian philosophy has always been long term, high quality, bang for buck buys.

    So here’s my compilation of items which I consider BIFL in all facets of life with a focus on Indian products as much as possible.

    Philosophy

    Apart from the idea that they should last long, there are some properties these things should usually have

    1. Material over Brand : Brands ensure material sometimes, but materials triumph in the long term. A fancy high brand furniture will never outlast a solid wood furniture.
    2. Repairability over features : Things should be easily repairable. Dumb is better than smart.

    Picks for BIFL

    Item Preferred brands / materials
    Cookware Indus Valley for cast iron; Hawkins, Stahl for steel
    Pressure cookers Prestige
    Dutch Oven Le Creuset
    Mixer Grinders Preethi Zodiac
    Glass Jars Borosil
    Knives Victorinox
    Furniture & Cupboards Solid wood
    Hand Tools Taparia, Stanley
    Almirah Godrej Steel Almirah
    Dumb bells Flexnest dumbbell set or better; cast iron dumbbell set
    Water Bottles Borosil
    Jeans Levis Jeans
    Watches G-Shock, Seiko automatic/mechanical
    Coffee machine Moccamaster
    Luggage Samsonite or American Tourister (high-end lines)
    Desktop PC Custom-built unit designed to last long (components may be swapped; lifespan 10+ years)

    Some notes

    1. Layer project : Ironclad lifetime warranty. Looking forward to buy and test it out
    2. Seki nail clippers: Japanese Nail Clippers, apparently you’ll never need to buy one more.
    3. Nalgene bottles: Lifetime warranty. Need to check it out.
    4. Fisher Space Pen Bullet Space Pen
  • On curating life

    This is a work in progress document. Every line in this document goes through a lot of thought.

    Alternative title: “On conscious living”

    If not thought about deliberately, it’s very easy to just go along for the ride every day for hours, days and months without realizing that life is happening to us and not the other way around.

    Especially in the current age, where distractions are rampant having a focus on conscious living becomes very important. Otherwise your surroundings, the media you consume and the people you follow will end up dictating how you live & where you’ll spend time on.

    Curation is hence very important. Everything in our life should fight for its existence, since the very foundation of life, time. Is finite. If something exists in our life and does not make us happy or is unused for an extended period of time. Maybe we should deeply evaluate why we cling to it. Every principle, habit, every thing should be curated for utility and/or happiness.

    Here is how & what I’m curating for my life

    Clothes and other wear

    Keep this in check, they seem to add up quickly. Clothes don’t seem to add happiness for me. I’ve given it a honest shot and am still of the same opinion. Although this is my target state, I’m far from it as of now.

    • Around 7 pairs of comfortable and plain shirts and pants for day wear. 
    • 10 pairs of night and home wear. 
    • Around 10 pairs of party wear. 
    • Around 5 pairs of ethnic wear. 
    • Running shoes 
    • Sunglasses
    • Travel towel and a 2 normal towels

    Routine

    • Breakfast and filter coffee in the morning
    • At least seven hours of sleep. Sleep before 11:30PM.
    • Strength training 4 times a week
    • Cardio At least once a week

    Travel

    • At least once week of conscious travel every quarter
      • One international trip every year, life is too short for limiting ourselves. We are fortunate to be blessed with some health and finances to be able to afford this
      • At least one trip inside India for around 3 to 5 days
      • At least one quiet trip where the target is to wind down, not run around

    Physical Health

    • Yearly full body health checkup to ensure that there is no obvious issues
    • Have body fat percentage targets and achieve them in 3 to 5 months

    Curiosity

    • Pickup unusual things and go for it, all in
    • Formalize Experimentation budget

    Passions

    • Trekking: atleast one trek per year?
    • Photography
    • Home labbing
    • Writing
    • Watches
    • Self quantification
    • Wood working
    • Minimalism, one bag and BIFL (Buy it for life)
    • Reading

    Mental health

    • Therapy

    Media & Consumption

    • Podcasts
    • Movies and series

    Creation

    • Write every week at least once
    • Passion projects: need to be focused and deliberate. Do maybe 3 per quarter but only let the ones survive which people use after 3 months of marketing. If it does not take off after 3 months, kill it.

    Wealth Management

    Keep it simple

    • Invest when salary hits your account. Equities heavy portfolio for now, and a good allocation into index funds
    • Get portfolio & plan for FIRE reviewed by CA periodically. Figure out diversification & be smart about the plan (maybe this should be moved into routine)

    Work

    • Focus on growth, be selfless. Make everyone around you grow as much as possible. A raising tide lifts all boats.
    • Upskill engineering wise, attend the next system design cohort. Go to a couple of engineering retreats. Go to engineering meetups to network. Focus on growing your moat.

    Electronics

    It’s funny how fast these things grow in size if left unchecked. Throw away everything apart from

    • Phone
    • Laptop
    • CPU
    • 65W charger
    • Type C to Type C wire
    • Type A to Type C wire
    • Type C to lighting wire (for airpods)
    • Lauv mic
    • Condenser mic
    • Soundcard
    • Monitor
    • Wireless earbuds
    • Headphones
    • Watch: a automatic & a smart watch
    • Kindle
    • Powerbank
    • Wireless / bluetooth mouse
    • Wired mouse
    • Bluetooth speaker
    • Two gaming controllers
    • HDMI to HDMI cable
    • HDMI to Type C cable
    • Ethernet cable

    Principles

    Principles are decisions taken at bulk preemptively. The more principles you have, the lesser you’ll have to think for small things day on day. 

    A lot of people don’t think about principles this way, but eventually arrive here in terms of output. Everyone has principles, some think about it explicitly. It’s just a matter of preference.

    Here are mine (Again, heavily WIP)

    • Be kind, to everyone & everything
    • Take & evaluate feedback, who gives the feedback is irrelevant
    • Teach at every opportunity. I’m here because of some great teachers online & offline. I should give back.
    • Invest every month as long as there is excess after routine monthly spends
    • If it can be afforded, prioritize saving time. Mental peace & convenience over saving money
    • Donate to open source & other good initiatives
  • On Going from Idea to Deploy

    How much time does it take for you to go from imagining a decent idea to having a functional bare bones proof of concept web app?

    Right now, for me it’s around two days of intermittent work. Here’s why

    My current stack is

    • Next js for the back end and SSR
    • mongodb as the database
    • Tailwind as the css framework
    • Firebase as the auth provider
    • Prisma as the orm most of the time (or mongoose if I’m with mongodb)
    • Some kind of redux alternative if needed

    And the list goes on.

    I waste the most amount of time on

    • Authentication: the firebase/ auth0 integrations of the world
    • Deciding on the db
    • Deciding on the front end framework
    • Spending a stupid amount of time on styling and css libraries

    This is pretty disappointing. Idea to go live should be as soon as possible so that iteration speed is great. What’s the point of having insane tech at our disposal if we still struggle to do basic crud apps slowly?

    How to move faster on side projects?

    There are three common answers to this from the community I hear

    1. Php and friends: larvel seems to be pretty good
    2. Ruby on Rails : one of the most beloved frameworks for developing web apps. Apparently once you get it, there is no going out.
    3. Django: aimed at perfectionists with deadlines. Delivers what it promises absolutely.

    Django

    My first try was obviously with Django since I’m familiar with python. Sree Venkat was kind enough to give me a crash course & kickstart development into Django.

    Django with jinja templates is an absolute breeze to work with. My prototype was entirely done in less than half a day.

    Since Django runs SQL, deploying a small SQL database seems to be pretty expensive. Bit the bullet and ended up deploying the service on a VPS with Coolify. Is going very well!

    Some gripes or things I was not expecting (this will be its own post eventually )

    1. On save on model does not run on objects.create by default. It only runs on view save etc.. figured it out while writing a test
  • Review – Tipi for self hosting

    What it gets right?

    • Install is very smooth
    • auto HTTPs for all public domains using let’s encrypt & traefik
    • local domains for self hosting out of the box
    • great UI for installing and managing apps
    • app level backups on the UI. Really big deal since not a lot of products in this space have it out of the box including CasaOS.

    What it does not get right?

    • No UI for automated app backups & No Maintenance window setups for complete server backups

    Observations

    Once I get used to the tool, I lose the advantage of having a fresh eye. Hence documenting observations here if I find anything weird.

    • Uninstall is not obvious. The expectation is to stop the app & then uninstall. Although that makes perfect sense, it would be nice to just have a button for uninstall.
    • tipi.local does not work as advertised. Not sure why too.
      • there was documentation here, did not stumble into it cause it said “Local SSL certs” but I read it as “documentation on enabling https://tipi.local”, not how to setup tipi.local. but anyways, the docs were fantastic and folks over at discord were super helpful. Made it work after following the docs.
    • connecting between services is not intuitive.
      • You just use your IP:port, it would be nice if there was a button to copy the URL from the service on the dashboard
    • mounting volumes is do-able, but no UI
      • nitpick, user-config does exist. But it should be done via code. UI around adding volumes would be really nice.
  • Stack

    The tools I use to run my day to day life.

    Phone

    Currently I use a iPhone 16.

    Apps on my phone

    Communication & Social Media

    • WhatsApp
    • Telegram
    • Instagram
    • X (formerly Twitter)
    • Slack

    Productivity & Organization

    • Google Calendar
    • Apple Notes
    • TickTick
    • Sheets
    • Docs
    • Drive

    Finance & Banking

    • HDFC Bank
    • DBS
    • Paytm
    • Cred
    • Fi
    • OneCard
    • Zerodha Coin
    • Zerodha Kite

    Entertainment & Media

    • YouTube
    • Apple Music
    • Audible
    • Booksplayer
    • Jellyfin

    Travel & Transportation

    • Google Maps
    • Uber
    • Ola
    • Rapido
    • Namma Yatri

    Food & Delivery

    • Swiggy

    Health & Fitness

    • Strava

    Shopping & E-commerce

    • Amazon

    Reading & Information

    • Goodreads
    • Hoarder

    Security & Privacy

    • Bitwarden

    Utilities & Tools

    • LocalSend
    • Tailscale
    • Jetpack
    • Shazam
    • Bitwarden authenticator

    Email & Cloud Storage

    • Gmail
    • Protonmail

    Movie & Event Booking

    • Book My Show
    • PVR

    Coding & Development

    • GitHub

    Podcasts

    • Apple Podcasts

    AI & Chat

    • ChatGPT
    • Claude

    Expense Sharing

    • Splitwise

    TV & Movie Tracking

    • Trakt

    Work Management

    • Zenduty

    PC

    I run Fedora on my Thinkpad.

    • Zen Browser
    • Libre office
    • Pycharm
    • Libation
    • VLC
    • Foliate
    • VS code
    • Zed editor
    • Steam

    Server

    I run Tipi on a chromebox & run it at home. Runs the following.

    • Jellyfin: For movies, TV shows & Audiobooks streaming. I use it with jellyfin on iOS for movies & TV show streaming & Plappa.
    • Deluge
    • Immich: Beautifully done photo management solution. Syncs well with all devices, has clients everywhere.
    • Duplicati: For backing up photos mainly
    • Beszel for monitoring
    • Flowise AI for building AI tools
    • OpenWeb UI for GPT
    • Uptime Kuma for uptime monitoring