DEV Community

Mateus Abelli
Mateus Abelli

Posted on • Edited on

Development Updates #RefineHackathon

πŸ‘‹ Hello there

I'm Mateus and this is my development progress during the Refine + DEV Hackathon.

This post is going to be huge due the reference links and images. For the first time I'm going to try to give you (the reader) a close feeling to my progress and research. Hope you enjoy.

I'm going to try to keep these updated day by day but during busy weeks it won't be possible, if that happens I'll provide a summary with a date range during the events.

✨ The project

Here is an overview of what I'm building and know so far.

  • The app will be called Prompteer
  • It will be a platform where you can share you creative AI prompts
  • The app will be a fully fledged SaaS, with free and paid subscriptions
  • The UI/UX will be the best among other prompt platforms

πŸ₯— My recipe

  • nextjs, because a great SaaS needs server side rendering
  • typescript, to say safe from the javascript horrors
  • next-auth, to make authentication with nextjs nice and easy
  • prisma, to make databases best friends with frontend devs
  • supabase, to store all the data consumed by the app
  • refine, to easily handle and manage the app's CRUD operations
  • material-ui, for a streamlined look and feel

πŸ“… June 23rd to 25th

Initial design and general app ideas, brainstorming and design study phase. Using multiple references, I came up with a basic black and white and full of Lorem Ipsums figma file.

Image description

πŸ”— References:


πŸ“… June 26th to 30th

Studying the refine framework and how to work with it, had a rollercoaster of emotions in this phase, frustration and excitement went side by side.

Image description

πŸ”— References:


πŸ“… July 1st

I managed to do a proper auth setup using next-auth and Supabase. People can now sign in using GitHub or Discord and their data will be stored on the database. I chose OAuth because by default I’m going to get a name and profile picture in most cases, this is good to populate my UI.

Image description

πŸ”— References:


πŸ“… July 2nd

I integrated Stripe with my previous auth setup and database. People can now sign in to their accounts and go to the pricing page, pick a plan and go to the checkout page, pay and be redirected back to the app. Everything is in sync! I would not be able to do this whole process if it wasn’t for a wonderful DEV post linked down below.

Image description

πŸ”— References:


πŸ“… July 3rd to 10th

I created the prompts table on the database and other supporting tables such as languages, because you will be able to write cool prompts in different languages, along side the languages table, a comments table and an ai models table were also created. A lot of relationships were built. Some redesign were made to the UI, now it looks cleaner and more intuitive. I also accepted that I won't be able to finish this project to its fully desired result and that's okay.

Image description

πŸ”— References:


πŸ“… July 11th to 15th

In this phase I’m focusing on the major features such as creation and deletion of prompts, comments, the subscription of paid plans and the overall UX. At this point I’m not worried about optimizing my code, it’s a mess but a functional mess, and hopefully my spaghetti code provides a good experience for anyone who tries to use the app. I’m still fighting with the entire stack but I do have some fun at random moments. I thought it would never happen to me but I suffered with the horrors of dates in javascript.

Here is a summary of what is possible to do in the app at this point:

  • View a nice home, pricing and about page
  • Sign in with OAuth
  • Purchase a paid subscription
  • Publish and delete prompts
  • Write and delete comments on prompts

Image description

πŸ”— References:


πŸ“… July 16th

I’m wrapping up the development for the final release, I had to eliminate a few features due to the time constraint but the whole app is working as expected, except for the search bar and some filters.

Today I pushed through some final touches on the front pages, stripped a few visual features away from the dashboard and polished some interactions, such as the paid subscription. I also created a seed script for the DB, now it’s easier to populate the app with some data.

Image description

πŸ”— References:


πŸ“… July 17th to 18th

This is my last update, I've frozen the code updates and limited the changes only for small refactoring and some cleanup.

Top comments (5)

Collapse
 
nityam01 profile image
Nityam

The project idea is excellent, and I also love your presentation style... you can surely win.

Collapse
 
mateusabelli profile image
Mateus Abelli

Thank you!

Collapse
 
nityam01 profile image
Nityam

Hey @mateusabelli I have a quick question: Can we utilize API routes in Refine, similar to how we create APIs and directly access them in Next.js?
If possible can you link the doc

Thread Thread
 
mateusabelli profile image
Mateus Abelli

Hello @nityam0213 Yea, we use API routes without problems while using refine with NextJS. I've built some API routes for Next Auth and Stripe using this tutorial dev.to/ajones_codes/how-to-add-use... I also recommend taking a look at this doc showing how to work with refine using NextJS with pages or app directory refine.dev/docs/packages/documenta... I hope that helps!

Thread Thread
 
nityam01 profile image
Nityam

That's super helpful.. Thanks man