DogeFlix is a place where you can watch latest movie trailers. Create playlists, share playlists and browse through 100s of movie trailers.
Omkar Kulkarni / Jan-2022
4 min read • 689 characters
There are many sites to watch movies. But when it comes to movie trailers, there are handful of sites that cover them. Morever, most of the trailers are uploaded on sites like YouTube. DogeFlix is a platform that contains handpicked movie trailers, with a lot of information around the movie itself. It is backed by IMDB for real data. You can say it is a YouTube clone but specifically for movie trailers.
This project aims to create a platform to watch movie trailers all around the world. This website has several functionalties such as:
DogeFlix is written in TypeScript language from backend to frontend. TypeScript is a superset of JavaScript which compiles down to plain JavaScript. It provides type-safety to ensure high quality code delivery. DogeFlix embraces TypeScript by making use of generics, interfaces and combined with NextJS, it is super awesome! I absolutely love and recommend learning TypeScript.
The backend uses Express.JS framework for Node.JS. I feel Express.JS is much stable, reliable and still trusted by lot of enterprise companies. While Koa, Fastify and Hapi exists, Express is something that gets the job done. I'm open to learning more backend frameworks. All the data is stored on PostgreSQL instance spinned upon Railway Railway is generous enough to provide upto 500Mb PostgreSQL Storage.
To work with relational DBs, we often need ORM (Object Relational Mapping) Framework. Prisma is an amazing ORM to work with relational databases. It provides a type-safe way to work on database. The DX is so good. Highly recommend using prisma. They recently added support for MongoDB as well.
Frontend is a Next.JS application styled by TailwindCSS. I opted to use SWR for data fetching. SWR means Stale While Revalidate and it provides hooks that provide de-duplication of queries. SWR supports React Suspense API out of the box, supports all sorts of pagination, and it is SSG/SSR ready.
To style DogeFlix, I chose tailwindCSS. It makes styling a breeze. Contarary to a popular belief, I learnt CSS more from tailwindCSS usage than anything else. While the industry is split between CSS-in-JS and Utility based CSS frameworks, I personally think you should use whatever makes you productive. Tailwind provides amazing DX through JIT mode, IDE autocompletion.
Tech Stack Summarised:
It took me around ~20 days to build dogeflix from scratch. I have a great full stack starter template thats battery packed with EsLint, Prettier and other goodies. Something I will open source very soon!