Skip to content

Repository files navigation

GoNet

GoNet is a niche-based social discovery MVP built with Next.js 15, Auth.js, Prisma, Supabase Postgres, Tailwind CSS, and reusable shadcn-style UI primitives.

Users can:

  • sign in with their X account
  • build a niche-driven profile
  • browse other users who share similar interests
  • jump directly to a matched user on X

Stack

  • Next.js 15 App Router
  • TypeScript
  • Tailwind CSS
  • Auth.js v5
  • Prisma
  • Supabase Postgres

Project structure

GoNet/
|-- app/
|   |-- (app)/
|   |   |-- discover/
|   |   |   `-- page.tsx
|   |   `-- profile/
|   |       `-- page.tsx
|   |-- (marketing)/
|   |   `-- page.tsx
|   |-- api/
|   |   `-- auth/
|   |       `-- [...nextauth]/
|   |           `-- route.ts
|   |-- globals.css
|   `-- layout.tsx
|-- components/
|   |-- profile/
|   |   `-- profile-form.tsx
|   |-- ui/
|   |   |-- avatar.tsx
|   |   |-- badge.tsx
|   |   |-- button.tsx
|   |   |-- card.tsx
|   |   |-- input.tsx
|   |   |-- label.tsx
|   |   |-- separator.tsx
|   |   `-- textarea.tsx
|   |-- navbar.tsx
|   |-- niche-selector.tsx
|   `-- user-card.tsx
|-- lib/
|   |-- actions/
|   |   |-- discover.ts
|   |   `-- profile.ts
|   |-- auth.ts
|   |-- db.ts
|   `-- utils.ts
|-- prisma/
|   `-- schema.prisma
|-- types/
|   `-- next-auth.d.ts
|-- .env.example
|-- .eslintrc.json
|-- next.config.js
|-- package-lock.json
|-- package.json
|-- postcss.config.js
|-- tailwind.config.ts
`-- tsconfig.json

Environment variables

Copy .env.example to .env.local and fill in:

  • AUTH_SECRET
  • AUTH_TWITTER_ID
  • AUTH_TWITTER_SECRET
  • DATABASE_URL
  • DIRECT_URL

Local setup

  1. Create a Supabase project and copy the Postgres connection strings.
  2. Create an X developer app.
  3. Set the callback URL to: http://localhost:3000/api/auth/callback/twitter
  4. Copy .env.example to .env.local.
  5. Install dependencies: npm install
  6. Push the Prisma schema: npx prisma db push
  7. Start the app: npm run dev

Useful commands

  • npm run dev
  • npm run build
  • npm run lint
  • npm run db:generate
  • npm run db:push
  • npm run db:studio

Notes

  • Auth.js is configured to store the X profile once at sign-in, then read user data from Postgres.
  • The app uses JWT sessions instead of the Prisma adapter, which keeps auth aligned with the custom User schema in this repo.
  • The current production build passes locally after a fresh dependency install.

About

GoNet helps you find and connect with people who share your unique interests. From AI Engineering to Urban Gardening — find your community.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages