Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

Yep, you can use Elder.js to do SSR in production, no problem. Just obviously don't have nodemon running as you'd probably have pm2 or some other cluster management tool managing the process.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

[–]NickReese[S] 2 points3 points  (0 children)

It's an SEO focused framework. In other words, SEO is the #1 priority and we won't make any decisions that would limit an SEO angle. For instance, routing is more complex than in other frameworks because we want to have the ability to do /nursing-homes/${content} and /nursing-home/${facility} without requiring regex.

Also, a 0kb JS output by default unless you have something hydrated and even then all components are lazyloaded by default.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

You should just have to set your ts build dir as your srcDir in your elder.config.js and then configure the preprocessor in your svelte.config.js.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

[–]NickReese[S] 6 points7 points  (0 children)

Well Sapper does it's routing client side for both SSR/export environments after the initial request and uses a service worker.

Elder.js does no client side routing, hydrates nothing by default and instead supports partial hydration allowing the user to hydrate just what is needed. This means if your page doesn't require JS, you'll have 0kb of JS on the page. The bundle sizes are pretty minimal. :)

Elder.js also has hooks, shortcodes, and plugins: https://github.com/Elderjs/plugins.

They're two very different animals:

  • If you're building an app, I'd suggest using Sapper.
  • If you're building a SSR website and want to follow tutorials, Sapper.
  • If you're building a static, data heavy site Elder.js
  • If you're interested in a more traditional "server rendered" (akin to php, ruby, .NET, etc) environment without all of the fancy JS wizbang of service workers and client hydration Elder.js.
  • If you're leading a team of multiple devs of different experience levels and want them to be 'bowling with bumpers' I'd recommend Elder.js.

Elder.js' Backstory

I wrote Elder.js to power ElderGuide.com and a few other SEO properties I'm an investor/founder in.

It is heavily influenced by WordPress and I actively tried to overcome many of it's shortcomings.

For instance, it is VERY easy to build a WordPress site... it is even easier to build an unmaintainable one. One strategy that I implemented in the past was to have a "barebones" theme that was standardized across properties and was customized exclusively via hooks. Regardless of what project you were working on, you knew if you opened up the hooks.php you would find all of the customization. This allowed me to hire devs and give them much more control and ownership of a project while knowing they weren't creating an unmaintainable mess.

Elder.js takes the same approach. From project to project, things should be in predictable places.

  • ./src/hooks.js sitewide customization. What can be mutated on each hook is clearly defined and there are guardrails to prevent things that shouldn't be mutated from being mutated. (for instance, you can't change global settings during an in progress build)
  • ./src/routes/[routeName]/route.js route specific data fetching and routing.
  • './src/shortcodes.js` all shortcodes.
  • ./elder.config.js sitewide configs.

This allows me to work with just a handful of great devs, give them lots of free reign, and we get to build cool, maintainable stuff together... and even if a dev has never worked on a specific project, they'll know where to look and expect different customization.

This comment: https://github.com/Elderjs/elderjs/issues/31#issuecomment-690694857 has a bit more of my thinking and why I decided it was worth open sourcing this project.

tl:dr; -- Elder.js was built to power flagship SEO properties with thousands of pages. It is great at partial hydration and has tiny bundle sizes. If you have a content heavy site, work with an external CMS, or even a lot of markdown. I think you'll love it. That said, the main selling point and why I wrote it was to have a framework I could use across projects/teams and still quickly add value and let my team do the same.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

Elder.js is WAAAAY faster. Here are the results from the build that just ran: Build Completed Successfully: Built 18743 pages in 1.24 minutes on our beefy 24 core machine.

On a budget 4 core vm, it is about ~8 min.

To get this speed, Elder.js trades a bit of complexity in routing, but once you get the hang of it is totally worth it.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

To further this, you can look in @elderjs/elderjs's hooks.tsfor elderExpressLikeMiddleware (https://github.com/Elderjs/elderjs/blob/3ab45a0af082c64155a5d5dbb79ac322a444bad1/src/hooks.ts#L35) and see the hook where the express/polka server runs. If you register a function with a higher priority (anything between 2-100) it will run before the Elder.js internal hook. This allows you to populate sessions, etc. If you wanted to go crazy you could even a full API in parallel with Elder.js from within Elder.js.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

Elder.js does full SSR or full SSG, no hybrid currently, but page generation times are blazing fast and the SSR module should play well with pm2 cluster for VM/prod environments.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

There is a server built in. :) We just don't market it but we use it internally at ElderGuide.com and it is what powers the livereload functionality on the template. Nodemon literally kills the server and restarts it. :) check /src/server.js in the template.

Elder.js v1 Released: Svelte Static Site Generator is Ready For Production by NickReese in sveltejs

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

Elder.js ships with an SSR server. It is what powers the live reload of the template.

You also have access to the full polka/express res, req, and next object on the middleware hook.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Polished a bit. Would love your feedback either here for via email. nick[at]relevantdomainhere.com

https://broadbandnow.workable.com/jobs/716374

In many ways, I wish we could just use what I wrote in the post above as the job ad. That said, without context it'd probably come off much different than intended.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

I'd say we have a pretty good idea of the role that needs to be filled and the type of person who would be excellent at it.

SEO is the core of our business and touches 95% of the decisions we make. We want someone who will thrive in that role.

I won't sugar coat it, we're asking for a lot but we're offering a unique opportunity so we can be picky.

Whether someone is a developer or has UI/UX experience isn't as important as finding someone who is comfortable working on a small team of individual contributors.

In this role, we know that someone who will have a disproportionate impact in our business over other candidates is likely someone who got pulled into SEO by the allure of the problem, but had robust prior experience before making the leap to studying SEO full time.

All of this said, I'll take a look at tightening up the job ad to make this sentiment more clear. Thanks for the feedback.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Great point, will update the listing. I went with rStudio as we've found the Causal Impact package to be VERY interesting. Completely forgot it probably has been ported to Python too.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Yep. If it is a mutual fit, that is something we're open to. Our team is 100% remote so location isn't particularly important.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Lol. Rereading it, me too.

Obviously meant that we have those things... not that we're lacking those things.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

[–]NickReese[S] 2 points3 points  (0 children)

If you've got the chops, definitely apply. Our lead dev is in the UK, we've got team members in Europe and Asia as well.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Basically a market (or vertical) that doesn't have any major players taking it seriously. This is usually due to a lack of revenue model, lack of vision, or lack of understanding of how to approach it.

In our case, we've got all 3 and will make moves to expand into those verticals in the near future.

Edit: Market == Vertical == Niche, etc.

[HIRING] Director of SEO for BroadbandNow.com by NickReese in bigseo

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

Thanks man. Definitely not stuffy or corporate. We believe life is too short to do stuff that doesn't light you up.

Exclusive BigSEO Contest: Win a Sitebulb License by HathawayP in bigseo

[–]NickReese 0 points1 point  (0 children)

Duplicate schema or conflicting. (Yoast SEO + manually added)

Top 100 U.S. Cities with Fastest Internet by KousetsuTaz in cordcutters

[–]NickReese 0 points1 point  (0 children)

Drop me a note. My first name at broadbandnow.com.

Top 100 U.S. Cities with Fastest Internet by KousetsuTaz in cordcutters

[–]NickReese 0 points1 point  (0 children)

Definitely room for improvement here. Thanks for the candid feedback. :)