Simon Chiu

Building Eager.app, a customer support platform

Added a version tracking for articles in

Adding some sort of rollback ability to the app.

Added a hotkey to send messages: CMD+Enter

Trying to match the key bindings of Gmail with that of the messages view in the Eager app.

Created autosave feature for

I've been dogfooding my own work for the last 4 months, and really hated it when I accidentally close my browser's tab in the middle of typing a message. Enter... AUTOSAVE. Now I can go back to where I left off... 😊

6 hour coding lessons learned: Never EVER suffix any models in Rails with the words "autosave".

Fixed bugs. Fighting with unit tests. Not looking good. Fixtures are destroying me right now.

Fixed JS widget loading multiple times when site uses things like Turbolinks

Testing in production for an old app. Can't be bothered with waiting for CI to finish.

Simon Chiu Author

Alright, nothing's broken so far upon refreshing page.

0 Likes

Just won a fight with JavaScript.

Helen

😂

0 Likes

I praise this infinitely

0 Likes

Fixed some development set up for Rails.

Been coding in Rails since version 2. New things keep getting released and didn't release that running webpacker with the main thread would make things so much slower.

Finally done Stripe integration.

Took about 2 days, but very happy with the result: [1] Handles per seat pricing [2] Uses Stripe's prorate feature to credit unused time [3] Syncs with Stripe for plan features (via metadata).

FIXED A RENDERING BUG.

Working on an email that renders externally received emails is challenging. There are so many quirks in how emails are formatted. Definitely this is the "secret sauce" in building apps like these.

If you're working on something that needs to render emails (that you receive), feel free to ping me and I'd be happy to share what I know.

What did I just do. Registered a domain for (yet another) side project.

Added functionality to send email alerts when password is changed or if user is logging in from new IP address.

Added a modal during onboarding to let users decide what emails they want to receive from us.

I had already added this to the user preference section, but I figure onboarding might be a good time to let the users choose as well.

Added search functionality to a part of the app

Search / filtering is one of those useful (but really, really boring) parts of the app to add. Here, I added a filtering ability for posts that users create. It uses JavaScript to detect keyup events and sends searches to the server.

Added a blog post. Working on SEO for that long term organic growth.

Fixed responsive layout.

Always tricky to deal with responsive layouts when using JavaScript to style the elements. Tip: Use window.matchMedia("(max-width: 992px)");

Completed basic customization of help widget for

How I did this: Loaded the widget as a preview within an iFrame, used a color picker library (https://www.npmjs.com/package/@simonwep/pickr). On the backend, the widget loader JS pulls the preferences dynamically via JSON and colors are updated using vanilla JS.