元エンジニアPMのプロダクトマネージャーお役立ち情報

スタートアップから大規模プロダクトまで担当している元エンジニアの筆者が、事業開発・プロダクトマネジメントに役立つ情報を発信します

GoogleフォームとNotionを連携させる方法【真似するだけ】

この記事 Google Spread SheetのデータをNotionにプログラミング無しで貯める方法 背景 最近Notionでデータ管理やドキュメント管理してプロダクト開発することが増えてきましたよね、プロダクトマネージャーとしても使えるようにならなきゃいけないプロダク…

ユーザーファーストは額面通りに受け止めちゃいけない

プロダクト開発の際にユーザーファーストで考えれば、マネタイズやビジネス観点、収益性などは気にしなくても良い的な発言を受けますがやっぱり間違っているよなーと。 もちろんプロダクトを長く継続して使ってもらうために向き合うべきはユーザーなのは変わ…

TikTokのシェアを促すユーザー体験が勉強になった

CtoCのサービスをやっているとコンテンツをどうシェアさせるか?ユーザーがシェアしたくなる気持ちに持っていくかを考えるのは昔からある不変なテーマ。 ユーザーがシェアしてくれれば、広告費をかけずにユーザーを集められるのでCtoCサービスやメディアを始…

React Nextで、静的htmlファイルをアップロードする

すんごい小さなことですが、実装中にあれ?これどうやるんだ?ってなったので備忘録的にメモをしておきます。 余談ですが最近ウェブサイト作るときは、React Nextで実装してSSG(next export)したりすることがほとんどです。 やりたいこと facebook広告のドメ…

【気になるプロダクトとジョブ考察】smartLure Model Zero

釣りは、水中の中を想像し試行錯誤する世界なので、デジタルで解き明かすアプローチは面白いな〜っと 個人的には海釣りに対応したモデルが出たら欲しいと思うのですが、釣りに夢中になっているときほど画面を見ない+釣りをしている人が、釣りのときにまでス…

Reduxで@@INITで初期Stateは設定しないほうが良い

tl:dr; Reduxで初期Stateに値を入れる際は、@@INITを使わないほうが良い。 (後で調べたら、アンチパターンらしい) 下のように初期Stateを@@INIT時に渡すように設定していたら、 Production状態でINITがスルーされており正しく読み込まれていないことが判明…

Laravelで作成した会員制サービスをGA上で会員・非会員でセグメントする

Laravelで作成したSPAの会員制サービスで、会員と非会員のユーザーのログを測定するためのメモです。 やったこと 会員と判定するためにカスタムディメンションを作成 GTMでPV測定時にカスタムディメンションを測るように設定 Laravel側でログイン状態をチェ…

css animationのリスタートを行う場合のハック

tl:dr; Reactなどで、css animationをかけている要素に対して、 中身の小要素が変わったときにサイドアニメーションをリスタートさせる方法 課題 propsが変更されても、中身が変わるだけなのでアニメーションは再実行されない。 const animTarget = (props:P…

BigQueryの「Bad int64 value」のエラーを回避する【CASTとSAFE_CASTの違い】

SQL

目的 BigQueryでNULLや空白があるカラムをintに変換する方法 背景 BigQueryで、吐き出したいカラムがIntかNullのときCastしようとするとBad int64 valueのエラーが発生する 例えば、以下のようなJSONをRDB型式に吐き出したいとする。 { { id: 1, name: "トマ…

FirestoreのGeoFireStoreで、任意の値をwhereで絞るクエリでハマった件

GeoFireStoreのMap型をwhereで絞るクエリで躓いたので、メモ。(30分くらいハマった) やりたかったこと GeoFireStoreで、別途保持している任意の値をwhereで絞り込みたい。 https://geofirestore.com/index.html interface GeoDocument { g: string; l: G…