├── .env.example ├── .eslintrc.json ├── .gitignore ├── README.md ├── makefile ├── next.config.js ├── package.json ├── postcss.config.js ├── public └── banner.png ├── src ├── app │ ├── api │ │ ├── campaigns │ │ │ └── send │ │ │ │ └── route.ts │ │ └── unsubscribe │ │ │ └── route.ts │ ├── campaigns │ │ └── page.tsx │ ├── favicon.ico │ ├── globals.scss │ ├── layout.tsx │ ├── login │ │ └── page.tsx │ ├── page.tsx │ ├── subscribe │ │ └── page.tsx │ ├── subscribers │ │ └── page.tsx │ └── unsubscribe │ │ └── page.tsx ├── components │ ├── Avatar.tsx │ ├── Button.tsx │ ├── Campaigns │ │ ├── Item.tsx │ │ └── New.tsx │ ├── Card.tsx │ ├── Emails │ │ ├── Template.tsx │ │ └── Unsubscribe.tsx │ ├── Icons │ │ ├── Close.tsx │ │ ├── Email.tsx │ │ ├── Home.tsx │ │ ├── Lists.tsx │ │ └── Subscribers.tsx │ ├── Loading.tsx │ ├── Sidebar │ │ ├── Menu.tsx │ │ ├── UserItem.tsx │ │ └── index.tsx │ ├── Slidebar.tsx │ ├── Spinner.tsx │ ├── Subscribers │ │ ├── Item.tsx │ │ └── List.tsx │ ├── Template │ │ └── Main.tsx │ └── UserItem.tsx ├── context │ └── index.tsx ├── hooks │ ├── useCampaigns.ts │ ├── useEmails.ts │ ├── useNavigation.ts │ └── useSubscribers.ts ├── lib │ ├── resend.ts │ ├── supabase.ts │ └── utils.ts ├── middleware.ts └── types │ └── index.ts ├── tailwind.config.ts ├── tsconfig.json └── yarn.lock /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/README.md -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/makefile -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/next.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/public/banner.png -------------------------------------------------------------------------------- /src/app/api/campaigns/send/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/api/campaigns/send/route.ts -------------------------------------------------------------------------------- /src/app/api/unsubscribe/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/api/unsubscribe/route.ts -------------------------------------------------------------------------------- /src/app/campaigns/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/campaigns/page.tsx -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/globals.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/globals.scss -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/login/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/login/page.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/app/subscribe/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/subscribe/page.tsx -------------------------------------------------------------------------------- /src/app/subscribers/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/subscribers/page.tsx -------------------------------------------------------------------------------- /src/app/unsubscribe/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/app/unsubscribe/page.tsx -------------------------------------------------------------------------------- /src/components/Avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Avatar.tsx -------------------------------------------------------------------------------- /src/components/Button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Button.tsx -------------------------------------------------------------------------------- /src/components/Campaigns/Item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Campaigns/Item.tsx -------------------------------------------------------------------------------- /src/components/Campaigns/New.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Campaigns/New.tsx -------------------------------------------------------------------------------- /src/components/Card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Card.tsx -------------------------------------------------------------------------------- /src/components/Emails/Template.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Emails/Template.tsx -------------------------------------------------------------------------------- /src/components/Emails/Unsubscribe.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Emails/Unsubscribe.tsx -------------------------------------------------------------------------------- /src/components/Icons/Close.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Icons/Close.tsx -------------------------------------------------------------------------------- /src/components/Icons/Email.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Icons/Email.tsx -------------------------------------------------------------------------------- /src/components/Icons/Home.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Icons/Home.tsx -------------------------------------------------------------------------------- /src/components/Icons/Lists.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Icons/Lists.tsx -------------------------------------------------------------------------------- /src/components/Icons/Subscribers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Icons/Subscribers.tsx -------------------------------------------------------------------------------- /src/components/Loading.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Loading.tsx -------------------------------------------------------------------------------- /src/components/Sidebar/Menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Sidebar/Menu.tsx -------------------------------------------------------------------------------- /src/components/Sidebar/UserItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Sidebar/UserItem.tsx -------------------------------------------------------------------------------- /src/components/Sidebar/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Sidebar/index.tsx -------------------------------------------------------------------------------- /src/components/Slidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Slidebar.tsx -------------------------------------------------------------------------------- /src/components/Spinner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Spinner.tsx -------------------------------------------------------------------------------- /src/components/Subscribers/Item.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Subscribers/Item.tsx -------------------------------------------------------------------------------- /src/components/Subscribers/List.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Subscribers/List.tsx -------------------------------------------------------------------------------- /src/components/Template/Main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/Template/Main.tsx -------------------------------------------------------------------------------- /src/components/UserItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/components/UserItem.tsx -------------------------------------------------------------------------------- /src/context/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/context/index.tsx -------------------------------------------------------------------------------- /src/hooks/useCampaigns.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/hooks/useCampaigns.ts -------------------------------------------------------------------------------- /src/hooks/useEmails.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/hooks/useEmails.ts -------------------------------------------------------------------------------- /src/hooks/useNavigation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/hooks/useNavigation.ts -------------------------------------------------------------------------------- /src/hooks/useSubscribers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/hooks/useSubscribers.ts -------------------------------------------------------------------------------- /src/lib/resend.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/lib/resend.ts -------------------------------------------------------------------------------- /src/lib/supabase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/lib/supabase.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/src/types/index.ts -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guillaumeduhan/newsletter-app/HEAD/yarn.lock --------------------------------------------------------------------------------