Weekly Update #24: Last Full Free Week

This is a summary of my sabbatical's development for the week of July 18th, 2020 to July 25th, 2020.

Goals from last week

No goals from previous week. Starting off this week with a clean slate (more or less).

What I got done this week

  • Created basic dashboard layout @ app.test.paintcreeksoftware.com
    • Added proper redirection for base routes (e.g. /account -> /account/center)
    • Templated UI for account settings
    • Templated sample dashboard analysis view to work in production

Metrics

  • Weeks to launch (primary KPI): ? (1 week after product development begins)
  • Users talked to total: 0

RescueTime statistics

  • 77h 7m (38% productive, 3% increase from previous week)
    • 37h 24m “utilities”
    • 20h 9m “software development”
    • 6h 21m “uncategorized”
    • 5h 45m “communication & scheduling”
    • 4h 43m “news & opinion”

A tad misleading; RescueTime does not show any breakdown for windows opened in Google Chrome, it just says google-chrome. I needed to use Google Chrome in order to test mobile DevTools (which is slightly more accurate than testing on Firefox), and for WebRTC support for Focusmate sessions. google-chrome is marked as “highly unproductive”, hence the lower score.

Kind of worrying nonetheless, especially how 38% productivity is a 3% increase from the previous week. I do badly need a reset.

iPhone screen time (assumed all unproductive)

  • Total: 27h 31m
  • Average: 3h 55m
  • Performance: 40% increase since last week

Hourly journal

https://hourly-journal.yingw787.com

Goals for next week

  • Connect user login/registration to backend API
  • Add route protection based on user management (public-only routes like /user/login and /user/register, and private-protected routes like /dashboard)
  • Add billing screen
  • Connect billing screen to Stripe checkout workflow
  • Template + add remaining sample screens to sample application.

Things I've learned this week

  • ant-design-pro isn't too bad. I think my problem in developing apps is, I keep telling myself that end-user clients are meant to be cheap in the grand scale of things, even though they do require some amount of up-front investment in order to work.

    The tricky thing about webapp, JavaScript-based frameworks isn't “real”, computer-science-y problems, but rather things like internationalization, state management, error handling and validation, browser compatibility (especially on mobile), mobile-friendly UI/IX, and a bunch of other things that just have to be done correctly once. Then maintained as security vulnerabilities show up in older packages…

    It's a lot of grunge work, and I think the practical solution would be to start off with something that kind of works and subtract / modify content until I get what I really want vs. build something entirely from scratch. That way, I have something working off the bat to show to people, while still having the flexibility to change things under the hood.

    So I switched away from developing my own framework to using ant-design-pro from yarn create umi, V4, complete, JavaScript.

    There are things I don't like about ant-design-pro. It uses customized frameworks like umi (Chinese version of Next.js) and dva (Chinese version of Redux), and since they're all made by the same small set of companies, there's a lot of interop and tight coupling involved. It's an enterprise framework, so there does appear to be more focus on features rather than things like code quality or lack of console errors. I think V4 is already deprecated in favor of V5, though the feature set of V5 isn't as complete as V4.

    But it's free and open-source, for both the base and extended version, with no onerous licensing scheme. It's easy enough to use and modify. All the features do work out of the box. There's a design system already in place, which makes adding extensions easy enough. Best of all, there's a company, or a collection of companies, backing the product (and dogfooding it as well). So I'm not complaining.

Subscribe to my mailing list