مشاركة الرحلة نحو بناء مشروع منتج برمجي


الدراما

لقد أنشأت نصيبي العادل من أعمال البرمجيات في الماضي. منتجات Bootstrapped التي اعتقدت أنها فكرة رائعة ، أو شيء خدش الحكة الخاصة بي ، أو ربما نسخة خاصة بي من شيء كنت أستخدمه ولكن لم يعجبني 100٪

أتذكر إنشاء مدير مهام ، وموقع إلكتروني للتعليم الإلكتروني ، وبرنامج للتجارة الإلكترونية معاد استخدامه لمنصات مختلفة / CMS ، وتطبيقات سطح المكتب لنظام macOS ، وتطبيقات الجوال ، وألعاب الجوال ، والبرامج التي يمكنك تثبيتها على موقعك لإضافة المزيد من الوظائف مثل الخرائط وتوفير دعم المستخدمين ، و اكثر.

وأنا لا أعني العروض ، أعني البرمجيات الفعلية التي كنت أبيعها لأشخاص حقيقيين

بعض هؤلاء ذهبوا أفضل من البعض الآخر. بعض أموال الإيجار المدفوعة ، وبعضها كان لفترة من الدخل بدوام كامل ولكن لسبب أو لآخر لم يصبح أي من هؤلاء "الشركة". كان التوقيت السيئ أو المكانة الخاطئة أو اختيار السوق الخاطئ من بين أسباب ذلك.

وبناء عمل برمجي صعب بطبيعته ، هناك الكثير من المنافسة وبينما تسمع الكثير من قصص النجاح ، من الصعب أن تسمع من الإخفاقات وكل تلك المشاريع التي بدأت في لا شيء.

اذهب في أي يوم إلى Product Hunt وشاهد ما أعنيه. بجانب النوع اللامع من "العشرة الأوائل" ، هناك مقبرة للمشروعات التي لم يصوت عليها أحد.

قبل أن أبدأ التدوين مرة أخرى في عام 2017 ، كنت أعمل على تطبيق GitHub الذي اعتقدت أنه رائع جدًا. ما زلت أعتقد أنه كان. نوع من التصور الإحصائي للمستودعات. عملت على هذا لبعض الوقت ، ثم قررت دعوة الناس لتجربته. لقد أرسلت بعض رسائل البريد الإلكتروني ولكن لم أحظى بالكثير من الحماس. كان الأمر رائعًا ، لكنه لم يحل أي مشكلة. لم يكن لدي قناة أو طريقة يمكنني من خلالها الترويج لها وربما لم يكن الناس بحاجة إليها. لم أستطع إقناع الناس بتجربة ذلك مجانًا ، هل تخيلوا الدفع مقابل ذلك؟ بالإضافة إلى العمل على واجهة برمجة تطبيقات لشركة أخرى للقيام بشيء هش مثل استعادة البيانات للإحصاءات جعلني أشعر بعدم الارتياح وسرعان ما انتقلت إلى شيء آخر.

بعبارة أخرىلقد ارتكبت خطأ فادحا.

لقد تعلمت الكثير ، تقنيًا وأيضًا بشأن أشياء لا يجب تكرارها في المرة القادمة.

لقد أحرقني بناء كل هذه المشاريع دون نجاح حقيقي وقلت "لم أعد أرغب في إنشاء منتج". لذلك بدأت فصلاً جديدًا ، الانتقال من رجل أعمال متمني لشركة برمجيات إلى أشياء أخرى.

تقديم سريع: لقد حددت مشكلة

مرت 3 سنوات ولم أكن مهتمًا بأي فكرة منتج. ببساطة لم أعد أفكر في القيام بمثل هذا الشيء ، وركزت بدلاً من إنشاء مواد يمكن أن تساعد زملائي المطورين على بناء برامجهم الخاصة.

حتى كنت أقوم بإنشاء مشروع لإحدى الدورات التدريبية الخاصة بي وأدركت أنني كنت أفعل للمرة العاشرة أو العشرين نفس الشيء الذي قمت به سابقًا.

المصادقة. تسجيل الدخول. اشتراك. هل نسيت كلمة السر؟ تأكيد البريد الإلكتروني. تأمين كلمات المرور. OAuth. تسجيل الدخول عبر جوجل. اختبار كل شيء.

لقد أجريت بعض الأبحاث ، وإذا نظرت إلى الأماكن التي تجري فيها المناقشات بين الخبراء ، مثل Hacker News ، حول هذا الموضوع بالذات ، فهناك خيوط تستغرق أيامًا كاملة لقراءتها واستيعابها.

إنه مجال توجد فيه مجموعة من أفضل الممارسات ، لكن لم يتم توثيقها في أي مكان. يُتوقع منك تنفيذ مهام سير العمل الخاصة بك ولا يوجد مكان يمكنك ضبطه للمناقشة أو السؤال أو الحصول على شخص تعرفه خبير ومعرفة إيجابيات وسلبيات كل نهج. باستثناء تلك الأماكن العامة التي تسأل فيها وتأمل أن يرد أحد.

وفي معظم الأوقات ، يجب أن تسأل في المواقع التي تناقش فيها نوعًا معينًا من مكدس التطبيقات أو التكنولوجيا.

لكن هذا الشيء حيادي من الناحية التكنولوجية. لا يغير أي شيء إذا كان سير عمل المصادقة الخاص بك مبنيًا على React أو Vue أو كان تطبيق Node أو Elixir من جانب الخادم.

إنها دائمًا نفسها ، ولكن في كل مرة تحتاج إلى إعادة اختراعها.

معرفة ما إذا كانت مشكلة تستحق الحل

لذلك كانت فكرتي الأولية هي إصلاح هذا.

هذه مهمة ضخمة وكلها تبدأ من مفهوم. هذا هو السبب في أنني قمت بالعصف الذهني لاسم وشعار ، قمت ببناءhttps://prototyped.dev/موقع الويب ، لقد صنعت مقطع فيديو وبدأت في تحويل فكرتي إلى كلمات.

ووضعت نموذج الاشتراك بالبريد الإلكتروني.

أعتقد أنه قبل المضي قدمًا ، يجب أن أقنع الناس بإعطائي بريدهم الإلكتروني. إذا لم أتمكن حتى من القيام بذلك ، فإن الفكرة سيئة تمامًا. أضع رابطًا على مدونتي لدفع بعض الحركة إليها.

كان هذا قبل أسبوعين. زار 1935 شخصًا الموقع ولدي 130 شخصًا سجلوا في قائمة الانتظار.

وهذه خطوة أولى جيدة.

شخص ما مهتم. لقد صنعت مقطع فيديو مقنعًا ، ربما. أو ربما يريدون فقط رؤية ما سأفعله.

لذا أرسلت بالأمس هذا البريد الإلكتروني إلى هؤلاء الأشخاص:

Hi, I want to take a moment to thank you for signing up to the Prototyped login/signup/authentication "idea" waiting list!
In addition to you, I got other 123 people signup ~in 2 weeks~ and it seems the thing has legs.. but I want to dive a little more into it.
(I'm sharing this information because I plan to also publicly document my journey to bring this thing to life. From zero to being a real product in the wild. I enjoy reading or listening to such stories in podcasts and I think it might be cool. The behind the scenes of a software business bootstrapped startup. Interesting?)
I built many apps and software projects in the past. Most of the times I started with an idea and kept coding until the launch. Sometimes in the end it was a failure because I didn't work on the right idea. Or I didn't solve the right problem.
This time, however, I want to make sure I solve a problem you are experiencing.
What is the thing that resonated with you the most with the Prototyped concept I presented you?
In other words, what's the value you see in it?
I got this idea while working on an app and getting authentication right and "done" once and for all was really key. I wasn't central to the "core business" I wanted to focus on, it was just a distraction, a chore I had to do. And I couldn't find anything that could help me in the way I wanted.
I want to make sure you or your team got this frustration too, please let me know if not and if I'm working on something that you think is useless. Your opinion and contribution will be key to move this thing forward.
Just hit reply and let me know what you think!

What people said

I got 12 responses.

Here are some of the (anonymized) replies I got:

I’m a DIY guy, thus if there is some paid service, I always try to figure out a way to do the same thing for free.. but I think you had a great idea with your product because one thing I don’t want to deal with is storing personal data, security problems, legal problems.

The idea of what I want to build is compelling enough, solves a problem so painful that it’s worth paying for. Good news.

I watched your promo video with explanation why you started Prototyped and realized that every new project takes month(s) of development for this particular section (login/signUp/restorePassword). I decided that it might save us a lot of time to use your service / library => that is why I subscribed

Good feedback. The product would save them a lot of time, and time is money.

I’m learning to code (mostly Python and JS) and have an app I’m building and I’m coming up to the registration / login / session stage and I’m finding it pretty daunting. I feel like this is a process that nearly every single app on the planet has, coding it all from scratch feels a little needless (though a point could be made a beginner should do it at least once). So anything that could make this process easier to implement and understand would be extremely welcome!

The auth process is “daunting”. This term makes me think about pain. coding it all from scratch feels a little needless: it’s like reinventing the wheel every time.

I think you’re going on the right direction. It sounds interesting to have access to an authentication tool and that we as developers do not have to worry about, since the tool will take care of that.

I want to make your life easier.

I am a newcomer to authentication but from my research it takes a bit of set up to get things moving. It would be great to have something with less set up almost like a module you can add to your project

Drag and drop.

We basically have the same frustration. […] I’d probably mess with some CSS related to the auth pages, but that’d be prebuilt so that I could focus on the actual app.

Flexibility, yet convenience.

In the past few weeks, I’ve spun up like 3 - 4 web apps using Next.js, and dealing with auth is a pain.

Pain. This word is recurring.

[…] After all this, I realized that I had spent days setting up authentication but had not implemented any valuable feature. In fact, I lost interest in my initial idea. 

Oh man this is terrible!

[…] I think the idea behind Prototyped is solid

I like solid.

Sometimes I use Firebase, but is like having a huge gorilla to take care of who use the website

Open source is the ultimate freedom. Own your code. customize anything, easily change to something else.

I don’t want an authentication that works as long as I use Node. I want one that I can take with me and works or makes itself work on many platforms. This way, I have a consistent behavior I can expect rather than having to remember things like “on app xxxx, the login does _____ and on app yyyy it does _____“.

This is spot on. The thing I want to build will work regardless of the technology, because it’s a blueprint with an implementation.

It’s like an application architecture. React developers will remember about “flux”. You can change platform, but this can stay with you.

I also often have the same problem of authentication. For one of my current projects I am looking into Firebase, because that makes it really easy. But I am not happy to be bound to Google.

Repeating pattern of lack of flexibility and uncomfortable feeling of being tied to a corporation.

Our biggest concern is security for users and knowing that the system is doing things according to the best security practices that are known.

This topic is really delicate and security is a key aspect, a fundamental one.

Flexibility is another key. Not all signup/login/auth flows are quite the same, so having the ability to control this is important.

Flexibility, freedom, is one of my core principles and it must be reflected.

Having a solution to turn to that can confidently help solve them is absolutely a need.

Being a trusted and rock solid solution one can turn to when in need.

What did I learn from those replies?

I got very positive feedback. There is a need for a solution to this problem.

Now I will keep waiting for new replies, and also I send the same email to every new signup to the waiting list, so I’m curious to hear more.

Meanwhile I’m organizing an online bootcamp, but I want to get the ball rolling.

That’s it for this post. I will write an update soon.


More lab tutorials: