Skip to content

Instantly share code, notes, and snippets.

View JefCurtis's full-sized avatar
👋
Bring it on.

Jef Curtis JefCurtis

👋
Bring it on.
View GitHub Profile
@JefCurtis
JefCurtis / gist:6be20d22c31c4301bf180cb08fee97bd
Created January 15, 2026 18:41
[26Q1] 🚀 Astro Migration for Landing Pages
[David M](twist-mention://4028) and I, are spearheading the migrating of our marketing landing pages from Next.js to Astro! 🎯
This continues the successful experimentation we've been doing with Astro (Help Center and pairing sessions) and we're now ready to tackle the full landing pages migration.
**Why Astro?**
Our current Next.js setup has significant pain points: slow page loads, large client bundles, and poor performance, especially on slower connections and mobile devices. We're hitting Next.js limitations that block us from achieving our performance goals, and the framework just seems to be heading in the wrong direction for what we need it for.
Astro solves these problems with near-zero JavaScript by default and static generation. Plus, we keep our existing Atomic React components—no full rewrite needed.
@JefCurtis
JefCurtis / .gitignore
Last active September 12, 2018 17:31
Git ignore file
config/dev/
@JefCurtis
JefCurtis / package_V3.json
Last active September 12, 2018 18:06
Gmail add-on: Add production build script command
{
"scripts": {
"build:prod": "DEPLOY_ENV=prod webpack --config config/webpack/webpack.config.js",
"build": "DEPLOY_ENV=dev webpack --watch --config config/webpack/webpack.config.js",
"sync": "cd build/ && clasp push"
}
},
@JefCurtis
JefCurtis / webpack_v5.config.js
Last active September 12, 2018 18:01
Gmail add-on: Copy clasp.json file to the build directory
const { env } = require("process");
const deployEnv = env.DEPLOY_ENV || "dev";
[...]
module.exports = {
[...]
plugins: [
new CopyWebpackPlugin([
{ from: join(root, `config/${deployEnv}/.clasp.json`), to: ".", ToType: "file" },
]),
@JefCurtis
JefCurtis / package_v2.json
Last active September 12, 2018 07:19
Gmail add-on: Add sync and push command
{
"scripts": {
"sync": "DEPLOY_ENV=dev webpack --watch --config config/webpack/webpack.config.js",
"push": "cd build/ && clasp push"
}
}
@JefCurtis
JefCurtis / webpack_v4.config.js
Last active September 12, 2018 17:34
Gmail add-on: Copy Webpack plugin. Hook after emit.
const exec = require("child_process").exec;
[...]
module.exports = {
[...]
plugins: [
[...]
new CopyWebpackPlugin([
{ from: join(root, "config/dev/.clasp.json"), to: ".", ToType: "file" },
]),
{
@JefCurtis
JefCurtis / .clasp.json
Last active September 4, 2018 04:57
Gmail add-on: Clasp JSON file
{
"scriptId":"10r3UYeLI…"
}
@JefCurtis
JefCurtis / webpack_v3.config.js
Last active September 12, 2018 16:28
Gmail add-on: Add HTML Webpack plugin for AppsScript template
const HtmlWebpackPlugin = require("html-webpack-plugin");
[...]
module.exports = {
[...]
plugins: [
new HtmlWebpackPlugin({
filename: "appsscript.json",
template: join(root, "config", "appsscript.json.ejs"),
chunks: [],
@JefCurtis
JefCurtis / appsscript.json.ejs
Created September 4, 2018 04:54
Gmail add-on: AppsScript JSON template
{
"oauthScopes": [
"https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/gmail.readonly"
],
"gmail": {
"name": "<%= htmlWebpackPlugin.options.addon.name %>",
"logoUrl": "https://i.imgur.com/Em0d7Tc.png",
"contextualTriggers": [{
"unconditional": {
@JefCurtis
JefCurtis / package.json
Created September 4, 2018 04:37
Gmail add-on: Getting started
{
"scripts": {
"build": "DEPLOY_ENV=dev webpack --watch --config config/webpack/webpack.config.js",
}
}