キカガク プラットフォームブログ

株式会社キカガクのプラットフォームブログです。エンジニアやデザイナー、プロダクトマネージャーなどが記事を書いています。

「Plasmo Framework」で俺得 Chrome 拡張機能をサクッと作ってみる

はじめに はじめまして。キカガクプラットフォーム部の ずんだ です。 最近個人開発で Chrome 拡張機能を作っていて、Plasmo Framework というライブラリを使ってみたところ超絶便利だったので、布教したいです。 想定読者 React を使ったことがある人 Plasm…

CDNを導入して表示速度を爆速にしてみた

はじめに 背景と取り組みの内容 コンテンツ 画像 ファイル管理・アップロード CDN導入後のパフォーマンス おわりに はじめに はじめまして、キカガクでプロダクトマネージャーをしている丸山です。 今回は私がソフトウェアエンジニアをしていた頃に、キカガ…

Firestore を使用したアプリケーションのパフォーマンス改善

こんにちは、キカガク for Business のエンジニアをしている 上野 です。 今回は数万ユーザー規模の会社への導入に備えて Firestore を使用したアプリケーションのパフォーマンス改善に取り組んだので、その紹介記事になります。Firestore を使用したアプリ…

【CSS】もう悩まない!レスポンシブ対応

こんにちは、キカガク ソフトウェアエンジニアの平田です。 CSS のレスポンシブ対応って、大変ですよね。 調べても、こうすれば良い!の指針が意外と出てこない、経験値でカバーすることが求められる領域だと感じています。 PC オンリーの想定で実装を進めて…

CTO としての 3 年間 ~組織作りと開発の狭間で~

はじめに 皆さんこんにちは、株式会社キカガク CTO の祖父江です。今回はメンバーからの発案で「全員採用!発信するぞ!」ということで弊社プラットフォーム部(プロダクト開発に関わるチーム)のメンバー全員でブログを執筆します。文章を書くことから離れ…

キカガクを支える API Gateway

弊社に必要な導入要件 Google API Gateway の選定 実際のアーキテクチャ 苦労した点 ヘッダーのトークンが上書きされてしまう問題 OpenAPI 2.0 を使用している点 まとめ 株式会社キカガクの北田です。 今回はキカガクのバックエンドとインフラストラクチャを…

株式会社キカガク エンジニア 社内勉強会 イベントレポート

「普段勉強している内容を共有してみよう」と言う軽い発案から、キカガク社内では勉強会を5月に開催しました。 その結果、一回の勉強会ではなく「週次勉強会」に変更する運びになり、 半年ほど継続的に勉強会を行うことができました。 今回はこの「週次勉強…

SWR でローディング処理を最適化してみる

こんにちは。キカガクプラットフォーム部の石橋です。 キカガク for Business ではクライアントフェッチのライブラリとして SWR を採用しています。 SWR の使いこなし術として、SWR 2.0 から追加されたオプションのひとつである keepPreviousData を使いロー…

デザイナーがチームになったら最初にやること

株式会社キカガクのプロダクトデザイナーの松田です。 1人目デザイナー時代から採用を経て、デザイナー2名と業務委託デザイナー2名と計4名のチームとしての動きだしが始まりました。 しかし、1人体制だった時の運用をチームで同じようにやろうとしてもうまく…

キカガクの事業を支える技術

プラットフォーム部(旧開発事業部)の ソフトウェアエンジニアの dascarlet です。今回は我々プラットフォーム部のエンジニアがどんな技術でどのように事業を支えているかを弊社のプロダクトと共にご紹介したいと思います。大部分は Google Cloud を利用し…

Next.js と NestJS を利用し、 kikagaku.ai の管理アプリを立ち上げた話

プラットフォーム部(旧開発事業部)の dascarlet です。今回は Next.js と NestJS を利用し、 kikagaku.ai の管理アプリを立ち上げた話をします。ここで言う管理アプリとは、弊社の社員・講師がお客さまのデータを閲覧したり、必要な操作を行えるアプリケー…

キカガク for Business のフロントエンドパフォーマンス向上への取り組みについて

こんにちは、キカガクソフトウェアエンジニアの石橋です。 今回はキカガク for Business でのフロントエンドパフォーマンス向上への取り組みに関して共有したいと思います。 キカガク for Business は主にアプリの画面構成を2つに分けることができます。 学…

Chakra UI ユーザーが Tailwind CSS を使った時に戸惑ったことと対処法

はじめに こんにちは、キカガク ソフトウェアエンジニアの柳澤です。 普段の開発では Chakra UI を使っているのですが、先日1ヶ月だけ Tailwind CSS を使って開発を行いました。Chakra UI を触ってきたエンジニアが Tailwind CSS を触って戸惑ったことと・良…

SQL にどっぷり浸かってきたマンが初めて Firestore を触った時に受けた5つの衝撃

バックエンド環境を提供するサービスとして今や名高い Firebase。 使ってみたいけど・・・ データベースが NoSQL 。 触ったことないしなあ。ちょっと敷居が高いなあ・・・。 そんなあなたに。 SQL に累計5年以上浸かってきた開発チームの新顔古川が初めて Fi…

Chakra UI カスタムフック 便利度ランキング

こんにちは、キカガク開発事業部ソフトウェアエンジニアの柳澤です。 キカガクではReactのUIコンポーネントフレームワーク「Chakra UI」でスタイリングを行っています。 Chakra UI にはスタイルシステムだけでなく、コンポーネントやカスタムフックが多く用…

react-beautiful-dnd でドロップ時のアニメーションをスキップする

はじめに こんにちは。開発事業部でエンジニアをしている西村です。 かなりピンポイントですが、今回は react-beautiful-dnd を使用してドラッグ&ドロップを実装する際に、ドロップ時のアニメーションをスキップする方法についてご紹介します。 ※本記事では…

RDB 脳の私が NoSQL に挑戦して苦しんだ末に導き出した設計書のベストプラクティス

こんにちは!株式会社キカガクの開発事業部でソフトウェアエンジニアをしている塚井です。RDB 脳の私が NoSQL に挑戦して苦しんだ設計書についての話を書こうと思います! 対象読者 NoSQL の設計書をどうまとめるか悩んでいる方向けの記事となります。 概要 …

kikagaku.ai のフロントエンドディレクトリ構成

こんにちは、キカガクでエンジニアをしている北田です。 今回は私達がリリースしている学習プラットフォーム「kikagaku.ai」 のフロントエンドのディレクトリ構成を紹介していきます。 対象読者 フロントエンドに寄せた開発チームのディレクトリ設計を考えて…

Cloud Firestore セキュリティ ルールを GitHub 上で管理し、GitHub Actionsでデプロイする

開発事業部の dascarlet です。今回は Cloud Firestore セキュリティ ルールを GitHub で管理するように変更し、GitHub Actionsからデプロイできるようにしたお話をします。 経緯 今までのセキュリティルールの運用では以下のような改善できる点がありました…

ライブラリ依存症に陥った話

こんにちは!株式会社キカガクの開発事業部でソフトウェアエンジニアをしている塚井です。数ヶ月前からフロントエンドエンジニアとなるべく奮闘中です。今回はそんな中で経験したライブラリ依存症に陥った話を書きたいと思います! 対象読者 今回伝えたいこ…

Chakra UI 小技集

ReactのUIコンポーネントフレームワーク、 Chakra UI を使って自在なデザインを作るための小技集をご紹介します。

AI・機械学習 E ラーニングプラットフォーム【キカガク】の Nuxt.js → Next.js 技術リプレイスの話

はじめに こんにちは、株式会社キカガクでエンジニアをしている北田です。 ついにキカガク開発チームでも技術ブログを開設しました!(祝) 先日、私たちが提供する E ラーニングプラットフォーム【キカガク】は Vue (Nuxt.js) → React (Next.js) への技術刷…

algolia の indexing 失敗と修正方法について

はじめに algolia とは 機能実装の上で発生した問題と修正方法 algolia の制限 発生した問題 修正方法 おわりに はじめに こんにちは、開発事業部でソフトウェアエンジニアを担当している藏野です。主にフロントエンドを担当しており、新規機能開発や改善を…

受け入れの際にやっていただいて嬉しかったこと

はじめに やっていただいて嬉しかったこと <入社前> 使用技術についてしっかりと説明する。そのおすすめの勉強法も伝える。 メンターを付けて、入社までの学習もフォローする。 <入社から業務に入るまでのインプット期間> ゴールから逆算して習得すべき知識…

キカガクの技術スタックと選定理由

はじめに TL;DR システム概要図 フロントエンド TypeScript Next.js Chakra UI Jest × Firebase Local Emulator Suite バックエンド Firebase Firebase Authentication GCP (Google Cloud Platform) GKE を採用していない理由 悩んでいること データ分析基盤…

AWS Amplify から microCMS に変更した話

この記事で学べること ヘッドレス CMS のように使える「AWS Amplify」と純粋なヘッドレス CMS である「microCMS」を使った結果、なぜ microCMS を選んだのか こんにちは!株式会社キカガクの開発事業部でソフトウェアエンジニアをしている塚井です。数ヶ月…

BigQuery のデータセットとテーブルを整理整頓する

前提 状況 整理整頓 Step0: 前提知識 Step1: 整理の軸を決める Step2: 仕様を整理する Step3: 手段の整理 結論 おわりに こんにちは、開発事業部で PM をしている丸山です。 キカガクでは昨年夏に GCP を中心としたデータ基盤へ移行しました。 データ基盤で…

キカガクの事業と支える開発組織 -キカガクエンジニアブログ開設に寄せて-

キカガクの事業 キカガクが考える教育 開発組織について マイクロチーム×横断チーム スクラム開発の導入 おわりに こんにちは、キカガク CTO の祖父江です。キカガクは AI・機械学習の会社と面接で言われることも多いのですが、「あるべき教育で人の力を解放…