> Yes, you guessed it, let's go with Electron and CoffeeScript.
> The main tech stack is still CoffeeScript, but we changed the UI framework from React to Riot.js.
> I've installed Babel, Mocha, ESLint, and added libraries via npm.
> I've rewritten my entire code base from CoffeeScript to ES6.
> The introduction of MobX, a state management library, and the introduction of Flow, a type checking system.
> So I rewrote everything in TypeScript, including my own libraries.
> Anyway, I'll be replacing my own components like Button and Toolbar with Material-UI ones.
> It's time to rewrite everything to styled-components.
> It's time to rewrite everything to useXXX.
No wonder why these software projects (personal as well as professional ones) are 6 years late. It may be a good learning experience, but a terribly inefficient way of developing software.
Exactly. Using a boring stack like jQuery would have been already good enough to let them concentrate on solving business problems rather than stack ones
> Using a boring stack like jQuery would have been already good enough to let them concentrate on solving business problems rather than stack ones
One quick look at the UI (https://signal.vercel.app/_next/static/media/screenshot.dc00...) and with the experience of developing bigger stateful UI applications with jQuery (and Backbone.js, and AngularJS, and React, and...), I would wager that if they were using jQuery at this point, they'd be fighting way more than they ended up doing.
I agree with grand-parent though that it seems like an excessive amount of rewrites, don't get me wrong.
12 years ago I released v1.0 of the full stack open source platform for anyone to use to quickly put together pretty much anything on the Web in a standard way, and focus on actually growing it, but I have faced opposition from day 1, on weird bases
First, I was told that the name of my library “conflicts with the excellent Q.js library for promises” and that no one was going to take a look. Well, promises are built into browsers now. But I renamed it to Qbix Platform back then.
Then people told me that it doesn’t use the latest React / Angular / Web Components / Typescript whatever, and looks old. On the PHP side they told me that it looks like ancient code because it’s compatible with PHP 5.2 and told me I must break compatibility.
Then I was told that PHP is a stupid language to build a platform in and I should use Go or Rust if anyone would take it seriously.
Every step of the way, I was citing massively adopted projects like Wordpress, Joomla, Drupal, the number of servers running PHP and my vision for everyone to “just run it” https://qbix.com/ecosystem
But the signal to noise ratio was very high. Some people here on HN started telling me that they didnt want to read that page because they found mentioned a token. But the token is optional and there only for settling micropayments and hosting companies to make money from customers globally. It is solving the payments problem on the web and getting rid of the stupid paywalls. It is solving the problem of monetizing digital content like open source software, journalism etc. Which have corrupted journalism.
In short, it’s been a lonely experience. Many times people are married to the latest fads or taboos and unwilling to even read what you wrote (unless you remove all mention of a token and add the latest framework du jour).
Here it is, if you want it, it’s free and open source btw:
Some people see a new project as a new opportunity to get to use new tools and processes. They get wrapped up in that more so than in the delivery of the product. Others see a new project as an opportunity to hone existing skills in their current set of tools and processes. The latter group tend to deliver a much higher-quality project on time and budget.
Exactly why I have zero regrets going native on macOS. Yes, Xcode isn't the best to put it mildly and SwiftUI is still maturing.. but I am so glad I don't have to deal with the modern web stack. Daily smiles instead of facepalms, most of the time!
No one "has to" rewrite just because they're building on the web. Coffeescript was a bad bet but other than that all of the technologies listed there would have been fine for many years to come without a rewrite.
Spent last year working on a side project and assumed I would need this and that in order to launch. But after it was ready to launch, I found out there was no product market fit. I have known about the importance of quickly finding out pmf but still made the mistakes. knowing != doing. We just love building stuff and mistakenly convince ourselves that if I add one more feature, this thing would be ready for launch and take off. But in reality...
It’s a good lesson. We found PMF with a shared google sheet and a bit of data processing behind the scenes. The level of polish I’d come to expect as an engineer at an enterprise company was astronomically higher than what was actually needed for our customers to give us their dollars.
>In my experience reducing features is better to begin with.
This is right approach. Lean. If you don’t have PMF, reduce your features until you find it. Pivot. Maybe pivot again. Eventually you’ll find a market to serve. Just don’t fall into the sunken cost fallacy. Time box your market exploration.
Thanks for posting this insight, because a typical engineer, if they are worth their money, does not like the idea to launch something "unfinished" or "half-baked" or even "not yet perfect", but the business logic behind the MVP (minimal viable product) is clearly correct.
Have to disagree (although this may be a "no true Scotsman" disagreement).
I think a typical engineer is more likely to want to evolve towards mature software in small steps. In my experience the "complete it, then release it with a big splash" approach is more likely to come from marketing. "We moved the CTA up the page a bit" isn't the stuff of press releases.
It is definitely hard to break the "but... I'm a professional" mindset. It is good to remember that your code isn't you. If you get PMF, just re-write everything from scratch.
I remember the moment when in my last startup, the first invoice was paid - $5. A magic moment. I still remember the name of the customer. The last invoice before exit was $50.000. I remember that customer too.
Interesting, did you pivot / change the target market? $5 sounds more like a consumer product but $50k likely isn't (unless you literally progressed from skateboards to cars like every Agile cartoon wants to make us believe)...
Among other things, I'm working on an elephant hunter type product. Took us five months, but the first invoices were $7k, $3k and now $45k but that doesn't prove much yet.
TFA talks a bit about shiny object/library syndrome. I think there's another good reason to avoid new things: LLMs are better with old stuff.
I can sit down and essentially english-type an app together in javascript or an old version of bevy, but if I ask for new APIs it all falls apart until I have built up sufficient examples in my own code. I've tried giving documentation, etc. It's just easier to version pin something from 2022 and chug along using a less featureful but more productive assisted-coding paradigm.
I used to think my goal was to do this and that and change the world etc... I am starting to think that I just like building things and maybe thats OK.
How do you guys get funding to build things for such a long time? Rent, food and health insurance in my area costs $50k per year. If feels I have no choice but to earn a salary.
Dropping a quarter of a mil on an app that might not pan out seems out of the question.
- this is very likely a side project. Conclusion made by the fact that the author was writing, re-writing and re-writing again the project because of a new 'cool framework' that came out. They were taking their time to do that and doing it repeatedly for years. Proving that releasing the project was not their first concern, nor making money out of it judging from the fact this was not designed to make money but merely having a github sponsor button. Author's main concern seems to having been to just have with it and learning was likely a bigger factor.
- it didn't need funding to startup, as it seems like the only costs were the operating costs which were likely just a server on vercel
Also, to answer your question more thoroughly
- usually people that make projects like these have a main job, which funds in one way or another their side-projects.
- A million $ is a very unusually big capital. Side projects are very unlikely to need such big amount of funding just to start-up. People just throw a small capital if needed at all, and if the project self-funds itself, maybe they'll throw the money back.
Nobody starts by dropping quarter of a mil, you start by dropping $1k and being very frugal, releasing something minimal, seeing how it behaves, and once you have some actual data to work with, you pivot again and again and again.
It's always a huge money sinkohole until it isn't.
Surely a side project. It is actually really good too.
There is quite a problem with creativity being stifled by the infinite possibilities of a modern DAW.
Everything feels super fast and responsive on it too. I am going to spend a good amount of time in this.
Helio is a desktop app that is down this line but more complicated and not as easy to use. This just all makes sense if you know how a piano roll is going to work.
It may be possible for you later in life. Most bootstrappers have worked up some wealth via traditional methods like savings, home equity, inheritance, and freelance/consulting work.
VC money and accelerators are primarily for people who dont have the wealth to bootstrap, but who are young and willing to take investors on early.
How do they get funding? They're already rich. Every single one of them, even if they haven't yet earned a personal fortune, ask them what their parents do. Find out they either own a Carl's Junior franchise or a semiconductor company. NBD, just build things, amirite?
To be fair, even if you only work in software you already have a leg up (not as much as someone born with a silver spoon in their mouth) both because the salary is pretty good, and because you're used to designing, programming, debugging, and documenting.
I’d noticed it as 2.58 in Firefox’s dev tools, so when you say 2.54, I’m curious. #ab9ea2 on #ffffff. https://webaim.org/resources/contrastchecker/ says 2.57, https://contrast-ratio.org/#%23ab9ea2-on-white says 2.57 and on hover expands that to 2.5785676343306743. I presume Firefox is rounding, while the other two are truncating. Truncating actually feels more useful for how people are too likely to use such things—taking values as low as they can while still complying.
The new, superior method is https://www.myndex.com/APCA/. It yields an Lc of 50.4, which is (as you’d expect) wildly unsuitable for body text.
> The main tech stack is still CoffeeScript, but we changed the UI framework from React to Riot.js.
> I've installed Babel, Mocha, ESLint, and added libraries via npm.
> I've rewritten my entire code base from CoffeeScript to ES6.
> The introduction of MobX, a state management library, and the introduction of Flow, a type checking system.
> So I rewrote everything in TypeScript, including my own libraries.
> Anyway, I'll be replacing my own components like Button and Toolbar with Material-UI ones.
> It's time to rewrite everything to styled-components.
> It's time to rewrite everything to useXXX.
No wonder why these software projects (personal as well as professional ones) are 6 years late. It may be a good learning experience, but a terribly inefficient way of developing software.
One quick look at the UI (https://signal.vercel.app/_next/static/media/screenshot.dc00...) and with the experience of developing bigger stateful UI applications with jQuery (and Backbone.js, and AngularJS, and React, and...), I would wager that if they were using jQuery at this point, they'd be fighting way more than they ended up doing.
I agree with grand-parent though that it seems like an excessive amount of rewrites, don't get me wrong.
12 years ago I released v1.0 of the full stack open source platform for anyone to use to quickly put together pretty much anything on the Web in a standard way, and focus on actually growing it, but I have faced opposition from day 1, on weird bases
First, I was told that the name of my library “conflicts with the excellent Q.js library for promises” and that no one was going to take a look. Well, promises are built into browsers now. But I renamed it to Qbix Platform back then.
See for yourself LOL: https://news.ycombinator.com/item?id=6053211 and https://news.ycombinator.com/item?id=6053296 (2013)
Then people told me that it doesn’t use the latest React / Angular / Web Components / Typescript whatever, and looks old. On the PHP side they told me that it looks like ancient code because it’s compatible with PHP 5.2 and told me I must break compatibility.
https://news.ycombinator.com/item?id=35897369 (2023)
Then I was told that PHP is a stupid language to build a platform in and I should use Go or Rust if anyone would take it seriously.
Every step of the way, I was citing massively adopted projects like Wordpress, Joomla, Drupal, the number of servers running PHP and my vision for everyone to “just run it” https://qbix.com/ecosystem
But the signal to noise ratio was very high. Some people here on HN started telling me that they didnt want to read that page because they found mentioned a token. But the token is optional and there only for settling micropayments and hosting companies to make money from customers globally. It is solving the payments problem on the web and getting rid of the stupid paywalls. It is solving the problem of monetizing digital content like open source software, journalism etc. Which have corrupted journalism.
In short, it’s been a lonely experience. Many times people are married to the latest fads or taboos and unwilling to even read what you wrote (unless you remove all mention of a token and add the latest framework du jour).
Here it is, if you want it, it’s free and open source btw:
https://github.com/Qbix/Platform
I am guilty of trying to keep up with the buzz like learning Rust even if I don't need it (get by with JS/Python/C++)
Even non-technical founders make this error. Everyone wants to believe that "just one more feature" is the difference between make and break.
In my experience reducing features is better to begin with.
This is right approach. Lean. If you don’t have PMF, reduce your features until you find it. Pivot. Maybe pivot again. Eventually you’ll find a market to serve. Just don’t fall into the sunken cost fallacy. Time box your market exploration.
Thanks for posting this insight, because a typical engineer, if they are worth their money, does not like the idea to launch something "unfinished" or "half-baked" or even "not yet perfect", but the business logic behind the MVP (minimal viable product) is clearly correct.
I think a typical engineer is more likely to want to evolve towards mature software in small steps. In my experience the "complete it, then release it with a big splash" approach is more likely to come from marketing. "We moved the CTA up the page a bit" isn't the stuff of press releases.
Among other things, I'm working on an elephant hunter type product. Took us five months, but the first invoices were $7k, $3k and now $45k but that doesn't prove much yet.
I can sit down and essentially english-type an app together in javascript or an old version of bevy, but if I ask for new APIs it all falls apart until I have built up sufficient examples in my own code. I've tried giving documentation, etc. It's just easier to version pin something from 2022 and chug along using a less featureful but more productive assisted-coding paradigm.
https://arionhardison.com
then Ai education: https://pub.education
then Ai healthcare: https://codify.healthcare
I used to think my goal was to do this and that and change the world etc... I am starting to think that I just like building things and maybe thats OK.
I appreciate the grind though
Neither the application nor the ORM lived on. I now start from an existing ORM framework for any new project.
Good learning!
Dropping a quarter of a mil on an app that might not pan out seems out of the question.
- this is very likely a side project. Conclusion made by the fact that the author was writing, re-writing and re-writing again the project because of a new 'cool framework' that came out. They were taking their time to do that and doing it repeatedly for years. Proving that releasing the project was not their first concern, nor making money out of it judging from the fact this was not designed to make money but merely having a github sponsor button. Author's main concern seems to having been to just have with it and learning was likely a bigger factor.
- it didn't need funding to startup, as it seems like the only costs were the operating costs which were likely just a server on vercel
Also, to answer your question more thoroughly
- usually people that make projects like these have a main job, which funds in one way or another their side-projects.
- A million $ is a very unusually big capital. Side projects are very unlikely to need such big amount of funding just to start-up. People just throw a small capital if needed at all, and if the project self-funds itself, maybe they'll throw the money back.
It's always a huge money sinkohole until it isn't.
Personally, I've gotten a lot of mileage out of doing freelance work 2-3 days/week and working on my own projects in the remaining time.
There is quite a problem with creativity being stifled by the infinite possibilities of a modern DAW.
Everything feels super fast and responsive on it too. I am going to spend a good amount of time in this.
Helio is a desktop app that is down this line but more complicated and not as easy to use. This just all makes sense if you know how a piano roll is going to work.
VC money and accelerators are primarily for people who dont have the wealth to bootstrap, but who are young and willing to take investors on early.
How in the goddamn fuck do you work up an inheritance?
There are plenty of apps you can build that don't require any upfront costs.
I'm working on an app that runs entirely on a consumer PC.
To be fair, even if you only work in software you already have a leg up (not as much as someone born with a silver spoon in their mouth) both because the salary is pretty good, and because you're used to designing, programming, debugging, and documenting.
> Nice to meet you. I'm an engineer who runs a small mobile app development company.
Please don’t do this
The new, superior method is https://www.myndex.com/APCA/. It yields an Lc of 50.4, which is (as you’d expect) wildly unsuitable for body text.