SmartHR Tech Blog

SmartHR 開発者ブログ

フロントエンド

これって同じじゃないんですか? —— Redux で踏んだ shallowEqual と配列の落とし穴

こんにちは。2025年に新卒 0 期生として SmartHR に入社したプロダクトエンジニアのかずえもんです。SmartHR の様々なプロダクトの中で、私は届出書類機能の開発チームに所属しています。 届出書類機能は SmartHR の中でも歴の長いプロダクトで、状態管理ラ…

SmartHRのフロントエンドにご興味をお持ちの方へ

この記事は、SmartHRのフロントエンド領域にご興味をお持ちの方向けに、参考になりそうな情報をまとめたものです。 募集中の職種 SmartHR エンジニア採用ページにて、フロントエンドエンジニアを含む具体的な求人を掲載しています。ぜひご覧ください! Smart…

rspec-openapi × Orval で API クライアント生成を自動化 —— AI Agent で移行する

スキル・学習管理チームでプロダクトエンジニアをしている yamaguchi です。 本記事では、自前実装していたAPIクライアント(SWR + カスタムfetcher)を、rspec-openapiとOrvalを組み合わせて自動生成されたAPIクライアントに移行した取り組みについて紹介し…

React v18/v19が混在するモノレポで起きたバージョン不一致エラーへの対処

こんにちは、SmartHR の基本機能の開発を担当しているプロダクトエンジニアの sakata です。 先日、担当しているプロダクトのフロントエンドテストフレームワークを Jest から Vitest へ移行しました。 その過程で直面した、モノレポ(monorepo)における Re…

「TSKaigi 2025事後勉強会 —— まだまだ型りたい」を開催しました

こんにちは! SmartHRでプロダクトエンジニアをしているshiraです。 この記事では、先月開催した「TSKaigi 2025事後勉強会 —— まだまだ型りたい」の様子をお届けします。 TSKaigi 2025事後勉強会アイキャッチ 開催概要 6月6日にSmartHRで「TSKaigi 2025事後…

TSKaigi 2025レポート —— 協賛、参加、登壇

こんにちは!SmartHRでアクセシビリティエンジニアをしているtajimanです! SmartHRは、2025年5月23日〜24日に開催された「TSKaigi 2025」にBronzeスポンサーとして協賛し、7名が参加し、2名が登壇しました。 この記事では、イベントの模様と合わせて、プロ…

弊社のheading levelがめちゃくちゃだった件と 解決のためにしたことの話

こんにちは。プロダクトエンジニアの@atsushimです。 smarthrでは社内でひろくsmarthr-ui が利用されています。 大変便利なのですが、使っていく上で色々問題も発生し、その都度対応してきています。 今回は発生した問題の一つ、Headingのレベルがめちゃくち…

Next.js(Pages Router)で叶える"初期SSR+動的CSR"のアプリストア高速化

SmartHR Plusアプリストアのリニューアル事例を通じて、Next.js Pages Routerを活用した「初期SSR+動的CSR」構成によるパフォーマンス改善と拡張性の両立、現実的な技術選定のプロセス、実装の工夫を詳しく解説します。 Next.js Pages Routerでアプリストア…

再レンダーに時間がかかる画面のUXをuseDeferredValueで改善する

こんにちは!SmartHRプロダクトエンジニアのhimiです。 この記事ではコンポーネントの再レンダーに時間がかかるシーンで、useDeferredValueを活用してユーザー体験を改善した事例について紹介します。 解決したい課題 私のチームで開発しているスキル管理機…

ある日、フロントエンドエンジニア不在のチームに配属された俺達は

こんにちは。データ連携チームでフロントエンドエンジニアをしている ushiboy です。 この記事では、2024 年 9 月入社でチームに参加した筆者が、データ連携プロダクトのフロントエンドのコードベースで行なった半年間の取り組みについてご紹介します。 Smar…

アクセシビリティを考慮した階層構造のフォームUIをどう実現したか

こんにちは、SmartHR プロダクトエンジニアの ceris と gaha です。 複雑な UI コンポーネントの実装において、アクセシビリティの確保は難しい課題の1つです。 この記事では、smarthr-ui で提供している階層構造のフォーム UI コンポーネントについて、アク…

入社してわかったSmartHRのフロントエンドエンジニア

こんにちは、SmartHR プロダクトエンジニアの chanMisa と ushiboy です。 この記事では、SmartHR に入社したフロントエンドエンジニアの視点から、日々の業務や取り組み、開発体験を通して感じたギャップや魅力をお伝えします。 共同執筆者である私たち 2 …

SmartHR における、ESLint v9 と Flat Config への移行事例

本記事は、SmartHR Advent Calendar 2024 シリーズ 1 の 19 日目の記事です。 こんにちは。SmartHR プロダクトエンジニアの sasaki (@s_sasaki_0529) です。 この記事では、SmartHR が共通で利用する ESLint の設定パッケージを、ESLint v9 と Flat Config …

jQueryを使ったレガシー画面のReact化

このエントリは、SmartHR Advent Calendar 2024 シリーズ2の10日目の記事です。 こんにちは!SmartHRで基本機能の開発をしているプロダクトエンジニアのyamakeeeeeeeeenです。この記事では、基本機能のレガシー画面のリプレイスプロジェクトについてご紹介し…

Next.js App Router 初採用! 新規プロダクトでの採用理由と決定プロセス

こんにちは!プロダクトエンジニアのshiraです。 2024年6月にリリースした採用管理機能の開発をしています。 https://support.smarthr.jp/ja/info/update/v3gfgep-i/support.smarthr.jp 採用管理機能ではNext.jsのApp Routerを採用しています。SmartHRではこ…

SmartHRのフロントエンドの技術的変遷 ── 技術顧問のkoba04と語るこれまでとこれから

マルチプロダクト戦略を掲げてプロダクトを急速に増やし続けている SmartHR のフロントエンド領域について、2018年から SmartHR に参加しているフロントエンドエンジニアの nabeliwo と技術顧問の koba04 が、これまでの振り返りと今後の展望を話しました。 …

SmartHR のフロントエンドエンジニアはプロダクト開発以外で何をやっているのかという話

こんにちは!フロントエンドエンジニアの髙田です! 先日 @diescake から SmartHR UI の運用についての紹介がありました。 tech.smarthr.jp 今回は SmartHR のフロントエンドエンジニアがプロダクト開発以外で何をやっているのかを紹介したいと思います! Sm…