This is a feature-rich blogging platform built with Vue 3, using chadcn-vue, Supabase, and TypeScript.

- User authentication with Google login
- Create, read, update, and delete blog posts
- Markdown support for writing blog posts
- View tracking for blog posts
- Tag management for blog posts
- User profiles
- Dark mode support
- File storage using Supabase Storage
- Transaction-like operations using PostgreSQL functions
- Vue 3
- TypeScript
- Supabase for backend, authentication, and file storage
- PostgreSQL functions for complex database operations
- chadcn-vue for UI components
- Markdown parser for blog post content
- Vitest for unit testing
- Vue Test Utils for component testing
- Clone the repository
- Install dependencies:
pnpm install
- Set up your Supabase project and add the credentials to your environment variables
- Set up Supabase Storage buckets for file uploads
- Create necessary PostgreSQL functions in your Supabase project
- Run the development server:
pnpm run dev
This project uses Vitest for unit testing and Vue Test Utils for component testing.
To run unit tests:
pnpm run test:unit
To run tests with coverage:
pnpm run test:unit:coverage
To run E2E tests:
pnpm run test:e2e
src/components
: Vue componentssrc/stores
: Pinia stores for state managementsrc/composables
: Reusable Vue composition functionssrc/router
: Vue Router configuration.spec.ts
: Test filescypress
: E2E tests
- Authentication components (e.g., LoginWithGoogle)
- Blog post components (CreateBlogForms, MediaUpload)
- Tag management components
- User profile components
- Navigation components
- Rich text editor component
Note: It may take up to 24h for the contrib.rocks plugin to update because it's refreshed once a day.
This project is licensed under the [Apace.2 License] - see the LICENSE.md file for details.