Benjamin Mosley

05/02/2024: NetDeploy Web-Design/Hosting

Category: NetDeploy

Gallery

Check out NetDeploy by clicking here


This is a service I am very proud of. A true test of my skills that has been paying off greatly. NetDeploy is a software as a service (SaaS) business I am building in my free time. And this is a breakdown of the business logic for you to read.

Your journey begins on the home page, where you can read about exactly what it is NetDeploy does. It is a web-hosting company where you can design your own website from within the browser.

The way this is accomplished is by using pre-designed templates made with HTML and CSS. Each template has predesigned headers, footers, and a body section that is waiting for your data to be published. I designed an account system using a relational data model to ensure each customer's data is separated per account.

Let's use our pretend friends Sam and Jack to explain how it works. Sam ventures to NetDeploy, and browses the design catalog. He likes the 'SleekSlate' design template and decides to use it for his portfolio. He ventures to his personal dashboard and chooses "Create a Website" sets his domain name as "sam.netdeploy.net" and his header content as 'Sam The Man'.

The SleekSlate design comes with a "Home" "Contact" "Projects and "Resume" page. However, a user does not have to use any pages they do not need. as long as they uncheck the checkmark, the page will not be included in the final design. Knowing this, Sam decides he wants a 'home' page, and a 'contact' page but not a 'project' or 'resume' page. He then gets to work filling out the content on his selected pages.

Every page is able to dynamically render text content in the order you place it. These 'blocks' are stored as JSON, with their order, data and the user they are tied to. If you want to preview the pages you are designing in the form, there is a 'preview' button at the bottom that spawns a limited time test of your website for you to test before publishing.

Back to the example, if Jack also wanted to use 'SleekSlate' for his portfolio, but instead of a 'home' page, and a 'contact' page, he just wanted a 'resume' page, his data would be stored and rendered separately from Sam's despite using the exact same template. This is because the URL 'I.E. jack.netdeploy.net' is tied in a one-to-many relationship with the data on the website.


All in all, this service was a blast to build. It taught me many things about relational data, JSON, dynamically-rendered content, and even network security (prevent XSS, restricting file uploads, etc..) in the future, I plan to add more complex dynamic templates (A blog, Ecommerce site, etc..) and acquire clients who may want a more custom experience.