Replies: 1 comment 3 replies
-
|
Thanks for the feedback John! On the first topic of SSG -- most smile experiments are heavy on animations and other dynamic content (e.g., full featured video games or other multiplayer settings). I understand the value of SSG for rendering static blogs or making web pages SEO but I'm not sure why SSG would be interesting for dynamic experiments (and even could be detrimental because you can't exert as much control over which pages are accessible if they each have a different url). On the second topic - Smile could be a Incorporating updates to the base code isn't usually a huge problem -- We have instructions on how to merge changes from the root repo into your current project. Of course there could be compatibility issues if months/years go by and you return to a project, but during the development cycle this is still quite easy. https://smile.gureckislab.org/developing.html#merging-changes-to-the-template-into-your-existing-project. In the future after a few more development goals stablize we might shift to a semantic versioning model for Smile template so you could trust that you can merge changes from 1.1.X but not 1.2..X of the template. We went with this approach of installing the secrets in git itself, but encrypted (using git-secret). It's a little clunky but has some advantages because some of the current methods of doing this involve extra (paid) services, etc... (like dotenv stuff). But really the "start from template" is pretty seamless currently assuming you first configure your organization/lab set up. The only reason it is even a little bit involved is because it uses github actions to coordinate a few things like a hosting service and Slack messages/notifications. But in our daily workflow these have been pretty nice actually. A few other labs have gone through the steps of getting going with this and have found it pretty easy. On a mild todo list is to document a bit more of this with videos this semester. So if you had some very strong suggestions on making things easier I'd be happy to discuss them because we could change things before we double down too much on the "easy install" instructions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
👋 Firstly, thanks for building this! Certainly does quite a bit of heavy lifting and is far beyond psiTurk! 😃
I suppose there are two proposals here:
smileseems ripe for using static site generators (SSG) (like Netlify, Cloudflare Pages, etc.). I'm curious if there was a motivation to not do this?smileinto a propernpmpackage? While forkingsmilefor use with a lab certainly makes sense, integrating changes will certainly prove more challenging – e.g. say some time has passed since @csc-yale has synced with the NYUCCL/smile repo, now we want to integrate the updates, this becomes a pretty significant task to not only correctly rebase but also to propagate the changes coming in from the NYUCCL/smile copy.For (1), I'm actively testing this, though if this is desirable, it would make sense to use an existing SSG like Astro as they handle a lot of the quirks of developing SSGs. Astro is incredly fast uses Vite, and ships minimal JS by default. (I can elaborate further on Astro, but it's one of the few SSG frameworks that's actually component-library agnostic.)
For (2), tools like Astro provide for templates – so someone could spin-up a new experiment like so:
Templates, in Astro, provide the user with a way to import components directly from the template, but they also provide a ways for components to be overridden and otherwise customized.
Additionally, there are ways to make the "start from a template experience" more seamless. There are also ways in which things like secrets management, shared configurations, etc. could be pulled in as well, but that's only relevant if (2) is something you find worth pursuing.
(Also, I'm happy to spearhead some/all of these things, just wanted to test the waters before I start chunking time for it. 🙂)
Beta Was this translation helpful? Give feedback.
All reactions