Born from the mind's eye of a (then) Automotive-Engineer in his spare time. Dreaming of becoming involved in the programming eco-system
A Reactive, Responsive Ruby-on-Rails website Fuelled by Hotwire & Javascript for showcasing the work I am proud to be part of!
Born from the mind's eye of a (then) Automotive-Engineer in his spare time. Dreaming of becoming involved in the programming eco-system
A Reactive, Responsive Ruby-on-Rails website Fuelled by Hotwire & Javascript for showcasing the work I am proud to be part of!
Link to GitHub Reposititory
~
Many people jumped ship to solutions such as Node.js & React causing people to assume rails was dead... I believe the contrary.
The Stackoverflow developer survey 2022
showed a 6-7% uptake of Ruby and RoR usage which indicates a lively technology to me! Couple this with the
huge collection of Gems(libaries), mature codebase and documentation and we have a lively
web development technology!
The use of Turbo and Stimulus, alongside the Sprockets asset-pipeline, provides an experience of similiar speed to a single-page app, without the indoctrination required for said single-page development! With all theese advantages, fast development & scalability is made easy with Rails!
Ontop of the usual Rails setup, I aimed to make development as fast & functional as possible, utlising
other technologies to Supercharge my website in a time-frame that was acceptable!
I used a combination of Bootstrap 5 & ScSS. Having had a background in CSS already, I saw it to be more practical to build upon the knowledge rather than to relearn the art using, persay, TailwindCSS. This made my custom styling faster and Cleaner as I utilised the nesting available in ScSS.
In order to facilitate email forms, and my live-chat, Found Here :), I needed a database. In my experience, SQLite3 works well for light-to-medium applications and even outperforms MySQL & Postgres in read-heavy applications. As such, I chose said SQLite3 database and associated gems in use in my project, which performed perfectly and integrated seemlessly!
Ontop of the usual Rails setup, I aimed to make development as fast & functional as possible, utlising
other technologies to Supercharge my website in a time-frame that was acceptable!
I used a combination of Bootstrap 5 & ScSS. Having had a background in CSS already, I saw it to be more practical to build upon the knowledge rather than to relearn the art using, persay, TailwindCSS. This made my custom styling faster and Cleaner as I utilised the nesting available in ScSS.
In order to facilitate email forms, and my live-chat, Found Here :), I needed a database. In my experience, SQLite3 works well for light-to-medium applications and even outperforms MySQL & Postgres in read-heavy applications. As such, I chose said SQLite3 database and associated gems in use in my project, which performed perfectly and integrated seemlessly!
~
With some tinkering, including Rails/Hotwire mastery and hours of efficiency fixes for instance, eventually my fully-fledged Rails Portfolio was hosted
and delivered via Hatchbox.io to much of my own elation!
Overall, I was very pleased with the Rails development experience and how fast the turn-over was, even for a then-Novice Rails developer.
The Use of Hotwire Frontend also made the application snappy and I couldnt be happier with the website's performance, even
if it is a low-traffic portfolio website.
~
To assume, as likely-fellow engineers, solution and development makers, I will format my learnings and major problems in the form of list with sections: Problem, fix, learnt lesson.
From what I understand, Rails implements new features in updates in a faster-than-usual manor. This leads to old methodologies and codebases being left obsolete, after an update. This essentially removes all documentation and without the hypetrain behind rails to entice junior developers, there is no demand and thus no supply of fully up-to-date documentation which makes the development experience of a junior, challenging at best. Despite this trouble, I intend to utilise Rails for longer as I am over much of the learning curve and now develop better applications, faster as opposed to an alternative such as Django or Svelte. Should this fail, I would considering jumping ship to another popular framework with a mature codebase such as React, Django, Angular or Vue whilst dabbling in modern frameworks such as Svelte.
In a similiar tune to the above problem, the lack of documentation led to a huge ambiguity in the default package of Rails 7 and to what extent it utilises Hotwire, Turbo & Stimulus to manage traditional tasks such as asset pipeline management & loading a webpage. Thanks to stackoverflow, I managed to solve an issue present within the asset pipeline that would have been an easy fix if only the documentation for Turbo included it. In future, I would consider creating said documentation to allow junior developers to better understand and uptake Rails development. This is the best I can do since I now have the knowledge in order to utilise Rails & Hotwire to the fullest!
This one was fairly simple. We all know that naming CSS classes & ID's is borderline impossible without strange and silly personal conventions. We also know that conventional, vanilla CSS includes alot of repetition. My soltuion for this was to use ScSS (as opposed to SaSS). This was such that I kept my syntactically-familiar style of CSS but benefitted from the added features, most notable nesting. This allowed for the removal of the repetition but the paradoxical nature of naming said stylesheet classes & ID's still laid a mystery. In future, I would potentially use TailwindCSS in order to remove this issue as it forgoes the ideal of a dedicated stylesheet and approaches the idea of a more HTML-first approach to styling. This would work well considering Hotwire (the default Rails 7 frontend) works by the same paradigm.