├── .gitignore ├── README.md ├── app ├── (auth) │ ├── layout.tsx │ ├── login │ │ ├── LoginForm.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── logout │ │ ├── LogoutForm.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ └── register │ │ ├── RegisterForm.tsx │ │ ├── actions.ts │ │ ├── layout.tsx │ │ └── page.tsx ├── (marketing) │ ├── [account] │ │ ├── @modal │ │ │ ├── (.)photo │ │ │ │ └── [id] │ │ │ │ │ ├── InstagramDialog.tsx │ │ │ │ │ └── page.tsx │ │ │ └── default.tsx │ │ ├── APITabs.tsx │ │ ├── layout.tsx │ │ ├── loading.tsx │ │ ├── page.tsx │ │ └── photo │ │ │ └── [id] │ │ │ └── page.tsx │ ├── account-selector │ │ └── page.tsx │ ├── auth-integration │ │ ├── Redirect.tsx │ │ └── page.tsx │ ├── components │ │ └── CodeExamples.tsx │ ├── faq │ │ └── page.tsx │ ├── install │ │ └── page.tsx │ ├── layout.tsx │ ├── page.tsx │ └── pricing │ │ └── page.tsx ├── Footer.tsx ├── Signin.tsx ├── _actions.ts ├── api-doc │ ├── layout.tsx │ ├── page.tsx │ └── react-swagger.tsx ├── api │ ├── [account] │ │ └── route.ts │ ├── auth │ │ ├── [...nextauth] │ │ │ └── route.ts │ │ └── create │ │ │ └── route.ts │ └── v2 │ │ └── [account] │ │ └── route.ts ├── cors.ts ├── dashboard │ ├── FacebookLogin.tsx │ ├── [account] │ │ ├── @feedModal │ │ │ ├── (.)photo │ │ │ │ └── [id] │ │ │ │ │ ├── MetricsSlider.tsx │ │ │ │ │ ├── loading.tsx │ │ │ │ │ └── page.tsx │ │ │ └── default.tsx │ │ ├── APITabs.tsx │ │ ├── layout.tsx │ │ ├── loading.tsx │ │ ├── metrics │ │ │ ├── DatePicker.tsx │ │ │ ├── actions.ts │ │ │ └── page.tsx │ │ ├── page.tsx │ │ └── photo │ │ │ └── [id] │ │ │ ├── MediaMetrics.tsx │ │ │ ├── actions.ts │ │ │ ├── loading.tsx │ │ │ └── page.tsx │ ├── account-selector │ │ ├── ConnectButton.tsx │ │ └── page.tsx │ ├── auth-integration │ │ ├── Redirect.tsx │ │ └── page.tsx │ ├── components │ │ ├── AddAccountButton.tsx │ │ ├── DisconnectButton.tsx │ │ ├── main-nav.tsx │ │ └── user-nav.tsx │ ├── layout.tsx │ └── page.tsx ├── favicon.ico ├── globals.css └── robots.ts ├── components.json ├── components ├── loading-modal.tsx └── ui │ ├── Dialog.tsx │ ├── alert-dialog.tsx │ ├── alert.tsx │ ├── avatar.tsx │ ├── badge.tsx │ ├── button.tsx │ ├── card.tsx │ ├── dropdown-menu.tsx │ ├── input.tsx │ ├── label.tsx │ ├── sheet.tsx │ ├── table.tsx │ └── tabs.tsx ├── lib ├── auth-options.ts ├── cache.ts ├── db.ts ├── fb-types.ts ├── password.ts ├── scrape.ts ├── swagger.ts ├── temporal.ts └── utils.ts ├── next.config.js ├── package.json ├── postcss.config.js ├── prisma └── schema.prisma ├── public ├── next.svg └── vercel.svg ├── tailwind.config.js ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | .env 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | ``` 14 | 15 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 16 | 17 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 18 | 19 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 20 | 21 | ## Learn More 22 | 23 | To learn more about Next.js, take a look at the following resources: 24 | 25 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 26 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 27 | 28 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 29 | 30 | ## Deploy on Vercel 31 | 32 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 33 | 34 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 35 | -------------------------------------------------------------------------------- /app/(auth)/layout.tsx: -------------------------------------------------------------------------------- 1 | import "../globals.css"; 2 | import { Inter } from "next/font/google"; 3 | import { Analytics } from "@vercel/analytics/react"; 4 | import Footer from "../Footer"; 5 | 6 | const inter = Inter({ subsets: ["latin"] }); 7 | 8 | export default function RootLayout({ 9 | children, 10 | }: { 11 | children: React.ReactNode; 12 | }) { 13 | return ( 14 | 15 | 16 | {children} 17 |