Vue+Railsで作るWebメディアとライターのためのコラボレーションサービス

with コメントはまだありません

ClickanはWebメディア myd(マイド) を運営していて、主に京都在住のライターさんやイラストレーターさんに記事を書いてもらっている。

mydを始めたころはメンバーが少なかったから、記事やそのレビューのやりとり、記事代金の請求なんかはSlackとGoogle Drive、その他諸々のツールを使ってなんとかなっていた。

だけれど人が増えてくるにつれてバラバラのツールチェインでやりくりしていくことがど〜〜〜にも大変になってきた(´༎ຶོρ༎ຶོ`)

そんなわけで、Webメディアとライターさん向けのコラボレーションサービスを作りました!Matesと名付けました。

 

Matesってどんなサービス?

記事の執筆、レビュー、記事の進捗確認、文字数のカウント、請求を1サービスでやれます。

これまで、記事を書く→Google DriveにファイルアップしてSlackで連絡してもらっていたのだけれど、人によってファイル形式が違ったり、人が増えてSlackの連絡が混線状態になっちゃったりしていた。あと記事ごとに今どんな状態か(執筆中か、レビュー中か、公開済みなのか)も把握しづらかった。

そんなような諸々は運用でカバーできるんだけれど、せっかくなので1プラットフォームで全部解決できるサービスを作ってみた次第。チーム管理みたいなことも出来ます。

自分で自分の課題を解決するサービスを作るのはサイコーにテンションあがる。

現在はmydでPrivate βとして運用している。

 

Matesの構成

フロントエンドはVue.js by ES6、APIはRails5をAPIモードで使っていて、両方ともHerokuで運用している。

今はPrivate βだからあまり肩の凝らないつくりだけれど、今後他社さんにも使ってもらったり、スマホアプリから使えるようにしたりする中でスケールアップ+Serverless化をする予定。

 

開発Tips

一番お手軽にVueする方法

今回は1週間でサクっと作ってサクッとPrivate βに持って行きたかった。だけれどみなさん知っての通り最近のWeb開発ときたら真面目にやると環境構築だけで消耗してしまう。

そこで意識の低いご提案。VueのUIテンプレートを見つけてきて、それを元に開発すればいいのだ。

というのも、そうしたUIテンプレートはDemo用にビルドが出来るようになっているから、環境構築をすっ飛ばせて楽なのだ。

Vue UI あたりで調べると色々出てくるから、権利関係が大丈夫なもの(大抵、GitHubリポジトリのRead meに書いてる)を持ってきてそれベースで開発を進めよう。

Vueの実装に慣れていない場合ならなおさらこの方法がオススメ。先人の実装を参考に出来るからだ。

 

VueをHerokuにデプロイする方法

まだあんまり知見がない?ようでちょっと困った。だけど、WebpackでVueをビルドするためのボイラープレートをGithubで公開しているSagar Jauhariさんの以下の記事がそのものズバリな内容だった。

Quick-n-clean way to deploy Vue + Webpack apps on Heroku

この記事をまとめるとデプロイ手順は以下のとおり

  1. Vueをビルド (npm run build → 成果物はdistディレクトリへ)
  2. ビルド成果物をheroku上で動かすための処理を用意する (dist/server.js)
  3. server.jsを動かすためにexpressをインストールする処理を用意する (dist/package.json)
  4. ビルド成果物をherokuにdeploy (git subtree push –prefix dist heroku master)

各々のプロジェクトでdistが違ったり色々差異はあるけれど、大まかには上記のとおり。4番までうまくいけば、後はherokuが自動でexpressをインストールし、server.jsを走らせてくれる。

 

Matesの今後

そんなこんなでPrivate βが動き出したMatesは使い勝手の向上や機能追加なんかのタスクが大量に控えている。記事の執筆から請求まで一貫して出来るようになったらLPこさえてPublic βにしようと思っている。現状は記事執筆とチーム管理、記事レビューまでが出来る。Private βに参加してくださる方はどしどしご連絡ください→ Contact

 

ところでこれぐらいの規模の開発でもShellコマンドを色々駆使するもの。何回も使うものはMicrosoftのOneNoteにメモしているけれど、プロジェクトごとに管理できたらなあと思うから、ElectronでマルチプラットフォームなShellコマンド管理アプリ作ろうかな。Todoistライクなやつ。