Our blog

Page 1 of 2

  • Giving Back, 2024 edition

    Prateek Rungta

    As another financial year comes to a close1, the accountants draw out a projection of our profits and a corpus is carved out to give back some of our earnings to the community. Each member of the team has a chance to suggest and campaign for organisations working on:

    1. Issues that impact our work.
    2. Issues that impact our industry.
    3. Issues that impact our society.

    The corpus is then split equally between one organisation each from the above three groups. We prefer finding new recipients each year and try to have a gap of at least three years before donating to a previous recipient.

    This year we ended up donating to:

    This is our fifth year2 of giving back, and we continue talking about this publicly in the hope that it encourages others to do the same, like it once encouraged us.

    1. The Indian financial year ends on 31st March. Because, imperialism↩︎

    2. Past recipients include:


  • Giving Back, 2023 edition

    Prateek Rungta

    It was probably sometime in the late 2000s that I first came across the idea of an organisation pledging to donate a percentage of their profits to charity. I cannot recall exactly where I first read about this practise but it was probably on one of the early web 2.0 gang members’ projects. The idea seemed so novel at the time, yet also felt right, and I made a mental note to do the same if I ever when I ran my own shop.

    Fast forward a few years, I was co-running my own shop, booking some profits, making an odd donation or two, but not really following the principle that had inspired me back then.

    That finally changed in 2020. A lot of things got upended in that First Year of Covid™, but new practises also emerged as a result. We deliberated, sought opinions from the team, and put in place a process to make annual donations to three types of causes. Our pool is split three ways between:

    1. Issues that impact our work.
    2. Issues that impact our industry.
    3. Issues that impact our society.

    This is the fourth time we’re following through and giving back a percentage of our profits. This year we donated to:

    • Prettier, for keeping our code consistent and saving countless trivial formatting and style-guide reviews.
    • Electronic Frontier Foundation, for continuing to fight for digital rights.
    • Wikipedia, for documenting so much of the universe, and showing the best of the power of the web.

    Just like the first three times1, we are talking about this publicly in the hope that it encourages others, like it once encouraged us. Please join our efforts by amplifying the contributions to these organisations and projects.

    1. Past recipients include:


  • 2020 – 21 Year(s) in Review

    Prateek Rungta

    We’ve been publishing year-in-review posts since 2017. These offer a good opportunity to pause and look back — take stock of what we’ve accomplished, how much we’ve grown, where we faltered, and all the ups and downs along the journey. Of course it also helps present a snapshot of the company’s journey to the rest of the world, but it is as much an exercise of reflection as it is an exercise in documentation.

    We missed out on this for 2020, the First Year of Covid™, so this will be a dual year in review for both 2020 and 2021. There’s a lot of ground to cover, so let’s get started.

    🌱 Growing Practice

    Our core practise remains that of building websites. It is why we show up at work every single day. And while we continue to practise web design and development, project after project, taking a moment and looking back made us realise how far we have come.

    • Our engagements have grown in scope, in scale and in ambition. We worked on a university website with 70 different content-types and 18 different micro-sites for various faculties and departments, all supported by a single CMS.

    • While we continue to develop deep expertise in Craft CMS, we are just as excited to adopt new tools and technologies and explore unchartered territory. We got our hands dirty with Svelte and the nuances of the OpenType font format in order to build a powerful browser based tool for testing fonts (with a focus on Indic typefaces).

    • We have been lucky to have a steady stream of interesting enquiries come our way, and unfortunately we’ve had to turn down several of them because we have our hands full.

    • We managed to successfully adapt our intensive in-person workshops into fully remote sessions, staggered over a few weeks, to ensure full participation of all the required stakeholders.

    • Guiding Tech, one of our flagship projects, was acquired by a US-based media company. We had revamped their website in 2017, and had since been constantly improving the tech and adding new features over the years.

    👯 Team Effort

    We have been building websites for over ten years now. But for most of this time, the execution was done by Souvik and/​or me. We were now starting to grow a team, both on the project execution side of things as well as the operations side of things. This meant learning how to distribute work. Align on outcomes. Defining a voice and a benchmark for the studio which resides not just in our heads but is accessible to and mould-able by every member of the team. Lots of processes were experimented with. Lessons were learned, extra baggage was shed, new tools were adopted and old ones discarded.

    We added two new people to the team — Paul Manem and Divya Chauhan.

    Paul Divya

    • Paul is a self-taught web designer and developer from France but based out of Phnom Penh in Cambodia. He has been making websites for 10 years and had already been using Craft CMS for some of his projects before he joined us in the summer of 2020. If you meet him, watch out for his dry sense of humour and witty side-remarks.

    • Divya joined Miranj as an executive manager to help with the operational side of things. She comes from the hospitality industry and is great at tackling operations, logistics and client interactions. She joined us in early 2021, and ever since our team activities and celebrations have become livelier and full of cheer.

    We still have a long way to go, but we’re steadily growing more efficient, predictable and timely with our processes and deliveries.

    🎂 Ten Years Young

    Did I just mention we’ve been building websites for over 10 years now? That’s right, we completed a decade in business! Feels like a long way back when Souvik and me were running around accountants, trying to come up with names that had .com and .in domains available, and reaching out to friends and family to land our first client. What a ride it has been. Despite remaining small throughout, we’ve travelled a long way from a tiny basement office in 2011 to now having a distributed team across India and Cambodia. We had big plans to celebrate this milestone with our clients, friends, collaborators and well-wishers, but sadly had to defer that due to the pandemic.

    There are a bunch of other Indian companies that started around the same 2011 (plus/​minus one year) period who we like to think of as our batchmates — HasGeek, 3 Sided Coin, Blue Tokai, Zerodha etc., and we’re glad to be in their company. At the same time, we also remember a lot more who are no longer around. Ten years often does not feel like much in lifespan terms. Yet it is long enough to have experienced few of our clients’ entire team undergo two rotations of its members leaving and joining, while we’ve been steadily supporting their websites all along.

    We are grateful to everyone who has helped us make it this far.

    🏕 Remote by Default Only

    A pandemic. In our lifetimes. Much like the rest of the world, we had no idea what to expect or how things were going to play out. Everyone complied with the lockdowns, of course, but we continued working from our homes. The office was around, something we’d go back to once things were normal. Normal, heh. Calls upon calls seemed to be the new normal. No social interactions seemed to be the new normal. Blurred lines between life and work seemed to be the new normal.

    At some point, it became increasingly apparent that there was no going back in the foreseeable future. We decided to let go of our (beloved) workspace and instead decided to invest in everyone’s home setups. We decided to have a team member from a different country and ensure they were treated no different than a team member in the same city. We switched to regular virtual team activities in the form of daily stand-ups, weekly town-halls and monthly chill-sessions.

    Meeting with the the team using birthday backdrops Team meeting using Cafe Perk from the TV show Friends as the backdrop

    🎂 Birthday celebrations for Souvik (left) and Divya (right).

    We strived to operate in a remote by default mode even when the entire team was co-located, so the initial lockdowns didn’t quite bring the house down. But we have now managed to completely re-orient ourselves to become a fully-remote organisation.

    🧧 Giving Back

    We have finally started giving back in the form of regular institutional donations. We decided to donate a percentage of our profits at the end of each financial year and, after much deliberation, decided to split our pool three ways between projects or organisations that:

    1. Impact our work
    2. Impact our industry
    3. Impact our society

    Everyone on the team is encouraged to nominate (and campaign for) worthy candidates in all three categories. We then conduct a poll for the submitted candidates and pick one winner in each category. So far we have made donations to Gulp, The Internet Archive, and Goonj in 2020 and Software Freedom Conservancy, Mozilla, and AltNews in 2021. We urge you to join our efforts in supporting these organisations if they resonate with you.

    👥 Community Initiatives

    One of the things we love about the web industry is the community. All of us at Miranj learned web design through the abundance of knowledge and resources made available by fellow web designers of all levels — beginners, practitioners, and experts; freelancers, studio folks, and big tech workers. We too have always wanted to give back and grow this pool. We have written and spoken about our techniques and shared our code, albeit intermittently. But we were able to do this in two big, consistent ways recently.

    🎙 Appearances


    The Lows

    There was a noticeable, undeniable increase in work load and stress during the last two years. Some of this was undoubtedly directly attributable to the pandemic raging all around us, but a lot of it was also due to our struggles grappling with the gradually blurring lines between life and work. Some of it was due to growing pains inside a young team still figuring things out. There were also reasons that had nothing to do with work. Regardless, all of us struggled for different periods of time over the last two years. We talked about it, took time off, travelled when possible, and attempted a lot of small changes. We are in a much better place now, but remain careful and reflective of the time gone by.

    Work Anniversary meeting with the the team featuring an Oprah Winfrey meme that says 'Happy Anniversary. You Get Another Day of Work!!'

    We also saw a departure from the team. Archit Chandra, our first long-term team member decided to move on from Miranj late last year and explore other opportunities. We’ll be missing out on his deep care for process, constant feedback/​engagement that helped us get more organised as a studio, and his astonishing levels of trivia and general knowledge.

    Virtual meeting with a quiz being presented by Archit with the rest of the team in attendance

    Archit put together a quiz for the team as his exit interview.

    We wish him well and continue to cheer him from the sidelines.

    Lastly, a project that we had worked on and completed during the first few months of 2020 has, after awaiting a public launch for almost a year, now been shelved completely. Another project that had launched in 2019 went offline after a year as the organisation ceased all communication (and perhaps operations).

    2020 – 21 in Numbers

    • 2 new team members, 1 departure
    • Undertook 13 client projects
    • Worked with 5 collaborators
    • Hosted 2 events and 2 talk series
    • Worked with/​in 5 geographies
    • 6 project launches
    • 1 new plugin release
    • 1 person got married
  • 2019 in Review

    Souvik Das Gupta

    As the pandemic rages through India (and different parts of the world) we’ve all been stuck at home for months on end. Everyone’s skeptical, the mood ain’t great and it’s hard to remain cheerful. Wouldn’t it be great to take a break from 2020 and reflect back on the times when meeting people, attending conferences, travelling and generally being in a happy state of mind were a thing? I decided to do just that and pen another year-in-review post. Yes, it’s 10 full months since the year ended but we posted a delayed review last year as well and now we can call ourselves trendsetters.

    2019 was a year of consolidation and gradually stepping forward. We undertook twelve different engagements of varying sizes and evolved throughout the year. Let’s look at some important developments, milestones and highlights for Miranj from 2019.

    Helping Organisations Think and Strategise

    We started out as a studio with two key skills — building websites, and finishing them on time and within budget. The latter skill is better known as project management.

    The first step in any project was understanding the requirements. The process relied heavily on clients knowing what they want and being able to articulate that. We often got frustrated if clients were vague about their requirements because we considered it a pre-requisite for our work. But as we gathered more experience our thoughts evolved from clients don’t know what they want” to we need to help them understand their needs”. Back in 2016, this translated into our very first project discovery workshop. The process was rudimentary, relying mostly on frameworks from other workshops we’d participated in previously. But we stuck to it and started conducting workshops before every sizeable project.

    Prateek explaining feature cards A typical intense moment in a workshop Clients brainstorming

    Over the years these workshops have undergone several rounds of iteration and have achieved a clear structure — understanding the problem-space, defining the solution-space and finally discussing the execution and project management. We usually conduct the workshop at the client location to ensure representation from as many departments as possible. Then we return to our base for the execution armed with clarity on the goals, priorities and the overall scope of the project. It makes our work more focussed, smoothens the execution process and helps achieve greater impact.

    Souvik leading a session

    Discovery and Strategy Workshops have become an essential component of every mid-to-large size project we undertake, and in 2019 we started offering them as a stand-alone service. The workshops not only help us in acquiring a deep understanding of an organisation’s needs but also helps the clients make better strategic decisions about their website, and at times, even their business. Last year we conducted 4 such workshops. In the future, we hope to offer this to organisations who are thinking about transforming their website but need a good decision framework. If you’re aware of any such organisation who can benefit from such an exercise, email hidden; JavaScript is required.

    Dominated by Non-Profit Engagements

    At Miranj we’re mindful about the projects we take on. Very early in our journey, we wrote about our sweet spot. Gradually we also articulated our purpose. We need to keep reflecting on our experiences and defining what type of work we find meaningful. From the early days we found fulfilment in engaging with folks that work for the society — organisations in the development sector, projects that empower people, individuals who fight for rights, and so on. Gradually we also started working in the academic sector. Over the past 9 years, we have worked with many CSOs, educational institutions and other not-for-profit institutions.

    We’ve always had an affinity for the not-for-profit sector. Among all the enquiries that land on our plate these are the ones that make us most excited and give us a strong sense of fulfilment once we’ve completed the project.

    2019 was a special year. We hit a new milestone. Our revenue from not-for-profit projects touched nearly 2x our commercial revenue. It’s hard to predict if we’ll be able to repeat this feat in the coming years but we definitely hope we do.

    Surprising Cross-Geography Collaborations

    At Miranj we spend far more time discussing our craft and honing our skills than thinking about business. We’ve mostly been discovered through word of mouth referrals. Consequently, our projects have been predominantly based in India. But unlike previous years, in 2019 we ended up engaging with clients and collaborators from 6 different countries. This is a significant number for a tiny team like ours. It’s very reassuring to know that somehow people from different parts of the world have managed to stumble upon us. One such email had dropped in from Paul Manem, a web designer-developer based in Cambodia, in late 2018. We were overjoyed to meet someone like him who shared so many of our work ideologies. Last year we ended up collaborating with him on a project and it was a very pleasurable experience.

    Massive Technical Upgrades

    Sizeable software is rarely rewritten from ground-up. But when it gets rewritten it’s usually a big leap forward on one hand and disruptive on the other. In 2018 Craft CMS made one such jump with Craft 3. Three years and three months in the making, Craft 3 was a completely re-architected piece of software. Big changes, although for the better, are disruptive. All Craft plugins had to be rewritten, and website upgrades needed significant work. In 2019, we undertook the highly technical upgrade of two of our largest websites (IndiaBioscience and Guiding Tech) from Craft 2 to Craft 3. The upgrade to Craft 3 also allowed us to refactor some underlying code and in turn achieve better performance, stability, SEO and authoring experience.

    The upgrade to Craft 3 helped us grow a lot in the technical direction. We learned a new PHP framework (Yii2), adopted the Composer package manager, deployed a SiteDiff tool and upgraded all our Craft plugins.

    Working with a Big Name

    One of our highlights from last year was our work with Azim Premji University. We worked on a new website for the university with the help of two fellow collaborators Shalini Sekhar and Kavya Murthy. Working with the university was a surprisingly enjoyable experience but unfortunately, the COVID-19 pandemic resulted in a significant delay on the launch schedule. We are hopeful that it will happen soon. Later in the year we also went on to work with the Azim Premji Philanthropic Initiatives to help them strategise their future web presence.

    We feel quite lucky to have had an opportunity to work with the socially conscious institutions set up by Mr Azim Premji who’s widely regarded as the most generous giver in corporate India. Small teams rarely get to work with such widely recognisable names and hopefully, in the coming years, we’ll get to work with more such reputed institutions.

    Dot All 2019

    Dot All is an annual international conference on Craft CMS and modern web development. We’ve been participating in this conference every year since its very first edition in 2017. In 2019 Dot All took place in Montréal, Canada between September 18th and 20th. It was an exciting opportunity to hop on a couple of long flights and meet the amazing Craft Community. And of course, visiting a new country.

    Souvik and Prateek share a laugh with Ben Parizek of Barrel Strength Design

    Image Courtesy Dot All

    For Miranj it was a special one since Prateek’s proposal titled Fortifying Craft for High Traffic” was accepted by the Dot All organisers. Prateek’s talk covered our learnings from the Guiding Tech website i.e. how we’ve optimised a low-powered server to handle millions of visitors each month by strategically caching the website at two places — Nginx (using FastCGI Micro-Caching) and flag-based template caches in Craft CMS. The talk received great reviews from the participants, and generated instant interest among the performance lovers in the community. It was a validation of how much we’ve improved over the years.

    Prateek speaking at Dot All 2019

    Image Courtesy Dot All

    Just like every year, the conference was an opportunity to catch up with old friends and make new ones. We grabbed fresh beers, shared dumplings and also went on a walking tour around the old city of Montréal.

    World IA Day

    Souvik introducing World IA Day Audience at WIAD 2019, New Delhi

    World Information Architecture Day (WIAD) is a one-day annual celebration to evangelise the practise of information architecture and is held in dozens of locations across the world. Souvik has been the local organiser for New Delhi since 2018, and together with the help of Abhishek and Namita organised the 2019 edition on 23rd Feb. This was the second year of Miranj supporting WIAD in New Delhi. The event brought together people from various backgrounds — designers, lawyers and architects — to discuss various topics on Information Architecture.

    DesignxDesign Exposé 41

    DesignxDesign Exposé 41 Poster

    DesignxDesign, an initiative by Alliance Française de Delhi and Studio IF, has been nurturing the design and creative community since 2010. Through exposés, round tables, exhibitions and tête-à-têtes the community facilitates conversations among professionals and educators in various fields of design — Architecture/​Habitat, Graphic/​Communication, Product/​Industrial and Apparel/​Textile. We were invited to present our work at DesignxDesign Exposé 41 alongside RLDA – an architecture studio based in New Delhi. Incidentally, we were also the first New Media/​Digital Design studio to have taken the stage at a DesignxDesign Exposé. The event took place at Alliance Française de Delhi on November 282019.

    Responding to Audience Questions

    Image Courtesy DesignxDesign on Facebook

    This was the first time both Prateek and I shared a stage together. We used the opportunity to talk about our philosophy, share how the web is more than just a visual medium and show some of our work spanning several years. You can take a look at our slides on SpeakerDeck. The session was also being broadcasted live on Facebook so there’s a video if you’re interested.

    We Grew

    Let’s be honest, we suck at growing our team. It took us 8 years and a few hits and misses (more on this below) to find the right candidate. But now that we have, please meet Archit Chandra who joined our team as a web developer.

    Archit sitting in a shack

    Archit is a self-taught web developer who is keen to learn different aspects of web technologies. Before joining Miranj he ran an independent webshop called GreyThink Labs where he created numerous company websites and online news publications. His experience was a great fit for Miranj — not only did he actively work on CMS-based websites but he also had a good understanding of how small creative businesses run. From the get-go, Archit has brought in some fresh opinions in our studio and has always been challenging our ways of doing things. He’s an avid listener of podcasts, loves reading books and is a passionate follower of Chelsea FC.


    Reflections are incomplete without acknowledging the low-points. While many of them feel part-and-parcel of running a business a couple of them stand etched in our memories.

    The first one was a bumpy project where the communication with a collaborator had broken down. It was a frustrating experience — misaligned expectations, unexpected turns, client expressing surprise, uncomfortable meetings and more. We’d learned a lot from a similar situation many years back where the communication between the client and a collaborator had broken down. But this time around we didn’t directly own the client relationship. As a result, we had to negotiate some significant challenges in navigating expectations, steering conversations and managing resentment. Eventually, we were able to take the project to closure but it left behind a sour taste. The entire experience reaffirmed to us the importance of project management. Creative services are likely to find project management unexciting. But laying out a clear plan and process so that each stakeholder understands her/​his role and responsibilities can go a long way in averting a fallout. Clearly, there’s so much to learn. If you have any thoughts or experiences on this subject email hidden; JavaScript is required.

    The other setback was our first experience of a wrong hire. Miranj has hired only a handful of times and we’re far from mastering the art of hiring (or dealing with bad experiences). It was a repeating cycle of conflict and attempt to resolve issues. Every conversation ended in hope for change but eventually resulted in disappointments. We kept trying for a few months but eventually had to call it off. Letting go of someone is not easy. We’d experienced a lot of uncertainty and guilt a few years back when we had to let go of someone for entirely different reasons. But this time despite knowing that we were making the right decision it still felt bad.


    2019 started slow and breezy, turned into a raging mid-year and came to a calm end. Through the year we evolved our services, learned new tools and techniques, entered new technical partnerships and undertook new challenges. It was a year of growth in every possible sense — in our skills, in our experiences, in our revenue, in our service offerings and even our team size. Feels good to have accomplished so much last year.

    2019 in Numbers

    • Undertook 12 client projects
    • Worked with 6 collaborators
    • Delivered 2 talks
    • Hosted 1 event
    • Plugins: 1 new release, 6 updates
    • Worked with/​in 6 countries
    • Worked with 5 non-profit organisations
    • 4 co-workers
    • 4 workshops
    • 1 new team member

    Clearly, our in-review posts are published quite late. If you’re curious about what we’re up to this year you need not wait until mid-2021. Earlier this year we started an occasional newsletter. The next edition will be published shortly and we’ll tell you what’s been cooking in 2020. Do subscribe and expect an update soon.

  • 2018 in Review

    Prateek Rungta

    2017 was a year of some pretty significant shifts inside Miranj. The changes were so fundamental that they affected almost everything we did. The initial results were encouraging, but only now — two years into the experiment — can we fully appreciate the impact. Our first six years were about finding our feet, about survival. We are now starting to find our voice. Here’s 2018, in review.

    We worked on eight different projects of varying sizes in 2018. Each project had its own set of challenges, but there were some in particular that stood out.


    We’ve always strived to build performant websites, but we’ve never really had to deal with heavy loads. Performance takes a whole new meaning when a site is accessed by 50 to 100 people every second. This is the challenge that Guiding Tech came to us with. It is amongst the top 11k websites on the entire internet, and its traffic far outpaced any other project we had worked on so far. Guiding Tech gave us the opportunity to double down on and really push the limits of server-side optimisation. We learned a lot about Nginx, caching, concurrency, and were able to make major strides in handling massive loads on low-powered hardware.

    We have been able to take the optimisations from this project and apply them far and wide. We also shared some of our learnings with the community at ReactFoo Delhi 2018, and have another talk on performance coming up this September.

    Prateek speaking at ReactFoo Delhi 2018 @ReactFoo


    There had been a growing itch to work on multi-lingual and non-English projects. I found it more than a little ironical that in a country with 22 official languages and only about 10% English speakers, all websites we were building were in English. 2018, finally, brought the opportunity to break out of the English bubble. We did a Burmese edition site for Myanmar Institute of Information Technology (also our first university website, yay!), and French, Spanish, and German editions for conveyor belt manufacturers Forech. The latter even involved some fancy translations and content-sync on the backend via the Google Translate API.

    Five new languages in 2018, but none native to the country we operate out of. We’re still looking for that elusive Indian language web project.


    We have been believers in separation-of-concerns and anti-vendor-lock-in ever since we started Miranj. This has manifested itself in many different ways — making all content client-editable without developer intervention, sharing the source code along with instructions to host the website anywhere, maintaining full transparency about our collaborators, etc. This philosophy also made us averse to ever hosting a client’s website. We firmly believed that the website and its content were the client’s intellectual property, and should be controlled by them. We would instead always ask clients to sign up directly with a web host, and then deploy the website on those accounts.

    This arrangement worked well initially but we started noticing some patterns over time.

    • Deployments were getting more complex. Earlier it meant simply uploading a bunch of files to a folder on a fully-managed, shared web host. But now we were dealing with DNS management, CDNs, image processing tools, image optimisation tools, web server level configurations, automated backups, VPS management, security protocols, and more. A lot of different moving parts needed to come together to host a website.
    • Software updates to the underlying CMS and plugins. We would want all our deployed sites to pull down these updates, but we were no longer actively engaged on the project, and applying minor point updates felt like too small a quantum of work to re-engage. Yet this was not a trivial task either, because sometimes a minor update could also end up breaking something major or having unintended consequences.
    • Critical security fixes. This is the sort of thing we did not account for in our naivety and youth because it felt so rare, but soon realised is actually not that uncommon. Vulnerabilities such as Heartbleed and critical security updates such as Craft 2.6.2982 made us realise that we did not have a contingency plan for delivering these security updates to our clients. We took evasive action in these specific instances, but realised the need for a better fundamental approach.
    • We were managing a lot of servers anyway. Our clients would always trust us with access to their servers. They would rarely revoke access at the end of our engagement, and we would often find ourselves fixing things on their servers, either of our own accord, or when they would bring something to our notice. This was all done pro-bono on a goodwill basis, outside any formal engagement.

    At some point of time, we realised that while we did not offer hosting as a service, we performed a lot of what it entailed anyway. We also realised that ownership of content does not have to translate into ownership of infrastructure. Or rather, that Miranj can own the infrastructure, but still ensure that clients own all content and IP.1 Once we crossed that threshold, we found that there were a lot more benefits we could offer to our clients if we formalised this engagement, such as:

    • Fully managed infrastructure – SSL, CDN etc. standard and baked in
    • Monitoring
    • Security best practises
    • Performance best practises
    • Critical updates
    • Robust, regular, automated onsite and offsite backups
    • Automatically propagating any fixes for issues discovered across all sites we were managing

    We signed our first batch of hosting clients in 2018, and we are grateful to them for placing their trust in us.

    📦 Craft 2 Packages

    Sometime during early 2018 we learned about a way to use Composer to install Craft 2 plugins.2 We were already managing a bunch of different Craft 2 sites, with at least four (dev × 2, staging, production) deployments per site, and adding new ones every couple months. The tedium of manual plugin installation had slowly but surely added up. So we jumped on the opportunity to automate plugin installation and have it under version control.

    We adopted Derrick Griggs described method for two ongoing projects. Deployments became smoother. But the manual steps involved in the initial plugin install continued to feel like a chore, more-so now that one piece of the puzzle had been solved. One thing led to another, we went down a few internet rabbit holes, conducted many failed experiments, and finally realised that we could, probably, make plugin installs slightly easier. All we had to do was:

    • Create a private Packagist server
    • Maintain a human-editable list of Craft plugins
    • Figure out ways to make plugins with different folder structures Composer-installable by issuing the standard composer require <vendor>/<plugin> command
    • Put in a process to auto-update the Packagist server whenever the plugin list is updated
    • Allow the community to contribute and grow the repository of plugins

    It was slightly insane, and I’m sure we lost more time doing this than we can ever make up in gained plugin installation efficiency, but we did it anyway. We launched craft2​pack​ages​.miranj​.in and managed to fully automate plugin installation.

    My only regret is that we didn’t learn of this possibility sooner. Everything about Craft 2 Packages – inception, experimentation, and release – happened in May. Craft 3 was already out by then (released in April 2018) and most developers were in the process of switching over. While we are committed to keeping this server running for at least the next 10 years, we realise most Craft 2 projects are probably in maintenance mode now and will not go in for major changes. I feel like the community could’ve really benefitted from this had it been around when Craft 2 usage was at its peak.

    Dot All

    We fell in love with Craft CMS when we built our first Craft powered website in 2014. We’ve built on it extensively in the following years. Craft also has a thriving developer community, largely centred in North America, Europe and Australia. Our interactions with this community were limited to Slack messages, at best. Then in 2017 they announced their own conference, Dot All. We decided to take the plunge and meet the community. Souvik travelled all the way to Portland, USA to attend the conference and put faces to all the Slack handles, GitHub handles, Stack Overflow users, and Andrew Welches (there had to be more than one). It was a wonderful experience and he had a great time.

    That was 2017. Here’s Souvik narrating what happened the following year, in 2018 —

    Our Craft implementations had matured significantly, especially our homegrown template architecture and code organisation which had been evolving over the last 3 – 4 years. I felt that it would be a valuable technique for other Craft developers and went on to propose a talk for Dot All 2018. A few weeks down the line, the Craft team invited me to take the stage at Dot All in Berlin. This was my first international speaking opportunity — undoubtedly, a pretty significant milestone. I felt the pressure while preparing for the talk and encountered frequent moments of excitement and butterflies-in-stomach along the way. The entire process took about two months of exploration, iterations and internal discussions before the final slides started taking shape a few weeks before the conference.

    Prateek and I flew into Berlin a day ahead of the 3‑day conference. Although this was our first visit to Berlin (and Germany) we never felt lost (or alone) thanks to the constant stream of suggestions and recommendations on the Dot All Slack. We kept bumping into fellow attendees everywhere — in the hotel, at the venue, at nearby bars and eateries. It was a lot of fun.

    My talk was scheduled for the third (and final) day of the conference. I kept working on my slides from the sidelines and the tweaks continued until about half hour before the presentation. I took the stage right after lunch, slightly nervous but definitely excited. The presentation went very well without any significant hiccups. It was the best version of all the rehearsals I’d done with Prateek and I was quite pleased. More importantly, it was received very well by fellow attendees. Many found it helpful, some had questions, a bunch of them gave us good feedback and asked us to share our code for reference and their understanding.

    Souvik speaking at Dot All 2018, Berlin @DotAllConf

    The overall experience was a growing one. We managed to shun our imposter syndrome, present in an unfamiliar culture (and geography) and hold our nerves throughout the experience. It was deeply fulfilling to engage with the Craft community and share our work and experience with everyone.


    While we had a lot of highs, not everything went great, and it would be dishonest if we did not mention the lows in an annual review.

    The first setback was the closing down of Design Fabric. The website had undergone a redesign earlier in the year and we took that opportunity to work on its performance as well. Using a bunch of different techniques we were able to make the media heavy Design Fabric, already one of our fastest shipping websites, even faster. We were proudly showing it off to clients and our peers. However the project was taken down shortly after the founder of the publication was accused as a part of the #MeToo movement.

    The other major setback was in December. Three weeks into what was meant to be a much longer relationship, a project we were working on was brought to an abrupt halt. We had failed to resolve differences with the client or find common grounds on which to proceed. Having been in business for eight years now, we have encountered a healthy diversity of opinions and personalities. We would often take pride in our willingness and ability to use reasoning and discussion to resolve differences between teams, bridge gaps and move a project forward. This experience reminded us that we still have much to learn. This was the first time we found ourselves at a stalemate.


    Running a business is no easy feat — between chasing new leads, managing ongoing projects, looking after our hosted websites, handling support for older projects, accounting and regulatory compliances, running an office, keeping up with the industry, learning new skills, and doing the actual design and development work to build websites, our team of two rarely finds time to pause and reflect. This review lets us do that; take stock of how far we’ve come, and appreciate how far we have to go.

    2018 in Numbers

    Base Station plants Base Station plants

    See you next year!

    1. Each website is hosted on an isolated, dedicated VPS. There is no data sharing between different clients, and we offer clients complete access to their server via SSH, if needed. ↩︎

    2. This might sound like a banal statement to some of you, in which case, let me remind you that while Craft 3 uses Composer natively to install itself as well as plugins, this was not the case with Craft 2. The Craft 2 plugin installation process involved manually downloading the code and placing it inside the designated plugins folder. While this was not a terrible workflow, it was far from ideal. ↩︎

  • On 2017

    Souvik Das Gupta

    For the first six years of Miranj, Prateek and I were responsible for every activity under the sun. Whether it was designing and writing code, or responding to opportunities, or basic housekeeping (and everything in between) — the responsibility was always shared. The lack of separation of concern, and in turn a lack of ownership, meant that some aspects received disproportionately less attention than others. A business runs smoothly when things are fixed before they break, and this is as true for our core craft as it is for other facets such as generating opportunities, or general housekeeping.

    2016 was a tough year overall. And it provoked some profound changes. In no other year have we evolved and achieved as much as in the year that just went by. This is the first time I felt like writing a year in review.

    Segregated Responsibilities

    We took cues from the year before, and made a bold move. Prateek and I split our responsibilities and took charge of different aspects of work. We both have different priorities now, which means fewer hurdles, more encouragement, and more motivation. As a result our progress last year has been more well-rounded than in any preceding year — be it clarity in objectives, leaner processes, generating new opportunities, better collaborations, and most of all, our work.

    With a Clear Purpose

    We had laid down our purpose back in 2016. Last year we had the opportunity to invest time and mind-space in reflecting on our values, strengths, and strategies, and to audit our performance. This self-analysis drove us to align our mindset and tactics to move closer to our purpose. We’ve made subtle changes in our conduct. To take an example, we’ve identified longevity as a core value in our work. We now consciously look ahead, well into the future, and take considered decisions at each step of planning and executing a project. We’re exploring questions like how long should a website last and even evaluate our client’s commitment towards this value. For a while we’d been posing four simple questions to understand new enquiries, but recently we’ve added a fifth question that seeks to understand the potential life-span of the website that we’re being asked to work on.

    Project Workshops

    We’ve started investing more in understanding a project, guiding clients and aligning expectations. For any typical project we now conduct a week-long project discovery workshop with our clients. We follow a methodical approach towards understanding the audience, content, and goals of the project, along with recognising the client’s taste in aesthetics. Further, we facilitate prioritisation, recommend a strategy, brainstorm a solution and mutually agree on the scope, and a plan of work.

    This week-long intensive exercise has given tremendous clarity to our clients, helped us speed up alignment, and discover problems that are often overlooked by initial project briefs. It also serves as an opportunity to guide them — from design and technology to feedback and project management.

    Raising the Quality of Work

    We usually cringe when we look at our past work. But that’s also something that makes us proud. There’s probably no better evidence to indicate that we’re improving all the time. This year we’ve made some measurable improvements in our work. Our projects are faster, more secure, and implement better technical SEO. Some noteworthy changes that we’ve introduced are:

    • hosting on VPS (such as Digital Ocean or Linode)
    • ditching Apache and opting for an Nginx-only architecture
    • deploying CloudFlare CDN to serve static assets
    • inlining critical CSS
    • micro-caching dynamic content using FastCGI Cache
    • automating image optimisation
    • serving all websites over HTTPs (including our own!), and
    • delivering the most up to date technical SEO — from checking off all social media meta-tags to JSON-LD Struc­tured Data, using SEOmatic.

    These qualitative improvements are now our minimum deliverable” for every project we tackle.

    Support Offerings

    We finally got around to formalising our support offering. This includes essential housekeeping like monitoring server health, fixing issues, regular backups and timely updates (and renewals). Further, we now offer retainers which embrace the fact that websites are a living thing. We can help sites evolve over time and not let our client’s ideas (or needs) remain parked indefinitely.

    New Geographies and Communities

    We met more people from different parts of the globe than ever before. Our year started with a Singapore-based project, followed by attending Peers Conference in Seattle, and concluded with Dot All in Portland (the first Craft CMS conference). It’s been great to interact with these communities and learn from peers. It also helped us evaluate our own standing against the international web community in terms of skills, processes and quality of output.

    Projects of Note

    A year in review cannot be complete without touching upon some of the work we shipped. Here are three notable ones —

    • Buuuk — Powerful page builder website for a bespoke mobile app design and development studio based in Singapore.
    • Design Fabric — Lightning fast experience for a new publication on the art & design culture in India.
    • Tiffinbox — #May1Reboot for a communication and illustration studio in New Delhi.

    Our work page has more details on all three projects — Buuuk, Design Fabric and Tiffinbox. We can’t wait to announce some other projects that are yet to be launched publicly.

    We’re super excited about 2018!

    There are some interesting (and challenging) projects in the pipeline that will go live in the coming weeks and months. We’re gearing up to celebrate World IA Day 2018 next month. And we’re looking for an experienced web developer to join our team. We’ve laid out the offer very thoughtfully, and have meticulously put together a few rounds of evaluation to establish a good match. We’d really appreciate your help in recommending a suitable web developer to us. If the endorsed candidate is successfully hired we’ll be happy to share a referral fee of ₹10,000/- for your gesture.

    If you’re facing any challenge in information architecture or content management, want to learn about our project workshops, would like us to speak at an event, or simply want to grab a coffee, email hidden; JavaScript is required.

    Happy New Year!

  • Summer Camp

    Prateek Rungta

    We’re delighted to have two new people working with us over the summer.

    The first, Ayush Kumar Tiwari joins us as the web developer intern. Ayush has been dabbling with Python and Django while at college. More importantly, he plays the guitar and has brought it along to the office. Ayush had managed to stay sober at an engineering college for a full two years before finally succumbing to beer during his very first week at Miranj. This has led to some strange and funny side-effects, like showing up at work after guzzling 2 litres of milk in one go. We hope the effects are not permanent.

    Our second intern is the soft-spoken but sharp-eyed Kamal Nayan Sharma. He joins us as a web designer. Kamal has been blogging at TechToll for a few years and is also a budding photographer. He possesses a mean (in a good way) sense of humour that will catch you unaware and render you incapable of a response both because of the fits of laughter you roll in as well as the brilliance of the attack.

    It’s been great having new people in the team. More hands on deck, more people to help me pull Souvik’s (heavy) leg. Can’t wait to show you what we’ve been up to.