Go Straightforward Web Application Development.

I'm Ryota Murakami who lives in Tokyo. Currently working as a freelance React/Node/TypeScript developer. Here is my independent OSS organization.

Personal photo showcasing development work
Creative coding project snapshot
Technology workspace environment
Software engineering collaboration
Programming achievement highlight

GitHub Activity

  1. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · March 3, 2026 19:57
    2 commits to main
    • @ryota-murakami 93cdded
      feat: add Box and Flex components for flexible layout options
    • @ryota-murakami cb6ac27
      feat: enhance layout with Grid component and update Prettier configur…
    • 1 more commit »
  2. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · March 3, 2026 17:50
    2 commits to main
    • @ryota-murakami 9b6d3ac
      feat: enhance UI styling and add buttons for improved navigation
    • @ryota-murakami 21a9890
      feat: simplify footer component and introduce Grid component for layo…
  3. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:14
    🔴 #15 Drag & Drop List - 並び替え、アニメーション #28
    ## Drag & Drop List Component ### 実装ポイント - ドラッグハンドル付きリスト - 並び替えアニメーション(スムーズな位置交換) - ドラッグ中のプレビュー(ゴースト要素) - ドロップゾーンハイライト - 複数リスト間の移動(カンバン風) - タッチデバイス…
  4. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:14
    🔴 #14 Command Palette - ⌘K、ファジー検索 #27
    ## Command Palette Component ### 実装ポイント - ⌘K (Ctrl+K) グローバルショートカットで起動 - ファジー検索(部分一致、スコアリング) - グループ分け(Actions / Pages / Settings...) - ネストナビゲーション(サブ…
  5. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:13
    🔴 #13 Data Table - ソート、フィルタ、ページネーション #26
    ## Data Table Component ### 実装ポイント - カラムヘッダークリックでソート(asc/desc/none) - カラムフィルター(テキスト、セレクト、数値範囲) - ページネーション(ページサイズ変更可) - 行選択(単一/複数、チェックボックス) - カラムリサイ…
  6. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:13
    🔴 #12 Date Picker - カレンダーUI、範囲選択 #25
    ## Date Picker Component ### 実装ポイント - カレンダーグリッド表示(月ビュー) - 月/年ナビゲーション - 単一日付選択 - 範囲選択(start〜end、ホバーでプレビュー) - 今日ハイライト - 無効日付(min/max、特定日除外) - Input連携…
  7. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:13
    🔴 #11 Combobox / Autocomplete - フィルタリング、非同期検索 #24
    ## Combobox / Autocomplete Component ### 実装ポイント - テキスト入力 + ドロップダウンリスト - リアルタイムフィルタリング(クライアント側) - 非同期検索(debounce + loading状態) - 複数選択モード(タグ表示) - ハイライ…
  8. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:13
    🟡 #10 Dropdown Menu - ネスト、キーボードナビゲーション #23
    ## Dropdown Menu Component ### 実装ポイント - トリガークリックで開閉 - メニューアイテム(アイコン + テキスト + ショートカットキー表示) - Separator / Group / Label - サブメニュー(ネスト、ホバーで展開) - Checkb…
  9. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:13
    🟡 #9 Toast / Notification - スタック表示、自動消去 #22
    ## Toast / Notification Component ### 実装ポイント - 位置: top-right / top-center / bottom-right etc. - スタック表示(複数Toast) - 自動消去(タイマー + プログレスバー) - スワイプで削除 - …
  10. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:12
    🟡 #8 Dialog / Modal - オーバーレイ、フォーカストラップ #21
    ## Dialog / Modal Component ### 実装ポイント - オーバーレイ(背景暗転 + クリックで閉じる) - フォーカストラップ(Tab循環) - ESCで閉じる - 開閉アニメーション(fade + scale) - スクロールロック(body scroll防止) -…
  11. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:12
    🟡 #7 Accordion - 開閉アニメーション #20
    ## Accordion Component ### 実装ポイント - 単一展開(type="single")/ 複数展開(type="multiple") - スムーズな高さアニメーション(CSS transition or framer-motion) - デフォルト展開指定 - Chev…
  12. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:12
    🟡 #6 Tabs - アニメーション付きインジケーター #19
    ## Tabs Component ### 実装ポイント - タブ切り替え with アニメーション付きアクティブインジケーター(スライド) - Controlled / Uncontrolled モード - 水平 / 垂直レイアウト - Disabled タブ - アイコン + テキスト タ…
  13. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:12
    🟢 #5 Switch / Toggle - アニメーション付き #18
    ## Switch / Toggle Component ### 実装ポイント - ON/OFF トグル with スライドアニメーション - サイズ: sm / md / lg - ラベル付き(左 or 右) - Disabled状態 - カスタムカラー(ON時の色) ### アクセシビリテ…
  14. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:11
    🟢 #4 Tooltip - ホバー表示、位置制御 #17
    ## Tooltip Component ### 実装ポイント - トリガー: hover / focus - 位置: top / bottom / left / right(自動フリップ) - 表示遅延(delayDuration) - Arrow(矢印)付き - Rich content対…
  15. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:11
    🟢 #3 Avatar - 画像、フォールバック、サイズ #16
    ## Avatar Component ### 実装ポイント - 画像表示(`` with lazy loading) - フォールバック: イニシャル表示(名前から自動生成) - フォールバック: デフォルトアイコン - サイズ: xs / sm / md / lg / xl - Avata…
  16. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:11
    🟢 #2 Badge - ステータス表示、色バリエーション #15
    ## Badge Component ### 実装ポイント - Variants: default / secondary / destructive / outline - カスタムカラー対応 - ドット付きバッジ(ステータスインジケーター) - サイズバリエーション - Removable…
  17. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · March 3, 2026 02:11
    🟢 #1 Button - variant, size, loading, icon #14
    ## Button Component ### 実装ポイント - Variants: primary / secondary / ghost / destructive / outline - Sizes: sm / md / lg - Loading状態(spinner + disabled…
  18. @ryota-murakami ryota-murakami starred JedWatson/react-select · March 2, 2026 21:28

    The Select Component for React.js

    TypeScript 28.1k Updated Jul 11, 2025

  19. @ryota-murakami ryota-murakami opened an issue in laststance/redux-strorage-middeware · March 2, 2026 15:55
    Implement storage version management and migration support #4
    ## Summary `PersistedState` has a `version` field reserved for future use, but no version management logic is implemented. The JSDoc examples refer…
  20. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · March 2, 2026 23:07
    1 commit to main
  21. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 19:26
    1 commit to main
    • @ryota-murakami 8fd6066
      feat: extract hex color regex to improve maintainability of validations
  22. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/board-preset-templates in laststance/gitbox · March 2, 2026 18:47

    Updated Mar 2

  23. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 18:47
    2 commits to main
    • @ryota-murakami 54ed200
      feat: add board preset templates for status list columns
    • @ryota-murakami 65e6bb8
      Merge pull request #161 from laststance/feat/board-preset-templates
  24. @ryota-murakami ryota-murakami merged laststance/gitbox#161 · March 2, 2026 10:47
    feat: add board preset templates for status list columns #161

    Summary

    • Add 6 board preset templates (Software Release, Web App, Electron Desktop, CLI Tool, Mobile, macOS) for selecting column layouts when crea…
    +447 -57
    4 comments
  25. @ryota-murakami ryota-murakami opened laststance/gitbox#161 · March 2, 2026 10:33
    feat: add board preset templates for status list columns #161

    Summary

    • Add 6 board preset templates (Software Release, Web App, Electron Desktop, CLI Tool, Mobile, macOS) for selecting column layouts when crea…
    +447 -57
    4 comments
  26. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · March 2, 2026 18:33
  27. @ryota-murakami ryota-murakami opened an issue in laststance/gitbox · March 2, 2026 09:51
    Refactor: Move lastVisitedBoard from raw localStorage to Redux (boardSlice) #160
    ## Summary `BoardPageClient` が `localStorage.setItem('gitbox:lastVisitedBoard', ...)` で直接 localStorage に書き込み、`MaintenanceClient` が `localStorage.ge…
  28. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 17:40
    1 commit to main
    • @ryota-murakami 04852e4
      fix: update Sidebar component class names for consistency
  29. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 17:27
    1 commit to main
    • @ryota-murakami b99ecd5
      feat: update public paths to include privacy and terms routes
  30. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 11:12
    1 commit to main
    • @ryota-murakami 8c30ee1
      fix: downgrade ESLint to v9 and fix import paths
  31. @ryota-murakami ryota-murakami pushed to laststance/gitbox · March 2, 2026 10:55
    2 commits to main
  32. @ryota-murakami ryota-murakami merged laststance/laststance.io#1584 · March 1, 2026 02:09
    feat: design system overhaul — responsive typography, primitives migration, Storybook docs #1584

    Summary

    • Responsive typography: 3-step scale (mobile → tablet → desktop). Body text: 16px → 18px → 20px for Apple.com-style readability
    • WCAG AA con…
    +1,258 -1,437
    5 comments
  33. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/design-system-overhaul in laststance/laststance.io · March 1, 2026 10:09

    Updated Mar 1

  34. @ryota-murakami ryota-murakami pushed to laststance/laststance.io · March 1, 2026 10:09
    2 commits to main
    • @ryota-murakami a99d8b9
      feat: comprehensive design system overhaul with responsive typography…
    • @ryota-murakami ef877e0
      fix: restore responsive prose body/lead sizes across breakpoints
    • 1 more commit »
  35. @ryota-murakami ryota-murakami pushed to laststance/laststance.io · March 1, 2026 09:59
    1 commit to feat/design-system-overhaul
    • @ryota-murakami ef877e0
      fix: restore responsive prose body/lead sizes across breakpoints
  36. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/v2.0 in laststance/awake · February 27, 2026 18:40

    Updated Feb 27

  37. @ryota-murakami ryota-murakami merged laststance/awake#1 · February 27, 2026 10:40
    feat: @laststance/awake v2.0 #1

    Summary

    • Pure type-only (.d.ts) package making built-in JavaScript APIs type-aware with zero runtime cost
    • Superset of @total-typescript/ts-reset — …
    +2,444 -0
    11 comments
  38. @ryota-murakami ryota-murakami pushed to laststance/awake · February 27, 2026 18:40
    2 commits to main
  39. @ryota-murakami ryota-murakami pushed to laststance/awake · February 27, 2026 18:39
    1 commit to feat/v2.0
    • @ryota-murakami 8554d45
      fix: align array entrypoint docs with comparison table
  40. @ryota-murakami ryota-murakami pushed to laststance/awake · February 27, 2026 18:35
    1 commit to feat/v2.0
    • @ryota-murakami 6534598
      fix: resolve CodeRabbit review findings
  41. @ryota-murakami ryota-murakami opened laststance/awake#1 · February 27, 2026 10:24
    feat: @laststance/awake v2.0 #1

    Summary

    • Pure type-only (.d.ts) package making built-in JavaScript APIs type-aware with zero runtime cost
    • Superset of @total-typescript/ts-reset — …
    +2,444 -0
    11 comments
  42. @ryota-murakami ryota-murakami created a branch in laststance/awake · February 27, 2026 18:24
  43. @ryota-murakami ryota-murakami created a branch in laststance/awake · February 27, 2026 18:24

    Updated Feb 27

  44. @ryota-murakami ryota-murakami opened laststance/laststance.io#1584 · February 27, 2026 09:24
    feat: design system overhaul — responsive typography, primitives migration, Storybook docs #1584

    Summary

    • Responsive typography: 3-step scale (mobile → tablet → desktop). Body text: 16px → 18px → 20px for Apple.com-style readability
    • WCAG AA con…
    +1,258 -1,437
    5 comments
  45. @ryota-murakami ryota-murakami created a branch in laststance/laststance.io · February 27, 2026 17:24
  46. @ryota-murakami ryota-murakami pushed to laststance/laststance.io · February 27, 2026 15:57
    1 commit to main
    • @ryota-murakami 725f635
      fix: update Storybook dependencies for improved compatibility and fea…
  47. @ryota-murakami ryota-murakami deleted branch refs/heads/test/e2e-storybook-coverage-gaps in laststance/gitbox · February 27, 2026 06:42

    Updated Feb 27

  48. @ryota-murakami ryota-murakami merged laststance/gitbox#159 · February 26, 2026 17:09
    test: add E2E and Storybook coverage for SPEC.md gaps #159

    Summary

    • Add 6 new E2E spec files (~30 tests) covering previously untested SPEC.md features: public board access, account profile/stats, command pa…
    +1,506 -64
    10 comments
  49. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 27, 2026 01:09
    2 commits to main
    • @ryota-murakami cfbcc63
      docs: update README, CLAUDE.md, SPEC.md to reflect current codebase s…
    • @ryota-murakami 03f3eff
      test: add E2E and Storybook coverage for SPEC.md gaps
    • 2 more commits »
  50. @ryota-murakami ryota-murakami released v0.1.1 of laststance/mac-mcp-server · February 26, 2026 17:07

    Fix

    • Screenshot output size reduction — Reduced default parameters to stay within Claude's MCP tool result character limit:
      • maxDimension: 1600px → 1200px
      • maxFileSize: 1.8MB → 500KB
      • jpegQuality: 85…
    Read more
  51. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 27, 2026 00:23
    1 commit to test/e2e-storybook-coverage-gaps
    • @ryota-murakami 92766db
      refactor: resolve CodeRabbit nitpick suggestions
  52. @ryota-murakami ryota-murakami opened laststance/gitbox#159 · February 26, 2026 16:01
    test: add E2E and Storybook coverage for SPEC.md gaps #159

    Summary

    • Add 6 new E2E spec files (~30 tests) covering previously untested SPEC.md features: public board access, account profile/stats, command pa…
    +1,506 -64
    10 comments
  53. @ryota-murakami ryota-murakami created a branch in laststance/gitbox · February 27, 2026 00:01
  54. @ryota-murakami ryota-murakami opened an issue in laststance/utils · February 26, 2026 15:58
    chore(deps): upgrade ESLint to v10 #1071
    ## Summary ESLint 10.0.2 was released on 2026-02-06. Currently pinned to v9.39.3 because the ecosystem is not yet compatible. ## Blockers | Depende…
  55. @ryota-murakami ryota-murakami pushed to laststance/utils · February 26, 2026 23:50
    1 commit to main
    • @ryota-murakami e65d2e4
      fix(ci): make gmail-clone page dynamic to avoid build-time DB access
  56. @ryota-murakami ryota-murakami pushed to laststance/utils · February 26, 2026 23:47
    2 commits to main
    • @ryota-murakami e1ecd21
      fix(next-react): update recharts types and remove deprecated eslint rule
    • @ryota-murakami c7afd1f
      chore(deps): update all packages to latest versions
  57. @ryota-murakami ryota-murakami pushed to laststance/skills · February 26, 2026 21:17
    1 commit to main
    • @ryota-murakami e5ec592
      refactor(load): remove project_overview dependency from session init
  58. @ryota-murakami ryota-murakami starred vercel-labs/portless · February 26, 2026 10:51

    Replace port numbers with stable, named .localhost URLs. For humans and agents.

    TypeScript 3.2k Updated Feb 27

  59. @ryota-murakami ryota-murakami starred tomkp/react-split-pane · February 25, 2026 22:31

    React split-pane component

    TypeScript 3.4k Updated Feb 28

  60. @ryota-murakami ryota-murakami starred better-auth/better-hub · February 25, 2026 22:29

    Re-imagining code collaboration for humans and agents

    TypeScript 974 Updated Mar 3

  61. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:05
    [Learn] Building Design Components with Action Props using Async React #10
    ## 📖 Reference https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/ **Author:** Aurora Scharff | **Publis…
  62. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Dynamically Generating PWA App Icons in Next.js 16 with Serwist #9
    ## 📖 Reference https://aurorascharff.no/posts/dynamically-generating-pwa-app-icons-nextjs-16-serwist/ **Author:** Aurora Scharff | **Updated:** Nov…
  63. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Implementing Next.js 16 'use cache' with next-intl Internationalization #8
    ## 📖 Reference https://aurorascharff.no/posts/implementing-nextjs-16-use-cache-with-next-intl-internationalization/ **Author:** Aurora Scharff | **…
  64. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Building an Async Combobox with useSuspenseQuery() and useDeferredValue() #7
    ## 📖 Reference https://aurorascharff.no/posts/building-an-async-combobox-with-usesuspensequery-and-usedeferredvalue/ **Author:** Aurora Scharff | *…
  65. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Server and Client Component Composition in Practice #6
    ## 📖 Reference https://aurorascharff.no/posts/server-client-component-composition-in-practice/ **Author:** Aurora Scharff | **Published:** August 5…
  66. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Building Reusable Components with React 19 Actions #5
    ## 📖 Reference https://aurorascharff.no/posts/building-reusable-components-with-react19-actions/ **Author:** Aurora Scharff | **Published:** April …
  67. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Avoiding Server Component Waterfall Fetching with React 19 cache() #4
    ## 📖 Reference https://aurorascharff.no/posts/avoiding-server-component-waterfall-fetching-with-react-19-cache/ **Author:** Aurora Scharff | **Publ…
  68. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Managing Advanced Search Param Filtering in the Next.js App Router #3
    ## 📖 Reference https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/ **Author:** Aurora Scharff | **Published:**…
  69. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Handling Form Validation Errors and Resets with useActionState() #2
    ## 📖 Reference https://aurorascharff.no/posts/handling-form-validation-errors-and-resets-with-useactionstate/ **Author:** Aurora Scharff | **Publis…
  70. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-modern · February 25, 2026 16:04
    [Learn] Implementing Feature Flagging with the Next.js App Router #1
    ## 📖 Reference https://aurorascharff.no/posts/implementing-feature-flagging-with-nextjs-app-router/ **Author:** Aurora Scharff | **Published:** Sep…
  71. @ryota-murakami ryota-murakami created a branch in ryota-murakami/next-modern · February 25, 2026 23:52
  72. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 23:37
    1 commit to main
    • @ryota-murakami 592f44b
      fix: wrap navigation links in a div for better layout structure on th…
  73. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 23:21
    1 commit to main
    • @ryota-murakami 3540f91
      fix: remove unnecessary focus-visible styles from TabButtonUnderline …
  74. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 23:18
    1 commit to main
    • @ryota-murakami 04e851c
      feat: add tab navigation with home and posts components for improved …
  75. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 25, 2026 14:03
    Implement Boxed / Card Tab Button Style #13
    ## Overview Implement the **Boxed / Card style** tab button — the default pattern used by shadcn/ui Tabs component. ## Design - Active tab has `bg-…
  76. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 25, 2026 14:03
    Implement Pill / Segment Tab Button Style #12
    ## Overview Implement the **Pill / Segment style** tab button — modern pattern used by Vercel dashboard, iOS Segmented Control, etc. ## Design - Ac…
  77. @ryota-murakami ryota-murakami opened an issue in ryota-murakami/next-play · February 25, 2026 14:03
    Implement Underline Tab Button Style #11
    ## Overview Implement the **Underline (下線) style** tab button — the most common pattern used by GitHub, Material Design, Google, etc. ## Design - A…
  78. @ryota-murakami ryota-murakami pushed to laststance/react-next-eslint-plugin · February 25, 2026 21:00
    1 commit to main
    • @ryota-murakami 6c829d0
      chore: update devDependencies for improved performance and compatibility
  79. @ryota-murakami ryota-murakami pushed to laststance/react-next-eslint-plugin · February 25, 2026 20:58
    1 commit to main
    • @ryota-murakami 706885f
      chore: remove Volta configuration from package.json
  80. @ryota-murakami ryota-murakami pushed to laststance/eslint-config-ts-prefixer · February 25, 2026 18:18
    1 commit to main
  81. @ryota-murakami ryota-murakami pushed to ryota-murakami/next-play · February 25, 2026 20:16
    2 commits to main
    • @ryota-murakami 1343f9e
      chore: update pnpm-lock.yaml to reflect new dependencies and ensure c…
    • @ryota-murakami d411d7c
      refactor: encapsulate main layout in a reusable Main component for Ho…
  82. @ryota-murakami ryota-murakami deleted branch refs/heads/feat/bulk-issues-20260226 in laststance/gitbox · February 25, 2026 19:16

    Updated Feb 25

  83. @ryota-murakami ryota-murakami pushed to laststance/gitbox · February 25, 2026 19:16
    2 commits to main
  84. @ryota-murakami ryota-murakami merged laststance/gitbox#158 · February 25, 2026 11:16
    refactor: decompose NoteModal + extract useEditableUrl hook (#151, #152) #158

    Summary

    • #151: Decompose NoteModal into NoteSection + LinkManager + useNoteModalDraft hook
    • #152: Extract useEditableUrl hook from EditableUrlItem (…
    +998 -659
    16 comments