Why gatsby over metalsmith for the blog? #288
I'm not affiliated with Segment so I can't really comment on why they went with Gatsby. At first glance though it looks to me like Gatsby is far more opinionated than Metalsmith is. Metalsmith's core is tiny and relies almost entirely on plugins for its functionality, whereas Gatsby seems to try to include a lot more functionality out of the box, so maybe that has something to do with it.
I'll leave this issue open; maybe someone who works at Segment will be able to answer this better than I can.
Since Segment has chosen Gatsby over its own Metalsmith, there is a concern for longevity of this project, and what the future could hold. As a new user, I wouldn't choose Metalsmith if Segment wasn't dogfooding, i.e. using its own project, because there's a huge risk that this project can be shuttered, leaving many Metalsmith users out in the cold.
@up0 Segment isn't the sole maintainer of Metalsmith. There are several maintainers such as myself who don't work for Segment.
Not to mention the Metalsmith core is pretty minimal. I'm certain that anyone with a solid grasp of Node and a little free time on their hands would have no trouble keeping Metalsmith afloat all on their own; for these reasons the longevity of the project isn't really much of a concern for me. See #243 for more discussion on this.
I really like metalsmith for it's simplicity, but adding it all together: no new version since last year + segment blog built on gatsby + metalsmith.io down because they "forgot" to update heroku account... It all looks like there is no real interest in segment to lead this project further. Pretty sad conclusion for me as user. Hopefully other maintainers could move project forward, because it is so valuable project!
@Ajedi32 and other maintainers must review my work first, but I’m hoping it will become the basis for Metalsmith 3. If that happens, my hope is that the community will notice and interest will be revived.
(And—hopefully—drop support for ancient versions of Node, too! Every time I run
@Zearin , Thank you!
When I copy those, old node modules, into my own project. My project works! So my project setup, etc. is good enough, to build a Metalsmith static site. Based on old module versions.
When I upgrade my project to the latest versions of the metalsmith modules. It fails again!
I got these error messages:
Solving this problem, with information from GitHub readme's does not help. Only, copying back the old modules, download by the demo. Solves the problem.
current metalsmith-in-place "^4.1.1"
So what is changed in those major releases; API?, Configuration? ...
Tell me if any of my statements are incorrect.
Here is what I understand so far…
Okay, so you say that the outdated—but working—demo, uses:
But things break when you update to:
Tracking Down the Problem
The first thing I did was go to metalsmith-in-place’s
In that changelog, under
That sounded familiar to me, so I checked the link you provided. That page says the errors are always caused by one of the following:
Aha! So it looks like the error is JSTransformer related.
In order for
I think you will need to at least do the following:
You might need to do something similar for markdown as well, but it’s hard for me to say without access to your project.
UPDATE: Fixed a copy-paste error about metalsmith-in-place’s version
Hi, thank you for your support.
my test setup:
The documentation mentioned a JSON config file. But I'm using a build script. May be it's then the configuration;
I cloned your repo. I ran
Then, I ran
As described in metalsmith-in-place’s “Errors and Debugging”.
This will enable extra debug messages for both plugins.
Using these debug messages (and a lot of back-and-forth referencing
Do the following, and your build should now work with up-to-date plugins. :)
Step 0: Dependencies
(Step 0? Yes! For sanity.)
Ensure you've updated the plugins.
Thank you @Zearin, with your step through problem solving approach. I finally solved my problems.
I copied your approach of problem solving into my project as WIKI. See GitHub. It will be useful for other people, I think.
Golden! I had a similar problem. Differences were my project isn't using
import markdown from 'metalsmith-markdownit'
If anyone is interested, I made this blog site example: https://github.com/borisovg/metalsmith-blog-example, which is a simplified version of what I use for building my own site.
I'm unsure why Segment decided to use Gatsby for their blog. As most of the maintainers are not employee's or no longer employees of Segment it is hard to know the answer.
As Ajedi32 said (#288 (comment)) Gatsby and Metalsmith have very different approaches with different pros and cons. As Segment haven't answered the question thus-far I suspect they're not likely to so I'll close this issue.
@itsMeBender @Zearin just landed here and ran into same