├── .env.local ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── app ├── admin │ ├── dashboard │ │ └── page.tsx │ └── posts │ │ ├── edit │ │ ├── [slug] │ │ │ └── page.tsx │ │ └── page.tsx │ │ └── page.tsx ├── api │ ├── auth │ │ ├── login │ │ │ └── route.ts │ │ ├── logout │ │ │ └── route.ts │ │ └── verify │ │ │ └── route.ts │ ├── posts │ │ ├── [slug] │ │ │ └── route.ts │ │ └── route.ts │ └── votes │ │ └── route.ts ├── blog │ └── [slug] │ │ └── page.tsx ├── favicon.ico ├── globals.css ├── layout.tsx ├── login │ └── page.tsx └── page.tsx ├── bun.lock ├── components.json ├── components ├── admin │ ├── admin-layout.tsx │ └── auth-guard.tsx ├── blog │ ├── mdx-content.tsx │ ├── playful-landing.tsx │ ├── posts-list.tsx │ ├── search.tsx │ └── vote-buttons.tsx ├── theme-provider.tsx └── ui │ ├── avatar.tsx │ ├── badge.tsx │ ├── button.tsx │ ├── card.tsx │ ├── dialog.tsx │ ├── dropdown-menu.tsx │ ├── form.tsx │ ├── input.tsx │ ├── label.tsx │ ├── mode-toggle.tsx │ ├── separator.tsx │ ├── sheet.tsx │ ├── sidebar.tsx │ ├── skeleton.tsx │ ├── switch.tsx │ ├── textarea.tsx │ └── tooltip.tsx ├── content ├── config │ └── site.json ├── posts │ ├── ai-creativity-future.mdx │ ├── building-habits-that-stick.mdx │ ├── digital-minimalism-guide.mdx │ ├── javascript-trends-2024.mdx │ └── remote-work-productivity-guide.mdx └── votes │ └── post-votes.json ├── env.example ├── eslint.config.mjs ├── hooks └── use-mobile.ts ├── lib ├── auth.ts ├── posts.test.ts ├── posts.ts ├── reading-time.ts ├── utils.ts └── votes.ts ├── middleware.ts ├── next.config.ts ├── package.json ├── postcss.config.mjs ├── public ├── file.svg ├── globe.svg ├── next.svg ├── vercel.svg └── window.svg └── tsconfig.json /.env.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/.env.local -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/.gitignore -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/SECURITY.md -------------------------------------------------------------------------------- /app/admin/dashboard/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/admin/dashboard/page.tsx -------------------------------------------------------------------------------- /app/admin/posts/edit/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/admin/posts/edit/[slug]/page.tsx -------------------------------------------------------------------------------- /app/admin/posts/edit/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/admin/posts/edit/page.tsx -------------------------------------------------------------------------------- /app/admin/posts/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/admin/posts/page.tsx -------------------------------------------------------------------------------- /app/api/auth/login/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/auth/login/route.ts -------------------------------------------------------------------------------- /app/api/auth/logout/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/auth/logout/route.ts -------------------------------------------------------------------------------- /app/api/auth/verify/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/auth/verify/route.ts -------------------------------------------------------------------------------- /app/api/posts/[slug]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/posts/[slug]/route.ts -------------------------------------------------------------------------------- /app/api/posts/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/posts/route.ts -------------------------------------------------------------------------------- /app/api/votes/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/api/votes/route.ts -------------------------------------------------------------------------------- /app/blog/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/blog/[slug]/page.tsx -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/globals.css -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/layout.tsx -------------------------------------------------------------------------------- /app/login/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/login/page.tsx -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/app/page.tsx -------------------------------------------------------------------------------- /bun.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/bun.lock -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components.json -------------------------------------------------------------------------------- /components/admin/admin-layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/admin/admin-layout.tsx -------------------------------------------------------------------------------- /components/admin/auth-guard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/admin/auth-guard.tsx -------------------------------------------------------------------------------- /components/blog/mdx-content.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/blog/mdx-content.tsx -------------------------------------------------------------------------------- /components/blog/playful-landing.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/blog/playful-landing.tsx -------------------------------------------------------------------------------- /components/blog/posts-list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/blog/posts-list.tsx -------------------------------------------------------------------------------- /components/blog/search.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/blog/search.tsx -------------------------------------------------------------------------------- /components/blog/vote-buttons.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/blog/vote-buttons.tsx -------------------------------------------------------------------------------- /components/theme-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/theme-provider.tsx -------------------------------------------------------------------------------- /components/ui/avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/avatar.tsx -------------------------------------------------------------------------------- /components/ui/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/badge.tsx -------------------------------------------------------------------------------- /components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/button.tsx -------------------------------------------------------------------------------- /components/ui/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/card.tsx -------------------------------------------------------------------------------- /components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/dialog.tsx -------------------------------------------------------------------------------- /components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /components/ui/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/form.tsx -------------------------------------------------------------------------------- /components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/input.tsx -------------------------------------------------------------------------------- /components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/label.tsx -------------------------------------------------------------------------------- /components/ui/mode-toggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/mode-toggle.tsx -------------------------------------------------------------------------------- /components/ui/separator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/separator.tsx -------------------------------------------------------------------------------- /components/ui/sheet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/sheet.tsx -------------------------------------------------------------------------------- /components/ui/sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/sidebar.tsx -------------------------------------------------------------------------------- /components/ui/skeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/skeleton.tsx -------------------------------------------------------------------------------- /components/ui/switch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/switch.tsx -------------------------------------------------------------------------------- /components/ui/textarea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/textarea.tsx -------------------------------------------------------------------------------- /components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /content/config/site.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/config/site.json -------------------------------------------------------------------------------- /content/posts/ai-creativity-future.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/posts/ai-creativity-future.mdx -------------------------------------------------------------------------------- /content/posts/building-habits-that-stick.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/posts/building-habits-that-stick.mdx -------------------------------------------------------------------------------- /content/posts/digital-minimalism-guide.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/posts/digital-minimalism-guide.mdx -------------------------------------------------------------------------------- /content/posts/javascript-trends-2024.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/posts/javascript-trends-2024.mdx -------------------------------------------------------------------------------- /content/posts/remote-work-productivity-guide.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/posts/remote-work-productivity-guide.mdx -------------------------------------------------------------------------------- /content/votes/post-votes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/content/votes/post-votes.json -------------------------------------------------------------------------------- /env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/env.example -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /hooks/use-mobile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/hooks/use-mobile.ts -------------------------------------------------------------------------------- /lib/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/auth.ts -------------------------------------------------------------------------------- /lib/posts.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/posts.test.ts -------------------------------------------------------------------------------- /lib/posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/posts.ts -------------------------------------------------------------------------------- /lib/reading-time.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/reading-time.ts -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/utils.ts -------------------------------------------------------------------------------- /lib/votes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/lib/votes.ts -------------------------------------------------------------------------------- /middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/middleware.ts -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/next.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /public/file.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/public/file.svg -------------------------------------------------------------------------------- /public/globe.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/public/globe.svg -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/public/next.svg -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/public/vercel.svg -------------------------------------------------------------------------------- /public/window.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/public/window.svg -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddoemonn/next-blog/HEAD/tsconfig.json --------------------------------------------------------------------------------