# We are a Craft Partner


- Date: 27-May-2020
- Author: Souvik Das Gupta
- Tags: Craft, Web Development, We Like
- URL: https://miranj.in/blog/2020/craft-partners


Back around 2013 with every passing project, we were trying to push ourselves to break down websites into [small, atomic information pieces][speakerdeck], almost in the *object-oriented* way. The more we pushed ourselves the more we got disappointed by the website tools (and paradigms) that surrounded us. On the one hand, we felt constrained by [WordPress][]’ pervasive *Pages and Posts* paradigm. It was (and still remains) so ubiquitous that everyone seems comfortable in imagining websites as a collection of hierarchical pages and an accompanying blog. On the other hand, some tools (like [Jekyll][]) supported atomic content pieces by combining data formats like [YAML][] and [Markdown][], but fell short in extending a reasonable authoring experience. We had reached a point of dreaming up our own custom CMS architecture but stopped short of implementing it since that would be a significant deviation from our core work i.e. designing and developing content-driven websites. 

[idp]: https://miranj.in/work/internet-democracy-project
[speakerdeck]: https://speakerdeck.com/souvikdg/architecting-content-driven-websites
[wordpress]: https://wordpress.org/
[jekyll]: https://jekyllrb.com/
[yaml]: https://yaml.org/
[markdown]: https://daringfireball.net/projects/markdown/
*[YAML]: YAML Ain't Markup Language

An year later, while working on the [Quicksand][qs] website, we were desperately looking for a reliable Content Management System (CMS) that could complement our approach while delivering a good authoring experience. That’s when we stumbled upon [Craft][] — an un-opinionated, content-first CMS. It touted several good features but there were a few noteworthy ones which  caught our immediate attention:

#### Flexible Content Modelling
This one hit the nail right on the head. Craft allowed us to deconstruct content into small pieces and build websites bottom-up. We even learned that our [*object-oriented approach*][speakerdeck] was called *Content Modelling*. It freed us from existing content paradigms and allowed us to architect the website content uniquely as per project needs.

#### Relational Fields
Every independent piece of content modelled inside Craft can link to *any piece of content* across the website. Relationships are extremely powerful because not only do they help create cross-references and allow people to navigate to related information, but they greatly cut down redundant data capture. Shared pieces of information can now be independently created once and simply linked/reused in several related places.

#### Matrix Field
This was around the time when design systems were maturing and the Matrix field complemented a modular component-based page design. It enabled the creation of re-usable blocks/patterns which could be included multiple times on a page. Further, the blocks could be moved up or down to re-order content within a page.

#### Live Preview
It’s very reassuring to be able to review how the content will show up on the website before it’s published. And it’s even more powerful if you can see a live preview *as-you-type*. That’s exactly what Craft shipped and it reminded us of the experimental interfaces demonstrated by [Bret Victor][] in his talk [Inventing on Principle][].

#### Clean Separation of Concerns in Code
Developers crave to focus on one thing at a time – data, business logic or templating. An architecture that cleanly separates these three layers makes the code more resilient, error-free and secure. Not to mention it’s also far more enjoyable to work with.

#### Security
The Craft team has [never beaten around the bush][security-stackexchange] about their security measures. They’d been following all the good practices in the book, [published zero-day fixes][zero-day] and [diligently updated vulnerability databases][cve]. We were re-assured that [Craft's security was taken very seriously by its makers][craft security].

#### One-Time License and Developer Support
Craft was not a free CMS (unlike many popular alternatives) but their pricing was very compelling — reasonable for the value it delivered, affordable for a small business and importantly a one-time fee for perpetual use. We saw this as good thing because it assured us that the product had a sound business model and that [they’d likely be around for a long time to come][future]. Also, who doesn’t like developer support from the makers of the product. 

#### Zero-byte (empty) output for fresh CMS installation
If this one sounds trivial, trust us, it’s a profound change. When a CMS does not impose a _starter theme_ but instead comes with zero front-end code, it puts the control right back in the hands of the designer and the developer. The CMS landscape had many firmly established players ([WordPress][], [Drupal][] and the likes) but Craft was a breath of fresh air in this regard. 

[drupal]: https://www.drupal.org/
[Bret Victor]: http://worrydream.com/
[Inventing on Principle]: https://vimeo.com/36579366
[Quicksand]: http://quicksand.co.in/
[Craft]: https://craftcms.com/
*[CMS]: Content Management System
[security]: https://craftcms.com/knowledge-base/security
[security-stackexchange]: https://craftcms.stackexchange.com/questions/4448/how-secure-is-craft-and-why-is-it-secure
[zero-day]: https://twitter.com/CraftCMS/status/872599894912937984
[cve]: https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=craft+cms
[craft security]:https://craftcms.com/knowledge-base/security-faq
[future]:https://news.ycombinator.com/item?id=12013857

---

Not only did Craft check most of our requirements but it also raised our curiosity and excitement. However, like with any new software, we approached our first few Craft projects with extreme caution. It took us about a year to grow confident in Craft’s versatility, and then we were hooked! [Quicksand][qs] was our first Craft project and [it continues to be running stably today][quicksand].

Fast forward to late 2018. The Craft team rolled out the [Craft Partner Network][] to bring together agencies from around the globe with proven expertise in Craft. With over 4 years of Craft CMS experience (at that time), our team satisfied the review criteria and we became [an official Craft CMS Partner][craft-miranj] — the first agency from India, and among the earliest set of members from the Asia Pacific region.

[Craft Partner Network]: https://craftcms.com/blog/craft-partners
[craft-miranj]: https://craftcms.com/partners/miranj

[![Miranj is a Craft Partner](https://miranj.in/media/announcement/craft-partners/Craft-Partner.png)][craft-miranj]

Over the years Craft has enabled Miranj to take on several information-dense projects with formidable IA challenges. Craft’s feature set has been steadily expanding and today we’re using it to power some fairly complex use-cases. We leveraged its *multi-lingual* and *multi-site* capabilities in [MIIT][] and [Forech][]. In fact, in the latter project we hooked up Google Translate to pull in automated translations for French, German and Spanish (thanks to Craft’s *extensible* architecture). Our client [IndiaBioscience][] is making great use of the *multi-user* capability with *user groups and* *fine-grained permissions system* to collectively manage their large website. We used Craft’s _powerful Twig templates_ to enable [Guiding Tech][] to syndicate content with external services. Craft also has a growing [Plugin Store][] where one can find many useful extensions for the CMS, including [a few that we‘ve built and published][plugins]. And perhaps the most important of all (and dare I say — our favourite feature of Craft CMS) is the thriving community that is growing steadily in India and around the world. The close-knit community is connected over [Discord][], [Stack Exchange][], an annual conference ([Dot All][]) and the [Craft Partner Network][]. 

[qs]: https://miranj.in/work/quicksand
[miit]: https://miranj.in/work/miit
[forech]: https://miranj.in/work/forech-2018
[IndiaBioscience]: https://miranj.in/work/indiabioscience
[Guiding Tech]: https://miranj.in/work/guiding-tech
[plugins]: https://plugins.craftcms.com/developer/548
[Plugin Store]: https://plugins.craftcms.com/
[purpose]: https://miranj.in/purpose
*[IA]: Information Architecture

[discord]: https://craftcms.com/discord
[stack exchange]: https://craftcms.stackexchange.com/

With over six years of Craft experience, we are proud to be at the forefront of its adoption in India and the neighbouring geographies. During this journey we’ve participated in every [Dot All Conference][dot all] and have been invited to present our techniques at the [2018][] and [2019][] editions. Needless to say, Craft CMS has been a great ally in facilitating [our purpose][purpose] and we couldn’t be happier with our decision to adopt this technology. 

[dot all]: https://dotall.com/
[2018]: https://dotall.com/sessions/architecting-a-content-website
[2019]: https://dotall.com/sessions/fortifying-craft-for-high-traffic


----------



If you’d like to learn more about Craft CMS and how it compares with some of the other CMSes out there, join me on June 6th (Saturday) at [Content Web][] — a series of online discussions on content publishing, web design, web development and the business around it.

[content web]: https://hasgeek.com/metarefresh/content-web/