Our blog

  • Website Hosting Service and Digital Ocean Partnership

    Author
    Souvik Das Gupta
    Published

    As a web studio, we have always been focused on our core craft of designing and developing websites. Hosting would often be an afterthought and we’d typically suggest clients to go for a shared web host. After all, shared web hosting was inexpensive and did not require much technical oversight. We would guide our clients through the purchase process, deploy our code and bring our engagement to a closure.

    This approach worked fine for a few years, but over time we started noticing several drawbacks:

    1. Server administration is a bit of a blind spot for clients. Some of them have even suffered website data loss because they overlooked renewal reminders.
    2. Our faith in shared hosting was depleting. Long support wait times, poor performance, being unable to reach our server while some other site on the same shared-host was experiencing a DDoS attack, etc. were frequently souring our experience. Further, the lack of control over server configuration severely limited our ability to install tools or fine-tune the server to meet modern performance benchmarks.
    3. Modern VPS providers were steadily decreasing prices while matching or eclipsing shared host offerings. They provided better access to hardware and high control over the software.
    4. Hosting technologies have become more complex in the last decade. It’s no longer just about the hardware (and bandwidth) specifications advertised by the web hosting services. A modern hosting strategy needs a holistically approach considering several aspects such as SSL renewals, reliable outgoing emails, caching, CDN, backups, software updates, and more.

    By 2018 these challenges had become important enough for us to actively seek alternatives. We came across many different approaches — unmanaged VPS servers, managed servers, app hosting solutions, etc. However, none struck the right balance between —

    • Extending full server control
    • Ease of server management
    • Reliable, high-frequency backups
    • Costs

    Eventually, we decided to get our hands dirty. Based on our experience of setting up the server architecture for Guiding Tech (which receives lots of traffic and high rate of updates), we slowly put together a hosting solution which features:

    • High-performance LEMP stack with FastCGI micro-caching
    • Automated server-side image compression and optimisation
    • Multi-tiered backup strategy — server snapshots, local backups and offsite backups
    • Automated monitoring of uptime and server vitals

    We launched in 2018, and in the two years since we’ve been providing a highly performant and reliable hosting service to our clients based on the above architecture. Under the hood, we use Digital Ocean VPS nodes and reinforce the software to deal with heavy loads and traffic bursts. Digital Ocean’s developer-friendly infrastructure (and their community documentation) has played an important role in our journey to offer high-quality website hosting. Through this post, I’m happy to also share that we’ve recently joined the Digital Ocean Solutions Partner Program. This brings us even closer to the Digital Ocean community. https://cdn.miranj.in/v4/media/announcement/website-hosting-service-and-digital-ocean-partnership/DO_SPP_Partner_White.png


    If you’d like to learn more about how we’ve scaled inexpensive VPS hardware to serve hundreds of requests per second, check out Prateek’s talk at Dot All 2019. If you’d like to discuss more, email hidden; JavaScript is required.

  • Let Your Designers Design

    Author
    Souvik Das Gupta
    Published

    No matter how selective a designer may be while taking up work, projects often fall victim to design interference by clients — knowingly or unknowingly. The web is full of posters, comics and anecdotes that share how the quality of work gets compromised when designers try to appease their clients. Under rare circumstances, if the issues under contention are non trivial, it could result in a failure of the project. Regardless, such projects end in a note of discontentment from both sides.

    We live in a world where design, designers and design services are largely misunderstood and yet a must-have. As long as this remains true, the occurrence of client intervention in design is inevitable.

    What follows is part rant and part discourse on why clients attempt to govern design.

    On design

    Design has been an integral part of various disciplines for a long time now. Yet even today, it is hard to define design. There are plenty of reasonable definitions and a recent paper proposing a formal definition, but there’s none that is definitive and accepted universally. Needless to say, this makes it hard to in turn define the job of a designer, and hard to recognise the value created by a designer.

    To make matters worse, the word design’ is commonly used to refer to appearance, which is imprecise even by its dictionary definition.

    Everything is designed

    It may be hard to nail the definition of design, but it would not be wrong to say that design is a prerequisite for the existence of any (man-made) product. Everything — be it the space around you, the chair you’re sitting on or even the dress that you’re wearing — has been designed at some point in time. Someone has taken a decision about how it’ll look, feel, taste, work etc. However, not every aspect is necessarily designed i.e. not every aspect gets the same amount of deliberation or conscious thought. Those aspects get left to chance, e.g. the taste of a chair.

    Everyone is a designer

    With reasonable intelligence and experience anyone can start taking design decisions. These decisions may be good, bad or terrible, but nevertheless, in some capacity, everyone can be called a designer. However, everyone is not adequately equipped (skill, time, tools etc.) to execute these decisions. In such a case these decisions are imposed on a skilled workman hired to simply to execute the decisions and bring the product to life e.g. designing a writing desk for yourself and hiring a carpenter to build it.

    Everyone is not a good designer

    Just because anyone can design doesn’t mean that everyone should — especially if the designer is himself not the only (or the primary) consumer of the design. Design decisions directly affect the consumers, and therefore these decisions should not be at the mercy of trends, personal whims or tastes of an individual. A good designer understands this and works with great amount of care, responsibility and humility. His trained tastes and rationale makes him competent to uphold the right principles, make the right compromises and take wise decisions.

    Everyone wants a designer”

    It is 2013 and the world has never been more design conscious”. Everyone — be it brands, communities, influential voices, and even consumers — is proactively talking about design. More and more people are getting exposed to good experiences, and behind every such experience there is design”, and in turn, a designer”. This notion has gone viral (perhaps for the better), but with a superficial understanding of a designer’s job. Consequently, looking for a designer” has become a norm, because without one a product is unlikely to succeed.

    Design happens one stage at a time

    Most design problems are complex, sizeable, and are solved by breaking them down into stages. Each stage demands specific expertise and introduces discrete roles. Design at every stage is constrained by the design decisions made in the previous stages.

    As an example, a restaurateur designs the business i.e. decides the goals, strategies, cuisine, target customers, rates, margins, etc. A chef designs the menu within the constraints of the business (cuisine, rates, target customers, etc.). The cutlery designer, in turn, is constrained by both the business and the menu.

    It is hard to identify when an unnecessary constraint is forced upon subsequent stages of design and to understand its impact on the end goal of serving the consumer.

    Irony in design services

    Design solves problems. But design as a service isn’t as straightforward as it sounds. Let me share two oddities:

    These two characteristics lead to disorder in an already difficult process. There are plenty of ideas, suggestions, opinions, principles, whims and demands battling against one another, looking to emerge victorious. And amidst the chaos, the sensitivity of the consumers takes a blow.

    If all we have are opinions, let’s go with mine

    Design starts by identifying constraints and setting goals. What follows is an exercise to churn out a solution that has the best odds of achieving the goals within the constraints. Throughout the process the designer deliberates with multiple stakeholders (including the client) and collects important insights that aid decision making. The final decision taken by the designer can often conflict with a client’s preferences.

    Are you not going to consider my personal tastes?”
    No.”
    But it is my product and I should be proud of showing it to people!”

    Unless the project goal calls for representing the client’s personal inclination (say, a personal website), a good designer rarely lets it trump factors like research, statistics and experience. In the absence of any conclusive reasoning, the final thing a designer counts upon are instincts. People usually mistake instincts for personal preferences, which is why designers often have to resort to bullshit. No, really.

    sudo make me a sandwich

    The clients have paid for the work, own the work and (justifiably) enjoy a veto over how the work gets used. If they disagree with the designer’s decisions, there is an obvious urge to enforce their own. The easier it is to make a modification, the higher the chances of the client making them. In the context of web design, rarely does a designer’s work remain pristine for long.

    Hiring a designer and not trusting his decisions is like taking an advisor on board and ignoring his advice. The designer, being a professional, moves on to the next problem on his plate, but carries a bitter feeling about the client and the final output.

    Discussing design services a while back, we were hardly surprised when a fellow designer (and friend) — one of the best around — replied the following to our question:

    How many clients who you’ve worked with in the past, would you be happy to work for again?”
    Can’t think of any.”


    Over the past two and a half years we’ve worked with a handful of clients — some we love and some we don’t. It took me a while to figure that the clients who we’ve loved working with are generally the ones who recognise and embrace the value that a designer brings to the team. This is not to say that all our favourite clients walked in with that knowledge, but they quickly discovered it and our relationship only got better over the course of the project.

    If you happen to hire a designer, present your problems instead of a solution. Do share your opinions, and especially your experience. A good designer will certainly take them into account and will be happy to explain his decisions. It’s only fair that you reason out the points of contention rather than forcing a viewpoint or your preferences. After all, you chose to hire a designer.

    Let your designers design.

  • Our 4 Questions

    Author
    Souvik Das Gupta
    Published

    Introducing projects to someone else who will bring your ideas to life can get really painful. We know, we’ve faced it ourselves.

    Most respected web design shops have identified this problem and have attempted to solve it by using questionnaires with 15 to 20 questions as a starting point of introduction. A long questionnaire, almost as good as detailed documentation can be difficult to answer at such a nascent stage. Thoughts at this stage of a project are usually clear at the micro level, but most macro level details get clearer only as one progresses with the execution. Many a times one looks to seek advice rather than knowing it all. Steve Jobs nailed it when he said It isn’t the consumers’ job to know what they want.” We concur. Such questionnaires are a step to simplify things, but we think that it could be made simpler.

    Going by our Keep it Simple, Stupid principle, we have come up with just 4 questions. These are the most basic and natural questions you would encounter whenever you go out to buy anything, be it a table, a shirt or a computer.

    Hi, how can I help you?
    I want to buy a computer.

    For whom?
    My son, he’s 15. And sometimes my wife will use it, though she doesn’t know much about computers.

    What will they use it for?
    Well, simple things, maybe play some games and watch a few movies. And of course, browse the internet.

    A customer should never be expected to specify how fast the processor should be or how much power the device should draw or even whether he needs a mouse (iPads for instance don’t have a mouse, but can still serve his purpose). If they know, that’s good, but we suggest consulting the experts before forming a mindset.

    However, unlike buying things off-the-shelf, customised design and development jobs provide a huge room for flexibility. Hence it is very important to determine the size of the project. I want my website to look like that” or I want the website to have this feature” is a very small portion of the large pie. Micro level product definitions do not take into account the optionals like legacy browser support, responsive design, CMS integration etc. In many cases these variable components drastically affect the size of the project.

    One way of defining size is by investing significant time and money documenting every little detail of your project. Unfortunately, making this list exhaustive is nearly impossible. Additionally, rarely does such a document go unaltered as a project progresses. No surprises that we prefer not taking this route. The other way of estimating size is by knowing the time and budget constraints. Well, everyone has a budget up their sleeves, but very few like to share it. While we understand their concerns for not being looted by a design shop, it is important to appreciate that the same goals may be achieved by drastically differently sized projects.

    The 4 Questions
    1. Your project in 140 characters (or less).
    2. Who are your primary and secondary set of targeted audience?
    3. What are your 3 most important expectations from the users who visit your project?
    4. What are your time and budget constraints?

    If clients share definitive and unambiguous answers to these 4 questions, everything else falls in place. That is why we have put soft constraints (140 chars, 3 expectations etc.) on every question. At this stage, we want only the essential user-centric’ goals of the project. Our designs are user-focused and these goals have our primary attention throughout. We know that only happy users translate into long-term happy clients. Nothing else matters.