{"id":12,"date":"2026-03-14T14:53:50","date_gmt":"2026-03-14T14:53:50","guid":{"rendered":"https:\/\/blogs.bharatstacks.com\/?p=12"},"modified":"2026-04-08T17:13:56","modified_gmt":"2026-04-08T17:13:56","slug":"from-code-to-cloud-developing-bharatstacks-with-wordpress-and-aws","status":"publish","type":"post","link":"https:\/\/blogs.bharatstacks.com\/index.php\/2026\/03\/14\/from-code-to-cloud-developing-bharatstacks-with-wordpress-and-aws\/","title":{"rendered":"FROM CODE TO CLOUD: BHARATSTACKS"},"content":{"rendered":"\n<p class=\"has-medium-font-size wp-block-paragraph\"><em>How we built BharatStacks \u2014 a platform that replaces five tabs with one, built for India, hosted on AWS.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why Does&nbsp;<em>BharatStacks<\/em>&nbsp;Exist?<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">If you have ever tried to format a JSON file, convert an image, check a unit conversion, and find a decent icon set \u2014 all in the same hour \u2014 you know exactly what problem we are solving. You end up with six browser tabs open, half of them asking you to create an account, and none of them doing quite what you need.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-medium-font-size wp-block-paragraph\"><em>&#8220;Why is there no single platform in India where developers, students, and everyday users can find all these tools in one place?&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Most international platforms exist, but they are either too heavy, too expensive, or simply not built with the Indian user in mind. BharatStacks is the answer to that gap \u2014 India&#8217;s first all-in-one tools platform. Free, fast, and built for anyone from a college student to a working professional<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So What Is BharatStacks?<\/h2>\n\n\n\n<p class=\"is-style-default has-medium-font-size wp-block-paragraph\">BharatStacks is a web platform designed to bring useful tools, resources, and developer utilities into one place. The idea came from a simple problem \u2014 whenever you need to do something small online, like converting an image, formatting text, checking a JSON file, or finding developer resources, you usually end up opening multiple websites. This is both time-consuming and inconvenient. BharatStacks solves this by providing a single platform where users can access tools for text processing, images, icons, developer utilities, and curated tech resources all in one place.<\/p>\n\n\n\n<p class=\"is-style-default has-medium-font-size wp-block-paragraph\">The name comes from \u201cBharat\u201d, the Hindi name for India, and \u201cStacks\u201d, referring to technology stacks. The platform is designed with simplicity in mind so that students, developers, or anyone who needs quick tools can easily find what they need and complete their tasks without complicated steps. Technically, the platform consists of two main parts: a backend built with Python and Flask that handles user authentication, media uploads, and application logic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058-1024x486.png\" alt=\"\" class=\"wp-image-13\" srcset=\"https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058-1024x486.png 1024w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058-300x143.png 300w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058-768x365.png 768w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058-1536x730.png 1536w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192058.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Tools Does It Have?<\/h2>\n\n\n\n<p class=\"is-style-default has-medium-font-size wp-block-paragraph\"><em>Right now BharatStacks has tools across a few main categories:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Text Utilities: <\/strong>Case converter, slug generator, word counter, text cleaner, markdown editor, regex tester \u2014 everything text-related in one place. Really useful if you write or work with content regularly.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>JSON &amp; Dev Tools: <\/strong>JSON formatter, Base64 encoder, color converter, JWT decoder, CSV to JSON, URL encoder, and a dummy API \u2014 the kind of tools developers reach for constantly during testing and building.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Image Tools: <\/strong>Image compressor, resizer, converter, cropper, watermark adder, and stock images \u2014 covers pretty much everything you would need to do with an image without downloading any software.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Number &amp; Date Tools: <\/strong>Unit converter, base converter, timezone converter, age calculator \u2014 handy for anyone who deals with numbers or dates and does not want to do the math manually.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>BharatStacks Icons: <\/strong>A collection of 200+ icons that users can browse and use directly \u2014 no need to hunt across multiple icon libraries.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Stock Media and Uploads: <\/strong>Users can upload their own media and access stock images, all tied to their account on the platform.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The platform is built to keep growing. More tools will be added over time based on what users actually need.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611-1024x486.png\" alt=\"\" class=\"wp-image-14\" srcset=\"https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611-1024x486.png 1024w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611-300x143.png 300w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611-768x365.png 768w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611-1536x730.png 1536w, https:\/\/blogs.bharatstacks.com\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-14-192611.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Tech Stack \u2014 and Why We Picked Each One<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><em>Every technology choice in this project had a reason behind it. This is what we used and why:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Flask (Python)<\/strong>:<strong> <\/strong>The backend of BharatStacks is entirely built using Flask. The developer had prior experience with Python, and Flask\u2019s lightweight nature allowed precise control over the application without unnecessary overhead. It handles REST API endpoints, user session management, JWT token generation, and database interactions<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>PostgreSQL: <\/strong>BharatStacks uses PostgreSQL as its primary database due to its reliability and ability to handle complex queries efficiently. It is well-suited for production-level applications. The backend connects to the database using SQLAlchemy, which simplifies database operations and improves maintainability.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Docker: <\/strong>Docker was used to containerize parts of the BharatStacks application, ensuring a consistent environment across development and deployment. It helped eliminate dependency issues and made the deployment process more reliable and reproducible on the AWS server.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>AWS Lightsail (Ubuntu): <\/strong>The entire application is deployed on an AWS Lightsail instance running Ubuntu. This is where all components of BharatStacks come together. The Flask application is served behind Nginx, ensuring efficient request handling and improved performance. The platform is accessible through a public domain, providing a real-world deployment setup.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-x-large-font-size wp-block-paragraph\">The Challenges \u2014 There Were Quite a Few<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><em>Building something from the ground up is not smooth. Problems showed up at every stage.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Getting the project structure right from the start. Flask gives a lot of freedom \u2014 which also means it is easy to make a mess when building at this scale for the first time. The structure got redone more than once.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Image tools had more edge cases than expected. A file that worked in one format would behave differently in another. Getting consistent results across all input types took a lot of testing.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">The media upload system had many small moving parts \u2014 where files go, how they connect to the right user, what happens when something fails. All of it had to work together correctly.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Mobile responsiveness was tedious. Some tools looked fine on desktop and broke completely on smaller screens. Each one needed to be fixed individually.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Deployment on AWS was new territory. Getting the full application live, configuring the server properly, and making sure everything worked in production \u2014 none of it was straightforward the first time.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How the Site Was Deployed on AWS<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">BharatStacks is hosted on AWS \u2014 Amazon Web Services. We chose AWS because it is reliable, scalable, and the right infrastructure for a platform that is meant to grow. The application runs on an Lightsail instance with Ubuntu, which gives full control over the server environment.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Nginx handles all the incoming traffic \u2014 routing requests to the right service and managing HTTPS so every connection is secure. SSL certificates are set up across the entire domain.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Deployments are handled through Git. When changes are ready, the code is pushed from the development machine, pulled on the server, and the application restarts. Simple workflow, works well.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">One rule we follow before every server update \u2014 take a full backup first. It has saved us more than once and is now a habit that will not be skipped.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Docker&#8217;s Role in All of This<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Docker was something the team had heard about but never really worked with before this project. After using it on BharatStacks, it is easy to see why so many teams rely on it.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">BharatStacks uses Docker to keep the deployment setup clean and consistent. Instead of manually installing and configuring everything on the server, Docker packages the application and everything it needs into containers. This means the exact same setup that runs on a local machine runs identically on the live server \u2014 no missing dependencies, no configuration differences, no unexpected surprises.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Even if the server restarts or something needs to be updated, the data stays exactly where it was. Nothing gets lost.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Before Docker, getting an application to behave the same way across different environments was genuinely difficult. With Docker, it just works \u2014 and that consistency becomes something you really appreciate once you have experienced building without it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What I Actually Took Away From This<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Real projects are messy. There is no clean path. You make decisions, some turn out wrong, and you fix them. That process is where the actual learning happens.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Planning matters more than it seems at the start. Decisions made early \u2014 how things are organised, how data is handled \u2014 have effects that show up much later..<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Planning matters more than it seems at the start. Decisions made early \u2014 how things are organised, how data is handled \u2014 have effects that show up much later.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Always take a full backup before touching a live server. Every single time. No exceptions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Wrapping Up<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">BharatStacks is live, it works, and people are using it. That is what matters most right now.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">More tools, better performance, and new features are on the way. The goal has always been simple \u2014 make everyday digital tasks easier for Indian users. There is no reason someone should need five websites to do five simple things.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">If you are a fresh graduate reading this and wondering where to start \u2014 pick something that feels slightly too big for you, and then build it anyway. The gap closes faster than you think.<\/p>\n\n\n\n<p class=\"has-accent-4-color has-text-color has-link-color has-medium-font-size wp-elements-0796259454c1f09c21170f41a12f9453 wp-block-paragraph\"><em>\u2014 Raj Chauhan | Software Developer<\/em> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>How we built BharatStacks \u2014 a platform that replaces five tabs with one, built for India, hosted on AWS. Why Does&nbsp;BharatStacks&nbsp;Exist? If you have ever tried to format a JSON file, convert an image, check a unit conversion, and find a decent icon set \u2014 all in the same hour \u2014 you know exactly what [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-12","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":5,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":165,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/posts\/12\/revisions\/165"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/media\/13"}],"wp:attachment":[{"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.bharatstacks.com\/index.php\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}