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.
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.
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.
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.
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