<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Sreenidhi Sreesha]]></title><description><![CDATA[all things software engineering, AI/ML , fitness]]></description><link>https://sreenidhisreesha.com</link><image><url>https://substackcdn.com/image/fetch/$s_!KccW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33e1be7f-a164-4d8d-81b1-5bbf51cd4d28_1280x1280.png</url><title>Sreenidhi Sreesha</title><link>https://sreenidhisreesha.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Apr 2026 10:50:12 GMT</lastBuildDate><atom:link href="https://sreenidhisreesha.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[sreenidhi sreesha]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sreenidhi@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sreenidhi@substack.com]]></itunes:email><itunes:name><![CDATA[sreenidhi sreesha]]></itunes:name></itunes:owner><itunes:author><![CDATA[sreenidhi sreesha]]></itunes:author><googleplay:owner><![CDATA[sreenidhi@substack.com]]></googleplay:owner><googleplay:email><![CDATA[sreenidhi@substack.com]]></googleplay:email><googleplay:author><![CDATA[sreenidhi sreesha]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Lessons Learned Building a RAG-Based Application on a Serverless Platform]]></title><description><![CDATA[I built my first RAG chatbot side project.]]></description><link>https://sreenidhisreesha.com/p/lessons-learned-building-a-rag-based</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/lessons-learned-building-a-rag-based</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Fri, 18 Apr 2025 23:32:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KccW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33e1be7f-a164-4d8d-81b1-5bbf51cd4d28_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I built my first RAG chatbot side project. ~3 months from start to first paying customer at $1.99/mo. Started from  <a href="https://youtu.be/ibzlEQmgPPY?si=jlxs_n_sfcZekpFW">Supabase&#8217;s RAG tutorial</a> which only handled markdown. I added PDF parsing on top.  That&#8217;s where most of the work was.</p><h3>What&#8217;s in a RAG pipeline</h3><ul><li><p>Chunking: split docs into pieces</p></li><li><p>Embeddings: text &#8594; vectors</p></li><li><p>Retrieval: cosine similarity over chunks</p></li><li><p>Generation: LLM answers using retrieved context</p></li></ul><p>Each step is a knob you can tune for accuracy, latency, or cost.</p><h3>PDF parsing</h3><p>Tutorial only supported markdown but most customers work with PDF. PDF parsing is whole another complexity of its own. They are messier: images, tables, scanned text, multi-column layouts. JS/TS libraries like <code>pdf-parse</code> only handle clean text. A 20MB SEC report with embedded charts broke my first setup. Resumes with table layouts broke it differently.</p><p>I decided ill outsource the problem of PDF parsing and ended up  routing PDFs through Azure Document Intelligence to convert to markdown. Worked for small files. larger ones hit the next problem.</p><h3>Serverless CPU timeouts</h3><p>Supabase Edge Functions cap execution at 10&#8211;30 seconds for free tier. A 50-page PDF chunked into 1000+ pieces, embedded locally on edge runtime, blew through that.</p><p>I decided to swap local embeddings for OpenAI&#8217;s <code>text-embedding-3-small</code> over API. This solved CPU timeout issue but introduced acceptable levels of latency. </p><h3>Storage</h3><p>Next problem i ran into was Storage. Supabase Storage has a 1GB free tier. How can one support many users on such small free tier?  Moved file storage to Cloudflare R2: 10GB free, $0.015/GB-month after, no egress fees. This was good enough for now. <br>So moved from Supabase to R2 for blob storage but still continued using postgres tables on supabase. </p><h3>Architecture summary</h3><p>Four decisions ended up shaping the pipeline. <br>PDF parsing went to Azure Document Intelligence because it handled PDF parsing really well and provided markdown as output. <br>Embeddings moved off the edge runtime to OpenAI's API because local generation on Edge Runtime CPU timed out on anything substantial. <br>File storage moved to Cloudflare R2 because Supabase Storage's 1GB was simply too small, though the database stayed on Supabase. <br>And on the UX side, processing delays got papered over with progress indicators and webhook notifications so users weren't staring at a frozen screen.</p><h3>What I&#8217;d do differently</h3><ul><li><p>Start with managed services. OpenAI Assistants handles most of this. Roll your own only if you need control the API doesn&#8217;t give.</p></li><li><p>Assume async from day one. Anything touching a large file goes through a queue.</p></li><li><p>Test on real user files early. Toy PDFs lie.</p></li><li><p>Serverless isn&#8217;t free. Monitor API spend, batch where possible.</p></li></ul><h3>Launch</h3><p>$1.99/mo on Stripe. First payment came in. A tweet about it went viral, that was super exciting. </p><h3></h3>]]></content:encoded></item><item><title><![CDATA[Solving PDF Image Recognition in OpenAI Assistants ]]></title><description><![CDATA[Solving PDF Image Recognition in OpenAI Assistants]]></description><link>https://sreenidhisreesha.com/p/solving-pdf-image-recognition-in</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/solving-pdf-image-recognition-in</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Sun, 19 Jan 2025 23:24:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KccW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33e1be7f-a164-4d8d-81b1-5bbf51cd4d28_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Solving PDF Image Recognition in OpenAI Assistants</h1><p>Over this weekend, I tackled and solved a significant limitation in OpenAI Assistants' capabilities when dealing with image-based PDFs, particularly in the context of immigration documents. This technical deep dive shares my journey in implementing a solution that greatly improves document processing capabilities.</p><h2>The Challenge: PDF Recognition Limitations</h2><p>OpenAI Assistants, while powerful, have a notable limitation: they can't actually "read" PDFs containing scanned documents or images. Even though the API allows you to attach PDFs, the Assistant remains blind to their contents. This creates a substantial roadblock when dealing with immigration documents, which are predominantly scanned PDFs.</p><p>This limitation has become more apparent recently. While OpenAI might have had this capability at some point, I've noticed that their current implementation struggles with PDFs containing scanned document images. For an application designed to help users understand their immigration documents, this was a critical problem that needed solving.</p><h2>Building the Solution</h2><h3>Initial Approach: The Messy Start</h3><p>My first attempt at solving this involved creating a custom function with the following structure:</p><pre><code><code>function: {
    name: "get_document_metadata",
    parameters: {
        fileIds: ["array of file IDs"]
    }
}

</code></code></pre><p>This approach had several drawbacks:</p><ul><li><p>The Assistant had to guess which files it needed</p></li><li><p>It required multiple back-and-forth interactions to fetch OCR data</p></li><li><p>The process was inefficient and time-consuming</p></li></ul><h3>The Refined Solution: Streamlined Architecture</h3><p>After iterating on the initial design, I developed a much more elegant solution:</p><ol><li><p><strong>Removed Parameters Entirely</strong>: Instead of making the Assistant guess which files it needed, the new approach is more comprehensive.</p></li><li><p><strong>Streamlined Process Flow</strong>:</p><ul><li><p>Locate the Assistant's vector store</p></li><li><p>Retrieve ALL files in that store</p></li><li><p>Fetch saved OCR data for all documents</p></li><li><p>Provide complete context to the Assistant</p></li></ul></li></ol><h3>Technical Implementation</h3><p>The backend infrastructure works as follows:</p><ol><li><p><strong>OCR Processing</strong>:</p><ul><li><p>Each PDF is processed using Google Cloud Document AI</p></li><li><p>The extracted OCR data is stored in our database</p></li><li><p>This makes the data instantly available when the Assistant needs it</p></li></ul></li><li><p><strong>Data Retrieval</strong>:</p><ul><li><p>No more guessing games about which documents to process</p></li><li><p>All document contents are immediately accessible</p></li><li><p>The system provides comprehensive context to the Assistant</p></li></ul></li></ol><h2>Results and Improvements</h2><p>The new implementation brought several significant improvements:</p><ol><li><p><strong>Complete Document Visibility</strong>: The Assistant can now "see" ALL document contents without any blind spots</p></li><li><p><strong>Enhanced Processing</strong>:</p><ul><li><p>Comprehensive document understanding</p></li><li><p>Improved retrieval capabilities</p></li><li><p>Faster response times</p></li></ul></li><li><p><strong>Better User Experience</strong>:</p><ul><li><p>More accurate document analysis</p></li><li><p>Reduced processing time</p></li><li><p>More reliable results</p></li></ul></li></ol><h2>Development Insights</h2><p>One interesting lesson learned during this project involved tool calling implementation. I spent good amount of time trying to implement tool calling on the client-side before discovering that Vercel AI SDK examples implement it server-side.</p><h2>Conclusion</h2><p>Building AI-powered document processing systems often requires creative problem-solving beyond just using off-the-shelf solutions. <a href="http://visamonkey.com">visamonkey.com</a> demonstrates how combining different technologies - OpenAI Assistants, Google Cloud Document AI - can create a more powerful solution than any single component could provide.</p><p>The decision path from a parameter-heavy, guess-based approach to a streamlined, comprehensive system exemplifies a crucial lesson in software engineering: sometimes complexity isn't the answer. By stepping back and questioning our initial assumptions, we were able to design a simpler yet more powerful solution.</p><p>This implementation not only solves the immediate challenge of processing immigration documents but also lays the groundwork for handling similar document processing challenges across different domains. The architecture can be adapted for any scenario where AI assistants need to understand the contents of image-based PDFs, from legal documents to medical records.</p><p>A key consideration that made this approach particularly effective is the nature of immigration document processing. In this domain, each case typically involves a handful of critical documents - visa applications, passport scans, employment letters, and other supporting materials. This relatively small document set per user means we can comfortably process and store and return all documents upfront without significant performance implications.</p><p>However, it's worth noting that this approach might need modification for domains dealing with larger document volumes. In scenarios where an Assistant needs to process hundreds or thousands of documents, fetching all OCR data might not be the most efficient solution. Such cases might require more sophisticated approaches like document chunking, selective processing, or implementing a caching strategy.</p>]]></content:encoded></item><item><title><![CDATA[2024 Wrapped: Building 7 AI Projects – From Document Search to Immigration Tools]]></title><description><![CDATA[As 2024 comes to an end, I&#8217;m taking a moment to reflect on my year of building seven AI projects&#8212;all while working a full-time job.]]></description><link>https://sreenidhisreesha.com/p/2024-wrapped-building-7-ai-projects</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/2024-wrapped-building-7-ai-projects</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Wed, 01 Jan 2025 23:21:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KccW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33e1be7f-a164-4d8d-81b1-5bbf51cd4d28_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As 2024 comes to an end, I&#8217;m taking a moment to reflect on my year of building seven AI projects&#8212;all while working a full-time job. This isn&#8217;t one of those stories about hitting big milestones like $1M ARR or going viral on Product Hunt. It&#8217;s more about what happens when you follow your curiosity, work on ideas that excite you, and enjoy the process itself. From tackling server timeout issues in my first RAG (Retrieval-Augmented Generation) project to building a Tesla referral tool over a weekend, and finally making something I really needed for my own immigration journey&#8212;it&#8217;s been a year of growth and learning.</p><p>If you&#8217;re a developer, an indie hacker, or just curious about how to build multiple projects in a year, I&#8217;ll share the lessons I learned, the tech decisions I made, and why scratching your own itch can lead to the most fulfilling products.</p><div><hr></div><h2><strong>Diving into RAG: Building <a href="http://searchmydocs.ai/">searchmydocs.ai</a></strong></h2><p>In October 2023, I became fascinated with RAG (Retrieval-Augmented Generation). While many were already busy creating ChatGPT wrappers, I knew I was late to the game&#8212;but I wanted to dive in and learn anyway.</p><p>Over Thanksgiving, I stumbled upon an incredible two-hour tutorial by Greg (@ggrdson) from Supabase that explained how to build RAG systems step by step. Inspired and excited, I decided to build <a href="http://searchmydocs.ai/">searchmydocs.ai</a> to put those concepts into practice.</p><p>Here&#8217;s the catch&#8212;I wasn&#8217;t very confident in frontend development. I spent a week learning React.js and relied heavily on ChatGPT to help me bridge the gaps. I even tried convincing some frontend friends to partner with me, but no one shared the same excitement for building an indie SaaS. Looking back, it was a blessing in disguise&#8212;it forced me to figure things out on my own and grow in the process.</p><p>The journey wasn&#8217;t without hurdles. At first, the system would fail when processing PDFs larger than a few pages, hitting CPU timeouts during embedding generation. Greg&#8217;s tutorial was fantastic, and I initially wondered why he was giving away so much knowledge for free. But once I started implementing it, I realized there were limitations&#8212;particularly with serverless workers struggling under heavier loads.</p><p>To address these issues, I switched the embedding generation to OpenAI&#8217;s API instead of native serverless workers. This improved the functionality somewhat, but the overall engine still wasn&#8217;t as robust as I wanted.</p><p>Even with its imperfections, this project was a huge learning experience. I set up an LLC, joined Microsoft for Startups, and even got my first payment from a stranger. Building a RAG engine as a first SaaS felt like running a marathon while still learning to walk, but it was an invaluable journey that taught me so much.</p><p><a href="https://x.com/sreeenidhi/status/1743740144912584810">https://x.com/sreeenidhi/status/1743740144912584810</a></p><p><a href="https://x.com/sreeenidhi/status/1752733697781203306">https://x.com/sreeenidhi/status/1752733697781203306</a></p><p><a href="https://x.com/sreeenidhi/status/1755416671781781767">https://x.com/sreeenidhi/status/1755416671781781767</a></p><p><a href="https://x.com/sreeenidhi/status/1758698057552785430">https://x.com/sreeenidhi/status/1758698057552785430</a></p><h2><strong>Exploring AI Images: <a href="http://roomreimagined.com/">roomreimagined.com</a> and <a href="http://imageenhancerai.com/">imageenhancerai.com</a></strong></h2><p>After the highs and lows of working on RAG, I wanted to try something fresh and park searchmydocs for a bit. AI image generation caught my attention, and seeing <a href="http://interiorai.com/">interiorai.com</a> by @levelsio thriving made it clear&#8212;this idea had already been validated. It was the perfect opportunity to dive into the world of image-generation products, so I decided to take a shot at creating an AI-powered interior design tool.</p><p>I had purchased the domain <a href="http://roomreimagined.com/">roomreimagined.com</a> back in October 2023 but decided to park it until I finished shipping <a href="http://searchmydocs.ai/">searchmydocs.ai</a>. Once that MVP was out the door, I was excited to dive into the next project and finally bring <a href="http://roomreimagined.com/">roomreimagined.com</a> to life.</p><p>The timing felt perfect. The best part? I didn&#8217;t have to start from scratch. Someone on Replicate had already developed the core technology I needed, so I could focus on simplifying the user experience and making it accessible. I also decided to skip the usual subscription model and went with a pay-as-you-go credit system, letting users pay only for what they needed. This approach kept things flexible and user-friendly.</p><p>By the time I launched, the market was crowded with similar tools. That didn&#8217;t bother me. Over time, I&#8217;ve learned that if I&#8217;m genuinely excited about building something, it&#8217;s worth doing regardless of how saturated the space is. That excitement and momentum carried over to <a href="http://imageenhancerai.com/">imageenhancerai.com</a>, a broader tool for enhancing AI-generated images.</p><p>Each project built on the experience of the last, helping me ship faster. I was enjoying the process and getting better with each step.</p><div><hr></div><h2><strong>Making Tesla Referrals Easier: <a href="http://teslareferralhub.com/">teslareferralhub.com</a></strong></h2><p>Next up was <a href="http://teslareferralhub.com/">teslareferralhub.com</a>. Tesla&#8217;s referral program is amazing, but there&#8217;s a catch&#8212;you only really earn rewards if you have a strong social media following. I wanted to create something where anyone could participate, even if they didn&#8217;t have a big online presence.</p><p>So, I built a platform where users could submit their referral links for $20. These links were added to a queue and displayed in a round-robin format, ensuring everyone got a fair shot. By this time, Claude had become incredibly good, making it super fast to put together a UI. I managed to build this project in just a weekend.</p><p>Shaan Puri recently mentioned something on the MFM podcast about Mike Posner that really resonated with me. After years of chasing his past successes, Mike realized the key is to do what you think is cool. Sometimes, a large portion of the population agrees, and it takes off in ways you couldn&#8217;t predict. For me, this project felt exactly like that&#8212;I thought building a referral-sharing platform was cool, so I went for it. I had a blast putting it together, and the process itself was incredibly rewarding.</p><div><hr></div><h2>Expanding the Concept: <a href="http://referralsearchengine.com/">referralsearchengine.com</a></h2><p>After <a href="http://teslareferralhub.com">teslareferralhub.com</a>, I wanted to take the concept to the next level&#8212;a generic platform for sharing referral links, not just for Tesla, but for any product. In the SaaS world, it&#8217;s common advice to start with a niche, focus on making it work, and then expand. Think about how Amazon started with books before becoming the everything store. Even though <a href="http://teslareferralhub.com">teslareferralhub.com</a> wasn&#8217;t a massive success (though I did get two referral bonuses!), I believed in the idea enough to build a broader version of it.</p><p>That&#8217;s how <a href="http://referralsearchengine.com/">referralsearchengine.com</a> was born. This time, I built it on Cloudflare&#8217;s stack, mostly because I liked their free tier better. The platform allowed anyone to share one referral link for free, no matter the product. If they needed more links, they could buy additional slots.</p><p>This project gave me some great experience with Cloudflare Workers and made me appreciate their power and flexibility. By this point, I&#8217;d become more efficient with shipping products, and each project was helping me get faster at putting ideas into action.</p><p>However, one key thing I realized with teslareferralhub and referralsearchengine is that these kinds of platforms live and die by distribution. And here&#8217;s the thing&#8212;I don&#8217;t find joy in the grind of improving distribution through SEO, building backlinks, or manually promoting links across different platforms. I love building products, but the marketing side just doesn&#8217;t excite me as much.</p><div><hr></div><h2><strong>Returning to Document Analysis: <a href="http://secanalytica.com/">secanalytica.com</a></strong></h2><p>My next product was <a href="http://secanalytica.com/">secanalytica.com</a>, a tool that leverages OpenAI&#8217;s Assistants framework. By this point, the costs of using the Assistants API had come down to manageable levels, making it feasible to build a scalable product. Most of my time on secanalytica was spent creating a robust wrapper around the framework&#8212;something versatile enough to be applied across different domains.</p><p>For the initial use case, I chose SEC filings. The idea came after seeing tweets from @virattt, who was working on financial datasets. The domain seemed rich with possibilities, and I knew there was enough value to justify focusing on this area.</p><p>With secanalytica, users can upload SEC files, which are then analyzed to provide actionable insights. The wrapper I built has the potential to expand into other domains in the future, but for now, SEC filings serve as a great starting point.</p><p>The next logical step is to implement report generation using RAG (Retrieval-Augmented Generation). However, I&#8217;ve temporarily paused this feature because another project caught my attention and felt too exciting to delay. I plan to circle back to secanalytica soon and pick up where I left off.</p><div><hr></div><h2><strong>Building for a Personal Need: <a href="http://visamonkey.com/">visamonkey.com</a></strong></h2><p>The next project on my journey was <a href="http://visamonkey.com/">visamonkey.com</a>, a document management tool designed for immigrants and non-immigrants alike. It&#8217;s a platform for managing visas, passports, H1B documents, and more, with features like intelligent search, timeline tracking, deadline reminders, chat with documents, and application tracking.</p><p>This project is still a work in progress, but it holds a special place in my journey. I built it because I needed a solution for myself and for others who face the same struggles. As someone who has dealt with the challenges of visa documentation, I know how overwhelming it can be to stay on top of deadlines, keep everything organized, and avoid mistakes that could have serious consequences.</p><p>Visamonkey was born out of that experience. Building something to address my own problems brought a lot of clarity to the process&#8212;every feature felt obvious because I understood the pain points deeply. While there&#8217;s still a lot to do, I&#8217;m excited about the potential of this platform to make life easier for people navigating the complexities of immigration and document management.</p><div><hr></div><h2><strong>Launching the Future: <a href="http://raglauncher.com/">raglauncher.com</a> and <a href="http://thirdbrain.io/">thirdbrain.io</a></strong></h2><p>With the RAG wrapper now in place, my next project is <a href="http://raglauncher.com/">raglauncher.com</a>&#8212;a boilerplate for launching RAG applications quickly using OpenAI&#8217;s Assistants framework. The goal is to simplify the process of creating robust RAG-based tools, enabling developers to focus on building solutions rather than reinventing the wheel.</p><p>Raglauncher will serve as the backbone for multiple projects, including <a href="http://secanalytica.com/">secanalytica.com</a>, <a href="http://visamonkey.com/">visamonkey.com</a>, and <a href="http://thirdbrain.io/">thirdbrain.io</a>. Each of these projects showcases the flexibility of the wrapper applied to different domains, from SEC filings to immigration management.</p><h3><strong>Reimagining SearchMyDocs as ThirdBrain</strong></h3><p>As part of this journey, <a href="http://searchmydocs.ai/">searchmydocs.ai</a> will be rebranded as <a href="http://thirdbrain.io/">thirdbrain.io</a>. The vision for ThirdBrain is ambitious&#8212;it aims to evolve into a platform that learns across various dimensions of a user&#8217;s data and helps provide clarity of thought. While the specifics are still abstract, the goal is to create a tool that goes beyond traditional document search, offering deeper insights and understanding.</p><h3><strong>A Unified Vision</strong></h3><p>With <a href="http://raglauncher.com">raglauncher.com</a>, the idea is to bring everything I&#8217;ve learned into a cohesive system. It&#8217;s the culmination of experiences from building specialized tools for different domains and figuring out what works best. Each project, whether secanalytica, visamonkey, or thirdbrain, will benefit from this shared foundation, ensuring faster iterations and consistent improvements.</p><p>I&#8217;m excited to see where this next step takes me and how it can empower others to build their own RAG-based applications efficiently.</p>]]></content:encoded></item><item><title><![CDATA[Building Referral Search Engine: My Journey from TeslaReferralHub to ReferralSearchEngine]]></title><description><![CDATA[Building Referral Search Engine: My Journey from TeslaReferralHub to ReferralSearchEngine]]></description><link>https://sreenidhisreesha.com/p/building-referral-search-engine-my</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/building-referral-search-engine-my</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Sun, 13 Oct 2024 23:16:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QaPJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QaPJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 424w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 848w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 1272w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png" width="1271" height="416" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:416,&quot;width&quot;:1271,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103678,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sreenidhi.substack.com/i/167481254?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QaPJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 424w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 848w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 1272w, https://substackcdn.com/image/fetch/$s_!QaPJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb4c56f-a29b-4a8f-b3e0-5b20e8118809_1271x416.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><br>Building Referral Search Engine: My Journey from TeslaReferralHub to ReferralSearchEngine</strong></p><p>I recently launched a SaaS side project called <em>Referral Search Engine</em>, and this post will walk you through everything about it&#8212;why I built it, the tools I used, the decisions I made, and the new technologies I tried. If you're interested in building SaaS products using AI tools, this might be the perfect read for you.</p><p>Some of you might remember one of my earlier projects, <em>Tesla Referral Hub</em>. Tesla Referral Hub allowed users to share their Tesla referral links in a fair, rotating system. Each time someone viewed a link, it would refresh and display a different user's link. I built this system because I lacked the social media influence to promote my referral links, and I realized others like me could benefit from a more equitable way to share referral opportunities.</p><h3>Expanding from a Niche Product to Something Bigger</h3><p>Like many successful products, I started by focusing on a specific niche. <em>Tesla Referral Hub</em> allowed me to experiment with the referral link model, and while the results were modest&#8212;two referrals earning me about $2,000 worth of Tesla credits&#8212;it sparked the idea of a more general solution. That&#8217;s when I decided to build <em>Referral Search Engine</em>.</p><h3>What is Referral Search Engine and What Problem Does It Solve?</h3><p>Referral Search Engine helps users find referral links for products they want to buy without needing a friend who has purchased the product. For example, if you&#8217;re interested in buying a Peloton but don&#8217;t know anyone who owns one, you can use <em>Referral Search Engine</em> to find a referral link, benefiting both you and the person who shared the link.</p><p>The concept is simple: users who have referral codes share them on the platform, and others can search for and use them. It&#8217;s a win-win for everyone&#8212;the user sharing the referral benefits, the buyer benefits from the discount, and the company gets more customers. I haven&#8217;t come across many similar products, probably because it isn&#8217;t easy to monetize. But I wanted to build the solution and see where it goes.</p><h3>How Referral Search Engine Works</h3><p>Using <em>Referral Search Engine</em> is straightforward. Users can search for a product, and the platform will show available referral links. For example, you can search for a Tesla referral link, copy it, and apply it directly on Tesla&#8217;s site to get benefits like $500 off your purchase.</p><p>Adding referral links is easy as well. After logging in with Google or email, users can submit a URL, product name, company name, and description. The referral link goes through an admin approval process to ensure its legitimacy before it appears in search results.</p><h3>Tools and Technologies I Used</h3><p>Building Referral Search Engine gave me a chance to experiment with several exciting tools. Here's a breakdown of the tech stack I used:</p><h3>1. <strong>Vercel</strong></h3><p>Vercel is my go-to tool for handling front-end deployment, particularly with Next.js. It simplifies the process by automatically deploying new changes each time you push a commit to Git. Vercel&#8217;s rollback feature ensures that if a deployment fails, the last successful version stays live. I use Vercel for all my side projects because it makes front-end development and deployment incredibly easy.</p><h3>2. <strong>Supabase</strong></h3><p>Supabase offers an all-in-one backend solution with authentication and managed PostgreSQL databases. I use it to manage user authentication and handle database operations for all my projects. Their generous free tier and easy-to-use API make it a great choice for indie developers.</p><h3>3. <strong>Cloudflare D1</strong></h3><p>I chose Cloudflare D1 for the main database. One key reason was that I wanted to try out Cloudflare&#8217;s stack, and their free tier was very attractive, especially for read-heavy applications like <em>Referral Search Engine</em>. With D1, the SQLite databases are placed on the edge, allowing faster data access for users.</p><h3>4. <strong>Vercel V0</strong></h3><p>Vercel V0 is an AI-powered tool that helps generate user interfaces quickly. As someone more comfortable with backend development, Vercel V0 has been a game-changer for me in building polished front-end designs without spending too much time on it. It allows you to describe what you want, and it generates a UI based on those requirements.</p><h3>Database Schema</h3><p>The database schema for <em>Referral Search Engine</em> is designed to handle various key functions. There are tables for users, searches, referral links, and companies. For example:</p><ul><li><p><strong>Users table</strong> tracks user data, including tiers (free or paid), and how many referral links they are allowed.</p></li><li><p><strong>Referral links table</strong> stores the link, user ID, and product ID, as well as metrics like views and clicks to ensure fair rotation of links.</p></li><li><p><strong>Searches table</strong> tracks what users are searching for, which could potentially be useful for businesses interested in advertising on the platform.</p></li></ul><h3>Monetization and Marketing</h3><p>The primary challenge with <em>Referral Search Engine</em> isn't the technical implementation&#8212;it&#8217;s the marketing. For a platform like this to succeed, it needs strong SEO and distribution efforts to drive traffic. Some monetization strategies I&#8217;m considering include partnering with companies to provide exclusive referral links or selling advertising spots to businesses looking to reach potential customers.</p><h3>Conclusion</h3><p>In the end, <em>Referral Search Engine</em> took about three or four days to develop. But the hard part lies ahead&#8212;gaining traction, marketing the platform, and exploring monetization opportunities. If you&#8217;re interested in SaaS projects, building with AI, or have questions about any part of this journey, feel free to ask. And if you enjoyed this post and want to learn more about building side projects, drop a comment!</p>]]></content:encoded></item><item><title><![CDATA[From Idea to Reality: What Led to the Creation of TeslaReferralHub.com]]></title><description><![CDATA[In the realm of creativity, ideas often come to us like persistent whispers, gently nudging us towards action.]]></description><link>https://sreenidhisreesha.com/p/from-idea-to-reality-what-led-to</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/from-idea-to-reality-what-led-to</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Thu, 04 Jul 2024 18:19:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XjEV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XjEV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XjEV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 424w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 848w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 1272w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XjEV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png" width="1184" height="370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23595,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XjEV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 424w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 848w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 1272w, https://substackcdn.com/image/fetch/$s_!XjEV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c5cf6d9-f76e-4954-a6ad-ac9b11f5faae_1184x370.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the realm of creativity, ideas often come to us like persistent whispers, gently nudging us towards action. For me, that whisper was <a href="https://teslareferralhub.com">TeslaReferralHub</a>.</p><h2>The Seed of an Idea</h2><p>I'm a huge fan of Tesla, and I was excited at the idea of getting some cool products from its referral program <strong>for free</strong>. Three months of free FSD or a free acceleration boost sounds great to me. While driving, I haven't felt a pressing need for speed, but I still think it would be cool to experience acceleration boost once in a while.</p><p>The only way one could make use of the referral program is: a) You are a social media influencer with a large following b) You have friends who want to buy a Tesla</p><p>I don't qualify for either of those. Everyone in my network has already heard of Tesla, and if they want to own one, they just go to the website and buy one. They're not sitting around waiting for someone to convince them. And I'm not a social media influencer with a huge following.</p><p>My brain solved this problem subconsciously. What if I could bring together all Tesla owners who want to share their referral links in one place and give them more exposure, but keep it fair? This led to a system design session with ChatGPT, and I had rough blueprints for <a href="http://teslareferralhub.com/">TeslaReferralHub.com</a>.</p><p>Once the seed was planted in my brain, for weeks, the concept of TeslaReferralHub had been haunting me, resurfacing in my thoughts every few days. I was also reading "The Creative Act" at the same time. (I know what you're going to read next might sound a bit woo-woo.) I began to understand that this recurring idea wasn't just a random thought&#8212;it was the universe presenting me with an opportunity, a source of creativity waiting to be tapped.</p><p>The book taught me a valuable lesson: ideas seek expression through willing vessels. If I chose not to act, this concept would eventually find its way into the world through someone else. This realization instilled in me a sense of urgency and purpose.</p><h2>From Concept to Creation</h2><p>Armed with this newfound perspective, I set out to bring TeslaReferralHub to life. The development process was surprisingly fast, with the help of Claude Sonnet. In a short time, I had a functioning website with a minimum feature set.</p><p>The success of TeslaReferralHub opened my eyes to broader possibilities. Could this concept be expanded into a more general platform? This thought led to the inception of ReferralList, a project that aims to apply the same principles to a wider array of referral programs. This is my next project.</p><h2>Lessons in Creativity</h2><p>This journey has taught me several valuable lessons about creativity:</p><ol><li><p>Pay attention to recurring ideas&#8212;they might be the universe trying to tell you something.</p></li><li><p>Act on your ideas; if you don't, someone else might.</p></li><li><p>Bringing one idea to life can create space for others to flourish.</p></li><li><p>Embrace tools and technologies that can help you realize your vision more efficiently.</p></li></ol><p>As I continue to explore the intersection of technology and creativity, I'm excited to see where these lessons will lead me next.</p>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is Sreenidhi Sreesha, a newsletter about tbd.]]></description><link>https://sreenidhisreesha.com/p/coming-soon</link><guid isPermaLink="false">https://sreenidhisreesha.com/p/coming-soon</guid><dc:creator><![CDATA[sreenidhi sreesha]]></dc:creator><pubDate>Fri, 21 Jan 2022 19:50:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KccW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33e1be7f-a164-4d8d-81b1-5bbf51cd4d28_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>This is Sreenidhi Sreesha</strong>, a newsletter about tbd.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://sreenidhisreesha.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://sreenidhisreesha.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>