So this is a really cool package! What's it do? Reverse engineer a source map (I only used it with JS, but it does css too). Why would you want to do that? Well in my case, I was scoping some competing products for research purposes. We were looking to build some similar features and I wanted some insights regarding how they'd built their versions of the feature. And basically every JS frontend these days deploys a sourcemap, which is the full source code of the front end. But min'd and basically unreadable.
Shuji reverses it. It turns the min'd, difficult to read sourcemap into the full source code. File by file!
Limitations: Couldn't see how to output the source directory structure (separate files, but all in one directory) I didn't use it extensively, so I didn't bother going deeper. It's possible the data doesn't exist to make this possible.
Cool tool to know about.
Note: if all you're after is the packages a product is using, then I'd suggest "source-map-explorer". But if you want to see their code, shuji, always shuji!
strapi🚀 Open source Node.js Headless CMS to easily build customisable APIs
ZOMG! I love strapi. It's not perfect, but man, does it solve so many problem straight out of the box! It's a headless CMS, yes, but it also lets you easily modify the controllers & models as required. It's more like an CMS + API. Then throw on top a backend admin section, all pre-built and ready to go. I used it in combination with NextJS and I couldn't be happier with the combo. I used the restful endpoints, but will likely use the graphQL on the next project, so I'm glad it covers both.
The only draw backs I've found so far are with customising the admin panel. There are some simple GUI style changes you can make from within the panel itself, but I haven't seen how I can easily make slightly more complicated changes. Really for me to investigate further, but after how easy everything else was I was somewhat expecting this portion to be the same. Still, it's a growing project and I'm more than happy with the rest of it to continue using it.
Recommend checking it out!
Rails is still, hands down, the best developing experience I've had. Node is now starting to mature to the point where rails has been for a long time. But still, the rails experience is a benchmark it feels that node is still aiming for, rather than meeting, or exceeding. The speed of development with rails is phenomenal. Spinning up a new project gets straight to implementation, rather than deciding what to use to implement. With such a strong set of mature gems for building out a rails app, there choice don't need to be thought about. And when a problem comes up, it's rarely not been solved, and solved for the exact setup / combo of gems you're using. That's the beauty of a working in a mature framework that's been backed by a great community from day dot. It's sad to see it get so much flack for being 'slow', when for most projects, slow development speed is going to kill the project long before application performance becomes an issue.
sequelize-cliThe Sequelize CLI
Really love this package. Coming to Node from Rails, sequelize is the active record I've been looking for. The generators for models & migrations feel exactly the same, and I love it. Seeds, as well.
Only complaints I have so far is that some of the generators enter a blockhole if you don't input the correct magic. They respond vaguely, but without error, as if they might have done something. When really, you didn't enter the right command and they did approximately nothing. I should submit a PR, but instead, here we are.
url-patterneasier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.
Saved me from the massive headache of rewriting a whole bunch of URLs I had to match against as a filter. Looked at few solutions, but this one required the minimal amount of changes of my URL schema in order to implement. The capability to change the pattern matching start & escape sequence was a life saver.
Would be great if it was able to universally ignore (in target & pattern) some URL features, such as schema or host. But that's quite specific to my application, and probably something I should be implementing as a filter/validation of the inputs prior to utilising this package for matching.
source-map-explorerAnalyze and debug space usage through source maps
Very nice package, does what it says. Fast, easy, and decent docs. I even love the interface.
Minor gripe, it could be clearer how to get "out" of a group of packages once you've drilled down into them.
I used this to do some research into some competing products and understand what video players, integrations & plugins they were using. I could have trawled the html/js but this package just made it a piece of cake.
Download the source map, one command, boom. A beautiful interface to explore their packages. Love it!
expressFast, unopinionated, minimalist web framework for node.
A super fast framework for building out API endpoints, perfect for busting out an MVP. The documentation is great, and because it so widely popular, a quick google will answer most of the problem you'll run into.
For better or worse, it leave you to make a lot of decisions regarding how to implement you app. For example, you'll need to decide on an ORM, databases, test frameworks, etc. Express is an incredibly bare bones framework to begin with.
Additionally, the unopinionated nature means you'll need to devise your own directory structure to organise your application. Coming from the rails world, that all seems quite strange. But node seems all about mixing and matching as many packages as possible. Not bad, just different.
For rails dev's coming to the node landscape, Express & Sequelize make a great combo. Sequelize being an active record equivalent, it gives you a structure for your orm/db/models.
Found Express pairs well
Super easy to use static site generator built in JS. Coming from Jekyll & the ruby landscape, and after trying a few JS alternatives, Next was where I started to feel at home.
For those who need (or want) a CMS to manage their data, I'd suggest strapi. It pairs really well with Next, super easy to implement.
I like that Next gives you a structure to work with, and the documentation is clear on how to go about pure static, SSR or hydrated rendering. Gatsby lost me in my first attempt.
One issue I ran into was with the "Images" implementation which tightly couples with Vercels own hosting service. Which, while I'm sure is great, not what I wanted to use (Netlify customer already). Spent quite some time removing / disabling this functionality, and it felt like the docs were somewhat intentionally light in this area.
expressjs-domain-parserA domain/url parser for breaking apart domains into their components
I initially used this packaged as I was working on a express project, and though it made sense to use a compatible module (it's setup to be used as middleware), but I eventually removed this package and replaced it with getDomain.
I do not like the DSL and naming conventions chosen for this package, it feels very counter intuitive. It resulted in reading the docs to do just about anything with it, and considering it's a urlParser, and I was using it for the most basic of use cases. It really shouldn't require memorisation of acronyms to parse a domain. And while those may be accurate, for ease of use the colloquial names could also be included in the DSL.
For a more intuitive DSL for domain/url parsing check out getDomain.
bookshelfA simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js
I used this library as it was incorporated by default in strapi, but haven't been super impressed. It felt like I was constantly fighting it to get the data I required. And more often than not I had to move down to knex level. I'm not going trash it too hard, because it worked, but I feel there are better options out there. I've felt far more at home with sequelize.