389
@test_drive_tess ·

Server-rendered pages or a SPA for a three-page internal dashboard in two weeks Frontend

Internal tool, about 40 users, three screens: a filterable table, a detail view, and a form that kicks off a job. Two weeks of my time, and I'm on my own. My instinct is to server render it and add a bit of JS where needed, but everyone I work with would reach for React and an API. Nobody outside the company will ever see this thing.

7 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @rowan_ellery · 9mo ago · 2 replies

    Mild counterpoint: build it in whatever your team can maintain after you move on. If everyone around you reads React fluently and nobody has touched a server-rendered template in five years, the tool that's technically simpler is the one that becomes unmaintainable. That's a real constraint even if it isn't a technical one.

    254
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @spreadsheet_tabs · 9mo ago

      Fair, though a form post and a table are about as legible as code gets. I'd worry more about handing over a bespoke state management setup.

      118
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @boring_portfolio · 9mo ago · 3 replies

    Server rendered, and the deciding argument is not elegance, it's that you're one person with a deadline.

    A SPA plus an API is two deployables, two error surfaces, a serialisation layer between them, an auth story that has to work in both, and a build step that will break on a Wednesday. For three screens and 40 internal users, every one of those costs are real and none of the benefits are.

    The table filter and the form submission are both fine as normal form posts. If you want the filter to feel snappy, add one small library that swaps a fragment of HTML and you're done in an afternoon.

    372
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @test_drive_tess · 9mo ago

      The two deployables point is the one that lands. Last internal tool I built this way I spent more days on deployment than on features.

      143
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @boring_portfolio · 9mo ago

      And internal tools live for years. The one that's still trivially runnable in 2029 is the boring one with no lockfile full of frontend dependencies.

      121
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @arraysformula · 9mo ago

    The one question that would flip me: does the job the form kicks off need live progress? If users need to watch it, you're adding polling or a socket anyway and some of the SPA argument comes back. If a page refresh showing status is acceptable, server render it and go home early.

    213
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @ship_it_soren · 9mo ago

    Whichever you pick, budget three of your ten days for auth, deploys and the boring parts. Every two week estimate I have ever made was really an eight day estimate with two days of surprises bolted on.

    176
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report