A website or an app is a complex piece of software. All the things necessary to do for a solid website—the difficulty to create—is now closer to a video game than to a website from 25 years ago. And the complexity keeps growing.
I think there is a solution to this.
The Rising Complexity in Development
It used to be (for all the amazing young blood reading this article) that you had a very limited amount of HTML tags while <table>
was the only way of creating any layout whatsoever, barely any CSS, and definitely no JavaScript nor serverside code. 256-color GIFs were common, and centering content with its static width was considered made by a skilled developer. Also, no phones—you could count on a very standardized display size.
In contrast to today's needs, if you want a successful website, the demands are huge. Consider what you need to do or keep in mind and work with:
- All the base technologies—HTML & CSS with JavaScript for front-end and your favorite programming language for back-end (PHP, Python, C#, whatever you love or tolerate).
- Database of some sort
- Server—because two minutes of downtime can cause significant losses
- Graphics & UI & UX so high-standard users can even understand the website/app and not be disgusted.
- So many different devices with different control schemes and display sizes and densities.
- Copywriting & photography
- SEO
- Analytics
- Testing, QA
- While apps are very similar, they are even more difficult in most of the points
If you are creating bespoke projects, it’s highly unlikely you are working alone on it, and so the next point is teamwork and communication and team management, etc.
Making a list is easy. But even if some of those items look like nothing’s changed... it has—all of that is massively more complicated to do.
In Example
Let’s say you have a button. <button>Submit!</button>
In the past, this was enough. Now you need to:
- Style it
- Account for states for different user interactions—hover, active, focus
- Disable it for double-click since it’s usually sending some data to the server, which is not immediate
- A loading or wait state in regards to the previous point
- And all that should be animated for the user's understanding
And this is only for basic function; you or your designer may want something special.
Options for Lowering Complexity and Difficulty
There are options commonly used these days, such as using frameworks, pre-made plugins, etc.
All those are a way to help you out to finish a project faster, cheaper, but also they limit you, and more often than not, they are used not as a help, but as an avoidance of what should be done, like designing for the client’s needs.
I am sure many of you disagree with me. Of course, there are many ways of seeing this. From my point of view, as a head of a company specializing in bespoke high-quality products, these things are not helpful. But let’s talk in the comments; please share your opinion.
No-Code Is Not the Solution
If a framework limits your ability, no-code is not a solution to the complexity due to their even more limiting factors, plus, added to that, they usually have highly non-performant code. Also, they are even more used with no thought to desired results.
I don’t want to dunk on it. No-code is just for a different kind of customer, even though it’s sometimes used with the word “development” in marketing materials.
Comparing Development of Website & App with Video Games Dev
In the introduction, I said modern websites are closer to video game development than to themselves from 25 years ago.
I am a gamer. I love to watch game development videos. With this realization and living in the field of web development for 20+ years, I started to see the resemblances in the software and the development process and needs.
Both product types are highly saturated in the market.
Both have so many competing developers.
In both, you can make something basic very quickly. In both, this won’t be very good or usable.
Unlike games, websites and apps are a bit more limited due to what the platforms allow, websites more than apps.
Some aspects are different, like server-client architecture in websites is mandatory or SEO necessities to keep in mind.
Our Solution Is a Hybrid Approach—Grace Engine
If those two are this similar, why don’t we have similar tools? This question prompted further thinking and now, after about a year of development, we are nearing the first public version of such a tool.
It’s already helping us develop real projects. Server and JavaScript code is still code, but the visualization of the projects is amazing, such a help!
Let me tell you about some of the most helpful features:
- Visual front-end coding while kept visible unfiltered HTML tags tree
- Faster prototyping and much easier idea and options testing
- Compartmentalized code for switching on/off, duplicating, attaching
- Use of external IDEs for hardcore developers
- Notes and comments directly in the Engine and other collaboration
- Front-end person doesn’t need nearly as much help from the programmer so the work is smoother and faster while coding directly on functioning website rather than static template
- Auto-optimizes front-end code for legacy vs. modern browsers
- Fine-tuning visuals with a client on the spot without looking too intimidating to them with classic IDE (yes, that is a real thing)
- Using built-in website hosting or export for custom web hosting
The benefits are so visible by now and all over the place; they are very often in small details.
I truly believe that if you try it, you will see almost immediately the difference.
I invite you to check out our web page about this project.
Next Steps
As of now, our priority is to get the first version in the hands of web developers.
Soon after, mobile apps are in our roadmap.
Marketplace with community selling assets and features, graphics, themes, etc.
Visually animating
SEO tools
Direct channel to your Figma projects with auto-coding
There is a lot in our plans.
Conclusion
Yeah, this is a promotion of a product we are working on. BUT I genuinely believe it’s another step in web/app development. Or at least another option to how to create projects. I am using it for prototyping; we are using it for some clients' projects already. It’s not even a beta yet, and it’s changing how we create projects.
If you leave your e-mail on the webpage, we’ll be selecting developers to try the beta.
Top comments (1)
Simplifying web app complexity with a clear, scalable architecture is key to long-term success. Your solution sounds like a solid way to stay organized and efficient.