← All articles

The Frameworks and Platforms I Use for App Development, Front to Back

A snapshot of my default stack from Ionic and Angular through NestJS, AWS Lambda, and Firebase—useful when collaborating on B2C and B2B projects.

Published
The Frameworks and Platforms I Use for App Development, Front to Back cover image

There was a time when I used Bootstrap and PHP. What follows is a snapshot of today. The choices have mostly settled whether the product is B2C or B2B, so here is a short summary. Part of it is "this tech is great!" but it is mainly material I can share when collaborating.

Who Wrote This?

I am Representative Director of Relation Design Laboratory and representative of Ionic Japan User Group. I build my own products.

https://twitter.com/rdlabo

Frontend

UI Framework

I use Ionic Framework.

https://ionicframework.jp/docs/

This is a framework for mobile UI. On iOS you get components aligned with the HIG; on Android, Material Design. Lately most users of the apps I build access them on mobile, so instead of simply responsive layout I provide UI patterns users already know. I also like that you avoid div soup—the code stays readable (Custom Elements).

JavaScript Framework

I use Angular.

https://amzn.to/3mYrGp2

I have been a user since the AngularJS days. Angular manages versions with SemVer properly, and when breaking changes ship, ng update helps you migrate automatically—that is a huge plus for me. As a full-stack framework, being able to pick roughly ninety percent of libraries from the official ecosystem feels safe. Plus TypeScript by default.

Frontend Hosting

For web apps where each page needs its own OGP—magazine-style sites or PR pages—I use Netlify so I can prerender. For login-required apps that do not need OGP on every page (the top page is enough), I use Firebase Hosting. That side is more stable and fast.

https://www.netlify.com/

https://firebase.google.com/

Cross-Platform Library

I use Capacitor.

https://capacitorjs.jp/

Cordova regenerates all code from config.xml on every build, so one problem fails every build. Capacitor adds a platform once and then leaves that part alone, which is much more stable—I like that a lot.

Backend

Backend Framework

I use NestJS.

https://nestjs.com/

It was developed with inspiration from Angular, so the design feels familiar. I also like sharing types between backend and frontend.

Backend Server

This varies by project, but I use Lambda or Elastic Beanstalk.

https://aws.amazon.com/jp/lambda/

https://aws.amazon.com/jp/elasticbeanstalk/

Mostly Lambda. I use Elastic Beanstalk when Lambda cold starts hurt or when batch work needs more than fifteen minutes of runtime.

Database

I use MySQL.

https://amzn.to/3xa4sBg

That is only because I am comfortable with SQL—not a strong preference. If I were better at PostgreSQL, I would probably use PostgreSQL. I run it on RDS for automated backups and scaling that fits the service size.

Other

Authentication

I use Firebase Authentication. I do not want to manage user emails and passwords on my own servers, so I rely on BaaS.

Email

I use SendGrid. With AWS SES, mail often did not reach carrier email addresses, so I switched.

Deployment

I use GitHub, and Slack for communication most of the time. Deployments hook off version tags (x.x.x) with GitHub Actions. Production deploys without Git history are absolutely off limits.

https://zenn.dev/rdlabo/articles/1fda37f6e1025999e86e