├── .env.example ├── .eslintignore ├── .eslintrc ├── .gitattributes ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .nvmrc ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── app ├── api │ └── auth │ │ └── [...nextauth] │ │ └── route.ts ├── auth │ └── signin │ │ └── page.tsx ├── endorsements │ └── page.tsx ├── favicon.ico └── layout.tsx ├── auth.ts ├── components ├── AppProviders.tsx ├── CustomLink.tsx ├── ErrorMessage.tsx ├── ExternalCard.tsx ├── Footer.tsx ├── Guestbook │ ├── AddEntryForm.tsx │ ├── GuestbookEntry.tsx │ ├── actions.ts │ ├── index.tsx │ └── person-outline.svg ├── Header.tsx ├── Hero.tsx ├── InternalCard.tsx ├── LayoutWrapper.tsx ├── LoadingSpinner.tsx ├── LoginButton │ ├── github-dark.svg │ ├── github.svg │ ├── google-dark.svg │ ├── google.svg │ ├── index.tsx │ └── line.svg ├── LoginView.tsx ├── MDXComponents.tsx ├── MenuButton.tsx ├── MusicEqualizer.tsx ├── NowPlaying.tsx ├── PageTitle.tsx ├── Pre.tsx ├── SEO.tsx ├── SectionContainer.tsx ├── SignInError.tsx ├── Skills │ ├── Badge.tsx │ ├── actions.ts │ ├── checkmark-circle-outline.svg │ ├── index.tsx │ └── plus-square-outline.svg ├── SocialIcon │ ├── codepen.svg │ ├── github.svg │ ├── index.tsx │ ├── linkedin.svg │ ├── mail.svg │ └── twitter.svg ├── SuccessMessage.tsx ├── TOCInline.tsx ├── Tag.tsx └── ThemeSwitch.tsx ├── css ├── font.css ├── prism.css └── tailwind.css ├── data ├── blog │ ├── css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css.mdx │ ├── develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.mdx │ ├── how-nextauthjs-works.mdx │ ├── nextauthjs-behinds-a-proxy.mdx │ ├── over-engineering-thvu-dev.mdx │ └── rebuild-bakia-prisma.mdx ├── headerNavLinks.js ├── logo.svg └── siteMetadata.js ├── layouts ├── ListLayout.tsx └── PostLayout.tsx ├── lib ├── cms │ ├── common.ts │ └── datocms.ts ├── db.ts ├── fetcher.ts ├── generate-rss.ts ├── hooks │ ├── useDarkTheme.ts │ └── useViewCounter.tsx ├── mdx.ts ├── notion.ts ├── prisma.ts ├── remark │ ├── code-title.ts │ ├── img-to-jsx.ts │ └── toc-headings.ts ├── spotify.ts ├── tags.ts ├── types │ ├── common.ts │ ├── form.ts │ ├── guestbook.ts │ ├── skill.ts │ └── user.ts └── utils │ ├── confetti.ts │ ├── files.ts │ └── kebabCase.ts ├── middleware.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── 404.tsx ├── _app.tsx ├── _document.tsx ├── about.tsx ├── api │ ├── now-playing.ts │ └── view-count │ │ └── [slug].ts ├── blog.tsx ├── blog │ └── [...slug].tsx ├── index.tsx ├── notes.tsx ├── projects.tsx ├── tags.tsx └── tags │ └── [tag].tsx ├── pnpm-lock.yaml ├── postcss.config.js ├── prettier.config.js ├── prisma ├── migrations │ ├── 20210923030842_init │ │ └── migration.sql │ ├── 20210923035359_endorsements │ │ └── migration.sql │ ├── 20210923101509_update_endorsements │ │ └── migration.sql │ ├── 20210927035151_add_skill_category │ │ └── migration.sql │ ├── 20211004103916_nextauth_adapter │ │ └── migration.sql │ ├── 20211004133022_fix_github_oauth │ │ └── migration.sql │ ├── 20211004142707_fix_google_oauth │ │ └── migration.sql │ ├── 20211005042833_fix_google_oauth_2 │ │ └── migration.sql │ ├── 20211005095803_migrate_users │ │ └── migration.sql │ ├── 20211006043833_delete_email │ │ └── migration.sql │ ├── 20211012103903_add_endorse_date │ │ └── migration.sql │ ├── 20211028045300_fix_line_oauth │ │ └── migration.sql │ └── migration_lock.toml └── schema.prisma ├── public ├── fonts │ ├── be-vietnam-pro-v2-vietnamese_latin-100.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-200.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-300.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-500.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-600.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-700.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-700italic.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-800.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-800italic.woff2 │ ├── be-vietnam-pro-v2-vietnamese_latin-900.woff2 │ └── be-vietnam-pro-v2-vietnamese_latin-regular.woff2 ├── manifest.json ├── robots.txt └── static │ ├── blog │ ├── css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css │ │ ├── background.png │ │ ├── css-in-real-world-verccel-hero-tailwind-css.png │ │ ├── daniel-ging-28q5mxg4G7E-unsplash.jpg │ │ ├── foreground.png │ │ └── vercel_hero.mov │ ├── develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs │ │ ├── develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.png │ │ └── hugo-sousa-m7_lccaGaYA-unsplash.jpg │ ├── over-engineering-thvu-dev │ │ ├── over-engineering-thvu-dev.png │ │ └── spotify-playing.mov │ └── rebuild-bakia-prisma │ │ ├── linda-christiansen-ZJ53yRQZsA0-unsplash.jpg │ │ └── rebuild-bakia-prisma.png │ ├── favicons │ ├── android-chrome-192x192.png │ ├── android-chrome-384x384.png │ ├── android-chrome-512x512.png │ ├── apple-touch-icon.png │ ├── browserconfig.xml │ ├── favicon.ico │ ├── favicon.png │ ├── favicon.svg │ ├── mstile-150x150.png │ └── safari-pinned-tab.svg │ └── images │ ├── logo.png │ └── social-banner.png ├── scripts ├── compose.js └── generate-sitemap.js ├── sentry.client.config.js ├── sentry.properties ├── sentry.server.config.js ├── tailwind.config.js ├── tsconfig.json └── types └── nextauth.d.ts /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.eslintrc -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.husky/pre-commit -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 18 -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/README.md -------------------------------------------------------------------------------- /app/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/app/api/auth/[...nextauth]/route.ts -------------------------------------------------------------------------------- /app/auth/signin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/app/auth/signin/page.tsx -------------------------------------------------------------------------------- /app/endorsements/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/app/endorsements/page.tsx -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/app/layout.tsx -------------------------------------------------------------------------------- /auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/auth.ts -------------------------------------------------------------------------------- /components/AppProviders.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/AppProviders.tsx -------------------------------------------------------------------------------- /components/CustomLink.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/CustomLink.tsx -------------------------------------------------------------------------------- /components/ErrorMessage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/ErrorMessage.tsx -------------------------------------------------------------------------------- /components/ExternalCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/ExternalCard.tsx -------------------------------------------------------------------------------- /components/Footer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Footer.tsx -------------------------------------------------------------------------------- /components/Guestbook/AddEntryForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Guestbook/AddEntryForm.tsx -------------------------------------------------------------------------------- /components/Guestbook/GuestbookEntry.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Guestbook/GuestbookEntry.tsx -------------------------------------------------------------------------------- /components/Guestbook/actions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Guestbook/actions.ts -------------------------------------------------------------------------------- /components/Guestbook/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Guestbook/index.tsx -------------------------------------------------------------------------------- /components/Guestbook/person-outline.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Guestbook/person-outline.svg -------------------------------------------------------------------------------- /components/Header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Header.tsx -------------------------------------------------------------------------------- /components/Hero.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Hero.tsx -------------------------------------------------------------------------------- /components/InternalCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/InternalCard.tsx -------------------------------------------------------------------------------- /components/LayoutWrapper.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LayoutWrapper.tsx -------------------------------------------------------------------------------- /components/LoadingSpinner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoadingSpinner.tsx -------------------------------------------------------------------------------- /components/LoginButton/github-dark.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/github-dark.svg -------------------------------------------------------------------------------- /components/LoginButton/github.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/github.svg -------------------------------------------------------------------------------- /components/LoginButton/google-dark.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/google-dark.svg -------------------------------------------------------------------------------- /components/LoginButton/google.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/google.svg -------------------------------------------------------------------------------- /components/LoginButton/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/index.tsx -------------------------------------------------------------------------------- /components/LoginButton/line.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginButton/line.svg -------------------------------------------------------------------------------- /components/LoginView.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/LoginView.tsx -------------------------------------------------------------------------------- /components/MDXComponents.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/MDXComponents.tsx -------------------------------------------------------------------------------- /components/MenuButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/MenuButton.tsx -------------------------------------------------------------------------------- /components/MusicEqualizer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/MusicEqualizer.tsx -------------------------------------------------------------------------------- /components/NowPlaying.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/NowPlaying.tsx -------------------------------------------------------------------------------- /components/PageTitle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/PageTitle.tsx -------------------------------------------------------------------------------- /components/Pre.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Pre.tsx -------------------------------------------------------------------------------- /components/SEO.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SEO.tsx -------------------------------------------------------------------------------- /components/SectionContainer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SectionContainer.tsx -------------------------------------------------------------------------------- /components/SignInError.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SignInError.tsx -------------------------------------------------------------------------------- /components/Skills/Badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Skills/Badge.tsx -------------------------------------------------------------------------------- /components/Skills/actions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Skills/actions.ts -------------------------------------------------------------------------------- /components/Skills/checkmark-circle-outline.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Skills/checkmark-circle-outline.svg -------------------------------------------------------------------------------- /components/Skills/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Skills/index.tsx -------------------------------------------------------------------------------- /components/Skills/plus-square-outline.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Skills/plus-square-outline.svg -------------------------------------------------------------------------------- /components/SocialIcon/codepen.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/codepen.svg -------------------------------------------------------------------------------- /components/SocialIcon/github.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/github.svg -------------------------------------------------------------------------------- /components/SocialIcon/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/index.tsx -------------------------------------------------------------------------------- /components/SocialIcon/linkedin.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/linkedin.svg -------------------------------------------------------------------------------- /components/SocialIcon/mail.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/mail.svg -------------------------------------------------------------------------------- /components/SocialIcon/twitter.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SocialIcon/twitter.svg -------------------------------------------------------------------------------- /components/SuccessMessage.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/SuccessMessage.tsx -------------------------------------------------------------------------------- /components/TOCInline.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/TOCInline.tsx -------------------------------------------------------------------------------- /components/Tag.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/Tag.tsx -------------------------------------------------------------------------------- /components/ThemeSwitch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/components/ThemeSwitch.tsx -------------------------------------------------------------------------------- /css/font.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/css/font.css -------------------------------------------------------------------------------- /css/prism.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/css/prism.css -------------------------------------------------------------------------------- /css/tailwind.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/css/tailwind.css -------------------------------------------------------------------------------- /data/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css.mdx -------------------------------------------------------------------------------- /data/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.mdx -------------------------------------------------------------------------------- /data/blog/how-nextauthjs-works.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/how-nextauthjs-works.mdx -------------------------------------------------------------------------------- /data/blog/nextauthjs-behinds-a-proxy.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/nextauthjs-behinds-a-proxy.mdx -------------------------------------------------------------------------------- /data/blog/over-engineering-thvu-dev.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/over-engineering-thvu-dev.mdx -------------------------------------------------------------------------------- /data/blog/rebuild-bakia-prisma.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/blog/rebuild-bakia-prisma.mdx -------------------------------------------------------------------------------- /data/headerNavLinks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/headerNavLinks.js -------------------------------------------------------------------------------- /data/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/logo.svg -------------------------------------------------------------------------------- /data/siteMetadata.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/data/siteMetadata.js -------------------------------------------------------------------------------- /layouts/ListLayout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/layouts/ListLayout.tsx -------------------------------------------------------------------------------- /layouts/PostLayout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/layouts/PostLayout.tsx -------------------------------------------------------------------------------- /lib/cms/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/cms/common.ts -------------------------------------------------------------------------------- /lib/cms/datocms.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/cms/datocms.ts -------------------------------------------------------------------------------- /lib/db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/db.ts -------------------------------------------------------------------------------- /lib/fetcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/fetcher.ts -------------------------------------------------------------------------------- /lib/generate-rss.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/generate-rss.ts -------------------------------------------------------------------------------- /lib/hooks/useDarkTheme.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/hooks/useDarkTheme.ts -------------------------------------------------------------------------------- /lib/hooks/useViewCounter.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/hooks/useViewCounter.tsx -------------------------------------------------------------------------------- /lib/mdx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/mdx.ts -------------------------------------------------------------------------------- /lib/notion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/notion.ts -------------------------------------------------------------------------------- /lib/prisma.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/prisma.ts -------------------------------------------------------------------------------- /lib/remark/code-title.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/remark/code-title.ts -------------------------------------------------------------------------------- /lib/remark/img-to-jsx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/remark/img-to-jsx.ts -------------------------------------------------------------------------------- /lib/remark/toc-headings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/remark/toc-headings.ts -------------------------------------------------------------------------------- /lib/spotify.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/spotify.ts -------------------------------------------------------------------------------- /lib/tags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/tags.ts -------------------------------------------------------------------------------- /lib/types/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/types/common.ts -------------------------------------------------------------------------------- /lib/types/form.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/types/form.ts -------------------------------------------------------------------------------- /lib/types/guestbook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/types/guestbook.ts -------------------------------------------------------------------------------- /lib/types/skill.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/types/skill.ts -------------------------------------------------------------------------------- /lib/types/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/types/user.ts -------------------------------------------------------------------------------- /lib/utils/confetti.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/utils/confetti.ts -------------------------------------------------------------------------------- /lib/utils/files.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/utils/files.ts -------------------------------------------------------------------------------- /lib/utils/kebabCase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/lib/utils/kebabCase.ts -------------------------------------------------------------------------------- /middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/middleware.ts -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/next-env.d.ts -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/next.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/package.json -------------------------------------------------------------------------------- /pages/404.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/404.tsx -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/_app.tsx -------------------------------------------------------------------------------- /pages/_document.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/_document.tsx -------------------------------------------------------------------------------- /pages/about.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/about.tsx -------------------------------------------------------------------------------- /pages/api/now-playing.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/api/now-playing.ts -------------------------------------------------------------------------------- /pages/api/view-count/[slug].ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/api/view-count/[slug].ts -------------------------------------------------------------------------------- /pages/blog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/blog.tsx -------------------------------------------------------------------------------- /pages/blog/[...slug].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/blog/[...slug].tsx -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/index.tsx -------------------------------------------------------------------------------- /pages/notes.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/notes.tsx -------------------------------------------------------------------------------- /pages/projects.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/projects.tsx -------------------------------------------------------------------------------- /pages/tags.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/tags.tsx -------------------------------------------------------------------------------- /pages/tags/[tag].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pages/tags/[tag].tsx -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/postcss.config.js -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prettier.config.js -------------------------------------------------------------------------------- /prisma/migrations/20210923030842_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20210923030842_init/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210923035359_endorsements/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20210923035359_endorsements/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210923101509_update_endorsements/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20210923101509_update_endorsements/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210927035151_add_skill_category/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20210927035151_add_skill_category/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211004103916_nextauth_adapter/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20211004103916_nextauth_adapter/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211004133022_fix_github_oauth/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE `accounts` ADD COLUMN `refresh_token_expires_in` INTEGER; 3 | -------------------------------------------------------------------------------- /prisma/migrations/20211004142707_fix_google_oauth/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE `accounts` MODIFY `id_token` VARCHAR(2048); 3 | -------------------------------------------------------------------------------- /prisma/migrations/20211005042833_fix_google_oauth_2/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE `accounts` MODIFY `id_token` VARCHAR(4096); 3 | -------------------------------------------------------------------------------- /prisma/migrations/20211005095803_migrate_users/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20211005095803_migrate_users/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211006043833_delete_email/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20211006043833_delete_email/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211012103903_add_endorse_date/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20211012103903_add_endorse_date/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211028045300_fix_line_oauth/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/20211028045300_fix_line_oauth/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/prisma/schema.prisma -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-100.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-100.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-200.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-300.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-500.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-600.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-700.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-700italic.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-800.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-800.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-800italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-800italic.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-900.woff2 -------------------------------------------------------------------------------- /public/fonts/be-vietnam-pro-v2-vietnamese_latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/fonts/be-vietnam-pro-v2-vietnamese_latin-regular.woff2 -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/manifest.json -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/robots.txt -------------------------------------------------------------------------------- /public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/background.png -------------------------------------------------------------------------------- /public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/css-in-real-world-verccel-hero-tailwind-css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/css-in-real-world-verccel-hero-tailwind-css.png -------------------------------------------------------------------------------- /public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/daniel-ging-28q5mxg4G7E-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/daniel-ging-28q5mxg4G7E-unsplash.jpg -------------------------------------------------------------------------------- /public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/foreground.png -------------------------------------------------------------------------------- /public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/vercel_hero.mov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/css-in-real-world-recreate-vercel-develop-preview-ship-with-tailwind-css/vercel_hero.mov -------------------------------------------------------------------------------- /public/static/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs.png -------------------------------------------------------------------------------- /public/static/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs/hugo-sousa-m7_lccaGaYA-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/develop-a-fullstack-workflow-with-prisma-and-planetscale-in-nextjs/hugo-sousa-m7_lccaGaYA-unsplash.jpg -------------------------------------------------------------------------------- /public/static/blog/over-engineering-thvu-dev/over-engineering-thvu-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/over-engineering-thvu-dev/over-engineering-thvu-dev.png -------------------------------------------------------------------------------- /public/static/blog/over-engineering-thvu-dev/spotify-playing.mov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/over-engineering-thvu-dev/spotify-playing.mov -------------------------------------------------------------------------------- /public/static/blog/rebuild-bakia-prisma/linda-christiansen-ZJ53yRQZsA0-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/rebuild-bakia-prisma/linda-christiansen-ZJ53yRQZsA0-unsplash.jpg -------------------------------------------------------------------------------- /public/static/blog/rebuild-bakia-prisma/rebuild-bakia-prisma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/blog/rebuild-bakia-prisma/rebuild-bakia-prisma.png -------------------------------------------------------------------------------- /public/static/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/static/favicons/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/android-chrome-384x384.png -------------------------------------------------------------------------------- /public/static/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/static/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /public/static/favicons/browserconfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/browserconfig.xml -------------------------------------------------------------------------------- /public/static/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/favicon.ico -------------------------------------------------------------------------------- /public/static/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/favicon.png -------------------------------------------------------------------------------- /public/static/favicons/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/favicon.svg -------------------------------------------------------------------------------- /public/static/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /public/static/favicons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/favicons/safari-pinned-tab.svg -------------------------------------------------------------------------------- /public/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/images/logo.png -------------------------------------------------------------------------------- /public/static/images/social-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/public/static/images/social-banner.png -------------------------------------------------------------------------------- /scripts/compose.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/scripts/compose.js -------------------------------------------------------------------------------- /scripts/generate-sitemap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/scripts/generate-sitemap.js -------------------------------------------------------------------------------- /sentry.client.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/sentry.client.config.js -------------------------------------------------------------------------------- /sentry.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/sentry.properties -------------------------------------------------------------------------------- /sentry.server.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/sentry.server.config.js -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types/nextauth.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThangHuuVu/thvu-blog/HEAD/types/nextauth.d.ts --------------------------------------------------------------------------------