## A New Beginning To start off, I am very excited about this website! It has been months in the making and countless hours to develop it. This post just aims to highlight some of the basic design structure, and what to expect on the site in the near future. ### The Basics The site in terms of viewer content is very simple. There are really only two dynamic sections that have evolving content: the posts area and the tutorials area. The posts area will contain content pertaining to how the site was developed along with other software development topics as well. The tutorials area will contain tutorials into several different programming languages including a full Java tutorial that will teach you the very basics of programming to the very deep dark depths of Java and the power it has. ### It is Finally Dynamic The last iteration of my website was a static site that contained the same tutorial area and post area. For those that do not know what a static site is; a static site is a website that does not have direct access to a backend. A backend, in web development, manages data server-side (on the computer that hosts the website and sends the webpages to the user) and handles communication between the database and the front end (the content the user actually sees). A backend is used a lot of times for permission validation, making sure that the right people are accessing the right pages, seeing the correct information, and that no one is venturing into private areas. So what benefits does having a backend and being a dynamic site bring to this website in particular? Well, this website now has the ability to have users which means people can create and use accounts. Furthermore, all the posts and tutorials are now stored on a database and users with the correct permissions can create posts and tutorials directly from the website itself. On my previously static site, all the content was directly programmed into the site, so in order to create a new post or a new tutorial, one would have to directly access the source code of the site and create it there. One of the major benefits is that it is much easier to develop content now. I can now create a post, or a tutorial straight off my phone without touching any of the source code of the website at all. Furthermore, with the account system, I can now give users that I trust permission to create their own posts and to create tutorial sections. So that way there can be more content by more people, faster. ## How is it made? That's a pretty long explanation, but for now I will just mention the resources involved in the creation of the website. The backend of the site is developed in PHP by a web-framework known as [**Laravel**](https://laravel.com/). The frontend of the website (what the user actually sees) is not any particular framework, it's raw HTML, CSS, and javascript. However, Laravel directly interfaces with a page and before being displayed to the user, it will attach any backend data that the page needs. This is done by their templating engine known as **Blade**. All posts and tutorials are rendered in markdown format. The markdown is rendered by the user's own browser by the way of a javascript library known as [*Showdown JS*](https://github.com/showdownjs/showdown). That's why if you have slow browser, you may see the loading symbol (a little continuous outline of a circle) before you see any content. That just means your browser is converting the raw text into markdown content. For creating posts and tutorials, I use a javascript library known as [*SimpleMDE*](https://simplemde.com/) that beautifully integrates with a page and displays a nice text editor that previews markdown content. What is actually stored in the database is just raw text with no formatting. In terms of site design and assets used, you can probably already guess, but the site theme is designed around a free Bootstrap theme known as [*SB-Cleanblog*](https://startbootstrap.com/themes/clean-blog-angular/). There are also some icons from [FontAwesome](https://fontawesome.com/). Finally this website is hosted on [*Heroku*](www.heroku.com) free-tier. This plays an important role as my website will shutdown if it is not in use for more than 30 minutes. This is a sort-of a good thing since I have a certain number of hours per month that the site can be up for. The only detrimental consequence of this feature is that it may take a while for the site to load in some cases. Or in my case and other future content developers, if it takes longer than 30 minutes to create a post or tutorial, then the site will shutdown and log us out. ### Should I make an account? Well, currently accounts do nothing except for content developers that I trust to create posts and tutorial sections. If you just plan to read the website, then there is no need to create an account. I think that's long enough for the first post, but continue to expect more posts and more tutorials!