This website is a project

2023-05-01
This website is a project - Teaser

And AI was helping


When building my website, for i believe the third time now. i went for simplicity and ease in maintenance.
So i chose the frameworks i am most familiar with from work, and just created the barebone database and html structures with it.
After most of it was created i asked chatGPT 3.5 to add some styling that would match a programming blog with a dark theme.
The main goal of this website is to present small projects (mostyl games) that i build with typescript and have them easily shared with others to test them out.

Now let's talk about the details and features of the page.

Framework


The Framework


As stated before i have opted into some frameworks i am used to from work.
It is "Laravel" for the server-side and "Laravel Nova" for the backend interface.
While i do have my fair share of problems with both (i generally have an aversion against frameworks and packages), i must admit, that it would have taken me probably months to get the same results without them.
And since i was not actually planning on making the creation of the website my main focus,
i went for the faster an easier approach.

As for the frontend i mostly use the "blade"-engine that is shipped together with Laravel.
For interactive components on the website, which it has currently none of, i want to check out "Livewire".

The different Page-Types


Though the primary goal for the website was to present my projects to others, i also wanted to write about the projects and learnings.
Therefor i have two types of pages.
Projects, which provide direct description of some code i wrote and if possible link to a url, where the code can run in the browser.
Pages, where i freely talk about learnings and ideas i have, related to programming.
Projects and Pages are actually quite similar code-wise, only different by the fact, that the Projects are related to "CodeReleases".

For both of those page-type there is also an archive, which simply lists and links all project or pages i have published so far.

Code Release


Code Release


This is for me the most important part.
A "CodeRelease" is actually a zip that has been uploaded in the backend for a certain Project.
This zip should contain an "index.html" and the related resources to run the code for the project.

Usually i have used "Parcel" to compile my typescript projects for the browser.
For that to work i had to run parcel with the "--public-url" flag. 
npx parcel build ./src/index.html --out-dir ./dist --public-url .
Otherwise the resources were always assumed to be on root, instead of relative to my projects url.
But i am thinking on switching to "Vite" as it seemed a bit faster and more reliable at times.
I have not yet tested though if i can achieve the same with it.

The Future


Future Ideas


Regarding the website-code itself, i don't have too many near-future plans.
I do think though that i need to write a dynamic/paginated archive, that can search through pages and projects by name.

For now i will focus on creating content and uploading projects to the page.

Comments

captcha