(he/him)
@AtilaFassina
--
@AtilaFassina
π§
πͺπΈ
@AtilaFassina
π§
π₯
πΊ
π₯±
@AtilaFassina
@AtilaFassina
π§
πͺπΈ
π§π·
@AtilaFassina
Latin
πͺπΈ
π§π·
π§
@AtilaFassina
Tapas
πͺπΈ
π§π·
π§
@AtilaFassina
πͺπΈ
π§π·
@AtilaFassina
πͺπΈ
π§π·
π§
tapa
vAggressive
tapa
vFood
@AtilaFassina
π§
tapas
vAggressive
ΒΏQuieres unsΒ Β Β Β Β Β Β Β Β ?
tapas
π
πͺπΈ
Β‘Noooo!
@AtilaFassina
π Statical Analysis
𧱠Build
π Tests
πΎ Integration Tests
β΄ Ship
@AtilaFassina
@AtilaFassina
All Tests
All Builds
All Linters
@AtilaFassina
depends on
time
@AtilaFassina
@AtilaFassina
depends
time
on
build
build
@AtilaFassina
time
π
π
@AtilaFassina
@AtilaFassina
@AtilaFassina
π€
@AtilaFassina
@AtilaFassina
@AtilaFassina
@AtilaFassina
@AtilaFassina
@AtilaFassina
@AtilaFassina
@AtilaFassina
Release, Changelog, Publishing, Dependency Updates
Fast-Refresh and Hot-Reloading for Remix and Next.js
ESM and CJS export for packages
Ready to go: Β
@AtilaFassina
const withTM = require("next-transpile-modules")()
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
reactStrictMode: true,
swcMinify: true,
}
module.exports = withTM(nextConfig)
@AtilaFassina
const INTERNAL_ESM_PACKAGES = ["ui"]
const PACKAGES_PATHS = ["../../packages/ui"]
/** @type {import('@remix-run/dev').AppConfig} */
module.exports = {
serverBuildTarget: "vercel",
server: process.env.NODE_ENV === "development" ? undefined : "./server.js",
watchPaths: PACKAGES_PATHS,
serverDependenciesToBundle:
process.env.NODE_ENV === "development" ? [...INTERNAL_ESM_PACKAGES] : [],
}
@AtilaFassina
{
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
}
},
"scripts": {
"build": "tsup src/index.tsx --format cjs,esm --dts"
}
}
@AtilaFassina
{
"dependencies": {
"ui": "workspace:^"
},
"devDependencies": {
"eslint-config-custom": "workspace:*"
}
}
@AtilaFassina
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
labels: ["dependencies"],
extends: ["config:base"],
packageRules: [
{
matchUpdateTypes: ["minor", "patch", "pin", "digest"],
labels: ["automerge", "dependencies"],
},
],
}
@AtilaFassina
version = 1
[merge]
automerge_label = "automerge"
[merge.automerge_dependencies]
versions = ["minor", "patch"]
usernames = ["renovate"]
[update]
ignored_usernames = ["renovate"]
@AtilaFassina
@AtilaFassina