DEV Community

loading...
Cover image for No, it is not shameful for a developer to use No-code

No, it is not shameful for a developer to use No-code

karthik2206 profile image karthik2206 Originally published at 2.flexiple.com ・5 min read

Let me start directly - do you consider "no-code tools" to be "anti-developer"? Do you consider it beneath you to use no-code tools? Does it hurt your ego?

I would hope that the answer to all of these questions is a No :).

This movement has been in the works for a couple of years. I also caught onto this a bit late - I just wrote about my brilliant failure in building our product at the very beginning of Flexiple, a few days back. However, ever since, almost the entirety of my startup runs on no-code/minimal code.

So, I thought I should write about it. The aim is to motivate you to explore no-code a bit - not as the anti-thesis of code, but as something that supplements and makes it easier.

If you prefer the shorter version, you can follow it on this twitter thread:

‍

Setting the context

4 years back, I hardly wrote any code beyond the classes taken during my college. I felt that as a founder of a tech startup, that was a big handicap. So I started picking up the skills - it started with basic HTML/CSS (sure, that's almost not code), to Javascript and also a bit of Ruby on Rails. Now, I have become an average developer.

I share this because despite knowing how to code, I feel no-code should be chosen wherever possible. And the great thing is that the ambit of "where it's possible to use it" is increasing each day.

The advantage of using no-code is:

  • The obvious one: you don't need to know to code.
  • Anyone in the team can take up product building initiatives - no single person becomes a bottleneck.
  • Focus shifts more to the goal the tech is meant to achieve rather the tech itself. People who have built software products would recognise this. It is very easy to just get consumed in building the product while forgetting its original goal.
  • The underlying products keep improving. So what you can achieve through them also increases proportionally.

Details of Flexiple's No-code infrastructure

Firstly, this is not meant to be a no-code tutorial. Rather an illustration of how an entire startup's tech can be powered by no-code. And as a result, to inspire you.

Here's the overview of how our tech is setup. So that you understand this in context, Flexiple is a premium tech freelance marketplace.‍
‍

1) Website

This is set up on Unicorn. Unicorn is a simple landing page builder that offers predefined templates. I think for all static pages - where all you are doing is displaying information - such builders should be used.

Our website on the Unicorn Builder
‍
Earlier we only had our google ads marketing pages on Unicorn and had custom coded other pages. Now we have shifted all our pages here - just took me a week to do that.

For Flexiple, we had the following reasoning:

We have a high bar in terms of the design quality of our web pages. But we also think that after a certain level, custom design etc. is just superfluous and a distraction.
Next, with predefined templates, we are able to direct our entire attention to content. Sure, your website can be very beautiful. But, I am a big believer in customers converting on what you have to say to them than by pretty pages.
Now anyone in our team can build new pages for our website. This has given us great agility. With content creation becoming easy, SEO initiatives have also consequently become simple.
Lastly, custom design and development is a costly process. There is also the need to manage a server, etc. which is no longer needed.

2) Database

Our intermediate database is Airtable. Let me explain: freelancers apply to join our network. This involves filling a form and we need to capture those details.

Our Airtable database where freelancer form fills are stored

For this, we have just embedded Airtable's form: Check it out here. So, whenever a freelancer submits their details it gets seamlessly stored in our Airtable database. No custom coding for this.
‍

3) CRM

We use Zoho. To be honest, there are probably better options out there. However, we started using Zoho and have all our processes set around it. That's the B2B stickiness for you πŸ˜‘

Zoho CRM where all our freelancer details sits
‍
You see Airtable is great for storing data. But when multiple people access it, its easy editing interface puts the data at risk - a careless edit and field values can be changed, new records can be created, etc. So, Airtable isn't a great place for the entire team to be sitting on.
‍

4) Glue connecting all

With so many different applications in the picture, we need a service that connects all these to one another. Here we use Zapier and Integromat.

An example automation through Zapier connecting Airtable and Zoho
‍
As you can see in the above image, Zapier enables Airtable to seamlessly talk to Zoho. We have such automation flows set up. We also send standard mails automatically based on certain conditions being met in our database - for e.g. scheduling of calls with freelancers.

So basically it doesn't matter where the data sits. We always have the ability to connect our applications easily and execute any use case we want to.
‍

5) Recommendation engine

Our client form is set up such that even partial form fills are recorded in our database - which is again Airtable! This required a custom-coded solution and is the only part of our entire system to be custom coded.
‍
Our team can get a shortlist with a button's click

In this database, any person in our customer-facing team just needs to click a button to receive the first set of shortlists for a project. Airtable launched a new feature called script blocks and we wrote a simple code snippet for this. This does get into the "code" arena but, frankly, it was very straightforward.
‍

We had multiple intermediate processes before, which has now been replaced by a singular button! This singular automation is probably going to save us an hour of work each day.
‍

Parting thoughts

So, that's a major part of our tech ecosystem at Flexiple explained. Hope it changes your opinion of no-code a bit :)


If you liked my story, do follow me on Twitter. I write about my startup lessons, code & no-code projects and community building.

Discussion (7)

pic
Editor guide
Collapse
kallmanation profile image
Nathan Kallman

A great article! I'm glad you're finding success on no code platforms.

I think all the advantages you list are true; it's honestly the same list of advantages new languages and frameworks pull from (why "code" languages keeps getting higher and higher level). Showing the "code" we write today to programmers from 50 years ago they would probably think that everyone from CEOs to grandmothers to school children must be writing software with how easy it became...

I would love a no-code revolution, but I can't recommend anyone use a platform / service (or traditional "code" language for that matter) and won't use them myself unless they:

  1. Are a non-proprietary (preferably human-readable) format (no lock-in)
    • If expanding beyond what the platform provides means _re_writing everything; I can't recommend someone go down that path. It just means pain and expense just when they start to succeed.
    • A non-proprietary format means I can (hypothetically) cross-compile / export or build the tooling / functionality I need somewhere else and inject it into the platform
  2. Provide a simple way to unit test and test end-to-end
    • If it can't be tested; its just a house of cards waiting to fall when someone bumps something (or breathes too hard)
    • Even if the no/low code encourages horrific big balls of mud a test suite can at least keep it operating without regressions.
  3. A modern version control system (not just a list of "revisions").

If a no/low code system can provide those things; then they can actually start to deliver on those advantages. Or just provide the first two; a non-proprietary format can be manipulated into a text file that git can track; satisfying #3. Honestly, providing the first means that someone can build a testing service against the format. (and now we see that though visual programming languages have existed for decades, modern software is dominated by text based code because text intrinsically provides #1 and works automatically with git to provide #3 on day 1)

Collapse
karthik2206 profile image
karthik2206 Author

Showing the "code" we write today to programmers from 50 years ago they would probably think that everyone from CEOs to grandmothers to school children must be writing software with how easy it became

Haha, well said and yet here we are :).

Addressing some of the other points raised:

  1. Non-proprietary: I totally get where you are coming from and would love that too. But I doubt that's going to happen anytime soon. The reason I don't have a problem is that I think most people don't ever tread the path of building products because they don't know to code - so clearly there is no success in that path.

I would rather that they easily build products and succeed, to then realise that they might have to refactor a lot of things. I would consider that a great problem to have.

  1. I think apps will integrate with one another more natively, so that a testing framework will be more implementable. This would happen, but you are right currently there isn't one.

By no means is nocode for very complex usecases, but I think for a large set of first-version products, it does an amazing job.

  1. I personally haven't felt the lack of a versioning system to be very painful. Yes, there are times when I am working on multiple parts of the app and want to push only part of it, but I can't do it. But that's again fine.

Overall, I am not saying that it is world without compromises. It is just that this world opens the doors for a lot of non-developers to build products. For developers, I think implementing such solutions allows them to outsource the management of certain workflows to non-developers. You aren't always responsible to add features, debug, etc.

Collapse
kallmanation profile image
Nathan Kallman • Edited

I would rather that they easily build products and succeed, to then realise that they might have to refactor a lot of things. I would consider that a great problem to have.

It's a better problem than never having built anything, I agree. But being the one who's come in to clients that need to either rebuild their whole tech stack or go out of business; I can't call that a "great" problem ;) always a tough conversation.

I think implementing such solutions allows them to outsource the management of certain workflows to non-developers. You aren't always responsible to add features, debug, etc.

Sometimes this works... what I've often experienced is the non-developers don't want to be technical enough to even use the "simpler" tool provided to them, and just make me do it (again, I'll stick by my claim that "syntax isn't the hard part")


I'm glad people are finding success and I do hope no/low code can grow into a useful thing for all; but for me it's not there yet (but it totally could be with a few changes).

Collapse
crivion profile image
Alex Crivion

1 zillion of services to achieve a single purpose.
What will you do when things don't work?

It's not under your control, is it?

I see this as a workaround to get launched and earn some $$ in order to raise budget for a proper, owned software solutin.

Collapse
karthik2206 profile image
karthik2206 Author

What do we do when some library has a bug?

We try to find a solution ourselves, reach out on StackOverflow, find a workaround, etc. I think the same applies for NoCode too.

I get your point in that there are more dependencies than in traditional code. But I believe that NoCode is still in the early part of its growth and it surely doesn't make sense all the time. But as I said in the above comment, for a large set of first-version products, it does an amazing job.

The idea is to be open to considering it as one of the options you have on the table. Personally, it has allowed me to outsource a lot of the debugging and feature addition to other non-tech people in the team. I don't have to always be the one to debug and add stuff.

Collapse
crivion profile image
Alex Crivion

You don't deploy a library with a bug: that's why testing exists.
Anyways, I get your point and as earlier said it works as a starter solution but the more you earn $$ it'll become a headache and you really need something which is under your control. No offence, just my point of view.

Thanks

Collapse
v6 profile image
πŸ¦„N BπŸ›‘

SHAME!

SHAAAAAME!