Skip to content

bradvatne/kanban

Repository files navigation

🌐 Kanban - A Task Management Portfolio Project Built with Next.js

Crafted pixel-perfect from the Kanban Figma files provided by frontendmentor.io.

Here are the tech details and my thoughts:

🛠 JS Framework - Next.js

Next.js makes the creation of full-stack applications smooth and enjoyable. I have a particular fondness for the new app router and server components. I'm planning to stick with this framework for the foreseeable future.

🔐 DB/Auth - Supabase

Supabase has been my go-to for several side projects, and I can't get enough of it! It offers a generous free tier and provides out-of-the-box authentication and APIs. Combined with Next.js, it's like doing full-stack development on autopilot. I'm a big fan of the Supabase client too - it's impressively type-safe and features an intuitive API.

🔄 State Management - Zustand

This is my first project using Zustand. My initial thoughts are that it reduces a lot of the boilerplate code associated with state management tools like Redux (especially when combined with immer), and it magically doesn't even require a context provider. My implementation here is extremely basic, but Zustand is a tool that I would certainly like to dive deeper into in the future.

🎨 CSS Framework - TailwindCSS

TailwindCSS is my love. At this point, I know the Tailwind selectors better than the original CSS ones. It just clicks with me, and with the mastery of multi-cursor methods, I can't see a reason to pick a different CSS framework. If I wasn't attempting to implement a Figma file, I would've liked to use a UI library such as ShadCN on top of it.

💡 Concepts Practiced:

🛂 Authentication

🔒 Protected Routes

📑 Row-Level Security

🧮 State Management

👍 Optimistic Update Pattern

🕴️ Singleton Pattern

❗ Form Validation & Error Handling

💾 Persisting Data in a PostgreSQL Database

🖼️ Figma File 1:1 Recreation

🎀 Tailwind CSS

🌓 Dark/Light Theme

📚 General Things I Learned from This Project

📝 Do More Preplanning

When I kicked off, I started coding the UI straight away, and as I continued, I decided to add data persistence through a database. I began creating tables, rows, and columns on-the-fly, with no logical connection to the front end, resulting in quite a mess. Several times, I had to refactor due to these missteps. Moving forward, I plan to have my data all sorted ahead of time before I start working on the front end.

🎯 Just Get it Done

A common roadblock in my development process is the quest for the perfect solution, or doubts about the approach I'm taking. In many projects, I lose sight of the finish line because I get wrapped up in 'optimizing' and starting over, rather than just pushing through. In this project, I maintained a mindset that, so long as what I'm doing works and doesn't seem like it will cause issues further down the line, it's good enough. While I can (and did) refactor later, the first time around, I just need the code to be readable and the project to function.

🛠 It's Not Cheating to Use Tools

The layers of abstraction offered by Next.js and Supabase in building a full-stack application are quite astonishing. Sometimes, I feel like being so distant from what's happening behind the scenes makes me less of a programmer - as if not writing in assembly somehow disqualifies me. However, this project helped me shake off that notion. The goal isn't about being a 'badass programmer', but about building stuff. And these tools make the process enjoyable and (relatively) straightforward.

Thanks for taking the time to check out my project!

Made with ❤️ by Brad in Bali 🌴

About

figma recreation + supabase backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published