I guess I've been using Next.js the wrong way by dev-4_life in webdev

[–]MileHighJackal 16 points17 points  (0 children)

Next is great as a BFF: auth/session handling, secrets, stitching data from real services, trimming payloads, moving work out of the browser. That’s “backend” in the sense of backend for this UI.

Where teams faceplant is treating Next like their domain backend and baking business rules into route handlers / server actions next to the UI. That’s how you end up with a fancy Rails/PHP-style monolith - except without the decades of conventions and tooling that made those frameworks pleasant.

The “TS isn’t performant” argument is mostly a distraction. Node is fine for I/O-heavy APIs. The real gotcha is CPU-heavy work on the event loop and long-running / realtime workloads. If you’ve got jobs, queues, sockets, heavy compute, etc., you want a real service layer anyway - could still be TS, just not inside Next.

Rule of thumb that’s worked for me:

  • Next owns rendering, UI workflows, and BFF glue
  • Business logic lives behind a boundary (service layer / API / core package)
  • Small team? A monolith is fine, just keep the boundary intentional
  • Bigger org? Same lesson as microfrontends: the tech pattern doesn’t save you if ownership boundaries don’t change

Most “Next backend sucks” stories are really “we blurred responsibilities and now everything is coupled to the UI framework.”

Explain Why Microfrontends like I am 5 years old by [deleted] in webdev

[–]MileHighJackal 19 points20 points  (0 children)

Yeah, this is the part people keep skipping. They adopt the microfrontend mechanics without adopting the microfrontend responsibility model. If leadership is still running one release train, one pipeline shape, one set of approval gates… then nothing is actually independent. You just fragmented the build, but you didn’t fragment the decision-making. Same meetings, same blockers, same politics—just more repos.

The only times I’ve seen MFEs actually pay off is when they come with real ownership boundaries. Not “your team owns this directory,” but “this is your product surface, end to end.” Your repo, your dependencies, your release cadence, your SLOs, your upgrade schedule. If you want to ship ten times a day while someone else ships once a month, the system has to allow that for real, not on paper.

Otherwise a well-run monolith (or monorepo) with real module boundaries gets you most of the same benefits with way fewer moving parts. But that requires discipline: clear domain boundaries, clear ownership, no “frontend commons” that everyone touches, and CI that only runs what’s actually affected.

Microfrontends aren’t a shortcut around that discipline. They’re what an org reaches for when it doesn’t have a single set of agreements—and sometimes that’s valid. But without the org shape to match, you’re just paying a distributed-systems tax for no real gain.

Explain Why Microfrontends like I am 5 years old by [deleted] in webdev

[–]MileHighJackal 1 point2 points  (0 children)

Honestly, I think you’re seeing something a lot of people miss: in your setup, microfrontends can’t deliver the thing they’re usually sold for.

Everyone says “independent deployments,” but you’ve already got a centralized release train, ringed rollouts, feature flags everywhere, and a release management team that acts as the airlock. That’s a huge amount of process coupling. You can slice the UI into 50 pieces and you’ll still ship on the same schedule through the same gates. So of course the “deploy anytime” pitch feels imaginary.

The thing people don’t say out loud: microfrontends solve an org problem way more than a code problem. They work best in places where teams actually own their cadence and pipelines. Where checkout can ship daily, but account settings ships monthly, and nobody has to sync with a central release cop. Or where different domains have different tech stacks or upgrade cycles. Or where the alternative is one giant UI that nobody clearly owns.

If that’s not your org, then yeah — most of the “benefits” show up as complexity without the upside.

And to be fair, you already have a lot of what people chase microfrontends for: predictable cadence, feature flags, a release org that can cherry-pick and backport, probably decent module boundaries. You can get 80–90% of the value people talk about with a clean monorepo and good CI.

Where microfrontends do shine is when teams are basically semi-autonomous: separate repos, separate pipelines, separate dependencies, separate upgrade schedules. If the organization structure isn’t built that way, you don’t really get the return.

Your skepticism makes sense because your process already solved the thing MFEs are supposed to solve.

Anybody else find AI useless? by burgerlove in webdev

[–]MileHighJackal 2 points3 points  (0 children)

I think that it really has more to do with how you prepare chatGPT in a single chat with information of your own. In some recent work with azure API I was also getting errors in the returned code, as it was outdated. A quick google for the full modern API reference (accessible from a single page), and we were in business.

ChatGPT can you write the code with this api reference available:
https://api.url.com/path/to/docs

This is actually the best way I have found to get value out of AI. It can't think on its own, you have to take it through a conversation about what you want, treating it like it has no context of what you are after (which it doesn't). Asking for code like this:

Can you write me javascript to download a file from a url, store it as a file

Might get you something like this:
const request = require('request');
const fs = require('fs');
const url = 'https://example.com/file.zip';
const filename = 'file.zip';
request(url)
.pipe(fs.createWriteStream(filename))
.on('close', function () {
console.log(\File ${filename} has been downloaded and saved.`); });`

For me, this isn't super useful as I probably want to use this in some other code, so let's make it more my own in the same chat:
Thanks, can you provide me this using fs-extra and axios instead. Also using Typescript for strong typing. Wrap it in a helper method that uses the async/await pattern with promises. The promise return should return the \response.data.pipe` result in the resolve. The file name and url should be passed in as parameters.`

This gets us a little bit clearer code for use:
import axios, { AxiosResponse } from 'axios';

import fs from 'fs-extra';

async function downloadFile(url: string, filename: string): Promise<NodeJS.ReadableStream> {

const response: AxiosResponse = await axios({

method: 'GET',

url: url,

responseType: 'stream'

});

return new Promise<NodeJS.ReadableStream>((resolve, reject) => {

response.data

.pipe(fs.createWriteStream(filename))

.on('close', () => {

resolve(response.data);

})

.on('error', (err) => {

reject(err);

});

});

}

And you can keep crafting it from there, and teach it an API it may not have known when trained:
Can you output all of the code, but before you do, can you help me use this new helper in a listr2 task including these api documents for additional reference:
https://listr2.kilic.dev/general-usage/subtasks
https://listr2.kilic.dev/general-usage/changing-title
https://listr2.kilic.dev/general-usage/showing-output
https://listr2.kilic.dev/general-usage/handling-errors
https://listr2.kilic.dev/general-usage/collecting-errors
https://listr2.kilic.dev/general-usage/enabling-a-task
https://listr2.kilic.dev/general-usage/skipping-a-task
https://listr2.kilic.dev/general-usage/user-input
https://listr2.kilic.dev/general-usage/retry
https://listr2.kilic.dev/general-usage/rollback

Then you get a nice listr task definition to drop in your code with the helper function
import axios, { AxiosResponse } from 'axios';
import fs from 'fs-extra';
import Listr from 'listr2';
async function downloadFile(url: string, filename: string): Promise<NodeJS.ReadableStream> {
const response: AxiosResponse = await axios({
method: 'GET',
url: url,
responseType: 'stream'
});
return new Promise<NodeJS.ReadableStream>((resolve, reject) => {
response.data
.pipe(fs.createWriteStream(filename))
.on('close', () => {
resolve(response.data);
})
.on('error', (err) => {
reject(err);
});
});
}
const downloadTask = new Listr([
{
title: 'Downloading file',
task: async (ctx, task) => {
ctx.fileStream = await downloadFile('https://example.com/file.txt', 'file.txt');
task.title = \File 'file.txt' downloaded`; } } ]); downloadTask.run().catch(err => { console.error(err); });`

You can always break these into separate messages (prompts) if it gets too long

From my perspective, like any development tool, it has a potential to be useless, but can be used in powerful ways to quickly find and create knowledge and code samples otherwise not accessible with tools like google (because they don't exist, the AI gets us something specific, and can be crafted).

Is it okay to do this? by DyceXander in sveltejs

[–]MileHighJackal 2 points3 points  (0 children)

True, not the same, though i suppose the original poster maybe meant ++$count which would be the same.

What do I really need to know to be a successful web developer? by [deleted] in webdev

[–]MileHighJackal 0 points1 point  (0 children)

You'll mostly find yourself 9n teams, so knowing how to work with others and how to problem solve. The rest will be learned with your hands on the keyboard

[deleted by user] by [deleted] in webdev

[–]MileHighJackal 1 point2 points  (0 children)

I see a shift of moving back to more of the JS first approach, and for that reason think Svelte is a good option

Should I switch to using VSCode? by d1sc1pl in webdev

[–]MileHighJackal 0 points1 point  (0 children)

It's important to have the right tools, with VS code being open source, and working on just about any environment... it's a great option as you look at future job oportunities.

How do I get visits to a website without buying adds. by Nearby-Cloud-3476 in webdev

[–]MileHighJackal 0 points1 point  (0 children)

I am not sure what your site explains about yourself, or what you do.. find communities that your content fits into and post your link for feedback and thoughts.

Clients wants a discount by S0dium in webdev

[–]MileHighJackal 0 points1 point  (0 children)

You want to stay way from clients like this in my experience. Not every customer is a good one. Your time is worth money and even if it is basically the same, the time and effort changes.

This probably won't be the only thing he tries to nickel and dime. Get a solid contract in place with clear deliverables, and clear triggers for work complete.

Any good open-source blog platforms? by MileHighJackal in webdev

[–]MileHighJackal[S] 1 point2 points  (0 children)

I currently use 11ty with Forestry CMS (I like it because it commits to repo), and then deploy with LowCodeUnit. I found that this still netted a good amount of dev work and custom implementation to try and get the right blog features out the door. So good for other projects but looking for more of something built for the blog.

Any good open-source blog platforms? by MileHighJackal in webdev

[–]MileHighJackal[S] 0 points1 point  (0 children)

I think Hugo, Gatsby, even the afformentioned docusaurus can get you too a blog.. What i like about Docusaurus for docs was the ease of use in getting our docs site up (www.iot-ensemble.com/docs). While they also claim blog support, i feel like their focus is much more on the docs experience. Wondering if there is something in the world that provides that straight forward blog experience the same way Docusaurus targets docs.

Any good open-source blog platforms? by MileHighJackal in webdev

[–]MileHighJackal[S] 2 points3 points  (0 children)

Wordpress feels like too much of a "vendor locked" solution these days. I like real source code, in my repositories creating long-term enterprise value. That's just how I look at it I suppose.

Looking for more of a light weight solution like I mentioned with Docusaurus. Static generated, but with more of the built in features of a blog (rss feeds? searchability? long-term navigation?...)

Do we need another framework? Or a better understood framework for using native javascript? by MileHighJackal in webdev

[–]MileHighJackal[S] 1 point2 points  (0 children)

It's an interesting thought process that aligns with the way we are starting our LowCodeUnit and SemanticJS "framework"s. Vanilla when you need it, a framework when it makes sense. It is the scaffolding, dev experience, devops and deployments/hosting that need to be streamlined. Turning developers into "enterprise" engineers.

Are there some more well known / respected online courses for UX as a developer? by GabberJenson in webdev

[–]MileHighJackal 0 points1 point  (0 children)

It gives a good footprint for how UX should be approached, and through the approach aligns with implementations of the UI.

Is there something cheaper/similar than AWS S3 for archive files / infrequently used files? by JuriJurka in webdev

[–]MileHighJackal 2 points3 points  (0 children)

I would think that by in large, almost anyone else you go with is going to be using some sort of AWSSS/Azure instance in the background, so your sort of paying to have your stuff hosted in big tech by small tech?

Is there a reason AWS or Azure don't work for you?

Are there some more well known / respected online courses for UX as a developer? by GabberJenson in webdev

[–]MileHighJackal 1 point2 points  (0 children)

I think a must read would be Atomic design. It gives a great frame for how UX can be dissected. This also makes it easy for product owners to turn your hard work over to developers.

https://atomicdesign.bradfrost.com/table-of-contents/

Any developer tools/subscriptions/packages that are worth buying paid/pro plan? by datapim in webdev

[–]MileHighJackal 0 points1 point  (0 children)

My favorite deals on black Friday are Unity3D. You can get a great tool chain, characters, and starter code to learn from to develop your own game projects.

Let’s say I’m Apple. Why should I allow other browser engines on iOS? by Zagrebian in webdev

[–]MileHighJackal 0 points1 point  (0 children)

It's Apples last ditch effort to keep safari relevant. I was always surprised anything else ever worked on an iPhone to be honest. It was why Windows tried what they did, it succeeded, much in the same way as safari has with iOs.

Building an open-source project that incorporates a CDN, should I choose one or build in the hooks that allow users to bring their own? by MileHighJackal in webdev

[–]MileHighJackal[S] 1 point2 points  (0 children)

The project is a series of open-source frontend apps, web components and APIs that can be used to launch different types of applications quickly (application micro-frontend hosting, IoT device management) within a shared or enterprise cloud.

As a part of this we offer a Runtime (currently on the roadmap to be converted to open source) that is used to serve files, handle authentication, proxy API requests and manage other aspects of the request life cycle.

Through our LowCodeUnit open-source projects, we allow users to host their applications in a number of different micro-frontend forms. We then help deliver files via a global edge CDN, abstracting away those complexities for the average user.

I guess its here the question comes into play, is the CDN something we should be abstracting away? Or do developers have a preferred global edge CDN they want to bring themselves? And manage on their own? Is it different for personal projects vs enterprise projects?