Published: Apr 22, 2025, 6:02 PM
The project overview of MyBlog.
my-blog
is a web application built with Next.js 15 and the App Router. It serves as a personal blog platform, featuring blog posts, user authentication, message board, and back-end manage interface. The project utilises modern web development practices, including TypeScript, Tailwind CSS for styling, and Supabase for backend services.
motion
: Animation library.magicui
: UI components.lucide-react
, @heroicons/react
, @tabler/icons-react
: Icon libraries.next-themes
: Dark mode / theme management.class-variance-authority
& clsx
: For managing component variants and conditional classes.@react-three/fiber
, three
, cobe
: 3D/WebGL elements.react-markdown
, rehype-highlight
, remark-gfm
, highlight.js
: For rendering and styling Markdown content (likely blog posts).@supabase/ssr
, @supabase/supabase-js
: Supabase integration for backend-as-a-service (database, auth).prettier-plugin-tailwindcss
)app/(auth)/
, components/auth/
, Supabase dependencies).next-themes
, ModeToggle.tsx
).next.config.ts
).app/layout.tsx
).three
, @react-three/fiber
, cobe
suggests possible interactive visuals.my-blog/
├── app/ # Main application code (App Router)
│ ├── (auth)/ # Authentication related pages/routes
│ ├── (home)/ # Main site pages/routes
│ ├── globals.css # Global CSS styles
│ └── layout.tsx # Root application layout
├── components/ # Shared UI components
│ ├── auth/ # Authentication components
│ ├── blogs/ # Blog-specific components
│ ├── contact/ # Contact form components
│ ├── home/ # Components specific to home pages
│ ├── pages/ # General page-level components
│ ├── profiles/ # User profile components
│ ├── project/ # Project display components
│ ├── ui/ # Base UI components (Shadcn UI)
├── lib/ # Utility functions and helpers
│ ├── supabase/ # Supabase client/utility setup
│ └── utils.ts # General utilities
├── types/ # Define types
├── public/ # Static assets (images, fonts, etc.)
├── scripts/ # Build scripts
├── middleware.ts # Next.js middleware
├── prettier.config.js # Prettier configuration
app/
: Organises routes using Next.js App Router conventions. Route groups ((auth)
, (home)
) are used to structure sections without affecting the URL path.components/
: Contains reusable React components, categorized by feature (auth
, blogs
, home
, etc.) or type (ui
).lib/
: Includes helper functions, utility modules like date formatting, and Supabase client setup.blogs
, auth
, home
) or type (ui
, magicui
) within the components/
directory..tsx
).BlogCard.tsx
).tailwind.config.js
and postcss.config.mjs
. Tailwind v4 is used.app/globals.css
.@tailwindcss/typography
plugin used for styling Markdown content.caret-blink
) in tailwind.config.js
and uses motion
library..prettierrc
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 80,
"bracketSpacing": true,
"arrowParens": "avoid",
"jsxSingleQuote": false,
"jsxBracketSameLine": false,
"plugins": ["prettier-plugin-tailwindcss"]
}
tailwind.config.js
:
caret-blink
).middleware.ts
: Handles request middleware (specific logic needs inspection).
Environment Variables: Supabase keys and other secrets should be managed via environment variables (e.g., in .env.local
). dotenv
package is used for local script running.
Standard Next.js scripts are available in package.json
:
npm run dev
npm run build
npm run start
npm run lint
Ensure necessary environment variables (e.g., Supabase URL and keys) are set up in a .env.local
file.
Deployment would connect the Git repository to Vercel.