Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
RobertKerans
Aug 25, 2006

There is a heppy lend
Fur, fur aw-a-a-ay.

blaise rascal posted:

Just curious, how much do y'all think a website like this is worth? (taking into account the fact that yes, it was built from a wordpress.com template by someone with no webdev knowledge, but the template was modified to fit the client's specifications in just about every way)

The fact it's a WP template is pretty much irrelevant, don't put yourself down: from a client point of view you have a magic website-producing machine and out has popped a website, why would they care about the tech? It's worth a. what profit [increase] it generates, b. how closely it fits to the ideal the person/s who hired you to do it had in their head. Ideally more a (you have produced a highly-accessible interactive robot salesman that doesn't need to eat or sleep or be paid, just needs a bit of configuring every so often), but normally more b because human ego. I'm not sure if you're asking instead how much should you be paid for it, and that is something different & depends on how much you value your services, how well you can sell yourself, and who you're selling to -- as this is a local coffee shop, I would hazard not a huge amount.

RobertKerans fucked around with this message at 02:19 on Jul 27, 2019

Adbot
ADBOT LOVES YOU

prom candy
Dec 16, 2005

Only I may dance
Viewing from my phone, here's my initial thoughts:

- Put the phone number, address, and maybe hours higher up. That's what people are there to find most of the time
- you need a 2x version of the logo for retina screens

The real money isn't in the website design or whatever, it's in people finding this when they type "<your town> coffee shop" into google. These days you probably also want to run an insta account, a Facebook business page, a google business page, etc. If you can get a whole web strategy set up for a customer you can charge a good chunk of change, even if you're not much of a designer or coder. Your goal is to put butts in seats.

The Dave
Sep 9, 2003

Yeah social profiles are way more valuable than sites for small businesses. That being said get paid son.

prom candy
Dec 16, 2005

Only I may dance
Sites are part of the puzzle too though, it's all about selling that complete online marketing solution.

The Dave
Sep 9, 2003

prom candy posted:

Sites are part of the puzzle too though, it's all about selling that complete online marketing solution.


For many businesses they really aren't important, it depends on the complexity of their pitch. I work with a couple of small businesses and they all get the majority of their leads through Facebook or Instagram DMs.

Take a coffee shop. Your visitors only need to know where you are, what your hours are, alluring pics of a flexible space (relaxing, ability to work from there, maybe music), and know when there's events or specials. Facebook delivers that in a better format to a more targeted audience. Then use instagram to post up all the drink/food porn.

My 2 minute critique of the site?

- I agree hours and location need to be at the very top of the page.
- "So Much More than coffee" does nothing as a headline, show me don't tell me
- All of the important information is in the about us in the footer.
- Site should being designed around the images and focus way more on showing me the shop's atmosphere
- "“Votest Best Neighborhood Coffee Shop in Central Cincinnati”" should be celebrated more


Want to see a really fun exercise? This is the website for a little deli that is obviously all stock/templates:

https://www.jemscatering.com/

This is what the place actually looks like:
https://geo1.ggpht.com/cbk?panoid=d...=0&thumbfov=100

The Dave
Sep 9, 2003

Oh and to answer the cost question, I only charge hourly. If I snooze and template everything I'm not going to necessarily overcharge for it, but I'm going to protect myself if things go off the rails. Also establish milestones for payments, never wait until everything is finished to get paid.

Personally the rate I charge right now is $100/hr and $125/hr if it's a rushed deadline but part of my pricing is having a very small client base I've been working with for awhile and not wanting to get anyone new or anyone with a small budget that could potentially be a disaster client.

prom candy
Dec 16, 2005

Only I may dance

The Dave posted:

For many businesses they really aren't important, it depends on the complexity of their pitch. I work with a couple of small businesses and they all get the majority of their leads through Facebook or Instagram DMs.

Take a coffee shop. Your visitors only need to know where you are, what your hours are, alluring pics of a flexible space (relaxing, ability to work from there, maybe music), and know when there's events or specials. Facebook delivers that in a better format to a more targeted audience. Then use instagram to post up all the drink/food porn.

Yeah, it's a good point. I think you can go down the website route if you do something really nice with it, like the Deli example you posted. And particularly if the business is chasing customers that have a slightly longer/more involved buying journey. But yeah for a coffee shop or whatever it's not quite as important.

Do you run business' instagram accounts for them as well? Do you come in and do photography? It seems like you need someone who's able to drip content pretty frequently for that to work, but you can always collect a ton of photos over the span of a day and then drip them out over 6 months or something. I know a lot of people who make their money with low up-front costs and then a decently high monthly cost to manage that kind of stuff.

I also charge around $100/hr but right now the vast majority of my businesses is coming from one customer that I have a big retainer with, working on a web application. Most of my smaller marketing website experience comes from when I was at an agency. We charged $150/hr.

The Dave
Sep 9, 2003

Better is you offer to be their Instagram manager and everytime you go there you get free drinks because it's content.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

blaise rascal posted:

Okay, here it is - website for a local coffee shop & restaurant. Do your worst.

A few things I noticed in a couple minutes of looking at the page.

1. No content in the title tag so you just get "https://collegehillcoffeecompany.wordpress.com/" in the window/tab title.
2. The color of "–Cincy People Magazine" and the other source doesn't contrast enough with the background color, IMO.
3. Your list of coffees on the coffee page should be an actual HTML list.

blaise rascal
May 16, 2012

"Duke, Duke, Duke, Duke of Pearl...."
Thanks a lot, everyone! This was kind of a unique situation, because I really wanted to try making a website for fun, and I knew the owners of this coffee shop despised their old website. So I agreed to do it without the expectation of earning much money. Still, it would be nice to get back something for my efforts.

I agree with a lot of the sentiments you guys are expressing (less is more, put more important info at the top, Facebook is probably more important), so I’ll reconfigure a few things.

It’s been fun working on this, but at this point I am pretty much ready to be done with the project. I’ll plan to sell the site soon, and if they need more work done after that, I’ll ramp up the prices and charge by the hour. Fingers crossed all this goes well...

prom candy
Dec 16, 2005

Only I may dance
You should always discuss rates and expectations up front. Is there a freelancer thread btw or is this pretty much it?

blaise rascal
May 16, 2012

"Duke, Duke, Duke, Duke of Pearl...."

prom candy posted:

You should always discuss rates and expectations up front. Is there a freelancer thread btw or is this pretty much it?
I agree, but like I said, I didn't really care if I got paid. This was a project for fun, and to support my local community. If I ever make another website, I'll do it the correct way.

IDK about website freelancing in particular, but there is a "business of art" thread in CC: https://forums.somethingawful.com/showthread.php?threadid=3468091

porksmash
Sep 30, 2008
What the gently caress headers do I have to set to get Chrome on Android to download a file that works in every other desktop and mobile browser? I either get a Download Failed with no reason why on modern Android, or on Nox Android emulator (running Android 4 I believe) an "<Untitled>" download that eventually just disappears. This is what I am setting in my response (python/Django):

code:
response['Content-Type'] = 'application/json'
response['Content-Disposition'] = 'attachment; filename=' + request.user.username + '_export.json'
and the full headers in Firefox desktop after a successful file download:

code:
RESPONSE:

Content-Disposition: attachment; filename=porksmash_export.json
Content-Length: 820232
Content-Type: application/json
Date: Fri, 09 Aug 2019 23:07:33 GMT
Server: WSGIServer/0.2 CPython/3.6.3
Vary: Cookie
X-Frame-Options: DENY

REQUEST:
Host: 127.0.0.1:8000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: [url]http://127.0.0.1:8000/profile/porksmash/data/[/url]
Cookie: csrftoken=redacted; djdt=hide; sessionid=redacted
Upgrade-Insecure-Requests: 1

Tei
Feb 19, 2011

I have no idea how to solve your problem.

But I have related questions for you.

Why you set application/json wen you intention is to force the browser to download the file?, maybe use octect/stream or any other unknowm mime type.
i don't know the python environment, but if request.user.username come from the user, you risk somebody using a username called . "\nLocation: http://hackers.ru./hackme.html".

Maybe you can find a website where download files work the way you want, then try to imitate the same headers. Maybe try to stop these security related headers, if they thing don't work, like X-Frame-Options.

porksmash
Sep 30, 2008
I did already try "octet/stream" before with the same result. Appreciate the security questions - username comes from my database and is sanitized before storing to only alphanumerics.

Boosh!
Apr 12, 2002
Oven Wrangler
Our CMS publishes files to an Apache Tomcat web server (authentication with roles for our registered users) that is developed and supported by a consulting company. I've been tasked with finding something to replace it so we are no longer reliant on them. I guess I'm asking if there's a authentication layer I can slap on top of my website that's relatively easy to manage. I'm not even sure that's the right question to be asking since this is unfamiliar territory.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

Boosh! posted:

Our CMS publishes files to an Apache Tomcat web server (authentication with roles for our registered users) that is developed and supported by a consulting company. I've been tasked with finding something to replace it so we are no longer reliant on them. I guess I'm asking if there's a authentication layer I can slap on top of my website that's relatively easy to manage. I'm not even sure that's the right question to be asking since this is unfamiliar territory.

Auth0

Boosh!
Apr 12, 2002
Oven Wrangler
Thanks, that looks ideal.

Raskolnikov2089
Nov 3, 2006

Schizzy to the matic

blaise rascal posted:

Okay, here it is - website for a local coffee shop & restaurant. Do your worst.

https://collegehillcoffeecompany.wordpress.com/

Just curious, how much do y'all think a website like this is worth? (taking into account the fact that yes, it was built from a wordpress.com template by someone with no webdev knowledge, but the template was modified to fit the client's specifications in just about every way)

Don't be so down on yourself, my very first foray into webdev was a template reskin. Took way too long even then, but I learned a ton. As long as you learned something, it was worth it.

That said I don't know how you're going to rank for anything, I don't see any keywords in h1s (or h1s at all) so might be something worth looking into. Even something as simple as, "The best coffee in <cincinnatti neighborhood here>' would do wonders.

uncle blog
Nov 18, 2012

I'm trying to get a grip on useState, but finding it difficult to update the state of an object I have.

The object looks something like this:
code:
const someThings = { "car": true, "bicycle": false, "helicopter": true}; 
I want to invert the boolean by receiving a key string. I try to use the method from useState "setThings" and pass it a function to access the current state:
code:
const handleThingsChange = stringOfThing => {
	setThings(previousThings => {
		return { ...previousThings, stringOfThing: !previousThings[stringOfThing] };
	});
}; 
But this seems to add a new item to the object, simply called the name of the variable "stringOfThing". Giving me an object looking like this: { "car": true, "bicycle": false, "helicopter": true, "stringOfThing": false}

IAmKale
Jun 7, 2007

やらないか

Fun Shoe

uncle blog posted:

I'm trying to get a grip on useState, but finding it difficult to update the state of an object I have.

The object looks something like this:
code:
const someThings = { "car": true, "bicycle": false, "helicopter": true}; 
I want to invert the boolean by receiving a key string. I try to use the method from useState "setThings" and pass it a function to access the current state:
code:
const handleThingsChange = stringOfThing => {
	setThings(previousThings => {
		return { ...previousThings, stringOfThing: !previousThings[stringOfThing] };
	});
}; 
But this seems to add a new item to the object, simply called the name of the variable "stringOfThing". Giving me an object looking like this: { "car": true, "bicycle": false, "helicopter": true, "stringOfThing": false}
Try wrapping stringOfThing in square brackets, like this:

code:
return { ...previousThings, [stringOfThing]: !previousThings[stringOfThing] };
That'll use the value of the string you pass in as a key, instead of using the literal "stringOfThing" as the key.

Alternatively you could break things out a bit and be more verbose:

code:
const handleThingsChange = stringOfThing => {
  setThings(previousThings => {
    const newState = { ...previousThings };
    
    newState[stringOfThing] = !previousThings[stringOfThing];
    
    return newState;
  });
};
ALTERNATIVELY alternatively, you can tweak your understanding of state in the context of Hooks and break up your things into multiple useState() declarations, as per the React docs:

code:
const [car, setCar] = useState(true);
const [bicycle, setBicycle] = useState(false);
const [helicopter, setHelicopter] = useState(true);

const toggleThing = stringOfThing => {
  switch (stringOfThing) {
    case 'car':
      setCar(!car);
      break;
    case 'bicycle':
      setBicycle(!bicycle);
      break;
    case 'helicopter':
      setHelicopter(!helicopter);
      break;
    default:
  }
};
This allows for better Component performance as the setter that useState() returns triggers "naive" re-renders. By splitting up your state into multiple logical groupings of values that are likely to change together, you help control the complexity of your re-renders with more granular triggers that play to Hooks' strengths.

IAmKale fucked around with this message at 17:20 on Aug 20, 2019

uncle blog
Nov 18, 2012

Thanks, that did it!

prom candy
Dec 16, 2005

Only I may dance
You can also use useReducer if you really do want to maintain a larger object of dependent state.

uncle blog
Nov 18, 2012

So I made this tiny React app that doesn't use any external resources. Whats the best/easiest way to get it online?

Edit: With NPM / create-react-app.

uncle blog fucked around with this message at 14:05 on Aug 27, 2019

Gildiss
Aug 24, 2010

Grimey Drawer

uncle blog posted:

So I made this tiny React app that doesn't use any external resources. Whats the best/easiest way to get it online?

Edit: With NPM / create-react-app.

Google Firebase is quick and easy and free for small toy projects.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



uncle blog posted:

So I made this tiny React app that doesn't use any external resources. Whats the best/easiest way to get it online?

Edit: With NPM / create-react-app.

Does that mean there's no DB or no NPM modules or what?

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

uncle blog posted:

So I made this tiny React app that doesn't use any external resources. Whats the best/easiest way to get it online?

Edit: With NPM / create-react-app.

npm build

Put contents of /build directory on a web server. You can use something like github pages to do so for free. There's a bunch of guides for doing so with CRA code out there.

uncle blog
Nov 18, 2012

Munkeymon posted:

Does that mean there's no DB or no NPM modules or what?

No DB, and no modules other than what comes with create-react-app.

lunar detritus
May 6, 2009


uncle blog posted:

So I made this tiny React app that doesn't use any external resources. Whats the best/easiest way to get it online?

Edit: With NPM / create-react-app.

netlify is really cool for that kind of thing

ddiddles
Oct 21, 2008

Roses are red, violets are blue, I'm a schizophrenic and so am I
Seconding netlify, hook it up to your github and it auto deploys your master branch.

The Fool
Oct 16, 2003


I'm going to throw AWS s3 and azure blob storage into the mix as well.

Also capable of deploying on commit.


e: a word

The Fool fucked around with this message at 18:31 on Aug 27, 2019

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

netlify is good.

Happy Thread
Jul 10, 2005

by Fluffdaddy
Plaster Town Cop
Glitch.com for really easy setup

uncle blog
Nov 18, 2012

Thanks for the suggestions! Ended up using Github pages this time.

The Dark Souls of Posters
Nov 4, 2011

Just Post, Kupo
I also suggest Netlify for front-end apps.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
One of the reasons I don't like github pages is it makes you use jekyll if you want anything that's even a little automatic.

prom candy
Dec 16, 2005

Only I may dance
Netlify is sweeeeeet

The Fool
Oct 16, 2003


I've been discounting netlify as a 'anything it can do, I can do myself' but maybe I should re-evaluate?

My current workflow is: commit to azure devops->build pipeline->release pipeline->azure blob storage

my bony fealty
Oct 1, 2008

anything Netlify does you probably can do yourself with a good CI setup, it's more like Netlify does all of it for you. If you're like me and don't care much for deployment and devops stuff then it's very nice.

Adbot
ADBOT LOVES YOU

prom candy
Dec 16, 2005

Only I may dance
Being able to do something yourself is not in itself a reason to do something yourself

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply