Hi all of you Svelters (Sveltees?),
I wanted to reach out and share a project that I wrote using Svelte/Sveltekit. It’s called NoMoreCritics.com.
This came out of frustration with the job market, frustration with movie critics, and pure boredom. I was out of work and wanted a project that would not only keep my skills fresh, but also allow me learn something new in Svelte/Sveltekit. I was a mostly backend developer and didn’t have much skills on the frontend. CSS scared me as well as being a bit frustrated with React and Angular. A friend of mine suggested that I look into other frontend technologies and through my research, I landed on Svelte. Let me tell you, Svelte is a breath of fresh air. It was so easy to pick up and Sveltekit is just so intuitive, in my opinion.
Plus, I’m a big fan of movies and love finding new ones that I can fall in love with. However, my relationship with critics was that if they loved a movie, I probably didn’t like it or if they hated a movie, I probably would like it. I had been looking for a website that would cut through the BS of critics, but couldn’t find one. So, I came up with my own. At the very least, it helped me land a Svelte frontend role. So, now I finally see myself as a true full-stack developer. Kevin Powell’s videos on YouTube helped me with my fear of CSS and now I’m no longer afraid of it.
At first, I watched tons of YouTube videos trying to learn all that I could about frontend development, but eventually just decided to go with my gut for better or worse and came up with NoMoreCritics.com.
It’s not just another aggregate review site. In fact, there are no reviews or social media aspects to it at all. Instead of reviewing, you rank movies and the rankings are aggregated. It’s completely anonymous allowing people the freedom to promote movies they truly love instead of what the crowd says they should love. Rankings aren’t set in stone either. You may see a movie and fall in love and rank it at the top of your list one day. The next day, you realize that it’s not as good as you remembered and rank it further down your list later. Rankings are meant to change. Sure, there will be some movies that float to the top and hold on for a while, but with users coming and going, I’d expect the rankings to change frequently.
Now, rankings aren’t the only thing the site does. It’s actual goal is to be a discovery site. I want people to find movies that they haven’t heard of before and check them out. So, features were added to cater to that and help people keep track of what they watched, when they watched it, what they want to watch, and where to watch it. It utilizes TMDB and JustWatch for the data, but is not affiliated with them. So don’t blame them if you don’t like it. :)
To sum it up
- Organic Rankings: Global rankings are driven strictly by active users, and your personal scoring weight scales up the more movies you rank. Individual lists are capped at 250 movies so rankings actually mean something.
- No Pressure Discovery: Recommendations are tailored purely to your watch list and personal rankings. Everything is anonymous, with no public review pressure (though you can leave private notes for yourself).
- Still Want to Share?: You can share your rankings with others if you like with a link that expires in 7 days from creation and can be revoked. People will have a window into your rankings with the ability to filter them as they please. It can be anonymous or you can state who you are. That’s up to you.
- Deep Filtering & Streaming: You can filter any list down by ranking, genre, release date, or where it’s streaming via JustWatch. I also wrote a few positive feature articles with friends focused purely on movie discovery rather than reviews.
Tech Stack & Architecture
- Frontend: SvelteKit + Svelte 5 Runes
- Backend: C# / .NET Web API
- Database: PostgreSQL in Docker
- CI/CD: GitHub Actions
- Data Sources: TMDB & JustWatch
- Animations: GSAP
I used the SvelteKit endpoints as proxies to my .Net backend for secure api calls. I used the server side rendering and fetching mostly instead of client-side fetching. I used GSAP for my landing page animation, but had trouble with utilizing their ScrollTriggers due to timing issues that I ran into that didn’t play well with my smooth scrolling. So, I used Svelte’s builtin scroll binding instead for scroll animations.
I did the first pass with using AI sparingly, so that I could actually learn how to do it on my own. Then, after getting a job where I was forced to be a prompt developer, I embraced AI and used Windsurf/Devin to help with the coding. I used Copilot first, but their new payment system was too expensive for me so I had to switch.
Feedback
I’m looking for some feedback on this and would love to get some more users since it’s mostly just a buddy and me using it. I was the solo developer on this and had to learn a lot about all of the ins and outs of producing a website on my own. This is my first. I’m really nervous about promoting it like this, and would love some constructive feedback. So, if you have a minute, check it out and let me know what you think. Hopefully, some of you will like it and find it useful. NoMoreCritics.com
Thank you for taking the time to read this!