Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

1mo ago

Hi there,

There is another way of localization -> you can find in detail information here: https://laravel.com/docs/12.x/localization

Basically, you can edit those default files, but I would advise against editing the default files unless your app trully needs (the localization parts).

Best regards

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

1mo ago

Hi there,

First that comes to mind is Laravel + Inertia (Vue or React) - it is super easy to make such things with components and props that refresh on change (Inertia is super good for this).

Maybe check those out.

Best regards.

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

1mo ago

Hi,

For dev/staging/prod environments I really suggest you try out Docker containers, as it allows you to mimic all the different server setups. If you have a client that already has a server (controlled hosting or a VPS) you can mimic their setup, even install docker on it and not worry about the environment.

As for the staging part itself, my workflow is to have a subdomain with all of the llms.txt, robots.txt, even hardcoded ips in the .htaccess so that I am sure that noone that is not allowed access the staging environment.

Hope it helps a tad bit.

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

4mos ago

Hi @snapey ,

Thank you for those words of wisdom. Those two lines - "Do not assume they cannot afford it" and "They are not paying you to do the job, they are paying you so that they do not have to do the job" - pure revelations, shifting my mindset when it comes to thinking of bureaucracy.

Yes, the experience part is what I am struggling a bit, but that will come with time (and actual work).

Do you write detailed specifications or just a high overview of the minimal functionalities? Do you do them in word/pdf or some other helper software?

Thank you so much for this.

Mega_Aleksandar's avatar

Mega_Aleksandar liked a comment+100 XP

4mos ago

you have to invest some time to create sales, whether that is writing proposals, attending calls, research, etc etc.

So some of what you earn has to be put to one-side to reinvest to win more business in the future.

This is all down to experience unfortunately, both in sizing of the project and knowing which projects to chase.

Early in my career, someone said something to me that has stuck and that I remind myself over and over "Don't assume they can't afford it". Its far better to let them tell you your price is too high than to make the assumption and cut your price before you even ask.

Also when pricing remember, they are not paying you to do the job, they are paying you so that they don't have to do the job.

Regarding contracts and specifications, you don't have to repeat it, just have the contract reference the specification(s) (versioned).

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

4mos ago

Ah, that is a nice one, getting paid for specification (the discovery phase) - that way, even if you do not land the project, you got something for your time. That is a perfect one I have not even considered.

Yeah, if the client picks you for the project, you can decide if you want to give them a "discount" since they already paid for the proposal and specification.

Nice, thank you so much for this, this is going into my SOP :)

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

4mos ago

The real issue here is time - how/when do I stop myself from doing unpaid research/discovery for a project that I might not even get? I mean, in order to provide a proposal, I need to know that I can actually do it - depending on client requirements.

Technically, if I need more than 1.5h to prove to myself that I can do it, it is a sign I probably should not do it right? ;)

Outlining the problem (the executive summary), timeline, pricing - all of that I am good and can be confident, but it is the outline of the solution that sometimes gives a nail into my own coffin - scope creeps because of my own words, not clients - that is what I want to figure out.

Thank you for your reply @vincent15000

Mega_Aleksandar's avatar

Mega_Aleksandar liked a comment+100 XP

4mos ago

To get clients, the approach depends on the country where you work, marketing can need to respect some rules / laws specific to the country.

You say that some words can be interpreted differently by the clients, that's why it's important to sign specifications where you describe all what will be developed with concrete examples. You also need to speak with the client before signing the specifications and inform him / her about all what is important.

Effectively there can be situations where you have to work more, sometimes to work less. More you are precise in the specifications, less there will be possible interpretation.

Mega_Aleksandar's avatar

Mega_Aleksandar started a new conversation+100 XP

4mos ago

Hello everyone,

Apologies in advance if I am out of place here with this kind of question.

If you know a better place to ask it, let me know, but you guys are all I've got.

As I am diving deeper into the business world, coding is not enough, understanding systems is not enough. How do I actually get a client, hook them to sign the contract, make the proposal and contract complement each other, not being the same document all over again?

I am trying to bridge a commercial gap here, because I am alone in this and I tend to either explain everything in a proposal or too little. Other times I get bitten by couple of broad words that are too wide and clients tend to catch them or interpret them differently than intended and then I have to work more or develop a feature that sometimes completely changes the output etc.

Thank you for your time and best regards

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

4mos ago

As Lary pointed out, in Inertia, it is common to have the authenticated user in a "shared" prop, that gets passed around on each request.

Usually it is done in the App\Http\Middleware\HandleInertiaRequest.php in the share method of the class.

'auth' => [
                'user' => $request->user(),
            ],

If you look at the source code, it does not even check if the user is authenticated or not - the user has been identified by the session cookie and retrieved from the database, so Inertia has that information, thus showing it in all requests. If you utilize the auth()->check() and properly null it, there will be no information left for Inertia to serve.

Hope this helps.

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

5mos ago

Hi there @tom-kwon ,

I cannot help you with the current error/issue you are having, but I would like to suggest you to use docker and figure out that environment - it solves everything, as the environment is confined in a container (no issues with windows/linux/macos).

Best regards,

Aleksandar

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

5mos ago

Hello,

This bit is the issue:

output: { manualChunks(id) { // sépare toutes les dépendances node_modules dans un chunk vendor if (id.includes("node_modules")) { return "vendor"; } }, }, }, }, });

If you are already overriding the output, you have to also be explicit about what to do with your own files.

Also, as @carlbidwell268 pointed out, remove the build directory manually before build, remove vite cache from node_modules (sometimes it can cause troubles if you saved too fast, changed too little), reinstall vite if needed to purge it, disable a plugin at a time, see which one causes the extra hash appending to the file name.

Hope it helps.

Mega_Aleksandar's avatar

Mega_Aleksandar wrote a reply+100 XP

5mos ago

Hi @jaracas ,

I would advise against polling the server for this - might be good to look into Echo and WebSockets. They are the ones that connect your backend and whatever frontend you need in real time, so no need for polling.

As for Inertia - yes, it can handle that easily - from my experience with vue3 and inertia, no problems in updating multiple components, given that you know where your source of truth is and which parts of the data are/should be reactive.

Hope I nudged you a bit in the right direction and good luck in your endeavour.

Best regards,