kickflow Tech Blog

株式会社kickflowの開発チームによるブログ

oxlint を触ってみた

oxc のアイコン こんにちは。kickflow エンジニアの芳賀と申します。 Vue Fes Japan 2024 、多いに盛り上がりましたね。 私自身楽しみつつも大いに収穫があるものとなりました。 特に印象に残っていたのが oxc でした。 エコシステムの拡充が進みつつ、みん…

Kaigi on Rails 2024 に行ってきました

Kaigi on Rails 2024 プロダクト開発本部の渡辺です。 先日の「Vue Fes Japan 2024」に続き、「Kaigi on Rails 2024」にも参加しました。 kickflowでは、エンジニアの自己学習を積極的に支援しており、さまざまなカンファレンスに参加する機会を提供していま…

Vue Fes Japan 2024 に行ってきました

社内AIに描いてもらったVue Fes Japan 2024のイメージ図 初めまして、プロダクト開発本部の渡辺と申します。 kickflowに入社して数ヶ月が経ちました。 日々の業務で多くのことを学び、充実した毎日を送っています。 今回は「Vue Fes Japan 2024」というカン…

Wasmを触ってみた

A pop and cute eye-catch image for a WebAssembly (wasm) related blog (Bing の Image Creatorで生成) kickflowプロダクト開発本部の小本です。 kickflowでは週1でkickflowで使っている技術や今後kickflowで使いたい技術を紹介する勉強会を開いています…

ESLint を flat config に移行したときのお話

社内 AI にお願いして描いてもらった ESLint flat config のイメージ図 こんにちは。kickflow エンジニアの芳賀と申します。 今回は入社後初めて行った「ESLint の flat config 移行」についてお話します。 自身も久しぶりにガッツリ ESLint と向き合う機会…

RubyからJavaScriptコードを実行する方法

戦前、日本の鉄道網は連絡船を通じて樺太までつながっていた(本文には関係ありません)パブリックドメインの画像。wikimedia commonsより kickflowプロダクト開発本部の小本です。 今回はRubyからJavaScriptコードを実行する方法を調べてみました。

CloudConvertを使ってサーバーレスにファイル形式を変換する

江戸東京博物館 所蔵・浮世絵『漬物早指南』かつて漬物は各家庭で作るものであったが、近世以降は専門店が出店し、漬物を買う文化が生まれた(本編には関係ありません)。 こんにちは。プロダクト開発本部の小本です。 kickflowでは2024年2月からPDF形式で帳…

社内ドキュメントに対応したSlack AIボット(GPT-4o搭載)を開発した話

こんにちは、CTOの小林です。 ChatGPTをはじめとした生成AI、便利ですよね。素のChatGPTでも十分に便利なのですが、業務で使うには社内ドキュメントにも対応して欲しいと誰もが思うのではないでしょうか。すでにOpen AIのAPIを使って社内ドキュメントに対応…

JavaScriptで文字列の長さを正しくカウントする

文字列の長さをカウントするのは難しい こんにちは、CTOの小林です。 JavaScriptで文字列の長さをカウントする際、特にサロゲートペアや合字を含む場合には注意が必要です。この記事では、String.length、[...str].length、およびIntl.Segmenterを使用して文…

Active Storageのダイレクトアップロードのパフォーマンスチューニング

こんにちは。エンジニアの森本です。 kickflowでは、申請するチケットに対してファイルを添付することができます。これらをActive Storage のダイレクトアップロードを使って実現しています。 以前からファイルを大量に添付したチケットを申請すると、タイム…

kickflowでのRow Level Security導入: 成功事例と実装ガイド

kickflowでのRow Level Security導入事例と実装ガイド。データセキュリティ強化の具体例を紹介。

Elasticsearchのインデックス切り替えを無停止で行えるようにしました

こんにちは。エンジニアの森本です。 テキストでの全文検索はどのような仕組みを利用されていますか? kickflowでは、全文検索エンジンとしてElasticsearchを使っています。これまでは、1つのインデックスで検索を行っていたため、マッピングの変更時にダウ…

Nuxt 3への移行がもうすぐ終わりそうです

こんにちは、CTOの小林です。年々歳をとるにつれて、1年がどんどん短く感じるようになってきました。12月なんて体感で3日くらいしかないような気がします。 「師走」ということで、Stable Diffusionで生成した「走る師匠」の画像 kickflowではこの1年は通常…

Rails / PostgreSQL環境での連番の実装方法

こんにちは。株式会社kickflow・プロダクト開発本部の小本です。 今回は連番の実装方法についてです。

「JSON Schemaを知っている」人のための今どきJSON Schemaの紹介記事

最近はティラノサウルス科恐竜には羽毛があったとするのが定説(本文には関係ありません) こんにちは。株式会社kickflow・プロダクト開発本部の小本です。 最近、「設定をJSONファイルとしてエクスポート・インポートする機能」を実装する際にJSON Schemaを…

Kaigi on Rails 2023に参加してきました

こんにちは、エンジニアの森本です。 今回は先日開催された Kaigi on Rails 2023に参加してきたのでレポートを書きたいと思います。 Kaigi on Rails 2023は「初学者から上級者までが楽しめるWeb系の技術カンファレンス」 をコンセプトとして2020年から開催さ…

HerokuにLibreOfficeをインストールしてExcelをPDFに変換する

こんにちは、CTOの小林です。 kickflowにはExcel形式(.xlsx)で帳票出力する機能がありますが、これをPDF形式での出力に対応したいと思い調査しました。 kickflowではインフラにHerokuを使用しているため、HerokuでExcelをPDFに変換する方法を紹介します。

elsaticsearch-railsを使うのをやめた話

こんにちは、CTOの小林です。kickflowでは検索基盤としてElasticsearchを利用しています。kickflowのバックエンドにはRailsを採用しており、以前はElasticsearchの統合にelasticsearch-railsという公式gemを使用していたのですが、これを使用しなくなったと…

セキュリティチェックシートに効率的に回答する

こんにちは、CTOの小林です。 SaaS事業を展開している会社では、セキュリティチェックシートは避けて通れない存在です。セキュリティチェックシートは、導入企業(つまりお客様側)がシステムのセキュリティ評価に必要な情報を収集するための書類です。 弊社…

kickflowを支える技術スタック(2022年10月版)

こんにちは、CTOの小林です。株式会社kickflowではクラウドワークフローのkickflowというサービスを運営しています。今日は、このkickflowを支える技術スタックについてご紹介したいと思います。kickflowの開発環境に興味のある方や、これから新規サービスを…