開発– category –
-
PR TIMESの改善文化を支えるリファクタリングデー
開発
こんにちはバックエンドエンジニアの中山です。 今回はPR TIMESで継続的に実施しているリファクタリングデーについて紹介したいと思います。PR TIMESでのリファクタリングデーの進め方や他部署との連携、どのようなリファクタリングを行っているかを紹介します。 【リファクタリングデーとは】 PR TIMESでは毎月1回リファクタリングやライブラリのバージョンアップ、デッドコード削除など、外から見た挙動が変わらない変更のみを実施する日としてリファクタリングデーという取り組みを行なっています。 日々新規機... -
社内デザインシステムMCPとFigma MCPを活用したゼロから作らない開発
開発
こんにちは。2025年の9月に中途で入社しましたフロントエンドエンジニアの白濱(@shiraha_maru)です。社内デザインシステムのMCP化、Figma MCPを活用して入社1ヶ月目からスムーズに開発を進められる体制作りを行いましたので紹介します。 【背景】 現在PR TIMESではUI刷新のプロジェクトが進行中で、私も入社後にこのプロジェクトへ参画しました。このプロジェクトでは、Figmaのデザインをもとに社内デザインシステムのコンポーネントを使って実装を進めます。 しかし、入社して間もないため既存コードや文脈の理... -
PR TIMESのフロントエンド環境に typescript-go を導入し、typecheck を高速化する
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 先日 PR TIMES のフロントエンド環境に typescript-go を導入し、 tsgo( typescript-go の実行コマンド) で typecheck を実行するようにしました。その結果、typecheck の実行時間が最大で 9 倍速くなったので、導入に向けて行った対応と結果をご紹介します。 【typescript-go とは】 typescript-go は Microsoft によって Go 言語で書き直されている TypeScript のコンパイラです。TypeScript 7 からはこのコンパイラが使用される予定で、... -
新規APIの実装でPATCHメソッドを使用しないようにしました
開発
こんにちは、フロントエンドエンジニアの小張(@kobari41257)です。 今回は特定環境で一部機能が動作しない事象の対応として、PATCHメソッドを使ったAPIをPOSTメソッドに置き換え、新規実装ではPATCHメソッドを使わないという意思決定を行ったことについてご紹介します。 【「メディアリストが保存できない」というお問い合わせ】 先日「メディアリストを保存しようとするとエラーが発生する」というお問い合わせを複数件いただきました。 メディアリスト機能についてメディアリストとは、プレスリリースを届けた... -
Fastlyの設定を手動操作してTerraform Stateが壊れた話と復旧方法
開発
こんにちは、バックエンドエンジニアの田中 湧大 (@Romira915)です。 今回は、Terraformで管理しているFastlyの設定をコンソールから直接変更したことがきっかけで、TerraformのStateが壊れてしまった事例を紹介します。 この記事では、実際にどう復旧したのか、何を学んだのかを共有します。 【】 PR TIMESでは、Fastlyの設定をすべてTerraformでコード化して管理しています。 運用フローは以下のとおりです。 Pull Requestを作成 → GitHub Actionsが terraform plan を実行 問題なければmainにマージ → terrafor... -
@axe-core/playwrightの導入で実現するHTML全体のアクセシビリティ品質担保
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 PR TIMESのフロントエンドではこれまで、MarkuplintやStorybook Testを用いたアクセシビリティ(a11y)テストを実施してきました。以下の記事はMarkuplintを導入した際の記事になります。 https://developers.prtimes.com/2025/03/10/markuplint/ しかし、PR TIMESではReactを利用して開発を行っているため、これまではコンポーネント単位での品質担保が中心となっていました。そこで、@axe-core/playwrightを導入し、HTML全体のa11y品質もチ... -
PR TIMESのOpenSearchをバージョンアップしました
開発
こんにちは。バックエンドエンジニアの筒井(@tsuttsun_wind)です。PR TIMESの検索は、OpenSearchに支えられています。今回、OpenSearchのバージョンを1.3から2.19に上げる対応を行いました。この記事では、経緯や移行方法、移行中に発覚した改善が必要な実装などを交えて紹介していきます。 【背景】 弊社のインフラは主にAWSを利用しています。 OpenSearchはAWSで展開されているOpenSearch Serviceを利用していて、バージョン1.3で運用していました。 最近、OpenSearch Serviceのドメインが一部EOLになることが... -
プレスリリースアワードマイページの技術スタック ~ Hono × React Router SPA Mode のフルスタック TypeScript による効率的な開発 ~
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 PR TIMES では 2021 年からプレスリリースアワードを開催しており、1 年間の内に日本で発表されたプレスリリースの中から、社会性・公共性・共感性・将来性等の視点から、プレスリリースの可能性拡大に貢献したものを審査・選考し、表彰しています。 https://prtimes.jp/pressreleaseawards 今年から新たな取り組みとして、プレスリリースアワード用のマイページをリリースしました。開発にあたっては、フロントエンドとバックエンドの両方で ... -
複雑化したプレスリリース検索の関数を安全に移行する
開発
こんにちは。PR TIMESでインターンを行っている鐘ヶ江 航です。レガシーコードの改善を中心に、バックエンド開発を行っています。 今回はそのレガシー改善の一環として、複雑化したプレスリリース検索の関数を改善した例についてご紹介します。 【背景】 PR TIMESには、一部のバッチ処理などで使われているプレスリリース検索関数が存在します。 検索関数はRSSフィードの作成にも用いられています。PR TIMESのRSSは、転載先メディアとの連携にも使われている、重要な機能の1つです。具体的には1時間に2回、それぞ... -
ソースコード改竄検知ツールkekkaiの設計と導入・運用
開発
PR TIMESでCTOをやっている金子 (@catatsuy) です。 ソースコードの改竄を検知する仕組みを自作してOSSとして公開しました。 https://github.com/catatsuy/kekkai PR TIMESでは、レガシーなPHPアプリケーションをEC2で運用しています。セキュリティインシデントに備えて、ソースコードの改竄を検知する仕組みが必要でした。 既存のツールでは我々の要件に合わなかったため、自作することにしました。 今回はその自作した新しいツールの設計思想・開発方針・導入について説明します。 【前提】 PR TIMESのアプリケ...
