Every Web Application is the same, the SELID Website
Tags: architecture, webdev, platform, pattern
Published: 2021-06-18 01:13:03

<!-- wp:paragraph -->
<p>What does <a rel="noreferrer noopener" href="https://www.google.com/" target="_blank">google,</a> <a rel="noreferrer noopener" href="https://www.apartments.com/" target="_blank">apartments.com,</a> and <a href="https://www.amazon.com/">amazon.com</a>, have in common?  They are all websites, obviously, but not just that; they all follow the same pattern:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>The visitor is presented with a search field</li><li>After querying for something, the visitor is then whisked away to a search results page</li><li>Upon clicking on a result, a details page is then presented, usually featuring information and buttons that run off to CRUD something in a database or call some APIs</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Yup, thats it. This sums up pretty much every web application ever made, even the fancy proprietary expensive application your employer is probably building right now.  I like to refer to these as SeLiD websites ( Search, List, Drill down or Details)<br></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Now the next question. What are the acceptable and approved tools and solutions available to software engineers seeking to build a customized web application? Sure, React is pretty amazing, and everyone has heard of AWS, but if every website emerges into the same template every time, then where is the tool that maps to these problems? Businesses want solutions to business problems. Retailers want customers to search, view, and buy merchandise. Property owners want renters to search, view, and rent properties. Software engineers are tasked to build these solutions, and as software engineers, we want to:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Build a search field that combs through and returns matches from a list of records</li><li>Shove each returned record into a template, then shove those into another list</li><li>Wire up each record into a detail page that will easily interface into some sort of CRUD SDK and extendable callback middleware.</li><li>Slap some make up on it.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>As far as 'customization' goes, it should be a simple matter of asking which records are being queried, how should the data be presented, what widgets are going on to the screen, what are these widgets going to do to the data, and how is this thing going to look?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Surveying the current landscape of software engineering, I don't see this tool, and I observe the following issues.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>The popular 'front end libraries' only solve technical issues, such as synchronizing behavior and state for the web app, which would normally be fine, except that businesses need to have their business solutions solved and not just their technical issues</li><li>Engineers have to solve and resolve the same problems over and over again for every web application. The same problems common to every app that the usual libraries don't address. These include authentication, authorization, theming, linting, building, containerization deploying, and on and on... </li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>There are many projects that try to be the 'batteries included' unicorn, but all come up short in some form or fashion. Either they neglect to solve a critical concern, bring too much opinion to bear, too calcified to be extensible, too complicated, too broad, too difficult, and simply not aware of the absurdly common use-cases I have outlined above. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>In response to this, the Rondo Platform was born. As an engineer, I have come to find certain platforms, libraries, and technologies as being very easy, robust, and extendable, and by combining these with other open source technologies and best practices, we are able to build the Rondo Platform to be as robust, and efficient, and as simple as possible. Simply put, it takes care of all the toil that goes into custom website construction, and allows the engineer to focus on what matters, solving the business need, while leaving extensibility to customize as much as required.</p>
<!-- /wp:paragraph -->