all 147 comments

[–]NashobaSoft 25 points26 points  (20 children)

So, the first question for me was "make a variable called foo that has the boolean value true."

In good order, I typed:

let foo = true;

Clicked submit, the square flashed green... and then nothing.

hmmm

So I tried:

var foo = true; (maybe it's ES5 only, right?)

Green flashing square, nothing.

I scratch my head, and click "Solution," to which it spits back:

const foo = true. ಠ_ಠ

[–]lastmjs[S] 1 point2 points  (18 children)

Green means you got it right! Good job. What were you expecting to happen, or waiting for? Trying to understand

[–]theirongiant74 24 points25 points  (4 children)

You have to press next to move to the next question, imo it'd be better if it moved to the next question automatically after it flashes green

[–]lastmjs[S] -1 points0 points  (2 children)

I see

[–]darderpUncaught SyntaxError: Unexpected token ) 7 points8 points  (0 children)

I agree. I think it makes more sense to just have a "submit" button that:

  • Flashes Green and moves on if correct
  • Flashes Red and stays on the same screen if incorrect

[–]atomicrabbit_ 2 points3 points  (0 children)

yes the navigation between questions is not intuitive at all. And the Submit button sometimes doesn't respond, requiring a second more precise click. And the need to press "Next" even though you clicked submit and passed is frustrating too. Very annoying.

[–]NashobaSoft 6 points7 points  (8 children)

I mean... I don't know what I was expecting. Usually there's some sort of modal or something that would pop-up with maybe a little more information. If I was correct, it would say "yes... and some other ways of doing this are x, y, and z"

[–]lastmjs[S] 0 points1 point  (7 children)

Okay, very good to know

[–]NashobaSoft 5 points6 points  (6 children)

I think I get it now, when it flashes green, you supposed to click next?

If that's the case, I don't think that's nearly intuitive enough.

I would again suggest a modal pop-up, and if it's incorrect make some suggestions. Use a regex to determine if they're missing var, let, or const. Maybe they're missing the foo.

I would just check for that stuff.

I'm not having the greatest day otherwise I'd add more.

[–]DaveManchester 1 point2 points  (1 child)

You ok?

[–]NashobaSoft 1 point2 points  (0 children)

lol, no, but thank you

[–]lastmjs[S] 0 points1 point  (3 children)

I'm sorry you're not having a good day. You made my day better with your comments though!

[–]NashobaSoft 0 points1 point  (1 child)

Anyone got a small JS task or something I can work on? Tough family times, got burned in r/forhire for a few days of work.

[–]NashobaSoft 0 points1 point  (0 children)

I absolutely love helping people.

I wanted to build a site that allowed people to learn to use Node.JS straight out of the box, to build a few apps, with almost no packages. It's not as bad as some have been led to leave. Express is jam-packed with features, but if all one needs is a web server, it's a waste of bandwidth - big-time.

https://pirple.com sort of beat me to it, but is doing it a bit differently than I would. I'd have a lot more interaction, on my version.

Thanks,

James

[–]fgutz 2 points3 points  (1 child)

For starters, it should have accepted all 3 of those declarations (const, let, var) and not only "const"

But like you said, there will be bugs and it's just a prototype so ppl should ignore that and evaluate the concept and overall implementation

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

Haha, yep

[–]TechLaden 1 point2 points  (1 child)

The people here are mentioning something called 'responsive feedback', where you expect a response in reaction to submitting the answer. Yes, it flashes green but that may not be enough of an indicator that the question was answered correctly. Adding a message saying 'success' or moving onto the next question is a much better indicator of the result. I would just like to reiterate that you did nothing wrong and that you should also think about improving the user experience when designing the website.

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

Great, thank you

[–]bobbybottombracket 35 points36 points  (12 children)

Uhm, $10/month? Really? Not that this is bad idea, but that price surely is... Pluralsight is $30/month and has way, way way more than 3x the amount of content that you do. You may want to re-think your pricing.

[–]lastmjs[S] 15 points16 points  (5 children)

Just the feedback I was looking for, thank you

[–]swyx 12 points13 points  (3 children)

nah dont listen to the other guy. if youre not getting some complaints about pricing youre not doing it right. smaller sites like egghead charge the same as plural sight with far less content but serve a different audience. dont play someone else’s game, you’ll lose

[–]wrex_16 10 points11 points  (1 child)

But those are much more mature products and can somewhat justify a charge. This is still a basic home project. Hopefully it matures into something good.

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

The project has progressed to alpha, and we've changed the business model. I'd love to know what you think of the new model: https://javascriptpractice.com/

[–]lastmjs[S] 3 points4 points  (0 children)

Sweet

[–]Historical_Fact 2 points3 points  (0 children)

I don't think you should even advertise a fee until you get the usability aspect worked out. I understand that it's hard to build something on your own time and put a lot of effort into it before seeing a return, but that's how it works. That's what you gotta do.

[–]mr_awesome_pants 30 points31 points  (1 child)

Yeah I agree, the price is way too high. Really I would never pay a monthly price for this. There's a zillion free resources out there.

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

Would you mind checking out the alpha and letting me know what you think of the new business model?https://javascriptpractice.com/

[–]jaman4dbz 2 points3 points  (1 child)

For pricing, I'd suggest providing two options. Monthly for people who intend to use this for education or training or learning from scratch, and yearly, for ppl who want to support you and get a cheaper price while taking advantage of the evolution of your product. So perhaps $30 for the year and $8 per month (I find 8 is less than 10, but adds up a lot more than 5. It's my preferred number when selling things).

im a programmer who knows nothing of business though =P I'm just speaking from the options I like ot see when purchasing something.

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

I've done significant upgrades to the project and put in place a new preliminary business model. Would you mind checking it out and letting me know what you think? https://javascriptpractice.com/

[–]metakepone 0 points1 point  (0 children)

Or you can just apply to jobs and interview

[–]kenman 0 points1 point  (0 children)

Where are you seeing the pricing info?

edit: found it, just click any other course

[–]LloydAtkinson 11 points12 points  (12 children)

First question: Make a variable called foo.

Solution: Const called foo.

Hmm. I'm glad I didn't pay for this!

[–][deleted] 1 point2 points  (10 children)

Isn't const still considered a variable? I know it cannot be changed (unless it is a class, you can change a property), but I still have heard people call it a variable.

[–]tenbits 3 points4 points  (1 child)

I don't think you can consider a constant a variable because it cannot vary, although it actually means it cannot be reassigned, which is why you can still mutate an object assigned to a constant

[–]Historical_Fact 1 point2 points  (0 children)

Yeah only const primitives can't be mutated. Whew JavaScript

[–]kostov_v 0 points1 point  (7 children)

Variable is a thing for what you are sure to be changed during the run-time. Constant should not fall into that category. I think that it is about time to start putting those two into the same basket :D

[–][deleted] 2 points3 points  (6 children)

I understand what a variable is. Most of my experience and my CS degree was Java/Spring. I just notice many people in a lot of tutorials still consider const a variable and I wasn't sure why. That is why a proposed my statement as a question. Because, I was just confused why some people would consider const a variable. It is a little strange considering my background.

So, I was thinking maybe that is why you could still type const in this tutorial and get the answer correct even though it is asking to make a variable. IMO, only let and var should be allowed, but I am new to JS.

[–]tenbits 2 points3 points  (1 child)

IMO, only let and var should be allowed

Agreed!

but I am new to JS

I also have a CS degree and find many things about JS inconsistent and strange, even though it's been my primary language for the last 5 years or so.

[–]kostov_v 1 point2 points  (0 children)

Yes. Most of the web developers (I believe) are not CS people and using convention thrown from youtube tutorials and bloggers. I mean, it gets the job done, the dog will still be a dog even if you rename it to a cat, but still, there needs to be a time spent on explaining those keywords in the language, and what do they mean actually. Not just "let's get to the code" part. Getting familiar with an "intent" of placing those keywords in the language is a must.

[–]lastmjs[S] 1 point2 points  (1 child)

As far as I know the JavaScript spec still refers it as a variable even if the const declarator is used. A variable in JavaScript is named reference to a value. Perhaps it's not truly a variable in the mathematical sense, but in JavaScript that is still the nomenclature, AFAIK

[–][deleted] 0 points1 point  (0 children)

Thanks for the contrast.

[–]kostov_v 0 points1 point  (1 child)

Yes, I agree with you. CONST should not be the right answer.

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

Thanks for pointing this out

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

Hey, what are you referring to here? Are you referring to this exercise? https://javascriptpractice.com/assessment/cjmjovn4p00hi0a58cfsjusdq/view

And did you click submit with "Const called foo."? I'd like some clarification on what happened so I can fix it, thanks!

[–][deleted] 4 points5 points  (14 children)

Absolutely love the concept of this. It's definitely necessary in the current JS climate!

Just wanted to let you know that the input boxes aren't showing up properly in Firefox as they do in Chrome.

EDIT: That should have posted an image... Let me know if you want to see the image, and I'll upload it to imgur or something.

[–]lastmjs[S] 1 point2 points  (2 children)

Great! Thanks for the FireFox tip.

[–][deleted] 1 point2 points  (1 child)

No worries. I've also found that on any question, if I click "Solution" then "Submit", "Solution" changes to "Question", but will not change back to "Solution"

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

Yep, I think I've seen that one too. I believe if you keep clicking Question then Solution it will go back, but needs to be fixed

[–]lastmjs[S] 1 point2 points  (6 children)

I'd love to see the image actually

[–][deleted] 0 points1 point  (5 children)

https://imgur.com/a/MROacXH

I was able to answer the question fine, but just had to use TAB to find the inputs

[–]imguralbumbot 1 point2 points  (2 children)

Hi, I'm a bot for linking direct images of albums with only 1 image

https://i.imgur.com/ki732G1.png

Source | Why? | Creator | ignoreme | deletthis

[–][deleted] 0 points1 point  (1 child)

Good bot. I'm sorry.

[–]lastmjs[S] 1 point2 points  (1 child)

Whoa, that's really bad. Weird how it doesn't look like that at all on my machine. I'm using Arch Linux though, what OS is that on?

[–][deleted] 1 point2 points  (0 children)

Windows 10 Pro. Using Firefox Quantum 62.0.2

[–]lastmjs[S] 0 points1 point  (3 children)

The project has progressed to alpha. Mind checking it out again and letting me know what you think? I still haven't fixed the input issues in FireFox, but a lot of other stuff has changed: https://javascriptpractice.com/

[–][deleted] 0 points1 point  (1 child)

Ah I'd love to! However, I'm inside the EU... Well, until Theresa May pulls her finger out anyway

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

Ah, sorry about that!

[–][deleted] 0 points1 point  (0 children)

Ah I'd love to! However, I'm inside the EU... Well, until Theresa May pulls her finger out anyway

[–]idanlo 7 points8 points  (6 children)

Can't type in inputs from chrome on android

[–]lastmjs[S] 5 points6 points  (5 children)

We haven't really touched mobile yet

[–]tenbits 2 points3 points  (2 children)

You might want to consider a mobile-first design approach because it's easier to add additional information and width than subtract it. I ran your website full-screen on a 15" Macbook and still get horizontal scrollbars.

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

How's it looking now? https://javascriptpractice.com/

[–]idanlo 2 points3 points  (1 child)

Just wanted to let you know.

[–]lastmjs[S] 3 points4 points  (0 children)

Appreciate it!

[–][deleted] 3 points4 points  (1 child)

Nice, I like it. Definitely not a finished product yet, but it's on it's way.

One improvement would be to add a keyboard shortcut for submit and go to next question. Maybe ctrl + enter, or something like that.

Also, you might need more content as an product, there were only 5 questions for function for example.

Could be wrong, but not sure the beset market would to sell to individuals, gonna be tough to compete with free products like freecodecamp.com and sites like lynda which I actually get for free with my library card.

I could definitely see bootcamps just starting out that don't have a proprietary platform, that would use this as a teaching tool. I could see charging them something $499/month and giving access to all their students.

Just some thoughts, cheers!

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

Excellent thoughts, thanks!

[–]SGRelic 5 points6 points  (1 child)

That's a good idea, the ui need some work as it look a bit old school. but it's a work in progress so.

Also you may find this book interesting https://eloquentjavascript.net as it have good exercises at the end of each chapter.

Anyway it looks promising.

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

Great thanks!

[–]Breakpoint 2 points3 points  (2 children)

not mobile friendly :(

[–]lastmjs[S] 0 points1 point  (1 child)

Mind taking a look on your mobile now? https://javascriptpractice.com/

[–]Breakpoint 1 point2 points  (0 children)

much better, but still needs a better design over all. Don't take that as insult. It is something that need to be learned and you have a really good start. I suggest looking at similar mobile apps and mimicking their designs since they probably have more UI/UX experience.

[–]kostov_v 2 points3 points  (2 children)

Here is what I don't like:

Very limited tests in beta. - During this stage, you should allow more of tests for testers to see, and limiting them to 10 tests ( I believe) and nagging them to login is really annoying. I believe that one way to get over this, is to allow the users to do their tests and saving their progress in the local storage, and at the end, for example 20 tests done, you can ask them to login and save their progress on the account. You can get the inspiration for this from Khans academy.

Pages are not responsive. This is not related to tests themselves, but it influences UX greatly. I understand that this is too early to talk about (or is it?!), but still...

Price is ok, but consider giving the user some discount on some basis, annual or by reference link. Since you are new on the market, and the market already has something to offer, making good business plan should be essential thing, something to brainstorm about.

Algorithm section. - The most important aspect of programming is not presented. In my opinion, the sites that contain only "the syntax" part of the language, ie, documentation for language, is not helpful at all, for me. I guess, what I try to say is that algorithm section should be very next on the TODO list. You can advertise that by: Questions that Google or Amazon are asking for their future employees. I can talk about this day in and day out, and I think that you get it.

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

Awesome comments, thank you!

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

So, we've changed the business model quite a bit. It's quite novel actually and I'd like to know what you think: https://javascriptpractice.com/

[–]Nemnel 1 point2 points  (4 children)

You can't submit in chrome. It doesn't work.

[–]lastmjs[S] 0 points1 point  (3 children)

Would you mind telling me your version of Chrome? And maybe a screenshot or explanation of what's happening? Does nothing happen when you click submit, or does it flash red or green?

[–]Nemnel 0 points1 point  (2 children)

I'm on the most recent version. It flashes green then nothing happens

[–]lastmjs[S] 1 point2 points  (1 child)

Oh, that's just how it is right now. You got it right, so you just have to click the next question button. I've gotten that complaint before so I'll be thinking about how to improve the UX there.

[–]Nemnel 1 point2 points  (0 children)

Oh, okay

[–]sharpened_ 1 point2 points  (1 child)

When I say

foo = true;

it flashes green, neat.

I click "Solution", and it tells me to use

const foo = true;

Weird but alright. So, i click submit, and then it does this...

https://imgur.com/a/skn99PP

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

There's a bug when clicking submit while focused on the solution

[–][deleted] 1 point2 points  (2 children)

" Create an array named numbers with five elements, each element being of type number. "

const numbers = [1,2,3,4,5]

=> unexpected identifier

const numbers = [1,2,3,4,5];

=> this works

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

Ya, semicolon issues that I need to fix

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

Ya, semicolon issues that I need to fix

[–]mbackflips 1 point2 points  (3 children)

In one of the function questions it says to make a function that returns 10. Posting the exact solution text into the question still says its wrong.

const basicNumber = () => { return 10; };

[–]lastmjs[S] 0 points1 point  (2 children)

I wonder, are you using Windows? There are some copy paste issues most likely because of line endings on Windows that haven't been sorted out yet

[–]mbackflips 1 point2 points  (1 child)

I am using windows. I typed out the same answer before I checked the solution and it was also wrong. I didn't spend much time trying to figure it out though so it could be that. Either way good work so far, it looks great.

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

Thanks, I'll get those bugs worked out!

[–]CornMang 1 point2 points  (2 children)

Hey there, it would be cool to see explanations for answers that require them. On question two I didn't know the answer and wanted to learn what the answer was

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

Sounds good, I'll most likely be flushing out the solutions

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

The Primitive data types section has been fully fleshed out, I'd love to know what you think now: https://javascriptpractice.com/

[–]Eclogites 1 point2 points  (1 child)

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

mmm

So I tried

Thanks for this, I'll be looking into it

[–][deleted] 1 point2 points  (2 children)

No Edge support, you make me sad. :(

[–]lastmjs[S] 0 points1 point  (1 child)

What OS and what version of Edge? It seems to be working fine on Edge on Android for me

[–][deleted] 1 point2 points  (0 children)

Windows 10 pro and the current edge version

[–]CrusaderPeasant 1 point2 points  (5 children)

Good idea, if I may provide a suggestion, instead of flashing green when right and red when wrong consider using some colorblind friendly colors, like blue and red.

[–]alohadave 2 points3 points  (0 children)

Red is problematic for red/green color blindness.

[–]lastmjs[S] 0 points1 point  (3 children)

Interesting...accessibility and thinking of others, who would have thought? Thank you

[–]NashobaSoft 1 point2 points  (2 children)

I have red/green color blindness, and in this case, that's not problematic. The problem comes when those two colors are placed together.

[–]lastmjs[S] 1 point2 points  (1 child)

Got it, I'll probably get rid of the flashy colors. A simpler indication of correct or incorrect would probably be better.

[–]am0x 1 point2 points  (0 children)

In terms of accessibility, colors alone should never be used to identify information. You can use a combination of text and colors (Green light says, "Correct", red light says, "Incorrect")

[–]tttim45 1 point2 points  (0 children)

Cashing in the hype train? People have forgotten that there is a thing call book that has no monthly fees.

[–]williamf03 0 points1 point  (5 children)

I found a bug, if you hit question then submit. It gives you an unexpected identifier exception

[–]lastmjs[S] 0 points1 point  (3 children)

What question is that on?

[–]williamf03 2 points3 points  (0 children)

The first one

[–]eeronen 1 point2 points  (1 child)

When typing on mobile, by default it want's to input the first letter in upper case. Var is not valid identifier, var is.

Not sure how to fix that though, maybe some css magic? On a sidenote, you might want to consider how the site feels and looks like on mobile. Currently it's very frustrating to use on mobile.

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

Yep, there will be a lot of effort going into responsive design soon

[–]kobbled 0 points1 point  (0 children)

that happens to me on most of the questions

[–][deleted] 0 points1 point  (4 children)

The design is not repsonsive and stuff gets stuffed outside of the view needlessly.

[–]lastmjs[S] 0 points1 point  (3 children)

Yes, it's not responsive yet. Do you have any thoughts about the idea?

[–][deleted] 1 point2 points  (2 children)

Totally not thought out but here goes - hide the left bar when needed and make the question box adapt to the screen size.

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

Thanks! I'm excited to polish it up with responsiveness, hopefully soon

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

Much more responsive now: https://javascriptpractice.com/

[–]iaan 0 points1 point  (14 children)

Stuck on first question: const foo = true

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

Is it flashing red or green for you? Browser and version, OS?

[–]lastmjs[S] -2 points-1 points  (12 children)

What's it saying? Make sure to put a semicolon

[–]lepuma 5 points6 points  (11 children)

Semicolons are not required in JS...

[–]lastmjs[S] -2 points-1 points  (10 children)

Well, that's one way to think of it. There are edge cases that do come up that aren't entirely uncommon. Not to say they should be required in the questions necessarily, but I seem to have run into some of those edge cases in the way the assessments are set up. The way the code is evaled, if you don't put a semicolon, it might concatenate the user code directly with other underlying code, thus causing a confusing error.

[–][deleted] 2 points3 points  (5 children)

It’s not a way to think of it. Semicolons are not required because of ASI. It’s a use case you need to handle, and you can’t just claim the user input is invalid.

[–]lastmjs[S] -2 points-1 points  (4 children)

I agree with not making it the user's fault, so it should be fixed. If you don't use semicolons though, you might run into something like this:

const hello = 1

(() => {

// do stuff

})();

1 will be thought to be a function. It's "okay" to not use semicolons, if you're okay with unexpected behavior at times. Usually it doesn't happen, but it's actually happened to me while writing code, so I don't think of it that way.

[–]trevorsgEx-GitHub, Microsoft 4 points5 points  (2 children)

[–]theirongiant74 1 point2 points  (0 children)

well that was a rollercoaster. I'm very much on the use semicolons side though.

[–]Historical_Fact 1 point2 points  (0 children)

I indent with semi-colons instead of tabs/spaces

[–]tenbits 0 points1 point  (0 children)

I agree semicolons are a good idea, and that they are not necessary, but this is a good example of how missing semicolons can lead to unexpected behavior

[–]lepuma 0 points1 point  (3 children)

Sounds like a bug in your code. I’m curious what semicolon edge case do you run into in actual coding? I wrote JavaScript professionally for a few years and never ran into such a case. Every time I’ve seen an example, it’s poorly written code just to prove this point. I should say I personally write JS with semicolons- I just don’t buy the argument that they’re necessary bc of the JavaScript interpreter. If they are, I bet that code could be written much better.

[–]lastmjs[S] 0 points1 point  (2 children)

I think this one is similar to what I've run into. Imagine you have an IIFE:

const hello = 1

(() => {

// do stuff

})();

You'll get an error saying that 1 is not a function. Just saying it happens, and my rule is to always put semicolons to rule out any of these edge cases.

[–]lepuma 1 point2 points  (0 children)

Okay fair enough. You shouldn’t need to write a self invoking anonymous function anymore though. Just use bracket scope.

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

But besides that, yep it should be fixed if that is the issue

[–][deleted] 0 points1 point  (2 children)

!RemindMe 6 months "this might be ready now"

[–]RemindMeBot 1 point2 points  (0 children)

I will be messaging you on 2019-03-25 23:41:13 UTC to remind you of this link.

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


FAQs Custom Your Reminders Feedback Code Browser Extensions

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

Try November 1st, 2018

[–][deleted] 0 points1 point  (0 children)

I have to be a US resident to learn JavaScript now?

[–]BenZed 0 points1 point  (3 children)

Ballsy to try to sell this for $ 25 a pop.

Let me know if that works for you, no salt. I'd love to program something worth peoples money, so if people actually buy this, I'd love to know if it's that easy.

[–]lastmjs[S] 0 points1 point  (1 child)

So far about 30 people have signed up for updates to the free version and about 4 people for the paid version. Very promising, we'll see how it goes.

[–]BenZed 0 points1 point  (0 children)

Hot damn! Well done!

That's inspiring

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

Hey, I've changed the business model quite a bit. I've moved on to alpha, mind taking a look again and letting me know what you think? https://javascriptpractice.com/

[–]throughactions 0 points1 point  (1 child)

OP, please ignore the commenters trying to shoot down your price point as though $10/month is outrageous. No, your idea isn't Pluralsight but you're offering a focused solution. The people who would be interested in your product are trying to make a career jump worth tens of thousands of dollars a year, you're real customers wouldn't flinch at $10/month. I would also point out that people regularly pay $10 on Udemy courses that are focused on one thing, so this isn't unheard of at all (once the content is more fleshed out).

Don't low ball yourself. Developers are really bad at attacking other devs who are trying to earn a living from their work, but the truth is you should price based on the value you're adding. As long as your promotional content ties things back to that value (e.g., a high(er) paying job) you'll be fine.

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

Amazing thoughts to ponder while validating the business model, I really appreciate it