-- OR --
All versions adhere to the same design and functionality as specified in this video from my lecturer:
https://www.youtube.com/watch?v=gmr-qoq4eBU.
The given specs and the video are available in this repository as well.
Each branch of this repository contains a different version of the website.
Hosted on Cloudflare with automatic build per branch on push or merge.
This branch (supit.k1k1.dev) is built with vanilla JS & custom CSS.
It's using PageSpeed Insights API to provide the most consistent scores from Lighthouse audits.
npm i before npm run dev after switching to a branch with package.json.
All versions are configured to npm run build in /dist folder.
Has more functionality at /o-nama and /novost/1
bootstrap.ScrollSpy, which highlights navbar links based on the most visible section.bootstrap.Carousel, which supports swiping on touch devices.Unlike other versions, this one does not use a Bundler, TypeScript, PostCSS, Tailwind, or Google Material Icons.
Instead, it uses jQuery and jQueryUI, along with Bootstrap and Bootstrap Icons.
Hopefully, I won't have to use those ever again.
Simply the best, 10/10. The only difference between branches vue and vue-full is that the former uses lazy routing and async components (Contact.vue).
Click to compare.
Overcomplicated with too much boilerplate. As with Vue, the only difference between branches react and react-full is that the former uses lazy routing and async components (Contact.tsx). Click to compare.
Unlike Vue and React, there's no support for HeadlessUI
so I had to bring functionality to modal and autocomplete components myself.
Apart from that, all Vue, React & Svelte functionality and design should look 100% identical from a user's perspective.
Overall, it's almost as good as Vue in terms of developer experience.
Visit supit.k1k1.dev to run mobile & desktop Lighthouse tests for all projects and URLs.
These scores turn out to be the most common for landing pages:
| Version | Mobile | Desktop | ||||
|---|---|---|---|---|---|---|
| Performance | Accessibility | Best Practices | Performance | Accessibility | Best Practices | |
| jQuery | 95 | 100 | 100 | 99 | 100 | 100 |
| Vue, Vue Full | 87 | 100 | 100 | 99 | 100 | 100 |
| React, React Full | 87 | 100 | 100 | 99 | 100 | 100 |
| Svelte | 89 | 100 | 100 | 99 | 100 | 100 |
For the landing page, lazy loaded versions of Vue and React score the same as their fully loaded counterparts. However, they save a significant amount of bytes (~30%).
Because the website isn't large, user experience is in all likelihood better with fully loaded versions. To find Bytes Usage from served files, open a report and press the View Treemap button below the metrics.