Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
225 commits
Select commit Hold shift + click to select a range
f15242e
Updated session dashboard
shoaibsharif Apr 6, 2025
119f194
Merge pull request #23 from techdiary-dev/editor
shoaibsharif Apr 11, 2025
db08c62
Merge pull request #24 from techdiary-dev/editor
shoaibsharif Apr 11, 2025
4231afe
Merge branch 'main' of pr.github.com:techdiary-dev/techdiary.dev into…
shoaibsharif Apr 12, 2025
10d146d
feat: Implement series management features including creation, editin…
shoaibsharif Apr 28, 2025
33539bf
refactor: Simplify transaction handling in createSeries and updateSer…
shoaibsharif Apr 28, 2025
53b257e
Refactor database.ts to export PgClient and rename db to database for…
kingRayhan Jun 9, 2025
6076ab9
Merge pull request #26 from techdiary-dev/series-article
kingRayhan Jun 9, 2025
354babd
Merge pull request #28 from techdiary-dev/editor
kingRayhan Jun 9, 2025
b31823e
Merge pull request #29 from techdiary-dev/editor
kingRayhan Jun 9, 2025
b132459
Merge pull request #30 from techdiary-dev/editor
kingRayhan Jun 10, 2025
a524247
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev into dev
kingRayhan Jun 10, 2025
60a7556
Merge pull request #32 from techdiary-dev/dev
kingRayhan Jun 10, 2025
549f2bc
Merge pull request #35 from techdiary-dev/stage
kingRayhan Jun 10, 2025
e759e10
init
kingRayhan Jun 10, 2025
af8a884
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
kingRayhan Jun 10, 2025
7332aac
Remove unused series management pages and components
kingRayhan Jun 10, 2025
7b771f7
Remove unused series and test pages; add "use server" directive to se…
kingRayhan Jun 11, 2025
2a1073e
Remove Tabs component and series rendering from ArticleFeed
kingRayhan Jun 11, 2025
32a9173
Refactor user repository: rename user actions file and update user re…
kingRayhan Jun 11, 2025
0260cc4
feat: Refactor repository exception handling and introduce bookmarks …
kingRayhan Jun 11, 2025
fd8557a
feat: Add bookmark functionality with toggle action and repository in…
kingRayhan Jun 11, 2025
665637d
feat: Implement bookmark status component with toggle functionality a…
kingRayhan Jun 11, 2025
910d6f0
refactor: Remove optimistic update logic from bookmark toggle mutation
kingRayhan Jun 11, 2025
4f778bc
feat: Add reactions feature with toggle functionality and database in…
kingRayhan Jun 11, 2025
15d366e
feat: Enhance reaction handling with new ReactionStatus component and…
kingRayhan Jun 11, 2025
bd94d1c
feat: Enhance reaction handling with optimistic updates and toggle fu…
kingRayhan Jun 11, 2025
70d31ac
feat: Add useImmer for managing reaction state and optimize reaction …
kingRayhan Jun 12, 2025
a45a0a7
Refactor reaction types and enhance ArticleCard component
kingRayhan Jun 12, 2025
40da50a
feat: Add ArticleReaction component for managing article reactions
kingRayhan Jun 12, 2025
09f2e82
fix: Add missing key prop to reaction buttons in ArticleReaction and …
kingRayhan Jun 12, 2025
25406ce
refactor: Comment out unused sidebar items in DashboardSidebar component
kingRayhan Jun 12, 2025
91525a0
feat: Enhance SettingsPage with user forms and update input handling
kingRayhan Jun 12, 2025
00c98cd
feat: Add social media links form and validation to user profile sett…
kingRayhan Jun 12, 2025
bad7cf0
feat: Update social media links handling in ProfilePageAside and Soci…
kingRayhan Jun 12, 2025
c97d4ca
feat: Enhance user profile management with ReadmeForm and SocialMedia…
kingRayhan Jun 12, 2025
16f9c71
feat: Add Meilisearch integration for article synchronization and man…
kingRayhan Jun 13, 2025
1c07322
feat: add SearchComboBox component and Meilisearch client setup
kingRayhan Jun 13, 2025
1d74c69
search
kingRayhan Jun 13, 2025
a1abfd6
refactor: remove unused dependencies and components, update search in…
kingRayhan Jun 13, 2025
c6e10af
feat: implement debounce utility function with cancellation and flush…
shoaibsharif Jun 13, 2025
b388fe8
refactor: clean up imports and remove unused state in SearchInput com…
kingRayhan Jun 13, 2025
3a76cbe
refactor: remove commented import of meilisearchClient in SearchInput…
kingRayhan Jun 13, 2025
3de5f46
Merge branch 'search' of github.com:techdiary-dev/techdiary.dev into …
kingRayhan Jun 13, 2025
c9f2a22
feat: implement search bar state management using Jotai atom
kingRayhan Jun 13, 2025
1a09322
Implement new feature for user authentication and improve error handling
kingRayhan Jun 13, 2025
1b1ab4c
Merge pull request #37 from techdiary-dev/search
kingRayhan Jun 13, 2025
d8cb119
refactor: remove unused useDebounce hook
kingRayhan Jun 13, 2025
fac0fbc
feat: implement useServerFile hook for file upload and deletion funct…
kingRayhan Jun 13, 2025
9c43fae
feat: add AppLoginPopupProvider for login modal functionality
kingRayhan Jun 13, 2025
d910495
feat: enhance AppLoginPopupProvider with GitHub login functionality a…
kingRayhan Jun 13, 2025
d962e43
feat: integrate login popup for reaction toggle in ArticleCard component
kingRayhan Jun 13, 2025
646589f
feat: add login prompt for bookmarking articles when user is not auth…
kingRayhan Jun 13, 2025
2cb9181
refactor: remove unused CSS import from SearchInput component
kingRayhan Jun 13, 2025
5558153
feat: add comments functionality with resource association in databas…
kingRayhan Jun 13, 2025
e494adc
feat: implement comment actions with input validation schema
kingRayhan Jun 13, 2025
e02bbd7
refactor: update comment resource type and improve session ID retriev…
kingRayhan Jun 13, 2025
1b2d405
Merge pull request #38 from techdiary-dev/comment
kingRayhan Jun 13, 2025
fe9c1a3
feat: add comment section component with sample data and UI for user …
kingRayhan Jun 13, 2025
6c2a1b4
feat: implement comments functionality with database integration and …
kingRayhan Jun 14, 2025
32bffc1
fix: update resource ID in GET comments API and streamline SQL query …
kingRayhan Jun 14, 2025
ccfa81f
fix: correct SQL query in getComments function to return comments pro…
kingRayhan Jun 14, 2025
3f72f45
feat: add CommentPresentation interface and update getComments return…
kingRayhan Jun 14, 2025
496c6b5
feat: enhance CommentSection component with resource type and ID props
kingRayhan Jun 14, 2025
4fb6915
feat: update CommentSection to render comments from query data and en…
kingRayhan Jun 14, 2025
983ae20
feat: display comment body and replies in CommentItem component
kingRayhan Jun 14, 2025
5a6e50f
fix: adjust formatting in CommentItem component for consistency
kingRayhan Jun 14, 2025
4aa9f30
feat: refactor reaction and bookmark components to use new ResourceRe…
kingRayhan Jun 14, 2025
1a83a38
refactor: streamline imports in ArticleCard component
kingRayhan Jun 14, 2025
3ed45d7
Merge pull request #39 from techdiary-dev/comment
kingRayhan Jun 14, 2025
eb445a8
fix: add openDelay to HoverCard in ArticleCard component for improved…
kingRayhan Jun 14, 2025
29c9e07
Merge pull request #40 from techdiary-dev/comment
kingRayhan Jun 14, 2025
7520c71
feat: add session management and login popup handling in ResourceReac…
kingRayhan Jun 14, 2025
2426348
Merge pull request #41 from techdiary-dev/comment
kingRayhan Jun 14, 2025
0d6f12c
feat: add comment_id handling in comment actions and schemas for impr…
kingRayhan Jun 14, 2025
fc2d1d6
Merge pull request #42 from techdiary-dev/comment
kingRayhan Jun 14, 2025
3125b62
feat: schedule article deletion
shoaibsharif Jun 15, 2025
6ba0c31
Remove obsolete migration snapshot and update journal with new migrat…
kingRayhan Jun 15, 2025
561ff76
feat: add CommentSectionProvider for improved comment management and …
shoaibsharif Jun 15, 2025
c656fa4
fix: remove unnecessary mutatingId prop from CommentItem component
shoaibsharif Jun 15, 2025
6aec05d
Merge pull request #47 from techdiary-dev/comment
kingRayhan Jun 15, 2025
c807340
fix: update dark theme variant selector in CSS for consistency
kingRayhan Jun 15, 2025
aa6fc3c
feat: add ResourceBookmark component and integrate it into ArticlePag…
kingRayhan Jun 15, 2025
e046448
fix: adjust CommandGroup heading and update CommandDialog content sty…
kingRayhan Jun 15, 2025
936d6f3
fix: adjust CommandDialog content positioning for improved layout
kingRayhan Jun 15, 2025
b4c1501
feat: add S3 signed URL generation for image uploads
kingRayhan Jun 15, 2025
d0ad423
feat: implement S3 file deletion API endpoint
kingRayhan Jun 15, 2025
7105d65
feat: add DIRECTORY_NAME enum and update file upload hook to utilize it
kingRayhan Jun 15, 2025
8b9eb6f
fix: remove unused import and reorder ResourceBookmark import in Arti…
kingRayhan Jun 15, 2025
130c549
feat: implement bookmarks listing with pagination and add bookmarks s…
kingRayhan Jun 15, 2025
a3a7ce6
feat: add Claude configuration directory
kingRayhan Jun 15, 2025
7027187
docs: remove Claude Code attribution requirement from gc command
kingRayhan Jun 15, 2025
b74c8d1
feat: update cron schedule for article cleanup to run daily at 2:00 A…
shoaibsharif Jun 15, 2025
a22fcc2
docs: add guideline to avoid Claude co-authorship by default
kingRayhan Jun 15, 2025
1cd1c1d
fix: remove deprecated Git Commit Helper documentation
kingRayhan Jun 15, 2025
cfd50a2
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev into sh…
kingRayhan Jun 15, 2025
974ab00
fix: make CRON_SECRET optional in environment configuration
kingRayhan Jun 15, 2025
26bb11a
refactor: simplify article deletion logic and remove unused functions
kingRayhan Jun 15, 2025
6418efd
fix: standardize response structure in cleanup articles API
kingRayhan Jun 15, 2025
aec1a57
fix: correct cron schedule comments for clarity
kingRayhan Jun 15, 2025
dcbdd66
fix: correct cron schedule comments for clarity
shoaibsharif Jun 15, 2025
182f587
Merge branch 'shoaibsharif/delete-scheduled-articles' of github.com:t…
shoaibsharif Jun 15, 2025
c537d76
Merge pull request #46 from techdiary-dev/shoaibsharif/delete-schedul…
kingRayhan Jun 15, 2025
947d431
Implement feature X to enhance user experience and fix bug Y in module Z
kingRayhan Jun 15, 2025
8eca972
fix: add observability logs configuration for cron worker
shoaibsharif Jun 15, 2025
61ab2a3
fix: add package-lock.json to .gitignore
shoaibsharif Jun 15, 2025
e393d56
Merge pull request #48 from techdiary-dev/shoaibsharif/delete-schedul…
shoaibsharif Jun 15, 2025
c649135
fix: update DiscordWidget to comment out member count display and adj…
kingRayhan Jun 15, 2025
b99bfba
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
kingRayhan Jun 15, 2025
678e711
fix: update cron schedule for article cleanup
shoaibsharif Jun 15, 2025
adf7563
Merge pull request #49 from techdiary-dev/shoaibsharif/delete-schedul…
shoaibsharif Jun 15, 2025
e600bc1
fix: update cron schedule to run article cleanup at 12:00 PM UTC
kingRayhan Jun 16, 2025
a55afde
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
kingRayhan Jun 16, 2025
be6aea0
fix: update cron schedule to run article cleanup at 12:00 PM UTC
kingRayhan Jun 16, 2025
5abc27b
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev into ki…
kingRayhan Jun 19, 2025
5637c0e
feat: enhance bookmarks functionality with article author details and…
kingRayhan Jun 19, 2025
5eb33af
refactor: simplify GET response to return a static play status
kingRayhan Jun 19, 2025
056c7d7
Merge pull request #50 from techdiary-dev/kingrayhan/bookmark
kingRayhan Jun 19, 2025
3760d49
refactor: enhance link styling in AuthenticatedUserMenu for better UI…
kingRayhan Jun 19, 2025
30e5783
feat: implement GitHub OAuth flow with enhanced error handling and us…
kingRayhan Jun 19, 2025
5901983
feat: add delete article functionality with scheduling and authorizat…
kingRayhan Jun 19, 2025
ee8ef26
feat: integrate react-hot-toast for improved notification handling an…
kingRayhan Jun 19, 2025
8d7abfd
refactor: remove unused imports and clean up toast handling in Page c…
kingRayhan Jun 19, 2025
dc485fb
feat: add restore functionality for scheduled article deletions and i…
kingRayhan Jun 19, 2025
3522114
refactor: clean up ArticleList component and fix restore function def…
kingRayhan Jun 20, 2025
483d5ae
feat: implement optimistic updates for article deletion and restorati…
kingRayhan Jun 20, 2025
1f4e15a
fix: update button text for article publishing in ArticleList component
kingRayhan Jun 20, 2025
a6dcfbd
refactor: adjust article title link styling in ArticleList component
kingRayhan Jun 20, 2025
a6f9d06
refactor: update ArticleList component to use async function and impr…
kingRayhan Jun 20, 2025
6ae051f
refactor: change ArticleList component to a regular function from async
kingRayhan Jun 20, 2025
6a92cef
refactor: enhance translation function to support placeholder values …
kingRayhan Jun 20, 2025
e26de52
fix: update translation for article deletion timing from days to hours
kingRayhan Jun 20, 2025
8107cf0
Refactor user profile photo handling and implement image upload feature
kingRayhan Jun 20, 2025
46be810
feat: add basic addition function and corresponding tests
kingRayhan Jun 20, 2025
020b88e
refactor: remove unused add function and related tests; update profil…
kingRayhan Jun 20, 2025
e2440cd
refactor: update user profile photo handling and improve article feed…
kingRayhan Jun 20, 2025
14a49af
refactor: update button handlers in ArticleEditor and improve user pr…
kingRayhan Jun 20, 2025
32061c4
feat: implement uploadByUrl function for S3 image uploads
kingRayhan Jun 20, 2025
5db7eaf
feat: integrate storage actions for user profile photo uploads and up…
kingRayhan Jun 20, 2025
07ccba6
feat: enhance user profile handling by generating unique avatar filen…
kingRayhan Jun 20, 2025
87e12ec
fix: ensure profile readme input handles undefined values gracefully
kingRayhan Jun 20, 2025
b61f0f3
fix: simplify button disabled state logic in GeneralForm component
kingRayhan Jun 20, 2025
4222ff6
Claude PR Assistant workflow
kingRayhan Jun 21, 2025
93d31a3
Claude Code Review workflow
kingRayhan Jun 21, 2025
df62a02
Merge pull request #51 from techdiary-dev/add-claude-github-actions-1…
kingRayhan Jun 21, 2025
938d8c5
feat: add documentation for custom hooks including useAutosizeTextAre…
kingRayhan Jun 21, 2025
76f8faa
feat: add comprehensive documentation for custom hooks including useT…
kingRayhan Jun 21, 2025
fb45a9f
Add ResourceReaction, ResourceReactionable, and UserInformationCard c…
kingRayhan Jun 21, 2025
a527025
feat: update documentation for ResourceReaction and add ResourceBookm…
kingRayhan Jun 21, 2025
2e45ace
feat: add initial Product Requirements Document for TechDiary
kingRayhan Jun 21, 2025
550dbbb
feat: enhance README with comprehensive project overview, key feature…
kingRayhan Jun 21, 2025
58b4ee8
chore: remove Vercel acknowledgment from README
kingRayhan Jun 21, 2025
3af7c1b
fix: update link styles in AuthenticatedUserMenu for consistent block…
kingRayhan Jun 21, 2025
ab8e38d
refactor: reorganize imports and update link styles in AuthenticatedU…
kingRayhan Jun 21, 2025
f0aff07
feat: update button text in ArticleList to use translation for consis…
kingRayhan Jun 21, 2025
5d8196f
docs: add comprehensive utility documentation for core helper functions
kingRayhan Jun 21, 2025
a672d42
Update PRD.md
kingRayhan Jun 21, 2025
bcd2798
feat: implement article deletion and synchronization logic in cleanup…
shoaibsharif Jun 22, 2025
bad6bc3
feat: replace ArticleList with DashboardArticleList component and upd…
kingRayhan Jun 22, 2025
8a5452d
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
kingRayhan Jun 22, 2025
e55f0bd
refactor: improve sidebar open state management and clean up imports
kingRayhan Jun 22, 2025
741dbc2
fix: add a blank line for improved readability in layout component
kingRayhan Jun 22, 2025
55ea4b2
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev into sh…
shoaibsharif Jun 22, 2025
43adb81
feat: enhance article management and UI components
shoaibsharif Jun 22, 2025
f4d7732
chore: remove task.md file for tag-based article page
shoaibsharif Jun 22, 2025
97ebd8f
fix: update tag link and improve image handling in TagArticleFeed com…
shoaibsharif Jun 22, 2025
9305b88
Merge pull request #62 from techdiary-dev/shoaibsharif/dashboard-54
kingRayhan Jun 22, 2025
2eaffc1
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev into sh…
kingRayhan Jun 22, 2025
cef9822
Merge pull request #63 from techdiary-dev/shoaibsharif/tags
kingRayhan Jun 22, 2025
639981c
feat: enhance article update flow and add canonical URL support in Ar…
kingRayhan Jun 22, 2025
1f92575
fix: improve tag retrieval response structure and handle errors in ge…
kingRayhan Jun 22, 2025
efa055b
article-tags issue
kingRayhan Jun 22, 2025
9029e6d
fix: add suppressHydrationWarning for hydration issues and adjust imp…
shoaibsharif Jun 23, 2025
60a4e1a
fix: update tag link for React in HomeLeftSidebar component
shoaibsharif Jun 23, 2025
f71f4b4
Merge pull request #64 from techdiary-dev/issue/tag_archieve
shoaibsharif Jun 23, 2025
290d018
fix: correct input parsing in getTag function and ensure error handli…
shoaibsharif Jun 23, 2025
c700e7f
Merge pull request #65 from techdiary-dev/issue/tag_archieve
shoaibsharif Jun 23, 2025
19d1bff
fix: update article and tag handling, improve file upload deletion, a…
kingRayhan Jun 24, 2025
cfab901
feat: integrate Unsplash image gallery for article cover selection an…
kingRayhan Jun 24, 2025
91a2a6a
fix: update styling for unpublished article indicator in ArticleEdito…
kingRayhan Jun 24, 2025
38c3496
feat: implement image cropping modal and enhance Unsplash image galle…
kingRayhan Jun 24, 2025
06ddf11
refactor: clean up imports in ArticleEditor component for better read…
kingRayhan Jun 24, 2025
82f3935
feat: enhance Markdown editor with image upload functionality and too…
kingRayhan Jun 24, 2025
2af0014
refactor: remove unused slugify function from utils
kingRayhan Jun 24, 2025
f655372
feat: implement YouTube tag rendering and remove unused callout compo…
kingRayhan Jun 24, 2025
b0b0256
feat: refactor markdoc parser and implement YouTube tag rendering
kingRayhan Jun 24, 2025
aa49ab5
fix: correctly render Icon prop in EditorCommandButton component
kingRayhan Jun 24, 2025
9ef1147
feat: add CodeTag component for syntax highlighting in Markdown
kingRayhan Jun 24, 2025
d8c9ed8
feat: add copy functionality to CodeTag component with translation su…
kingRayhan Jun 24, 2025
4367102
refactor: replace is_published checks with published_at for article s…
kingRayhan Jun 24, 2025
338d168
chore: update @sentry/nextjs dependency to version 9.31.0
kingRayhan Jun 24, 2025
f391b70
feat: integrate Sentry for error tracking and monitoring in Next.js a…
shoaibsharif Jun 24, 2025
c471b4d
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
shoaibsharif Jun 24, 2025
767bf86
fix: handle optional chaining for user in search result selection
kingRayhan Jun 24, 2025
9982635
Merge branch 'main' of github.com:techdiary-dev/techdiary.dev
kingRayhan Jun 24, 2025
8eb54fa
fix: handle optional chaining for tag properties in TagArticleFeed an…
kingRayhan Jun 24, 2025
903c73e
refactor: remove Sentry integration and related test script
kingRayhan Jun 24, 2025
d82639f
refactor: remove Sentry integration and related instrumentation files
kingRayhan Jun 24, 2025
2e197b1
removed melisearch invoking everytime
shoaibsharif Jun 24, 2025
3a55fcd
refactor: remove Sentry configuration from next.config.mjs
kingRayhan Jun 25, 2025
0c69a1a
refactor: remove Sentry configuration import from next.config.mjs
kingRayhan Jun 25, 2025
4554a8c
refactor: update user model to include is_verified field and adjust m…
kingRayhan Jun 25, 2025
d33d664
feat: add key-value store service with CRUD operations
kingRayhan Jun 25, 2025
6405426
feat: implement backdoor login session functionality with form handling
kingRayhan Jun 25, 2025
3114863
feat: add is_verified field to article and user components for enhanc…
kingRayhan Jun 25, 2025
810cb9f
feat: update ArticleFeed to use published_at for article date and rem…
kingRayhan Jun 25, 2025
ff99143
feat: enhance content typography for dark mode support
kingRayhan Jun 25, 2025
98ae22e
feat: restore ErrorPage component with updated structure and styling
kingRayhan Jun 25, 2025
ff977a8
feat: update openGraph metadata to include article URL and type
kingRayhan Jun 25, 2025
f8597d4
feat: update user avatar handling to use fallback image from DiceBear…
kingRayhan Jun 25, 2025
8426a27
feat: update HomeLeftSidebar tag link styling to include muted foregr…
kingRayhan Jun 25, 2025
8815faa
feat: add Google Analytics tracking scripts to RootLayout component
kingRayhan Jun 25, 2025
e26a9f2
feat: enhance Markdown editor with direct image upload support and dr…
shoaibsharif Jun 25, 2025
07fd76d
Merge pull request #69 from techdiary-dev/shoaibsharif/editor-upload-…
kingRayhan Jun 25, 2025
9b48900
feat: update profile page layout and enhance Markdown rendering
kingRayhan Jun 25, 2025
b5eec51
Merge pull request #70 from techdiary-dev/kingrayhan/profile
kingRayhan Jun 25, 2025
ca09fe4
feat: add EditArticleButton component and integrate it into the artic…
kingRayhan Jun 25, 2025
af4d1cf
fix: correct published date reference in UserArticleFeed component
kingRayhan Jun 25, 2025
627c8cf
feat: add created_at timestamp when creating a new article
kingRayhan Jun 25, 2025
61808f6
feat: enhance article metadata generation with user details and cover…
kingRayhan Jun 25, 2025
a0e7136
refactor: clean up imports in article page component
kingRayhan Jun 25, 2025
313827f
feat: add headline property to JSON-LD metadata for article page
kingRayhan Jun 25, 2025
e4d3670
feat: add initial robots.txt file to manage web crawler access
kingRayhan Jun 25, 2025
6ca7663
refactor: update robots.ts to use array for disallowed paths and form…
kingRayhan Jun 25, 2025
6381a51
fix: simplify excerpt generation in articleFeed function
kingRayhan Jun 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .dev.vars
Empty file.
69 changes: 0 additions & 69 deletions .github/persistence-context.md

This file was deleted.

75 changes: 75 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Claude Code Review

on:
pull_request:
types: [opened, synchronize]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"

# Direct prompt for automated review (no @claude mention needed)
direct_prompt: |
Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage

Be constructive and helpful in your feedback.

# Optional: Customize review based on file types
# direct_prompt: |
# Review this PR focusing on:
# - For TypeScript files: Type safety and proper interface usage
# - For API endpoints: Security, input validation, and error handling
# - For React components: Performance, accessibility, and best practices
# - For tests: Coverage, edge cases, and test quality

# Optional: Different prompts for different authors
# direct_prompt: |
# ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
# 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
# 'Please provide a thorough code review focusing on our coding standards and best practices.' }}

# Optional: Add specific tools for running tests or linting
# allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"

# Optional: Skip review for certain conditions
# if: |
# !contains(github.event.pull_request.title, '[skip-review]') &&
# !contains(github.event.pull_request.title, '[WIP]')

59 changes: 59 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"

# Optional: Customize the trigger phrase (default: @claude)
# trigger_phrase: "/claude"

# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"

# Optional: Allow Claude to run specific commands
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"

# Optional: Add custom instructions for Claude to customize its behavior for your project
# custom_instructions: |
# Follow our coding standards
# Ensure all new code has tests
# Use TypeScript for new files

# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test

6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ pnpm-lock.yaml
bun.lockb
bun.lock
.yarn/install-state.gz
package-lock.json

# testing
/coverage
Expand All @@ -32,10 +33,15 @@ yarn-error.log*

# local env files
.env*.local
.env
.dev.vars

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
.vscode/mcp.json
# Sentry Config File
.env.sentry-build-plugin
3 changes: 0 additions & 3 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 0 additions & 8 deletions .idea/prettier.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .todo

This file was deleted.

142 changes: 142 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Development Commands

### Development Server
- `bun run dev` - Start development server with Turbo
- Open http://localhost:3000 to view the application

### Database Operations
- `bun run db:generate` - Generate database migrations from schema changes
- `bun run db:push` - Push schema changes to database
- `bun run db:studio` - Open Drizzle Studio (database GUI)

### Build & Deployment
- `bun run build` - Build for production
- `bun run start` - Start production server
- `bun run lint` - Run ESLint checks

### Backend Development
- `bun run play` - Run backend playground script (`src/backend/play.ts`)

## Architecture Overview

### Technology Stack
- **Frontend**: Next.js 15 (App Router), React 19, TypeScript
- **Styling**: Tailwind CSS, shadcn/ui components
- **Backend**: Next.js API routes, Drizzle ORM
- **Database**: PostgreSQL
- **Authentication**: GitHub OAuth
- **Search**: MeilSearch
- **File Storage**: Cloudinary
- **State Management**: Jotai, React Hook Form with Zod validation

### Backend & Database
- **[SQLKit](https://github.com/sqlkit-dev/sqlkit)** - Very light sql query builder, we are using most of the sql query using this.
- **[Drizzle ORM](https://orm.drizzle.team/)** - Awesome sql tool but we are only using for migration
- **[PostgreSQL](https://www.postgresql.org/)** - Primary database
- **[Next.js API Routes](https://nextjs.org/docs/api-routes/introduction)** - Backend API

### Core Directory Structure

#### Frontend (`/src/app/`)
- Route groups using Next.js App Router:
- `(home)` - Main homepage and article feed
- `(dashboard-editor)` - Protected dashboard routes
- `[username]` - User profile pages
- `[username]/[articleHandle]` - Individual article pages
- API routes in `/api/` for OAuth and development

#### Backend (`/src/backend/`)
- **Domain Models** (`/domain/`) - Core business logic entities
- **Persistence** (`/persistence/`) - Database schemas and repositories
- **Services** (`/services/`) - Business logic actions
- **Input Validation** - Zod schemas for type-safe inputs

#### Component Architecture (`/src/components/`)
- **UI Components** - shadcn/ui based design system
- **Feature Components** - Domain-specific (Editor, Navbar, etc.)
- **Layout Components** - Page layouts and providers

### Database Schema Architecture

Key entities and their relationships:
- **Users** - User profiles with social authentication
- **Articles** - Blog posts with markdown content and metadata
- **Series** - Article collections/sequences
- **Comments** - Nested commenting system with resource association
- **Tags** - Article categorization
- **Bookmarks** - User content saving
- **Reactions** - Emoji-based reactions (LOVE, FIRE, WOW, etc.)
- **User Sessions** - Session management
- **User Socials** - OAuth provider connections

### Content Management
- **Rich Text**: Markdoc for markdown parsing and rendering
- **File Uploads**: Cloudinary integration for images/media
- **Search**: MeilSearch for full-text search capabilities
- **Internationalization**: Custom i18n implementation (Bengali/English)

### State Management Patterns
- **Server State**: Drizzle ORM with PostgreSQL
- **Client State**: Jotai for global state management
- **Form State**: React Hook Form with Zod validation
- **Environment**: Type-safe environment variables with @t3-oss/env-nextjs

## Required Environment Variables

Server-side:
- `DATABASE_URL` - PostgreSQL connection string
- `GITHUB_CLIENT_ID` - GitHub OAuth client ID
- `GITHUB_CLIENT_SECRET` - GitHub OAuth client secret
- `GITHUB_CALLBACK_URL` - OAuth callback URL
- `CLOUDINARY_URL` - Cloudinary configuration
- `MEILISEARCH_ADMIN_API_KEY` - MeilSearch admin API key

Client-side:
- `NEXT_PUBLIC_MEILISEARCH_API_HOST` - MeilSearch API host URL
- `NEXT_PUBLIC_MEILISEARCH_SEARCH_API_KEY` - MeilSearch search API key

## Key Features Implementation

### Authentication Flow
- GitHub OAuth integration via `/api/auth/github`
- User sessions managed in `userSessionsTable`
- Social provider connections in `userSocialsTable`

### Content Creation
- Rich markdown editor with drag-and-drop support
- Image upload and optimization via Cloudinary
- Article series management for content organization
- Tag-based categorization system

### Search Implementation
- MeilSearch for full-text search across articles
- Search configuration and indexing handled in backend services
- Client-side search interface with real-time results

### Community Features
- Nested commenting system with resource association
- Emoji-based reactions (LOVE, FIRE, WOW, etc.)
- User following and bookmarking functionality
- Social sharing and user profiles

## Development Workflow

1. Database changes require running `bun run db:generate` followed by `bun run db:push`
2. Backend logic testing can be done via `bun run play` playground script
3. Type safety is enforced through Zod schemas for all inputs
4. UI components follow shadcn/ui patterns and conventions
5. All forms use React Hook Form with Zod validation schemas
6. When querying data in component always use Tanstack Query.
7. When interacting with DB, create a action in `src/backend/services` and use sqlkit package (https://github.com/sqlkit-dev/sqlkit)
8. For Database schema reference look here for drizzle schema `src/backend/persistence/schemas.ts`

## Special Considerations

- **Bengali Language Support**: Custom font loading (Kohinoor Bangla) and i18n
- **SEO Optimization**: Dynamic sitemaps, Open Graph tags, and schema markup
- **Performance**: Next.js Image optimization, bundle splitting, and caching
- **Security**: Input validation via Zod, secure OAuth flow, environment variable validation
Loading
Loading