From 4f5f51f87d059908ecc8ce92141a9f5cf571ea16 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Mon, 28 Jul 2025 11:00:32 -0500 Subject: [PATCH 01/38] change default settings for light + dark mode and evaluate sidebar --- docusaurus.config.js | 2 +- sidebars.js | 47 +++++++++++++++----------------------------- 2 files changed, 17 insertions(+), 32 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index d8af10299f..a58e38bbd8 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -27,7 +27,7 @@ module.exports = async function createConfigAsync() { clientModules: ["./src/client/remote-amplitude-analytics.js"], themeConfig: { colorMode: { - defaultMode: "light", + respectPrefersColorScheme: true, disableSwitch: false, // switchConfig: { // darkIcon: "🌙", diff --git a/sidebars.js b/sidebars.js index bd4dec9bf5..821c50282f 100644 --- a/sidebars.js +++ b/sidebars.js @@ -3,14 +3,13 @@ module.exports = { "index", { type: "category", - label: "Evaluate", + label: "Introduction", collapsed: false, link: { type: "doc", id: "evaluate/index", }, items: [ - "evaluate/why-temporal", "evaluate/understanding-temporal", { type: "category", @@ -20,36 +19,23 @@ module.exports = { type: "doc", id: "evaluate/development-production-features/index", }, + items: [], + }, + { + type: "category", + label: "Product release stages", + collapsed: true, + link: { + type: "doc", + id: "evaluate/development-production-features/release-stages", + }, items: [ - "evaluate/development-production-features/core-application", - "evaluate/development-production-features/failure-detection", - "evaluate/development-production-features/throughput-composability", - "evaluate/development-production-features/nexus", - "evaluate/development-production-features/workflow-message-passing", - "evaluate/development-production-features/debugging", - "evaluate/development-production-features/interrupt-workflow", - "evaluate/development-production-features/testing-suite", - "evaluate/development-production-features/observability", - "evaluate/development-production-features/data-encryption", - "evaluate/development-production-features/schedules", - "evaluate/development-production-features/cloud-automation", - "evaluate/development-production-features/low-latency", - "evaluate/development-production-features/multi-tenancy", { - type: "category", - label: "Product release stages", - collapsed: true, - link: { - type: "doc", - id: "evaluate/development-production-features/release-stages", - }, - items: [ - { - type: "link", - label: "Change-log", - href: "https://temporal.io/change-log", - }, - ], + type: "link", + label: "Change-log", + + + href: "https://temporal.io/change-log", }, ], }, @@ -88,7 +74,6 @@ module.exports = { ], }, "security", - "evaluate/use-cases-design-patterns", ], }, { From a83d2285b1fc77bef618a675738a4ff7dbfd182f Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Mon, 28 Jul 2025 17:10:58 -0500 Subject: [PATCH 02/38] landing css and sdk box style logos --- docs/evaluate/index.mdx | 129 +++++- src/css/landing.css | 406 ++++++++++++++++++ static/img/sdks/svgs/sdk-box-logos/dotnet.svg | 14 + static/img/sdks/svgs/sdk-box-logos/go.svg | 8 + static/img/sdks/svgs/sdk-box-logos/java.svg | 5 + static/img/sdks/svgs/sdk-box-logos/php.svg | 4 + static/img/sdks/svgs/sdk-box-logos/python.svg | 5 + static/img/sdks/svgs/sdk-box-logos/ruby.png | Bin 0 -> 2993 bytes static/img/sdks/svgs/sdk-box-logos/ruby.svg | 10 + .../sdks/svgs/sdk-box-logos/typescript.svg | 4 + 10 files changed, 564 insertions(+), 21 deletions(-) create mode 100644 src/css/landing.css create mode 100644 static/img/sdks/svgs/sdk-box-logos/dotnet.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/go.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/java.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/php.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/python.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/ruby.png create mode 100644 static/img/sdks/svgs/sdk-box-logos/ruby.svg create mode 100644 static/img/sdks/svgs/sdk-box-logos/typescript.svg diff --git a/docs/evaluate/index.mdx b/docs/evaluate/index.mdx index e8a3d32665..672e5574a8 100644 --- a/docs/evaluate/index.mdx +++ b/docs/evaluate/index.mdx @@ -1,26 +1,113 @@ --- id: index -title: Evaluate Temporal -sidebar_label: Evaluate -description: Temporal enhances distributed application development with clear code structure, fault-tolerance, and execution guarantees, trusted by thousands for mission-critical workloads. -collapsed: false -toc_max_heading_level: 4 -keywords: - - evaluate temporal - - temporal - - what is temporal - - introduction to temporal -tags: - - Temporal +title: Introducing Temporal +sidebar_label: Introduction +description: Temporal is a developer-first, open source platform that ensures the successful execution of services and applications. --- -Temporal is designed to make developing distributed applications a delightful experience. -Developers benefit from a clear approach to structure their code and visibility into the state of their application. -Applications benefit from fault-tolerance and execution guarantees. -Thousands of companies of all sizes are leveraging Temporal's capabilities for both mission critical and standard workloads. +# Introducing Temporal -- [Why Temporal](/evaluate/why-temporal) -- [Development and production features](/evaluate/development-production-features) -- [Use cases](/evaluate/use-cases-design-patterns) -- [Temporal Cloud](/cloud) -- [Security](/security) +Temporal is a developer-first, open source platform that ensures the successful execution of services and applications. + +## Who is Temporal for? + +- Backend engineers +- Platform engineers +- SRE/DevOps, infrastructure engineers +- Architects + +## What problems does Temporal solve? + +
+ +
+

Compensating transactions (saga pattern)

+

Handle failures across distributed services with compensating transactions

+
+
+ + +
+

Human-in-the-loop

+

Integrate human decision making into automated processes

+
+
+ + +
+

Long-running workflows

+

Build reliable processes that run for days or months

+
+
+ + +
+

Microservice orchestration

+

Coordinate multiple services and handle failures gracefully

+
+
+ + +
+

Reliable scheduling

+

Schedule and manage recurring tasks with guaranteed execution

+
+
+ + +
+

Distributed transactions

+

Maintain data consistency across multiple services

+
+
+
+ +## How does Temporal work? + +Temporal provides durable execution for your applications through its unique architecture. Write your business logic as Workflows and Activities, deploy them to Workers, and let Temporal handle the rest. + +## What programming languages are supported? + +Temporal allows you to develop with durable execution in different languages and multiple languages can be used to build single services, enabling polyglot development. + +
+ Go SDK + Java SDK + TypeScript SDK + Python SDK + PHP SDK + .NET SDK + Ruby SDK +
+ +## Self-Hosted or Fully-Managed Service + +Temporal is fully open source. You can self-host the Temporal Service or use Temporal Cloud, our fully-managed SaaS offering. + +
+ Self-Hosted or Fully-Managed Service +
+ +
+ +
+ Next: + Understanding Temporal +
+
→
+
+
+ + \ No newline at end of file diff --git a/src/css/landing.css b/src/css/landing.css new file mode 100644 index 0000000000..7ded051ca6 --- /dev/null +++ b/src/css/landing.css @@ -0,0 +1,406 @@ +/* Dark Mode (Default) */ +:root { + --background-color: #161723; + --text-color: #FFFFFF; + --card-background: #161723; + --card-hover: #161723; + --link-color: #CACBF9; + --link-hover-color: #FFFFFF; + --border-color: #30363D; + --section-gap: 1.5rem; + --card-padding: 1.25rem; + --heading-color: #FFFFFF; + --subtext-color: #8B949E; + --icon-background: #161723; + --icon-color: #3FB950; +} + +/* Light Mode */ +[data-theme="light"] { + --background-color: #FFFFFF; + --text-color: #111827; + --card-background: #FFFFFF; + --card-hover: #F9FAFB; + --link-color: #374151; + --link-hover-color: #111827; + --border-color: #E5E7EB; + --heading-color: #111827; + --subtext-color: #6B7280; + --icon-color: #3FB950; +} + +/* Global Styles */ +body { + background-color: var(--background-color); + margin: 0; + padding: 0; + font-family: "Aeonik", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} + +/* Docs Landing Page Styles */ +.docs-landing { + background: var(--background-color); + color: var(--text-color); + min-height: 100vh; + padding: 0; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} + +.docs-landing-header { + background: var(--background-color); + color: var(--text-color); + padding: 0; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} + +.docs-landing-header .container { + max-width: 100%; + width: 1280px; + margin: 0 auto; + padding: 3rem 1.5rem 0; +} + +.docs-landing-header h1 { + font-size: 3rem; + font-weight: 300; + margin-bottom: 3rem; + letter-spacing: -0.5px; + color: var(--heading-color); +} + +.docs-landing-header .description-section { + margin-bottom: 3rem; +} + +.docs-landing-header .description-section h4 { + font-size: 1rem; + font-weight: 600; + color: var(--heading-color); + margin-bottom: 1rem; + letter-spacing: 0.5px; +} + +.docs-landing-header .description-section p { + font-size: 1.125rem; + line-height: 1.6; + color: var(--subtext-color); + margin-bottom: 0; +} + +.docs-landing-header .fixed-size-logo { + width: 300px; + height: auto; + display: block; + margin: 0 0 2rem 0; +} + +/* Responsive styles for header */ +@media (max-width: 768px) { + .docs-landing-header .container { + padding: 2rem 1rem 0; + } + + .docs-landing-header h1 { + font-size: 2rem; + margin-bottom: 2rem; + } + + .docs-landing-header .description-section { + margin-bottom: 2rem; + } + + .docs-landing-header .description-section h4 { + font-size: 0.9rem; + } + + .docs-landing-header .description-section p { + font-size: 1rem; + } + + .docs-landing-header .fixed-size-logo { + width: 250px; + } +} + +.docs-landing .container { + max-width: 100%; + width: 1280px; + margin: 0 auto; + padding: 3rem 1.5rem 0; +} + +/* Banner Image */ +.docs-landing img[alt="SDK Logo Banner"] { + width: 1280px; + max-width: 100%; + height: auto; + margin-bottom: 2rem; +} + +/* SDK Logos */ +.sdk-logos { + display: flex; + justify-content: center; + gap: 2rem; + margin: 2rem 0; + flex-wrap: wrap; +} + +.sdk-logos img { + height: 32px; + width: auto; +} + +/* Main Grid Layout */ +.main-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--section-gap); + margin-bottom: 2.5rem; +} + +/* Secondary Grid Layout */ +.secondary-grid { + margin: 2.5rem 0; +} + +.section-row { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--section-gap); + margin-bottom: var(--section-gap); +} + +/* Learning Section */ +.learning-section { + margin-top: 4rem; + padding-top: 2.5rem; +} + +.learning-section h1 { + text-align: left; + margin-bottom: 5rem; + color: var(--heading-color); + font-family: "Aeonik", sans-serif; + font-size: 3.75rem; + font-weight: 300; + letter-spacing: -0.025em; + line-height: 1.1; +} + +.learning-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; +} + +/* Card Styles */ +.section-card { + background: var(--card-background); + border: 1px solid var(--border-color); + border-radius: 0; + padding: 1.5rem; + height: 100%; + transition: all 0.2s ease; + display: flex; + flex-direction: column; +} + +.section-card:hover { + background: var(--card-hover); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.section-header { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 0.75rem; + padding-bottom: 0.75rem; +} + +.section-icon-wrapper { + display: flex; + align-items: center; + justify-content: center; + width: 2.5rem; + height: 2.5rem; +} + +.section-icon { + stroke: var(--icon-color); + stroke-width: 2; + width: 1.5rem; + height: 1.5rem; +} + +.section-header h2 { + color: var(--heading-color); + font-family: "Aeonik", sans-serif; + font-size: 1.5rem; + font-weight: 300; + line-height: 1.1; + letter-spacing: 0; + margin: 0; +} + +/* Section Links */ +.section-links { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-start; +} + +.section-link { + color: var(--link-color); + font-family: "Aeonik", sans-serif; + font-size: 1rem; + font-weight: 300; + line-height: 1.1; + letter-spacing: 0; + text-decoration: none; + position: relative; + transition: all 0.3s ease; + width: fit-content; + display: inline-flex; +} + +.section-link:hover { + color: var(--link-hover-color); + text-decoration: underline; +} + +.section-link::after { + content: ''; + position: absolute; + width: 100%; + height: 1px; + bottom: -2px; + left: 0; + background-color: var(--link-hover-color); + transform: scaleX(0); + transform-origin: left; + transition: transform 0.3s ease; +} + +.section-link:hover::after { + transform: scaleX(1); +} + +/* Typography */ +.docs-landing h1 { + font-size: 2rem; + font-weight: 600; + color: var(--heading-color); + margin-bottom: 0.5rem; +} + +.docs-landing h2 { + font-size: 1.25rem; + font-weight: 600; + color: var(--heading-color); + margin: 0; +} + +.docs-landing p { + color: var(--subtext-color); + font-size: 0.875rem; + line-height: 1.5; + margin: 0; +} + +/* What is Temporal Section */ +.docs-landing h2[id="what-is-temporal"] { + font-size: 1.25rem; + margin-bottom: 0.5rem; + color: var(--heading-color); +} + +.docs-landing h2[id="what-is-temporal"] + p { + color: var(--subtext-color); + margin-bottom: 2.5rem; +} + +/* Get Started Button */ +.get-started-button { + display: inline-flex; + align-items: center; + margin-top: 1rem; + padding: 0.5rem 1rem; + background: linear-gradient(to right, #3FB950, #238636); + color: white; + text-decoration: none; + border-radius: 0.375rem; + font-size: 0.875rem; + font-weight: 500; + transition: opacity 0.2s; +} + +.get-started-button:hover { + opacity: 0.9; +} + +/* Responsive Design */ +@media (max-width: 1280px) { + .main-grid { + grid-template-columns: 1fr 1fr; + } +} + +@media (max-width: 1024px) { + .section-row { + grid-template-columns: repeat(2, 1fr); + } + + .section-row:last-child { + grid-template-columns: 1fr 1fr; + } + + .learning-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 768px) { + .main-grid { + grid-template-columns: 1fr; + } + + .section-row, + .section-row:last-child, + .learning-grid { + grid-template-columns: 1fr; + } + + .docs-landing .container { + padding: 0 1rem; + } +} + +/* Dark Mode Adjustments */ +[data-theme="dark"] .section-card { + background: var(--card-background); + border-color: var(--border-color); +} + +[data-theme="dark"] .section-header { + border-bottom-color: var(--border-color); +} + +[data-theme="dark"] .learning-section { + border-top-color: var(--border-color); +} + +.resource-img { + border-radius: 0; +} + +.cloud-button { + border-radius: 0; +} + +.highlight { + border-radius: 0; +} \ No newline at end of file diff --git a/static/img/sdks/svgs/sdk-box-logos/dotnet.svg b/static/img/sdks/svgs/sdk-box-logos/dotnet.svg new file mode 100644 index 0000000000..5116220593 --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/dotnet.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/go.svg b/static/img/sdks/svgs/sdk-box-logos/go.svg new file mode 100644 index 0000000000..fdefe31b6d --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/go.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/java.svg b/static/img/sdks/svgs/sdk-box-logos/java.svg new file mode 100644 index 0000000000..62d4525175 --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/java.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/php.svg b/static/img/sdks/svgs/sdk-box-logos/php.svg new file mode 100644 index 0000000000..4a2c2e7d91 --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/php.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/python.svg b/static/img/sdks/svgs/sdk-box-logos/python.svg new file mode 100644 index 0000000000..2d59a0af4c --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/python.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/ruby.png b/static/img/sdks/svgs/sdk-box-logos/ruby.png new file mode 100644 index 0000000000000000000000000000000000000000..af1dc434d24b58d5c4c25e65a5622e54c304b3a1 GIT binary patch literal 2993 zcmbuB_dgVXAI4>K=`zpWjexC+bWf%NTOMcx0O?A5%QSrCuyvhwTk~#90r4DV~}Xnfjz=r-SLkWT0S{ zU-WTE-f#f-3VA`EP%SbP&pi}+)hQeiN)m1_w$+m8lt3bN2s|X5T<>0VoFu4>?|~FU zp?f~zP-?9gFrj>b{K&LOI&-@J9c&|=a#FhK+FMUZt2P-YN+t3_LRADwJjXC|#9Z-Q z;mKMw)9Th?pesd`pULpsF1Fm;x4G#foE%7Ku9Ngxeo^X;KzU=bw1^clvJu9g-7;_( z4la$}l|B8Mm6l`2VpEwTvLo-t{t~BE4;iVFuA0_aQ(J4a{ZVz(I}!PIG#R7ODHcK8 z+3rDevTL#xG@2c8j@aq7jV`43Tr(yIzxM3`ZPITA2Y&2tke2Q`2rw9*?_!eNs)o)e z`YWRjs0p5g`_w;$Kc8M=0L48sKR8(f7yrG9l1t0EMX##LU}DTumPhFvRTMoms7jkF zC)y*g0H|?5^SB zCxJN^K=#*4VzF5i%|Wt2$*sH4!*zw-c~!YjUKDyy^}OyXd=-#AUF^i&Gi|=+CrJA; zkhjQVgRIIlNLcFI&}HgH{sEdEtHVAouD>L zeK}e&ndCJmBch(Hs-^^9mldSgR?n{TI1&lli;#%W|7LVhJ#nozP@j#?!m(HQ#2{DqJU#j0~WbT>8KZjU{r8I8-}aZC81(nfW4eDI=oa|2cBQHOYi5XnkS zt6p9(ssNiD>U?MRX=s32Ybp%nS>YFFYGkVgcFE_c0soHogS)M&UB?kFlT^pW#U91_ zu9_Tq4P_EJWmbL=+4re2JTFJIZJZI2`)3$6HgS^eTw7|LU{n*{9i9J3w4{`cU0FwK z^vWw`;^6)luFz{nL&NA*kg;KbrGaWboUvAGkFTkM-AHxj~csTX+e zrwCHsB<_eYe|&8Z$d|3*LcGqF{hTvC>gr9y7Bjw_ep^}~Rc};3_;w-nm42^7eJX+B zZLre1K#;0$Frm}Kazr%roqW5E)=sdm95LUc99oTrCW-*uhN)5o*K}^ICdfi~KsgIt zGO^3slE?fiOz<1WSM9e>#c#$sSoUcmk|0I^&p~A^TqE0M7?+;Ix<7Z1$@=59&#mHo{K_se zG2c|Kf5l#;{K++A;AW!09v(FFoB{$|1OZY5P$c@LE7bk*+k|D@N~r4N>~L|R%WE~w zGb&V^eRG>Z#Cn+vb@B8B@+o?k-amEWN80zA738V2o_NwI0Y$34FQWj5It2ML_ zAwAmfO@|Ct#>e$&n3JN_$sfK)VqK0r>lxSclq_{Oc4<(n{>yFO54s6t1X(pjM`w{S z9~jFx-qiw-II^yKL6wxw5$^)G7hQ%>Xm3rl4E6(mYt#EaY{?@%TL)fqvSEcB@=pwY z0?K5-;L1Rn&AXp362A)pO<3av?N6g9Aet2zYbUYw+DGdiulDgKw-@IjmWb32n&A6p7Pa&(5*Q&^w?m6@z0JL>=9Xw zfQrS?D{Tu|qPg(jQI3E{VICH)1P)@9ZtK!0Qf%4e+(-R^j=wATHse_@7L)!V!#X;x z+c(Q(kfK>0a@tWB^-xBSOBgW$HQ&_|7ppuRogOpT{v+q3hoCl2?#b@n}9q`mTtP+BuX zN~5H_?za zbhM#dc$8^uJX)-B(ng8ut&%WE!iQ~V`@XrO)i8G6>g6?}d2sn%cY;PkRjyW!#9sc~ zh^zr?*XlNZNW7bm06nJcFhBPpob0T^LIMv2Y5 z=q((O8Lm8@s06xiuEdlpwFi!%S_Hy}3*!RsIIt=vdDZq;IWoq3Sb6AdDw=OhTXg_B zcs9P2mZbFoAK}6Z4fWr!NyT7at;iSb4caflQx_uV)CtK_zixiP-EA^iSJzQUXH;^$4Xrd8sF0N{Jv-kXQDM&g zBh{RJ&@nZcZQQ)8@ABiy_>8M)Cew3gGg)WSMz~aMe8LPv8=YIMn74PRwUx+EHqJBZ z4>7-^K4Ew6$+R#SDSF+xC=04y$8?v?+iJ~Zg@e3XRPj4De2vSU7s=v|N4wz;hOrGM zTHe*GXY2V=vyfL1QEpS7hz;UQGYHBr|CiQPdk9bhnpgPoblb#{dJHrX`*)Y89JwYyTzBAJvN zTlw(dG=HtEPF-x+O$}r@w3JudCA`$O#mtftwLim44)^ax&F6~nIDuatG<()?bB%no z;Y_{n=5ZPvyz|@nIlHMR@4KMmy#5W!w|qN`N_jBcLT*lL$7_*_hoW(v8o?*0JN-@E zw@W;tzo|&ij?h}X_%R=1;jxH#`PToy2(MUR=egQ#O;jr-T{K}s<=(od7u%>vYtGWN z_vuZULh2Wx!FgEHJy}p$R8cpglKG5xV+TP0aas9qBRiN3uF=(Y09@1tNoTY@A`~+^ z(J$QdO28uyJYv(!mg^3T2Awu=?ql-U?7HM<(5Fx;Q7VCY{uK2852ueyu-;aSv0;C2 P7B&$~U01CNY7_n+7n-%l literal 0 HcmV?d00001 diff --git a/static/img/sdks/svgs/sdk-box-logos/ruby.svg b/static/img/sdks/svgs/sdk-box-logos/ruby.svg new file mode 100644 index 0000000000..b6b8d205db --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/ruby.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static/img/sdks/svgs/sdk-box-logos/typescript.svg b/static/img/sdks/svgs/sdk-box-logos/typescript.svg new file mode 100644 index 0000000000..31c98dd6f5 --- /dev/null +++ b/static/img/sdks/svgs/sdk-box-logos/typescript.svg @@ -0,0 +1,4 @@ + + + + From 53a2d4eb30804021fa7e87674a1ad615366b82fd Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 30 Jul 2025 10:29:34 -0500 Subject: [PATCH 03/38] adding react components and card grid style pages --- docs/develop/index.mdx | 206 +++++++++++- docs/encyclopedia/index.mdx | 92 +++++- .../development-production-features/index.mdx | 100 ++++-- docs/index.mdx | 30 +- docs/security.mdx | 125 +++++++- src/components/elements/CallToAction.js | 13 + src/components/elements/InfoBox.js | 16 + src/components/elements/SetupSteps.js | 32 ++ .../elements/call-to-action.module.css | 42 +++ src/components/elements/features.module.css | 91 ++++++ src/components/elements/info-box.module.css | 36 +++ .../elements/setup-steps.module.css | 55 ++++ .../experimental/TemporalDocsLanding.js | 302 ++++++++++++++++++ 13 files changed, 1080 insertions(+), 60 deletions(-) create mode 100644 src/components/elements/CallToAction.js create mode 100644 src/components/elements/InfoBox.js create mode 100644 src/components/elements/SetupSteps.js create mode 100644 src/components/elements/call-to-action.module.css create mode 100644 src/components/elements/features.module.css create mode 100644 src/components/elements/info-box.module.css create mode 100644 src/components/elements/setup-steps.module.css create mode 100644 src/components/experimental/TemporalDocsLanding.js diff --git a/docs/develop/index.mdx b/docs/develop/index.mdx index 798660d002..35afd92333 100644 --- a/docs/develop/index.mdx +++ b/docs/develop/index.mdx @@ -5,16 +5,202 @@ description: Discover comprehensive Temporal SDK feature guides and API referenc sidebar_label: Development --- -import { SdkLogos } from '@site/src/components'; +import { SdkLogos } from '@site/src/components/elements/SdkLogos'; -The Temporal SDK developer guides provide a comprehensive overview of the structures, primitives, and features used in [Temporal Application](/temporal#temporal-application) development. +## 100% Open Source - +Temporal SDKs provide the foundation for building reliable distributed applications. Each SDK is designed to help you implement durable Workflows, Activities, and Workers with native language support and comprehensive tooling. -- Go SDK [developer guide](/develop/go) and [API reference](http://t.mp/go-api) -- Java SDK [developer guide](/develop/java) and [API reference](http://t.mp/java-api) -- PHP SDK [developer guide](/develop/php) and [API reference](https://php.temporal.io/namespaces/temporal.html) -- Python SDK [developer guide](/develop/python) and [API reference](https://python.temporal.io) -- TypeScript SDK [developer guide](/develop/typescript) and [API reference](https://typescript.temporal.io) -- .NET SDK [developer guide](/develop/dotnet) and [API reference](https://dotnet.temporal.io/) -- Ruby SDK [developer guide](/develop/ruby) and [API reference](https://ruby.temporal.io/) +
+
+
+
+
+

Go SDK

+ Go SDK +
+ +
+
+
+

Java SDK

+ Java SDK +
+ +
+
+
+

TypeScript SDK

+ TypeScript SDK +
+ +
+
+
+

Python SDK

+ Python SDK +
+ +
+
+
+

PHP SDK

+ PHP SDK +
+ +
+
+
+

.NET SDK

+ .NET SDK +
+ +
+
+
+

Ruby SDK

+ Ruby SDK +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/encyclopedia/index.mdx b/docs/encyclopedia/index.mdx index 3c9b5df817..2de85d8950 100644 --- a/docs/encyclopedia/index.mdx +++ b/docs/encyclopedia/index.mdx @@ -9,22 +9,82 @@ keywords: [Temporal](/evaluate/why-temporal) provides developers a suite of effective tools for building reliable applications at scale. -The following Encyclopedia pages describe the concepts, components, and features of Temporal in detail: +
+ The following Encyclopedia pages describe the concepts, components, and features of Temporal in detail: +
-- [Temporal](/temporal) -- [Temporal SDKs](/encyclopedia/temporal-sdks) -- [Workflows](/workflows) -- [Activities](/activities) -- [Detecting application failures](/encyclopedia/detecting-application-failures) -- [Workers](/workers) -- [Event History](/encyclopedia/event-history/) -- [Workflow Message Passing](/encyclopedia/workflow-message-passing/) -- [Child Workflows](/child-workflows) -- [Visibility](/visibility) -- [Temporal Service](/temporal-service) -- [Namespaces](/namespaces) -- [Temporal Nexus](/nexus) -- [Data conversion](/dataconversion) +
+
+

Temporal

+

Core concepts and overview of the Temporal platform for building reliable distributed applications.

+ Learn more → +
+
+

Temporal SDKs

+

Software development kits that provide APIs and tools for building Temporal applications.

+ Learn more → +
+
+

Workflows

+

Durable functions that coordinate Activities and maintain state across failures and restarts.

+ Learn more → +
+
+

Activities

+

Functions that interact with external systems and can be retried independently of Workflows.

+ Learn more → +
+
+

Detecting application failures

+

Mechanisms for identifying and handling failures in distributed Temporal applications.

+ Learn more → +
+
+

Workers

+

Processes that execute Workflow and Activity code, polling for tasks from the Temporal Service.

+ Learn more → +
+
+

Event History

+

Complete record of all events that occurred during a Workflow Execution's lifetime.

+ Learn more → +
+
+

Workflow Message Passing

+

Communication patterns including Signals, Queries, and Updates for Workflow interactions.

+ Learn more → +
+
+

Child Workflows

+

Workflows that are started by other Workflows, enabling composition and modularity.

+ Learn more → +
+
+

Visibility

+

Tools and APIs for observing and querying the state of Workflow Executions.

+ Learn more → +
+
+

Temporal Service

+

The backend service that manages Workflow state, task distribution, and durability.

+ Learn more → +
+
+

Namespaces

+

Logical isolation boundaries for organizing Workflows, Activities, and other resources.

+ Learn more → +
+
+

Temporal Nexus

+

Service framework for building and operating resilient service APIs with Temporal.

+ Learn more → +
+
+

Data conversion

+

Mechanisms for serializing, deserializing, and transforming data in Temporal applications.

+ Learn more → +
+
For a complete list of Temporal terms, see the [Glossary](/glossary). @@ -32,4 +92,4 @@ For information on how to implement the developer-facing features see the [Devel For information on how to use Temporal Cloud see the [Temporal Cloud production deployment](/cloud) section. -For information on how to self-host a Temporal Service see the [Self-hosted production deployment](/self-hosted-guide) section. +For information on how to self-host a Temporal Service see the [Self-hosted production deployment](/self-hosted-guide) section. \ No newline at end of file diff --git a/docs/evaluate/development-production-features/index.mdx b/docs/evaluate/development-production-features/index.mdx index 4fe83b65b0..9d69b61e7f 100644 --- a/docs/evaluate/development-production-features/index.mdx +++ b/docs/evaluate/development-production-features/index.mdx @@ -25,23 +25,87 @@ keywords: - queries --- -Through a Temporal SDK, Temporal provides a wide range of features that enable developers to build applications that serve a wide range of use cases. +import { CallToAction } from '@site/src/components/elements/CallToAction'; -- **[Core application primitives](/evaluate/development-production-features/core-application)**: Develop and run your application with Workflows, Activities, and Workers. -- **[Testing suite](/evaluate/development-production-features/testing-suite)**: Each Temporal SDK comes with a testing suite that enables developers to test their applications as they would any other. -- **[Scheduled Workflows](/evaluate/development-production-features/schedules)**: Start a business process at a specific time or on a given time interval. -- **[Interrupt a Workflow](/evaluate/development-production-features/interrupt-workflow)**: Cancel or terminate a business process (Workflow) that is already in progress and compensate for any steps already taken. -- **Runtime safeguards**: Prevent avoidable errors and issues from executing during runtime. -- **[Failure detection and mitigation](/evaluate/development-production-features/failure-detection)**: Detect failures with timeouts and configure automatic retries to mitigate them. -- **[Temporal Nexus](/evaluate/nexus)**: Connect Temporal Applications across (and within) isolated Namespaces for improved modularity, security, debugging, and fault isolation. Nexus supports cross-team, cross-domain, and multi-region use cases. -- **[Workflow message passing](/evaluate/development-production-features/workflow-message-passing)**: Build responsive applications that react to events at runtime and enable data retrieval from ongoing Workflows. -- **Versioning**: Support multiple versions of your business logic for long-running business processes. -- **[Observability](/evaluate/development-production-features/observability)**: List business process, view their state, and set up dashboards with metrics. -- **[Debugging](/evaluate/development-production-features/debugging)**: Surface errors and step through code to find issues. -- **[Data encryption](/evaluate/development-production-features/data-encryption)**: Transform data and protect the privacy of the users of your application. -- **[Throughput composability](/evaluate/development-production-features/throughput-composability)**: Breakup business processes by data streams, team ownership, or other organization factors. -- **[Cloud Automation](/evaluate/development-production-features/cloud-automation)**: Simplify cloud management and boost security with Temporal's Cloud Automation. -- **[Low Latency](/evaluate/development-production-features/low-latency)**: Making your applications faster, more performant, and more efficient. -- **[Multi-tenancy](/evaluate/development-production-features/multi-tenancy)**: Enhances efficiency and cost-effectiveness. +# Features -For detailed information on Temporal feature release stages and criteria, see this [Product Release Stages Guide](/evaluate/development-production-features/release-stages). +
+ The Temporal SDK provides a comprehensive suite of features designed to make building reliable, scalable applications easier than ever. Explore the full feature set below. +
+ +
+
+

Core application

+

Workflows, Activities, and Workers form the foundation of every Temporal application.

+ Learn more → +
+
+

Failure detection

+

Automatic detection and handling of failures, with timeouts and retry policies.

+ Learn more → +
+
+

Composability

+

Partition and compose business logic with Child Workflows for scalable throughput.

+ Learn more → +
+
+

Temporal Nexus

+

Connect applications and teams across namespaces for modular, secure architectures.

+ Learn more → +
+
+

Workflow message passing

+

Signals, Queries, and Updates enable dynamic, real-time interaction with running Workflows.

+ Learn more → +
+
+

Debugging

+

Powerful debugging tools, including replay debugging and state inspection.

+ Learn more → +
+
+

Interrupt a Workflow

+

Cancel or terminate a Workflow in progress and compensate for completed steps.

+ Learn more → +
+
+

Testing suite

+

Comprehensive testing tools for unit, integration, and end-to-end testing.

+ Learn more → +
+
+

Observability

+

Metrics, tracing, logging, and visibility into your application state.

+ Learn more → +
+
+

Data encryption

+

End-to-end encryption for your workflow data, ensuring sensitive information remains secure.

+ Learn more → +
+
+

Schedules

+

Schedule Workflows to run at specific times or intervals, with cron and custom logic support.

+ Learn more → +
+
+

Cloud automation

+

Automate cloud infrastructure management, including provisioning, scaling, and maintenance tasks.

+ Learn more → +
+
+

Low latency

+

Optimized for low-latency operations, ensuring your workflows run as quickly as possible.

+ Learn more → +
+
+

Multi-tenancy

+

Support for multiple tenants in a single Temporal cluster, with isolation and resource management.

+ Learn more → +
+
+ + + For detailed information about feature release stages and criteria, see our Product Release Stages Guide. + \ No newline at end of file diff --git a/docs/index.mdx b/docs/index.mdx index 26a8cce630..88f72e9f97 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,14 +1,30 @@ --- id: index -title: Temporal Platform Documentation -sidebar_label: Documentation Home +title: Temporal Documentation +sidebar_label: Home description: Explore Temporal's comprehensive documentation to build, scale, and manage reliable, fault-tolerant workflows with Workflow-as-Code solutions. --- - - Temporal Platform Documentation - + + +import TemporalDocsLanding from '@site/src/components/experimental/TemporalDocsLanding'; + + \ No newline at end of file diff --git a/docs/security.mdx b/docs/security.mdx index 6afd52b099..85fabfd7ac 100644 --- a/docs/security.mdx +++ b/docs/security.mdx @@ -11,20 +11,127 @@ tags: - Security --- -:::info Temporal Technologies' general company security +Find security information for your Temporal deployment, whether you're using Temporal Cloud or self-hosting. -For information about the general security habits of Temporal Technologies, see our [trust page](https://trust.temporal.io). + -For information about the security features of our SaaS offering, Temporal Cloud, see our [Cloud security page](/cloud/security). + \ No newline at end of file diff --git a/src/components/elements/CallToAction.js b/src/components/elements/CallToAction.js new file mode 100644 index 0000000000..8639ca3022 --- /dev/null +++ b/src/components/elements/CallToAction.js @@ -0,0 +1,13 @@ +import React from 'react'; +import styles from './call-to-action.module.css'; + +export const CallToAction = ({ href, children }) => { + return ( + +
+ {children} +
+
→
+
+ ); +}; \ No newline at end of file diff --git a/src/components/elements/InfoBox.js b/src/components/elements/InfoBox.js new file mode 100644 index 0000000000..e54e31d955 --- /dev/null +++ b/src/components/elements/InfoBox.js @@ -0,0 +1,16 @@ +import React from 'react'; + + + import styles from './info-box.module.css'; + + export const InfoBox = ({ title, children }) => { + return ( +
+
ⓘ
+
+

{title}

+ {children} +
+
+ ); + }; \ No newline at end of file diff --git a/src/components/elements/SetupSteps.js b/src/components/elements/SetupSteps.js new file mode 100644 index 0000000000..0efa1e81ee --- /dev/null +++ b/src/components/elements/SetupSteps.js @@ -0,0 +1,32 @@ +import React from 'react'; + import styles from './setup-steps.module.css'; + import CodeBlock from '@theme/CodeBlock'; + + export const SetupStep = ({ children, code }) => { + return ( +
+
+ {children} +
+
+ {code} +
+
+ ); + }; + + export const CodeSnippet = ({ language, children }) => { + return ( + + {children} + + ); + }; + + export const SetupSteps = ({ children }) => { + return ( +
+ {children} +
+ ); + }; \ No newline at end of file diff --git a/src/components/elements/call-to-action.module.css b/src/components/elements/call-to-action.module.css new file mode 100644 index 0000000000..f836f9d393 --- /dev/null +++ b/src/components/elements/call-to-action.module.css @@ -0,0 +1,42 @@ +.cta { + display: flex; + align-items: center; + justify-content: space-between; + background: linear-gradient(to right, #2e2e60, #1e1e40); + border: 1px solid #3b3b7c; + border-radius: 8px; + padding: 1.5rem; + margin: 2rem 0; + color: #e6e6fa; + text-decoration: none; + transition: all 0.3s ease; + } + + .cta:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); + text-decoration: none; + color: #e6e6fa; + } + + .content { + flex: 1; + } + + .content h3 { + margin: 0; + font-size: 1.2rem; + color: #e6e6fa; + } + + .content p { + margin: 0.5rem 0 0 0; + color: #b4b4d4; + font-size: 0.95rem; + } + + .arrow { + font-size: 1.5rem; + margin-left: 1rem; + color: #8585ff; + } \ No newline at end of file diff --git a/src/components/elements/features.module.css b/src/components/elements/features.module.css new file mode 100644 index 0000000000..5163f7b764 --- /dev/null +++ b/src/components/elements/features.module.css @@ -0,0 +1,91 @@ +.features-intro { + font-size: 1.2rem; + line-height: 1.6; + color: var(--ifm-color-emphasis-700); + margin-bottom: 2rem; + max-width: 800px; + } + + .feature-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 1.5rem; + margin-bottom: 3rem; + } + + .feature-card { + background: var(--ifm-card-background-color); + border-radius: 8px; + padding: 1.5rem; + transition: all 0.3s ease; + border: 1px solid var(--ifm-color-emphasis-200); + display: flex; + flex-direction: column; + } + + .feature-card:hover { + transform: translateY(-5px); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + border-color: var(--ifm-color-primary); + } + + .feature-icon { + font-size: 2rem; + margin-bottom: 1rem; + } + + .feature-card h3 { + font-size: 1.25rem; + margin-bottom: 0.75rem; + color: var(--ifm-color-emphasis-900); + } + + .feature-card p { + color: var(--ifm-color-emphasis-600); + margin-bottom: 1rem; + } + + .feature-link { + color: var(--ifm-color-primary); + text-decoration: none; + font-weight: 500; + display: inline-flex; + align-items: center; + transition: color 0.2s ease; + } + + .feature-link:hover { + color: var(--ifm-color-primary-darker); + text-decoration: none; + } + + .release-stages-note { + margin: 2rem 0; + padding: 1rem; + background: var(--ifm-color-emphasis-100); + border-radius: 8px; + font-size: 0.9rem; + color: var(--ifm-color-emphasis-700); + } + + /* Dark mode adjustments */ + [data-theme='dark'] .feature-card { + background: var(--ifm-background-color); + border-color: var(--ifm-color-emphasis-300); + } + + [data-theme='dark'] .feature-card:hover { + border-color: var(--ifm-color-primary); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); + } + + /* Responsive adjustments */ + @media (max-width: 768px) { + .feature-grid { + grid-template-columns: 1fr; + } + + .features-intro { + font-size: 1.1rem; + } + } \ No newline at end of file diff --git a/src/components/elements/info-box.module.css b/src/components/elements/info-box.module.css new file mode 100644 index 0000000000..9b700f3ad2 --- /dev/null +++ b/src/components/elements/info-box.module.css @@ -0,0 +1,36 @@ +.infoBox { + background: rgba(45, 45, 85, 0.95); + border: 1px solid #3b3b7c; + border-radius: 8px; + padding: 1.5rem; + margin: 1.5rem 0; + display: flex; + gap: 1rem; + color: #e6e6fa; + } + + .infoIcon { + font-size: 1.2rem; + color: #8585ff; + line-height: 1; + } + + .content h3 { + margin: 0 0 0.5rem 0; + font-size: 1.1rem; + color: #e6e6fa; + } + + .content p { + margin: 0.5rem 0; + color: #b4b4d4; + line-height: 1.5; + } + + .content code { + background: rgba(70, 70, 120, 0.5); + padding: 0.2em 0.4em; + border-radius: 4px; + font-family: var(--ifm-font-family-monospace); + font-size: 0.9em; + } \ No newline at end of file diff --git a/src/components/elements/setup-steps.module.css b/src/components/elements/setup-steps.module.css new file mode 100644 index 0000000000..7d2be3c5b5 --- /dev/null +++ b/src/components/elements/setup-steps.module.css @@ -0,0 +1,55 @@ +.setupSteps { + display: flex; + flex-direction: column; + gap: 2rem; + margin: 2rem 0; + } + + .setupStep { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2rem; + align-items: start; + } + + .content { + padding-right: 1rem; + } + + .content h2 { + margin-top: 0; + color: var(--ifm-color-emphasis-800); + } + + .content p { + color: var(--ifm-color-emphasis-700); + font-size: 0.95rem; + line-height: 1.5; + } + + .code { + background: var(--ifm-color-emphasis-100); + border-radius: 8px; + padding: 1rem; + font-family: var(--ifm-font-family-monospace); + font-size: 0.9rem; + line-height: 1.4; + overflow-x: auto; + } + + .code pre { + margin: 0; + padding: 0; + background: transparent; + } + + @media (max-width: 768px) { + .setupStep { + grid-template-columns: 1fr; + gap: 1rem; + } + + .content { + padding-right: 0; + } + } \ No newline at end of file diff --git a/src/components/experimental/TemporalDocsLanding.js b/src/components/experimental/TemporalDocsLanding.js new file mode 100644 index 0000000000..d269416b18 --- /dev/null +++ b/src/components/experimental/TemporalDocsLanding.js @@ -0,0 +1,302 @@ +import React, { useEffect } from "react"; +import { useColorMode } from "@docusaurus/theme-common"; +import "/src/css/landing.css"; + +const Icon = ({ children }) => ( + + {children} + +); + +const TemporalDocsLanding = () => { + const { setColorMode } = useColorMode(); + + // Set dark mode as default + useEffect(() => { + setColorMode('dark'); + }, []); + + const sections = [ + { + title: "Getting started", + icon: ( + + + + ), + items: [ + { title: "Understanding Temporal", link: "/concepts/what-is-temporal" }, + { title: "Why Temporal", link: "/concepts/why-temporal" }, + { title: "Setup your Local Dev Env", link: "https://learn.temporal.io/getting_started/" }, + { title: "Run your First Temporal App", link: "https://learn.temporal.io/getting_started/" }, + { title: "Build a Temporal App from Scratch", link: "https://learn.temporal.io/getting_started/" }, + { title: "Take a free course", link: "https://learn.temporal.io/courses/" } + ] + }, + { + title: "Develop", + icon: ( + + + + ), + items: [ + { title: "Go SDK Developer Guide", link: "/develop/go" }, + { title: "Java SDK Developer Guide", link: "/develop/java" }, + { title: "PHP SDK Developer Guide", link: "/develop/php" }, + { title: "Python SDK Developer Guide", link: "/develop/python" }, + { title: "TypeScript SDK Developer Guide", link: "/develop/typescript" }, + { title: ".NET SDK Developer Guide", link: "/develop/dotnet" }, + { title: "Ruby SDK README", link: "https://github.com/temporalio/sdk-ruby#readme" } + ] + }, + { + title: "Deploy", + icon: ( + + + + ), + items: [ + { title: "Self-Host", link: "https://docs.temporal.io/develop/" }, + { title: "Worker Performance", link: "https://docs.temporal.io/develop/worker-performance" }, + { title: "Production Checklist", link: "https://docs.temporal.io/self-hosted-guide/production-checklist" }, + { title: "Migrate to Temporal Cloud", link: "https://docs.temporal.io/production-deployments/migration" } + ] + }, + { + title: "Temporal Cloud", + icon: ( + + + + ), + items: [ + { title: "Account setup", link: "/cloud/account-setup" }, + { title: "User management", link: "/cloud/users" }, + { title: "Billing and cost", link: "/cloud/billing-and-cost" }, + { title: "Namespace management", link: "/cloud/namespaces" }, + { title: "Pricing", link: "/cloud/pricing" }, + { title: "API keys", link: "/cloud/api-keys" }, + { title: "Audit Logging", link: "/cloud/audit-logging" }, + { title: "Cloud Ops API", link: "/ops" }, + { title: "Temporal Nexus", link: "/cloud/nexus" }, + { title: "Export", link: "/cloud/export" } + ] + } + ]; + + const getUnstuckSection = { + title: "Get unstuck", + icon: ( + + + + + + ), + items: [ + { title: "Resource Library", link: "https://temporal.io/resources" }, + { title: "Ask in Stack", link: "https://t.mp/slack" }, + { title: "Post in Community Forum", link: "https://community.temporal.io" } + ] + }; + + const observabilitySection = { + title: "Monitor", + icon: ( + + + + + ), + items: [ + { title: "Platform Metrics", link: "/references/cluster-metrics" }, + { title: "SDK Metrics", link: "/references/sdk-metrics" }, + { title: "Cloud Metrics", link: "/cloud/metrics" }, + { title: "Setup with Datadog", link: "/cloud/metrics/datadog" }, + { title: "Setup with Prometheus", link: "/cloud/metrics/prometheus-grafana" }, + { title: "Worker Health", link: "/production-deployment/cloud/worker-health" }, + { title: "Service Health", link: "/production-deployment/cloud/service-health" } + ] + }; + + const securitySection = { + title: "Secure", + icon: ( + + + + + + + ), + items: [ + { title: "Trust", link: "https://trust.temporal.io/" }, + { title: "Cloud Security", link: "/cloud/security" }, + { title: "Self-hosted Security", link: "/self-hosted-guide/security" } + ] + }; + + const tutorialsSection = { + title: "Tutorials", + icon: ( + + + + + + ), + items: [ + { title: "Getting Started", link: "https://learn.temporal.io/getting_started/" }, + { title: "Infrastructure Tutorials", link: "https://learn.temporal.io/tutorials/infrastructure/" }, + { title: "One-Click Order App in TypeScript and Next.js", link: "https://learn.temporal.io/tutorials/typescript/build-one-click-order-app-nextjs/" }, + { title: "Trip Booking App in Python", link: "https://learn.temporal.io/tutorials/python/trip-booking-app/" } + ] + }; + + const coursesSection = { + title: "Courses", + icon: ( + + + + ), + items: [ + { title: "Temporal 101: Introducing the Temporal Platform", link: "https://learn.temporal.io/courses/temporal_101/" }, + { title: "Temporal 102: Exploring Durable Execution", link: "https://learn.temporal.io/courses/temporal_102/" }, + { title: "Crafting an Error Handling Strategy", link: "https://learn.temporal.io/courses/errstrat/" }, + { title: "Introduction to Temporal Cloud", link: "https://learn.temporal.io/courses/intro_to_temporal_cloud/" } + ] + }; + + const examplesSection = { + title: "Examples", + icon: ( + + + + ), + items: [ + { title: "Code Exchange", link: "https://temporal.io/code-exchange" }, + { title: "Project Based Tutorials", link: "https://learn.temporal.io/tutorials/" }, + { title: "Example Applications", link: "https://learn.temporal.io/examples/" } + ] + }; + + return ( +
+
+
+ {sections.map((section, index) => ( +
+
+ {section.icon} +

{section.title}

+
+
+ {section.items.map((item, itemIndex) => ( + + {item.title} + + ))} +
+ {section.title === "Temporal Cloud" && ( + + Create an Account + + )} +
+ ))} +
+ +
+
+
+
+ {observabilitySection.icon} +

{observabilitySection.title}

+
+
+ {observabilitySection.items.map((item, index) => ( + + {item.title} + + ))} +
+
+
+
+ {securitySection.icon} +

{securitySection.title}

+
+
+ {securitySection.items.map((item, index) => ( + + {item.title} + + ))} +
+
+
+
+ {getUnstuckSection.icon} +

{getUnstuckSection.title}

+
+
+ {getUnstuckSection.items.map((item, index) => ( + + {item.title} + + ))} +
+
+
+
+ +
+

More ways to learn

+
+ {[tutorialsSection, coursesSection, examplesSection].map((section, index) => ( +
+
+ {section.icon} +

{section.title}

+
+
+ {section.items.map((item, itemIndex) => ( + + {item.title} + + ))} +
+
+ ))} +
+
+
+
+ ); +}; + +export default TemporalDocsLanding; \ No newline at end of file From 199d047ce9fde9fa75541a3f636df6c017c53473 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 30 Jul 2025 15:55:41 +0000 Subject: [PATCH 04/38] CI: Automatic .md and .mdx formatting --- docs/develop/index.mdx | 2 +- docs/encyclopedia/index.mdx | 2 +- docs/evaluate/development-production-features/index.mdx | 2 +- docs/evaluate/index.mdx | 2 +- docs/index.mdx | 2 +- docs/security.mdx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/develop/index.mdx b/docs/develop/index.mdx index 35afd92333..2818f4aab9 100644 --- a/docs/develop/index.mdx +++ b/docs/develop/index.mdx @@ -203,4 +203,4 @@ Temporal SDKs provide the foundation for building reliable distributed applicati } } `} - \ No newline at end of file + diff --git a/docs/encyclopedia/index.mdx b/docs/encyclopedia/index.mdx index 2de85d8950..1e90ea996e 100644 --- a/docs/encyclopedia/index.mdx +++ b/docs/encyclopedia/index.mdx @@ -92,4 +92,4 @@ For information on how to implement the developer-facing features see the [Devel For information on how to use Temporal Cloud see the [Temporal Cloud production deployment](/cloud) section. -For information on how to self-host a Temporal Service see the [Self-hosted production deployment](/self-hosted-guide) section. \ No newline at end of file +For information on how to self-host a Temporal Service see the [Self-hosted production deployment](/self-hosted-guide) section. diff --git a/docs/evaluate/development-production-features/index.mdx b/docs/evaluate/development-production-features/index.mdx index 9d69b61e7f..33ab71846e 100644 --- a/docs/evaluate/development-production-features/index.mdx +++ b/docs/evaluate/development-production-features/index.mdx @@ -108,4 +108,4 @@ import { CallToAction } from '@site/src/components/elements/CallToAction'; For detailed information about feature release stages and criteria, see our Product Release Stages Guide. - \ No newline at end of file + diff --git a/docs/evaluate/index.mdx b/docs/evaluate/index.mdx index 672e5574a8..950621ab8a 100644 --- a/docs/evaluate/index.mdx +++ b/docs/evaluate/index.mdx @@ -110,4 +110,4 @@ Temporal is fully open source. You can self-host the Temporal Service or use Tem align-items: center; } `} - \ No newline at end of file + diff --git a/docs/index.mdx b/docs/index.mdx index 88f72e9f97..7bc64a2a5c 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -27,4 +27,4 @@ description: Explore Temporal's comprehensive documentation to build, scale, and import TemporalDocsLanding from '@site/src/components/experimental/TemporalDocsLanding'; - \ No newline at end of file + diff --git a/docs/security.mdx b/docs/security.mdx index 85fabfd7ac..360355ccda 100644 --- a/docs/security.mdx +++ b/docs/security.mdx @@ -134,4 +134,4 @@ Find security information for your Temporal deployment, whether you're using Tem padding: 1.5rem; } } -`} \ No newline at end of file +`} From 610f762d97c27c838de67132e44078192008d7c5 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 09:08:26 -0500 Subject: [PATCH 05/38] consistent background color and link color styling --- src/css/custom.css | 77 +++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 5dcb2591d8..8e863a695c 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -19,7 +19,7 @@ /* --doc-sidebar-width: 275px !important; --ifm-link-hover-decoration: none; --ifm-link-hover-color: inherit; */ - --ifm-link-decoration: underline; + --ifm-link-decoration: none; --tag-background-color-light: #eee; --tag-background-color-dark: #444; --tag-text-color-light: #333; @@ -29,10 +29,11 @@ } html[data-theme="dark"] { - --ifm-color-primary: #bfdbfe; - --ifm-background-color: #141414; - --ifm-footer-background-color: #000000; - --ifm-navbar-background-color: #000000; + --ifm-color-primary: #4fddbf; + --ifm-color-primary-darker: #60A5FA; + --ifm-background-color: #161723; + --ifm-footer-background-color: #161723; + --ifm-navbar-background-color: #161723; --ifm-color: #f9fafb; --ifm-preview-text: #f9fafb; --ifm-link-color: #f9fafb; @@ -58,14 +59,15 @@ html[data-theme="dark"] { --ifm-badge-background-color: hsl(210deg, 15%, 20%); */ --ifm-card-background-color: #1a1a1a; /* --card-color: var(--ifm-color-primary-dark); */ - --docusaurus-highlighted-code-line-bg: rgb(57, 104, 77); + --docusaurus-highlighted-code-line-bg: #161723; --tag-background-color: var(--tag-background-color-dark); --tag-text-color: var(--tag-text-color-dark); } html[data-theme="light"] { --ifm-color-primary: #1d4ed8; - --ifm-background-color: #f9fafb; + --ifm-background-color: #ffffff; + --ifm-background-surface-color: #ffffff; --ifm-footer-background-color: #ffffff; --ifm-navbar-background-color: #ffffff; /* --ifm-color: var(--ifm-color-primary-dark); */ @@ -75,18 +77,6 @@ html[data-theme="light"] { --alert--competency-background: #a8fcff; --alert--copycode-background: #e0cdfa; --alert--info-background: #ebeded; - /* --ifm-menu-color-active: var(--ifm-color-primary); - --ifm-navbar-link-hover-color: var(--ifm-color-primary); - --ifm-toc-link-color: var(--ifm-color-primary-dark); - --ifm-blockquote-color: #000000; - --ifm-color-emphasis-300: #505050; */ - /* --ifm-code-background: var(--ifm-color-primary-lightest); */ - /* --ifm-color-input-background: #ffffff; - /* --ifm-color: var(--ifm-color-primary-dark); - --ifm-background-color: rgb(249, 250, 251); - --ifm-footer-background-color: #ffffff; - --ifm-card-background-color: #ffffff; - --ifm-badge-background-color: rgba(239, 246, 255); */ --card-color: #ffffff; --docusaurus-highlighted-code-line-bg: rgb(57, 104, 77); --tag-background-color: var(--tag-background-color-light); @@ -99,8 +89,44 @@ html[data-theme="light"] { a, a:hover { - text-decoration: underline; - text-underline-offset: 2px; + text-decoration: none; +} + +/* Global link styling to match Learn More links */ +a { + color: var(--ifm-link-color); + transition: color 0.2s ease; + text-decoration: none !important; +} + +a:hover { + color: var(--ifm-link-hover-color); + text-decoration: none !important; +} + +/* Force remove underlines from all possible link selectors */ +a:link, +a:visited, +a:active, +a:focus { + text-decoration: none !important; +} + +/* Override Docusaurus theme classes */ +.theme-doc-markdown a, +.theme-doc-sidebar-item-link, +.theme-doc-breadcrumbs a, +.pagination-nav__link, +[class*="theme-"] a { + text-decoration: none !important; +} + +.theme-doc-markdown a:hover, +.theme-doc-sidebar-item-link:hover, +.theme-doc-breadcrumbs a:hover, +.pagination-nav__link:hover, +[class*="theme-"] a:hover { + text-decoration: none !important; } .alert { @@ -1022,7 +1048,14 @@ h1 { .navbar__link, .dropdown__link, .table-of-contents__link { - text-decoration: none; + text-decoration: none !important; +} + +.menu__link:hover, +.navbar__link:hover, +.dropdown__link:hover, +.table-of-contents__link:hover { + text-decoration: none !important; } .announcementBar_node_modules-\@docusaurus-theme-classic-lib-next-theme-AnnouncementBar-styles-module { From 0214adbfbbdf7e6c45b56e7f7eda61efa8ef31ec Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 12:22:52 -0500 Subject: [PATCH 06/38] go dev page and other styling --- docs/develop/go/index.mdx | 295 ++++++++++++++++---------------------- src/css/custom.css | 256 ++++++++++++++++++++++++++++++++- 2 files changed, 380 insertions(+), 171 deletions(-) diff --git a/docs/develop/go/index.mdx b/docs/develop/go/index.mdx index 7d1a038c35..5a785fcfe8 100644 --- a/docs/develop/go/index.mdx +++ b/docs/develop/go/index.mdx @@ -11,175 +11,130 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - ![Go SDK Banner](/img/assets/banner-go-temporal.png) -:::info GO SPECIFIC RESOURCES -Build Temporal Applications with the Go SDK. - -**Temporal Go Technical Resources:** - -- [Go SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/go/set-up-your-local-go) -- [Go API Documentation](https://pkg.go.dev/go.temporal.io/sdk) -- [Go SDK Code Samples](https://github.com/temporalio/samples-go) -- [Go SDK GitHub](https://github.com/temporalio/sdk-go) -- [Temporal 101 in Go Free Course](https://learn.temporal.io/courses/temporal_101/go/) - -**Get Connected with the Temporal Go Community:** - -- [Temporal Go Community Slack](https://temporalio.slack.com/archives/CTDTU3J4T) -- [Go SDK Forum](https://community.temporal.io/tag/go-sdk) - ::: - -## [Core Application](/develop/go/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [How to develop a basic Workflow](/develop/go/core-application#develop-workflows) -- [How to develop an Activity Definition in Go](/develop/go/core-application#activity-definition) -- [How to start an Activity Execution](/develop/go/core-application#activity-execution) -- [How to develop a Worker in Go](/develop/go/core-application#develop-worker) -- [How to run a Temporal Cloud Worker](/develop/go/core-application#run-a-temporal-cloud-worker) - -## [Temporal Client](/develop/go/temporal-clients) - -Connect to a Temporal Service and start a Workflow Execution. - -- [Connect to development Temporal Service](/develop/go/temporal-clients#connect-to-development-service) -- [Connect to Temporal Cloud](/develop/go/temporal-clients#connect-to-temporal-cloud) -- [Start Workflow Execution](/develop/go/temporal-clients#start-workflow-execution) -- [How to start a Workflow Execution](/develop/go/temporal-clients#start-workflow-execution) - -## [Multithreading](/develop/go/go-sdk-multithreading) - -Safely use multithreading with the Go SDK. - -## [Testing](/develop/go/testing-suite) - -Set up the testing suite and test Workflows and Activities. - -- [Test frameworks](/develop/go/testing-suite#test-frameworks) -- [Test setup](/develop/go/testing-suite#test-setup) -- [Testing Activities](/develop/go/testing-suite#test-activities) -- [Mock and override Activities](/develop/go/testing-suite#mock-and-override-activities) -- [Testing Workflows](/develop/go/testing-suite#test-workflows) -- [How to Replay a Workflow Execution](/develop/go/testing-suite#replay) - -## [Failure detection feature guide](/develop/go/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow timeouts](/develop/go/failure-detection#workflow-timeouts) -- [How to set Activity timeouts](/develop/go/failure-detection#activity-timeouts) -- [How to Heartbeat an Activity](/develop/go/failure-detection#activity-heartbeats) - -## [Workflow message passing](/develop/go/message-passing) - -Send messages to and read the state of Workflow Executions. - -- [How to develop with Signals](/develop/go/message-passing#signals) -- [How to develop with Queries](/develop/go/message-passing#queries) -- [How to develop with Updates](/develop/go/message-passing#updates) - -## [Interrupt a Workflow feature guide](/develop/go/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Handle a Workflow Cancellation Request](/develop/go/cancellation#handle-cancellation-in-workflow): Interrupt a Workflow Execution and its Activities through Workflow cancellation. -- [Request Cancellation](/develop/go/cancellation#request-cancellation) - -## [Asynchronous Activity completion](/develop/go/asynchronous-activity-completion) - -Complete Activities asynchronously. - -- [How to asynchronously complete an Activity](/develop/go/asynchronous-activity-completion) - -## [Versioning](/develop/go/versioning) - -Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [Temporal Go SDK Versioning APIs](/develop/go/versioning#patching) -- [Runtime checking](/develop/go/versioning#runtime-checking) - -## [Observability](/develop/go/observability) - -Configure and use the Temporal Observability APIs. - -- [How to emit metrics](/develop/go/observability#metrics) -- [Tracing and Context Propagation](/develop/go/observability#tracing-and-context-propogation) -- [How to log from a Workflow](/develop/go/observability#logging) -- [How to use Visibility APIs](/develop/go/observability#visibility) - -## [Debugging](/develop/go/debugging) - -Explore various ways to debug your application. - -- [How to debug in a development environment](/develop/go/debugging#debug-in-a-development-environment) -- [How to debug in a production environment](/develop/go/debugging#debug-in-a-production-environment) -- [How to test Workflow Definitions in Go](/develop/go/debugging#testing-and-debugging) - -## [Schedules](/develop/go/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [How to Schedule a Workflow](/develop/go/schedules#schedule-a-workflow) -- [How to use Temporal Cron Jobs](/develop/go/schedules#temporal-cron-jobs) - -## [Data encryption](/develop/go/converters-and-encryption) - -Use compression, encryption, and other data handling by implementing custom converters and codecs. - -- [How to use a custom Payload Codec in Go](/develop/go/converters-and-encryption#custom-payload-codec) -- [How to use custom payload conversion](/develop/go/converters-and-encryption#custom-payload-conversion) -- [How to use a custom Payload Converter in Go](/develop/go/converters-and-encryption#custom-payload-converter) - -## Temporal Nexus - -The [Temporal Nexus](/develop/go/nexus) feature guide shows how to use Temporal Nexus to connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations. - -- [Create a Nexus Endpoint to route requests from caller to handler](/develop/go/nexus#create-nexus-endpoint) -- [Define the Nexus Service contract](/develop/go/nexus#define-nexus-service-contract) -- [Develop a Nexus Service and Operation handlers](/develop/go/nexus#develop-nexus-service-operation-handlers) -- [Develop a caller Workflow that uses a Nexus Service](/develop/go/nexus#develop-caller-workflow-nexus-service) -- [Make Nexus calls across Namespaces with a dev Server](/develop/go/nexus#nexus-calls-across-namespaces-dev-server) -- [Make Nexus calls across Namespaces in Temporal Cloud](/develop/go/nexus#nexus-calls-across-namespaces-temporal-cloud) - -## [Durable Timers](/develop/go/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [Set a Timer](/develop/go/timers) - -## [Child Workflows](/develop/go/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [How to start a Child Workflow Execution](/develop/go/child-workflows#child-workflows) - -## [Continue-As-New](/develop/go/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [How to Continue-As-New](/develop/go/continue-as-new) - -## [Worker Sessions](/develop/go/sessions) - -Use Worker Session APIs. - -- [Enable Sessions for a Worker](/develop/go/sessions#enable-sessions) -- [Change the maximum concurrent Sessions of a Worker](/develop/go/sessions#max-concurrent-sessions) -- [Create a Worker Session](/develop/go/sessions#create-a-session) - -## [Side Effects](/develop/go/side-effects) - -Use Side Effects in Workflows. - -- [Side Effects](/develop/go/side-effects) - -## [Manage Namespaces](/develop/go/namespaces) - -Create and manage Namespaces. - -- [Register Namespaces](/develop/go/namespaces#register-namespace) -- [Manage Namespaces](/develop/go/namespaces#manage-namespaces) +# Go SDK resources + + + +
+
+

Core Application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure Detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Temporal Nexus

+

Connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Worker Sessions

+

Use Worker Session APIs.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+ +
+

Multithreading

+

Safely use multithreading with the Go SDK.

+
+
diff --git a/src/css/custom.css b/src/css/custom.css index 8e863a695c..cd82d0b675 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -67,9 +67,11 @@ html[data-theme="dark"] { html[data-theme="light"] { --ifm-color-primary: #1d4ed8; --ifm-background-color: #ffffff; - --ifm-background-surface-color: #ffffff; + --ifm-background-surface-color: #f8f9fa; --ifm-footer-background-color: #ffffff; --ifm-navbar-background-color: #ffffff; + --ifm-menu-color-background-active: #f8f9fa; + --ifm-menu-color-background-hover: #e9ecef; /* --ifm-color: var(--ifm-color-primary-dark); */ --ifm-link-color: #111827; --ifm-link-hover-color: var(--ifm-color-primary); @@ -1226,3 +1228,255 @@ code { z-index: 10; } +.features-intro { + font-size: 1.2rem; + line-height: 1.6; + color: var(--ifm-color-emphasis-700); + margin-bottom: 2rem; + max-width: 800px; +} + +.feature-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 1.5rem; + margin-bottom: 3rem; +} + +.feature-card { + display: flex; + flex-direction: column; + justify-content: space-between; + background: var(--ifm-card-background-color); + padding: 1.5rem; + transition: all 0.3s ease; + border: 1px solid var(--ifm-color-emphasis-200); + height: 100%; +} + +.feature-card:hover { + transform: translateY(-5px); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + border-color: var(--ifm-color-primary); +} + +.feature-card h3 { + font-size: 1.25rem; + margin-bottom: 0.75rem; + color: var(--ifm-color-emphasis-900); +} + +.feature-card p { + color: var(--ifm-color-emphasis-600); + margin-bottom: 0.5rem; + flex-grow: 1; +} + +.feature-link { + color: var(--ifm-color-primary); + text-decoration: none; + font-weight: 500; + display: inline-flex; + align-items: center; + transition: color 0.2s ease; +} + +.feature-link:hover { + color: var(--ifm-color-primary-darker); + text-decoration: none; +} + +@media (max-width: 768px) { + .feature-grid { + grid-template-columns: 1fr; + } + .features-intro { + font-size: 1.1rem; + } +} + +/* Pattern Grid for Introduction Page */ +.pattern-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; + margin-bottom: 2rem; +} + +.pattern-card { + display: flex; + flex-direction: column; + background: var(--ifm-card-background-color); + padding: 1.5rem; + border: 1px solid var(--ifm-color-emphasis-200); + border-radius: 8px; + text-decoration: none; + color: var(--ifm-color); + transition: all 0.3s ease; + cursor: pointer; +} + +.pattern-card:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(68, 76, 231, 0.2); + text-decoration: none; + color: var(--ifm-color); + border-color: var(--ifm-color-primary); +} + +.pattern-content h3 { + font-size: 1.25rem; + font-weight: 500; + margin: 0 0 0.75rem 0; + color: var(--ifm-color); +} + +.pattern-content p { + font-size: 0.875rem; + margin: 0; + color: var(--ifm-color-emphasis-700); + line-height: 1.5; +} + +@media (max-width: 768px) { + .pattern-grid { + grid-template-columns: 1fr; + } + + .pattern-card { + padding: 1.25rem; + } + + .pattern-content h3 { + font-size: 1.1rem; + } +} + +/* CTA (Call to Action) styling for intro page */ +.cta-container { + margin-top: 3rem; + margin-bottom: 2rem; +} + +.cta-link { + display: flex; + align-items: center; + justify-content: space-between; + background: var(--ifm-card-background-color); + border: 1px solid var(--ifm-color-emphasis-200); + border-radius: 8px; + padding: 1.5rem; + text-decoration: none; + color: var(--ifm-color); + transition: all 0.3s ease; + cursor: pointer; +} + +.cta-link:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(68, 76, 231, 0.2); + text-decoration: none; + color: var(--ifm-color); + border-color: var(--ifm-color-primary); +} + +.cta-content { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.cta-prefix { + font-size: 0.875rem; + color: var(--ifm-color-emphasis-600); + font-weight: 500; +} + +.cta-title { + font-size: 1.25rem; + font-weight: 600; + color: var(--ifm-color); +} + +.cta-arrow { + font-size: 1.5rem; + color: var(--ifm-color-primary); + font-weight: bold; + transition: transform 0.2s ease; +} + +.cta-link:hover .cta-arrow { + transform: translateX(4px); +} + +@media (max-width: 768px) { + .cta-container { + margin-top: 2rem; + } + + .cta-link { + padding: 1.25rem; + } + + .cta-title { + font-size: 1.1rem; + } +} + +/* SDK Resources styling for developer guide landing pages */ +.sdk-resources-container { + background: var(--ifm-card-background-color); + border: 1px solid var(--ifm-color-emphasis-200); + border-radius: 8px; + padding: 2rem; + margin: 2rem 0 3rem 0; +} + +.sdk-resources-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 3rem; +} + +.sdk-resources-column h2 { + font-size: 1.25rem; + font-weight: 600; + color: var(--ifm-color); + margin-bottom: 1rem; + margin-top: 0; +} + +.sdk-resources-column ul { + list-style: none; + padding: 0; + margin: 0; +} + +.sdk-resources-column li { + margin-bottom: 0.75rem; +} + +.sdk-resources-column a { + color: var(--ifm-link-color); + text-decoration: none; + font-size: 0.95rem; + transition: color 0.2s ease; +} + +.sdk-resources-column a:hover { + color: var(--ifm-link-hover-color); + text-decoration: none; +} + +@media (max-width: 768px) { + .sdk-resources-grid { + grid-template-columns: 1fr; + gap: 2rem; + } + + .sdk-resources-container { + padding: 1.5rem; + margin: 1.5rem 0 2rem 0; + } +} + From 6e5ea8d5f688551fca91c1ae9e50fd469ce67d40 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 12:33:04 -0500 Subject: [PATCH 07/38] dev guides landing pages card format --- docs/develop/dotnet/index.mdx | 274 +++++++++++++----------------- docs/develop/java/index.mdx | 270 +++++++++++++---------------- docs/develop/php/index.mdx | 232 ++++++++++++------------- docs/develop/python/index.mdx | 260 +++++++++++++--------------- docs/develop/typescript/index.mdx | 248 +++++++++++++-------------- 5 files changed, 568 insertions(+), 716 deletions(-) diff --git a/docs/develop/dotnet/index.mdx b/docs/develop/dotnet/index.mdx index ff63c16eac..0a9cf4a647 100644 --- a/docs/develop/dotnet/index.mdx +++ b/docs/develop/dotnet/index.mdx @@ -12,164 +12,120 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - - - ![.NET SDK Banner](/img/assets/banner-dotnet-temporal.png) -:::info .NET SPECIFIC RESOURCES -Build Temporal Applications with the .NET SDK. - -**Temporal .NET Technical Resources:** -- [.NET Quickstart](https://docs.temporal.io/develop/dotnet/set-up-your-local-dotnet) -- [.NET API Documentation](https://dotnet.temporal.io/api/) -- [.NET SDK Code Samples](https://github.com/temporalio/samples-dotnet) -- [.NET SDK GitHub](https://github.com/temporalio/sdk-dotnet) -- [Temporal 101 in .NET Free Course](https://learn.temporal.io/courses/temporal_101/dotnet/) - -**Get Connected with the Temporal .NET Community:** - -- [Temporal .NET Community Slack](https://temporalio.slack.com/archives/C012SHMPDDZ) -- [.NET SDK Forum](https://community.temporal.io/tag/dotnet-sdk) - ::: - -## [Core Application](/develop/dotnet/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [Develop a basic Workflow Definition](/develop/dotnet/core-application#develop-workflow): Workflows are the fundamental unit of a Temporal Application, and it all starts with the development of a Workflow Definition. -- [Develop a basic Activity Definition](/develop/dotnet/core-application#develop-activity): One of the primary things that Workflows do is orchestrate the execution of Activities. -- [Start an Activity from a Workflow](/develop/dotnet/core-application#activity-execution): Calls to spawn Activity Executions are written within a Workflow Definition. -- [Run a Worker Process](/develop/dotnet/core-application#run-worker-process): The Worker Process is where Workflow Functions and Activity Functions are executed. -- [Set a Dynamic Workflow](/develop/dotnet/core-application#set-a-dynamic-workflow): Set a Workflow that can be invoked dynamically at runtime. -- [Set a Dynamic Activity](/develop/dotnet/core-application#set-a-dynamic-activity): Set an Activity that can be invoked dynamically at runtime. - -## [Temporal Client](/develop/dotnet/temporal-client) - -Connect to a Temporal Service and start a Workflow Execution. - -- [Create a Temporal Client](/develop/dotnet/temporal-client#create-a-client): Learn to instantiate and configure a client to interact with the Temporal Service. -- [Connect to Temporal Cloud](/develop/dotnet/temporal-client#connect-to-temporal-cloud): Securely connect to the Temporal Cloud for a fully managed service. -- [Start a Workflow](/develop/dotnet/temporal-client#start-workflow): Initiate Workflows seamlessly via the .NET SDK. -- [Get Workflow results](/develop/dotnet/temporal-client#get-workflow-results): Retrieve and process the results of your Workflows efficiently. - -## [Testing](/develop/dotnet/testing-suite) - -Set up the testing suite and test Workflows and Activities. - -- [Test frameworks](/develop/dotnet/testing-suite#test-frameworks): Testing provides a framework to facilitate Workflow and integration testing. -- [Testing Workflows](/develop/dotnet/testing-suite#testing-workflows): Ensure the functionality and reliability of your Workflows. -- [Testing Activities](/develop/dotnet/testing-suite#test-activities): Validate the execution and outcomes of your Activities. -- [Replay test](/develop/dotnet/testing-suite#replay): Replay recreates the exact state of a Workflow Execution. - -## [Failure detection](/develop/dotnet/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow timeouts](/develop/dotnet/failure-detection#workflow-timeouts): Each Workflow timeout controls the maximum duration of a different aspect of a Workflow Execution. -- [Workflow retries](/develop/dotnet/failure-detection#workflow-retries): A Workflow Retry Policy can be used to retry a Workflow Execution in the event of a failure. -- [Activity timeouts](/develop/dotnet/failure-detection#activity-timeouts): Each Activity timeout controls the maximum duration of a different aspect of an Activity Execution. -- [Set an Activity Retry Policy](/develop/dotnet/failure-detection#activity-retries): Define retry logic for Activities to handle failures. -- [Heartbeat an Activity](/develop/dotnet/failure-detection#activity-heartbeats): An Activity Heartbeat is a ping from the Worker that is executing the Activity to the Temporal Service. -- [Heartbeat Timeout](/develop/dotnet/failure-detection#heartbeat-timeout): A Heartbeat Timeout works in conjunction with Activity Heartbeats. - -## [Workflow message passing](/develop/go/message-passing) - -Send messages to and read the state of Workflow Executions. - -### Signals - -- [Define Signal](/develop/dotnet/message-passing#signals): A Signal is a message sent to a running Workflow Execution. -- [Send a Signal from a Temporal Client](/develop/dotnet/message-passing#send-signal-from-client): Send a Signal to a Workflow from a Temporal Client. -- [Send a Signal from a Workflow](/develop/dotnet/message-passing#send-signal-from-workflow): Send a Signal to another Workflow from within a Workflow, this would also be called an External Signal. -- [Signal-With-Start](/develop/dotnet/message-passing#signal-with-start): Start a Workflow and send it a Signal in a single operation used from the Client. -- [Dynamic Handler](/develop/dotnet/message-passing#dynamic-handler): Dynamic Handlers provide flexibility to handle cases where the names of Workflows, Activities, Signals, or Queries aren't known at run time. -- [Set a Dynamic Signal](/develop/dotnet/message-passing#set-a-dynamic-signal): A Dynamic Signal in Temporal is a Signal that is invoked dynamically at runtime if no other Signal with the same input is registered. - -### Queries - -- [Define a Query](/develop/dotnet/message-passing#queries): A Query is a synchronous operation that is used to get the state of a Workflow Execution. -- [Send Queries](/develop/dotnet/message-passing#send-query): Queries are sent from the Temporal Client. -- [Set a Dynamic Query](/develop/dotnet/message-passing#set-a-dynamic-signal): A Dynamic Query in Temporal is a Query that is invoked dynamically at runtime if no other Query with the same name is registered. - -### Updates - -- [Define an Update](/develop/dotnet/message-passing#updates): An Update is an operation that can mutate the state of a Workflow Execution and return a response. -- [Send an Update](/develop/dotnet/message-passing#send-update-from-client): An Update is sent from the Temporal Client. - -## [Interrupt a Workflow](/develop/dotnet/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Cancel a Workflow](/develop/dotnet/cancellation#cancellation): Interrupt a Workflow Execution and its Activities through Workflow cancellation. -- [Terminate a Workflow](/develop/dotnet/cancellation#termination): Interrupt a Workflow Execution and its Activities through Workflow termination. - -## [Asynchronous Activity completion](/develop/dotnet/asynchronous-activity) - -Complete Activities asynchronously. - -- [Asynchronous Activity](/develop/dotnet/asynchronous-activity): Asynchronous Activity completion enables the Activity Function to return without the Activity Execution completing. - -## [Versioning](/develop/dotnet/versioning) - -Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [Use the .NET SDK Patching API](/develop/dotnet/versioning#patching): Patching Workflows using the .NET SDK. - -## [Observability](/develop/dotnet/observability) - -Configure and use the Temporal Observability APIs. - -- [Emit Metrics](/develop/dotnet/observability#metrics): Each Temporal SDK is capable of emitting an optional set of metrics from either the Client or the Worker process. -- [Set up Tracing](/develop/dotnet/observability#tracing): Explains how the Go SDK supports tracing and custom context propagation. -- [Log from a Workflow](/develop/dotnet/observability#logging): Send logs and errors to a logging service, so that when things go wrong, you can see what happened. -- [Use Visibility APIs](/develop/dotnet/observability#visibility): The term Visibility, within the Temporal Platform, refers to the subsystems and APIs that enable an operator to view Workflow Executions that currently exist within a Terminal Service. - -## [Debugging](/develop/dotnet/debugging) - -Explore various ways to debug your application. - -- [Debug in a development environment](/develop/dotnet/debugging#debug-in-a-development-environment): In addition to the normal development tools of logging and a debugger, you can also see what’s happening in your Workflow by using the Web UI and the Temporal CLI. -- [Debug in a development production](/develop/dotnet/debugging#debug-in-a-development-production): Debug production Workflows using the Web UI, the Temporal CLI, Replays, Tracing, or Logging. - -## [Schedules](/develop/dotnet/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [Schedule a Workflow](/develop/dotnet/schedules#schedule-a-workflow) - - [Create a Scheduled Workflow](/develop/dotnet/schedules#create-a-workflow): Create a new schedule for a scheduled Workflow. - - [Backfill a Scheduled Workflow](/develop/dotnet/schedules#backfill-a-scheduled-workflow): Backfills a past time range of actions for a scheduled Workflow. - - [Delete a Scheduled Workflow](/develop/dotnet/schedules#delete-a-scheduled-workflow): Deletes a schedule for a scheduled Workflow. - - [Describe a Scheduled Workflow](/develop/dotnet/schedules#describe-a-scheduled-workflow): Get schedule configuration and current state for a scheduled Workflow. - - [List a Scheduled Workflow](/develop/dotnet/schedules#list-a-scheduled-workflow): List a schedule for a scheduled Workflow. - - [Pause a Scheduled Workflow](/develop/dotnet/schedules#pause-a-scheduled-workflow): Pause a schedule for a scheduled Workflow. - - [Trigger a Scheduled Workflow](/develop/dotnet/schedules#trigger-a-scheduled-workflow): Triggers an immediate action for a scheduled Workflow. - - [Update a Scheduled Workflow](/develop/dotnet/schedules#update-a-scheduled-workflow): Updates a schedule with a new definition for a scheduled Workflow. -- [Use Start Delay](/develop/dotnet/schedules#start-delay): Start delay functionality if you need to delay the execution of the Workflow without the need for regular launches. - -## [Data encryption](/develop/dotnet/converters-and-encryption) - -Use compression, encryption, and other data handling by implementing custom converters and codecs. - -- [Use a custom Payload Codec](/develop/dotnet/converters-and-encryption#custom-payload-codec): Create a custom PayloadCodec implementation and define your encryption/compression and decryption/decompression logic. -- [Use a custom Payload Converter](/develop/dotnet/converters-and-encryption#custom-payload-converter): A custom data converter can be set via the `DataConverter` option when creating a client. - -## [Durable Timers](/develop/go/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [Sleep](/develop/dotnet/durable-timers): A Timer lets a Workflow sleep for a fixed time period. - -## [Child Workflows](/develop/dotnet/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [Start a Child Workflow Execution](/develop/dotnet/child-workflows): A Child Workflow Execution is a Workflow Execution that is scheduled from within another Workflow using a Child Workflow API. -- [Set a Parent Close Policy](/develop/dotnet/child-workflows#parent-close-policy): A Parent Close Policy determines what happens to a Child Workflow Execution if its Parent changes to a Closed status. - -## [Continue-As-New](/develop/dotnet/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [Continue-As-New](/develop/dotnet/continue-as-new): Continue-As-New enables a Workflow Execution to close successfully and create a new Workflow Execution in a single atomic operation if the number of Events in the Event History is becoming too large. +# .NET SDK resources + + + +
+
+

Core Application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Temporal Nexus

+

Connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+
diff --git a/docs/develop/java/index.mdx b/docs/develop/java/index.mdx index 72519450f9..661eef734c 100644 --- a/docs/develop/java/index.mdx +++ b/docs/develop/java/index.mdx @@ -11,160 +11,120 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - ![Java SDK Banner](/img/assets/banner-java-temporal.png) -:::info JAVA SPECIFIC RESOURCES -Build Temporal Applications with the Java SDK. - -**Temporal Java Technical Resources:** - -- [Java SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/java/set-up-your-local-java) -- [Java API Documentation](https://javadoc.io/doc/io.temporal/temporal-sdk) -- [Java SDK Code Samples](https://github.com/temporalio/samples-java) -- [Java SDK GitHub](https://github.com/temporalio/sdk-java) -- [Temporal 101 in Java Free Course](https://learn.temporal.io/courses/temporal_101/java/) - -**Get Connected with the Temporal Java Community:** - -- [Temporal Java Community Slack](https://temporalio.slack.com/archives/CTT84KXK9) -- [Java SDK Forum](https://community.temporal.io/tag/java-sdk) - ::: - -## [Core application](/develop/java/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [How to develop a Workflow Definition in Java](/develop/java/core-application#develop-workflows) -- [How to develop a basic Activity](/develop/java/core-application#develop-activities) -- [How to start an Activity Execution](/develop/java/core-application#activity-execution) -- [How to develop a Worker Program in Java](/develop/java/core-application#run-a-dev-worker) - -## [Temporal Client](/develop/java/temporal-clients) - -Connect to a Temporal Service and start a Workflow Execution. - -- [Connect to a development Temporal Service](/develop/java/temporal-clients#connect-to-development-service) -- [Connect to a custom Namespace](/develop/java/temporal-clients#connect-to-custom-namespace) -- [Connect to Temporal Cloud](/develop/java/temporal-clients#connect-to-temporal-cloud) -- [Start a Workflow Execution](/develop/java/temporal-clients#start-workflow-execution) - -## [Testing](/develop/java/testing-suite) - -Set up the testing suite and test Workflows and Activities. - -- [Test frameworks](/develop/java/testing-suite#test-frameworks) -- [Test Activities](/develop/java/testing-suite#test-activities) -- [Testing Workflows](/develop/java/testing-suite#test-workflows) -- [How to Replay a Workflow Execution](/develop/java/testing-suite#replay) - -## [Failure detection](/develop/java/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow timeouts](/develop/java/failure-detection#workflow-timeouts) -- [How to set Activity timeouts](/develop/java/failure-detection#activity-timeouts) -- [How to Heartbeat an Activity](/develop/java/failure-detection#activity-heartbeats) - -## [Workflow message passing](/develop/java/message-passing) - -Send messages to and read the state of Workflow Executions. - -- [How to develop with Signals](/develop/java/message-passing#signals) -- [How to develop with Queries](/develop/java/message-passing#queries) -- [What is a Dynamic Handler?](/develop/java/message-passing#dynamic-handler) -- [How to develop with Updates](/develop/java/message-passing#updates) - -## [Asynchronous Activity completion](/develop/java/asynchronous-activity-completion) - -Complete Activities asynchronously. - -- [How to asynchronously complete an Activity](/develop/java/asynchronous-activity-completion) - -## [Versioning](/develop/java/versioning) - -Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [Temporal Java SDK Versioning APIs](/develop/java/versioning#patching) - -## [Observability](/develop/java/observability) - -Configure and use the Temporal Observability APIs. - -- [How to emit metrics](/develop/java/observability#metrics) -- [How to setup Tracing](/develop/java/observability#tracing) -- [How to log from a Workflow](/develop/java/observability#logging) -- [How to use Visibility APIs](/develop/java/observability#visibility) - -## [Debugging](/develop/java/debugging) - -Explore various ways to debug your application. - -- [How to debug in a development environment](/develop/java/debugging#debug-in-a-development-environment) -- [How to debug in a production environment](/develop/java/debugging#debug-in-a-production-environment) - -## [Schedules](/develop/java/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [How to Schedule a Workflow](/develop/java/schedules#schedule-a-workflow) -- [How to set a Cron Schedule in Java](/develop/java/schedules#cron-schedule) - -## [Data encryption](/develop/java/converters-and-encryption) - -Use compression, encryption, and other data handling by implementing custom converters and codecs. - -- [How to use a custom Payload Codec in Java](/develop/java/converters-and-encryption#custom-payload-codec) -- [How to use custom Payload conversion](/develop/java/converters-and-encryption#custom-payload-conversion) - -## Temporal Nexus - -The [Temporal Nexus](/develop/java/nexus) feature guide shows how to use Temporal Nexus to connect Durable Executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations. - -- [Create a Nexus Endpoint to route requests from caller to handler](/develop/java/nexus#create-nexus-endpoint) -- [Define the Nexus Service contract](/develop/java/nexus#define-nexus-service-contract) -- [Develop a Nexus Service and Operation handlers](/develop/java/nexus#develop-nexus-service-operation-handlers) -- [Develop a caller Workflow that uses a Nexus Service](/develop/java/nexus#develop-caller-workflow-nexus-service) -- [Make Nexus calls across Namespaces with a development Server](/develop/java/nexus#nexus-calls-across-namespaces-dev-server) -- [Make Nexus calls across Namespaces in Temporal Cloud](/develop/java/nexus#nexus-calls-across-namespaces-temporal-cloud) - -## [Interrupt a Workflow feature guide](/develop/java/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Cancel a Workflow](/develop/java/cancellation#cancellation) -- [Terminate a Workflow](/develop/java/cancellation#termination) -- [Cancel an Activity from a Workflow](/develop/java/cancellation#cancel-activity) - -## [Child Workflows](/develop/java/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [Start a Child Workflow Execution](/develop/java/child-workflows#start-child-workflow) -- [Set a Parent Close Policy](/develop/java/child-workflows#parent-close-policy) - -## [Continue-As-New](/develop/java/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [Continue a Workflow as New](/develop/java/continue-as-new) - -## [Durable Timers](/develop/java/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [What is a Timer?](/develop/java/timers#timers) - -## [Side Effects](/develop/java/side-effects) - -Use Side Effects in Workflows. - -- [Side Effects](/develop/java/side-effects#side-effects) - -## [Manage Namespaces](/develop/java/namespaces) - -Create and manage Namespaces. - -- [Create a Namespace](/develop/java/namespaces#register-namespace) -- [Manage Namespaces](/develop/java/namespaces#manage-namespaces) +# Java SDK resources + + + +
+
+

Core application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Temporal Nexus

+

Connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+
diff --git a/docs/develop/php/index.mdx b/docs/develop/php/index.mdx index e1ab5c5a24..0095f9258b 100644 --- a/docs/develop/php/index.mdx +++ b/docs/develop/php/index.mdx @@ -11,129 +11,113 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - ![PHP SDK Banner](/img/assets/banner-php-temporal.png) -:::info PHP SPECIFIC RESOURCES -Build Temporal Applications with the PHP SDK. - -**Temporal PHP Technical Resources:** - -- [PHP API Documentation](https://php.temporal.io) -- [PHP SDK Code Samples](https://github.com/temporalio/samples-php) -- [PHP SDK GitHub](https://github.com/temporalio/sdk-php) - -**Get Connected with the Temporal PHP Community:** - -- [Temporal PHP Community Slack](https://temporalio.slack.com/archives/C01LK9FAMM0) -- [PHP SDK Forum](https://community.temporal.io/tag/php-sdk) - ::: - -## [Core Application](/develop/php/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [How to develop a basic Workflow](/develop/php/core-application#develop-workflows) -- [How to develop a basic Activity](/develop/php/core-application#develop-activities) -- [How to start an Activity Execution](/develop/php/core-application#activity-execution) -- [How to run Worker Processes](/develop/php/core-application#run-a-dev-worker) - -## [Temporal Client](/develop/php/temporal-clients) - -Connect to a Temporal Service and start a Workflow Execution. - -- [How to connect a Temporal Client to a Temporal Service](/develop/php/temporal-clients#connect-to-a-dev-cluster) -- [How to connect a Temporal Client to a Temporal Cloud](/develop/php/temporal-clients#connect-to-temporal-cloud) -- [How to start a Workflow Execution](/develop/php/temporal-clients#start-workflow-execution) -- [Advanced connection options](/develop/php/temporal-clients#advanced-connection-options) - -## [Testing](/develop/php/testing-suite) - -Set up the testing suite to test Workflows and Activities. - -- [Testing Activities](/develop/php/testing-suite#test-activities) -- [Testing Workflows](/develop/php/testing-suite#test-workflows) -- [How to Replay a Workflow Execution](/develop/php/testing-suite#replay) - -## [Failure detection](/develop/php/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow timeouts](/develop/php/failure-detection#workflow-timeouts) -- [How to set Activity timeouts](/develop/php/failure-detection#activity-timeouts) -- [How to Heartbeat an Activity](/develop/php/failure-detection#activity-heartbeats) - -## [Workflow message passing](/develop/php/message-passing) - -Send messages to read the state of Workflow Executions. - -- [How to develop with Signals](/develop/php/message-passing#signals) -- [How to develop with Queries](/develop/php/message-passing#queries) -- [How to develop with Updates](/develop/php/message-passing#updates) -- [Message handler patterns](/develop/php/message-passing#message-handler-patterns) -- [Message handler troubleshooting](/develop/php/message-passing#message-handler-troubleshooting) -- [How to develop with Dynamic Handlers](/develop/php/message-passing#dynamic-handler) - -## [Interrupt a Workflow feature guide](/develop/php/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Cancel an Activity from a Workflow](/develop/php/cancellation#cancel-an-activity) - -## [Versioning](/develop/php/versioning) - -The PHP SDK [Versioning developer guide](/develop/php/versioning) shows how to Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [How to use the PHP SDK Patching API](/develop/php/versioning#php-sdk-patching-api): Patching Workflows using the PHP SDK. -- [Sanity checking](/develop/php/versioning#runtime-checking) - -## [Asynchronous Activity Completion](/develop/php/asynchronous-activity-completion) - -Complete Activities asynchronously. - -- [How to asynchronously complete an Activity](/develop/php/asynchronous-activity-completion#asynchronous-activity-completion) - -## [Observability](/develop/php/observability) - -Configure and use the Temporal Observability APIs. - -- [How to log from a Workflow](/develop/php/observability#logging) -- [How to use Visibility APIs](/develop/php/observability#visibility) - -## [Debugging](/develop/php/debugging) - -Explore various ways to debug your application. - -- [Debugging](/develop/php/debugging#debug) - -## [Schedules](/develop/php/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [How to use Start Delay](/develop/php/schedules#start-delay) -- [How to use Temporal Cron Jobs](/develop/php/schedules#temporal-cron-jobs) - -## [Durable Timers](/develop/php/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [What is a Timer?](/develop/php/timers#timers) - -## [Child Workflows](/develop/php/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [How to start a Child Workflow Execution](/develop/php/child-workflows#child-workflows) - -## [Continue-As-New](/develop/php/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [How to Continue-As-New](/develop/php/continue-as-new) - -## [Side Effects](/develop/php/side-effects) - -Use Side Effects in Workflows. - -- [How to use Side Effects in PHP](/develop/php/side-effects#side-effects) +# PHP SDK resources + +
+
+
+

Technical Resources

+ +
+ +
+
+ +
+
+

Core Application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+
diff --git a/docs/develop/python/index.mdx b/docs/develop/python/index.mdx index 918318b60b..676bc3d69c 100644 --- a/docs/develop/python/index.mdx +++ b/docs/develop/python/index.mdx @@ -11,150 +11,120 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - ![Python SDK Banner](/img/assets/banner-python-temporal.png) -:::info PYTHON SPECIFIC RESOURCES -Build Temporal Applications with the Python SDK. - -**Temporal Python Technical Resources:** - -- [Python SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/python/set-up-your-local-python) -- [Python API Documentation](https://python.temporal.io) -- [Python SDK Code Samples](https://github.com/temporalio/samples-python) -- [Python SDK Github](https://github.com/temporalio/sdk-python) -- [Temporal 101 in Python Free Course](https://learn.temporal.io/courses/temporal_101/python/) - -**Get Connected with the Temporal Python Community:** - -- [Temporal Python Community Slack](https://app.slack.com/client/TNWA8QCGZ) -- [Python SDK Forum](https://community.temporal.io/tag/python-sdk) - ::: - -## [Core Application](/develop/python/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [Develop a Basic Workflow](/develop/python/core-application#develop-workflows) -- [Develop a Basic Activity](/develop/python/core-application#develop-activities) -- [Start an Activity Execution](/develop/python/core-application#activity-execution) -- [Run Worker Processes](/develop/python/core-application#run-a-dev-worker) - -## [Temporal Client](/develop/python/temporal-clients) - -Connect to a Temporal Service and start a Workflow Execution. - -- [Connect to Development Temporal Service](/develop/python/temporal-clients#connect-to-development-service) -- [Connect a Temporal Client to a Temporal Service](/develop/python/temporal-clients#connect-to-a-dev-cluster) -- [Connect to Temporal Cloud](/develop/python/temporal-clients#connect-to-temporal-cloud) -- [Start a Workflow Execution](/develop/python/temporal-clients#start-workflow-execution) - -## [Python SDK Sandbox](/develop/python/python-sdk-sandbox) - -Use third-party Python modules without non-deterministic behavior. - -## [Python SDK sync vs. async implementations](/develop/python/python-sdk-sync-vs-async) - -Implement synchronous or asynchronous Activities. - -## [Testing](/develop/python/testing-suite) - -Set up the testing suite and test Workflows and Activities. - -- [Test Frameworks](/develop/python/testing-suite#test-frameworks) -- [Testing Activities](/develop/python/testing-suite#test-activities) -- [Testing Workflows](/develop/python/testing-suite#test-workflows) -- [How to Replay a Workflow Execution](/develop/python/testing-suite#replay) - -## [Failure detection](/develop/python/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow Timeouts](/develop/python/failure-detection#workflow-timeouts) -- [Set Activity Timeouts](/develop/python/failure-detection#activity-timeouts) -- [Heartbeat an Activity](/develop/python/failure-detection#activity-heartbeats) - -## [Workflow message passing](/develop/python/message-passing) - -Send messages to and read the state of Workflow Executions. - -- [Develop with Signals](/develop/python/message-passing#signals) -- [Develop with Queries](/develop/python/message-passing#queries) -- [Develop with Updates](/develop/python/message-passing#updates) -- [What is a Dynamic Handler](/develop/python/message-passing#dynamic-handler) - -## [Interrupt a Workflow feature guide](/develop/python/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Cancel a Workflow](/develop/python/cancellation#cancellation) -- [Terminate a Workflow](/develop/python/cancellation#termination) -- [Cancel an Activity from a Workflow](/develop/python/cancellation#cancel-activity) - -## [Asynchronous Activity completion](/develop/python/asynchronous-activity-completion) - -Complete Activities asynchronously. - -- [Asynchronously Complete an Activity](/develop/python/asynchronous-activity-completion) - -## [Versioning](/develop/python/versioning) - -Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [Introduction to Versioning](/develop/python/versioning) -- [How to Use the Patching API](/develop/python/versioning#patching) - -## [Observability](/develop/python/observability) - -Configure and use the Temporal Observability APIs. - -- [Emit Metrics](/develop/python/observability#metrics) -- [Set up tracing](/develop/python/observability#tracing) -- [Log from a Workflow](/develop/python/observability#logging) -- [Use Visibility APIs](/develop/python/observability#visibility) - -## [Debugging](/develop/python/debugging) - -Explore various ways to debug your application. - -- [Debugging](/develop/python/debugging) - -## [Schedules](/develop/python/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [Schedule a Workflow](/develop/python/schedules#schedule-a-workflow) -- [Temporal Cron Jobs](/develop/python/schedules#temporal-cron-jobs) -- [Start Delay](/develop/python/schedules#start-delay) - -## [Data encryption](/develop/python/converters-and-encryption) - -Use compression, encryption, and other data handling by implementing custom converters and codecs. - -- [Custom Payload Codec](/develop/python/converters-and-encryption#custom-payload-codec) -- [Payload Conversion](/develop/python/converters-and-encryption#payload-conversion) - -## [Durable Timers](/develop/python/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [Sleep](/develop/python/timers) - -## [Child Workflows](/develop/python/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [Start a Child Workflow Execution](/develop/python/child-workflows) - -## [Continue-As-New](/develop/python/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [Continue-As-New](/develop/python/continue-as-new) - -## [Interceptors](/develop/python/interceptors) - -Manage inbound and outbound SDK calls, enhance tracing, and add authorization to your Workflows and Activities. - -- [Interceptors](/develop/python/interceptors) +# Python SDK resources + + + +
+
+

Core Application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Temporal Nexus

+

Connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+
diff --git a/docs/develop/typescript/index.mdx b/docs/develop/typescript/index.mdx index 1486685249..b84604584c 100644 --- a/docs/develop/typescript/index.mdx +++ b/docs/develop/typescript/index.mdx @@ -11,138 +11,120 @@ tags: - Temporal SDKs --- -import * as Components from '@site/src/components'; - ![TypeScript SDK Banner](/img/assets/banner-typescript-temporal.png) -:::info TYPESCRIPT SPECIFIC RESOURCES -Build Temporal Applications with the TypeScript SDK. - -**Temporal TypeScript Technical Resources:** - -- [TypeScript SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/typescript/set-up-your-local-typescript) -- [TypeScript API Documentation](https://typescript.temporal.io) -- [TypeScript SDK Code Samples](https://github.com/temporalio/samples-typescript) -- [TypeScript SDK GitHub](https://github.com/temporalio/sdk-typescript) -- [Temporal 101 in TypeScript Free Course](https://learn.temporal.io/courses/temporal_101/typescript/) - -**Get Connected with the Temporal TypeScript Community:** - -- [Temporal TypeScript Community Slack](https://temporalio.slack.com/archives/C01DKSMU94L) -- [TypeScript SDK Forum](https://community.temporal.io/tag/typescript-sdk) - ::: - -## [Core application](/develop/typescript/core-application) - -Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application. - -- [Develop a Basic Workflow](/develop/typescript/core-application#develop-workflows) -- [Develop a Basic Activity](/develop/typescript/core-application#develop-activities) -- [Start an Activity Execution](/develop/typescript/core-application#activity-execution) -- [Run Worker Processes](/develop/typescript/core-application#run-a-dev-worker) - -## [Temporal Client](/develop/typescript/temporal-clients) - -Connect to a Temporal Service and start a Workflow Execution. - -- [Connect to Development Temporal Service](/develop/typescript/temporal-clients#connect-to-development-service) -- [Connect to Temporal Cloud](/develop/typescript/temporal-clients#connect-to-temporal-cloud) -- [Start a Workflow Execution](/develop/typescript/temporal-clients#start-workflow-execution) - -## [Testing](/develop/typescript/testing-suite) - -Set up the testing suite and test Workflows and Activities. - -- [Test Frameworks](/develop/typescript/testing-suite#test-frameworks) -- [Testing Activities](/develop/typescript/testing-suite#test-activities) -- [Testing Workflows](/develop/typescript/testing-suite#test-workflows) -- [How to Replay a Workflow Execution](/develop/typescript/testing-suite#replay) - -## [Failure detection](/develop/typescript/failure-detection) - -Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries. - -- [Workflow Timeouts](/develop/typescript/failure-detection#workflow-timeouts) -- [Set Activity Timeouts](/develop/typescript/failure-detection#activity-timeouts) -- [Heartbeat an Activity](/develop/typescript/failure-detection#activity-heartbeats) - -## [Workflow message passing](/develop/typescript/message-passing) - -Send messages to and read the state of Workflow Executions. - -- [Develop with Signals](/develop/typescript/message-passing#signals) -- [Develop with Queries](/develop/typescript/message-passing#queries) -- [What is a Dynamic Handler](/develop/typescript/message-passing#dynamic-handler) - -## [Interrupt a Workflow feature guide](/develop/typescript/cancellation) - -Interrupt a Workflow Execution with a Cancel or Terminate action. - -- [Cancellation scopes in Typescript](/develop/typescript/cancellation#cancellation-scopes) - -## [Asynchronous Activity Completion](/develop/typescript/asynchronous-activity-completion) - -Complete Activities asynchronously. - -- [Asynchronously Complete an Activity](/develop/typescript/asynchronous-activity-completion) - -## [Versioning](/develop/typescript/versioning) - -Change Workflow Definitions without causing non-deterministic behavior in running Workflows. - -- [Introduction to Versioning](/develop/typescript/versioning) -- [How to Use the Patching API](/develop/typescript/versioning#patching) - -## [Observability](/develop/typescript/observability) - -Configure and use the Temporal Observability APIs. - -- [Emit Metrics](/develop/typescript/observability#metrics) -- [Setup Tracing](/develop/typescript/observability#tracing) -- [Log from a Workflow](/develop/typescript/observability#logging) -- [Use Visibility APIs](/develop/typescript/observability#visibility) - -## [Debugging](/develop/typescript/debugging) - -Explore various ways to debug your application. - -- [Debugging](/develop/typescript/debugging) - -## [Schedules](/develop/typescript/schedules) - -Run Workflows on a schedule and delay the start of a Workflow. - -- [Schedule a Workflow](/develop/typescript/schedules#schedule-a-workflow) -- [Temporal Cron Jobs](/develop/typescript/schedules#temporal-cron-jobs) -- [How to use Start Delay](/develop/typescript/schedules#start-delay) - -## [Data encryption](/develop/typescript/converters-and-encryption) - -Use compression, encryption, and other data handling by implementing custom converters and codecs. - -- [Custom Payload Codec](/develop/typescript/converters-and-encryption#custom-payload-conversion) - -## [Durable Timers](/develop/typescript/timers) - -Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years. - -- [What is a Timer](/develop/typescript/timers) - -## [Child Workflows](/develop/typescript/child-workflows) - -Explore how to spawn a Child Workflow Execution and handle Child Workflow Events. - -- [Start a Child Workflow Execution](/develop/typescript/child-workflows) - -## [Continue-As-New](/develop/typescript/continue-as-new) - -Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID. - -- [Continue-As-New](/develop/typescript/continue-as-new) - -## [Interceptors](/develop/typescript/interceptors) - -Manage inbound and outbound SDK calls, enhance tracing, and add authorization to your Workflows and Activities. - -- [How to implement interceptors](/develop/typescript/interceptors#interceptors) -- [Register an interceptor](/develop/typescript/interceptors#register-interceptor) +# TypeScript SDK resources + + + +
+
+

Core application

+

Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.

+
+ +
+

Temporal Client

+

Connect to a Temporal Service and start a Workflow Execution.

+
+ +
+

Testing

+

Set up the testing suite and test Workflows and Activities.

+
+ +
+

Failure detection

+

Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.

+
+ +
+

Workflow message passing

+

Send messages to and read the state of Workflow Executions.

+
+ +
+

Interrupt a Workflow

+

Interrupt a Workflow Execution with a Cancel or Terminate action.

+
+ +
+

Asynchronous Activity completion

+

Complete Activities asynchronously.

+
+ +
+

Versioning

+

Change Workflow Definitions without causing non-deterministic behavior in running Workflows.

+
+ +
+

Observability

+

Configure and use the Temporal Observability APIs.

+
+ +
+

Debugging

+

Explore various ways to debug your application.

+
+ +
+

Schedules

+

Run Workflows on a schedule and delay the start of a Workflow.

+
+ +
+

Data encryption

+

Use compression, encryption, and other data handling by implementing custom converters and codecs.

+
+ +
+

Temporal Nexus

+

Connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.

+
+ +
+

Durable Timers

+

Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.

+
+ +
+

Child Workflows

+

Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.

+
+ +
+

Continue-As-New

+

Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.

+
+ +
+

Side Effects

+

Use Side Effects in Workflows.

+
+ +
+

Manage Namespaces

+

Create and manage Namespaces.

+
+
From 9940b6e9639a4faf954a9046a99c8bcc9128448c Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 12:39:43 -0500 Subject: [PATCH 08/38] remove rounded corners --- docusaurus.config.js | 3 +- src/css/custom.css | 97 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 96 insertions(+), 4 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index c18162d8d3..92a6f36197 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -27,7 +27,8 @@ module.exports = async function createConfigAsync() { clientModules: ["./src/client/remote-amplitude-analytics.js"], themeConfig: { colorMode: { - respectPrefersColorScheme: true, + defaultMode: 'light', + respectPrefersColorScheme: false, disableSwitch: false, // switchConfig: { // darkIcon: "🌙", diff --git a/src/css/custom.css b/src/css/custom.css index cd82d0b675..058eb36f88 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -7,6 +7,97 @@ /* You can override the default Infima variables here. */ +/* Prevent theme flashing */ +html { + transition: none !important; +} + +html[data-theme] * { + transition: none !important; +} + +/* Re-enable transitions after initial load */ +html.loaded, +html.loaded * { + transition: all 0.2s ease !important; +} + +/* Remove all rounded corners globally */ +* { + border-radius: 0 !important; +} + +/* Specific overrides for common elements */ +.card, +.alert, +.badge, +.btn, +button, +input, +textarea, +select, +.navbar, +.footer, +.sidebar, +.menu, +.dropdown, +.modal, +.tooltip, +.popover, +.tab, +.pill, +.pagination, +.breadcrumb, +.progress, +.avatar, +.image, +img, +.thumbnail, +.well, +.panel, +.list-group-item, +.table, +.form-control, +.input-group, +.navbar-nav, +.nav-pills, +.nav-tabs, +.jumbotron, +.media, +.code, +pre, +code, +.highlight { + border-radius: 0 !important; +} + +/* Docusaurus specific elements */ +.theme-doc-sidebar-container, +.theme-doc-sidebar-menu, +.menu__link, +.navbar__item, +.navbar__link, +.dropdown__link, +.pagination-nav__link, +.theme-code-block, +.prism-code, +.token, +.admonition, +.alert, +.tabs, +.tab-item, +[class*="admonition"], +[class*="alert"], +[class*="badge"], +[class*="btn"], +[class*="card"], +[class*="menu"], +[class*="nav"], +[class*="tab"], +[class*="theme-"] { + border-radius: 0 !important; +} + :root { /* --ifm-color-primary: #f2633f; --ifm-color-primary-dark: #111827; */ @@ -1309,7 +1400,7 @@ code { background: var(--ifm-card-background-color); padding: 1.5rem; border: 1px solid var(--ifm-color-emphasis-200); - border-radius: 8px; + border-radius: 0; text-decoration: none; color: var(--ifm-color); transition: all 0.3s ease; @@ -1364,7 +1455,7 @@ code { justify-content: space-between; background: var(--ifm-card-background-color); border: 1px solid var(--ifm-color-emphasis-200); - border-radius: 8px; + border-radius: 0; padding: 1.5rem; text-decoration: none; color: var(--ifm-color); @@ -1427,7 +1518,7 @@ code { .sdk-resources-container { background: var(--ifm-card-background-color); border: 1px solid var(--ifm-color-emphasis-200); - border-radius: 8px; + border-radius: 0; padding: 2rem; margin: 2rem 0 3rem 0; } From 37eaae7ab8ed23188fa0c6a191ea1de4e434c8db Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 13:04:03 -0500 Subject: [PATCH 09/38] revert command boxes rounded corners --- src/css/custom.css | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 058eb36f88..5fd8e224e5 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -22,12 +22,12 @@ html.loaded * { transition: all 0.2s ease !important; } -/* Remove all rounded corners globally */ -* { +/* Remove all rounded corners globally, except code blocks */ +*:not(pre):not(code):not(.prism-code):not(.theme-code-block):not([class*="code"]):not([class*="highlight"]) { border-radius: 0 !important; } -/* Specific overrides for common elements */ +/* Specific overrides for common elements (excluding code) */ .card, .alert, .badge, @@ -63,15 +63,22 @@ img, .nav-pills, .nav-tabs, .jumbotron, -.media, -.code, +.media { + border-radius: 0 !important; +} + +/* Allow rounded corners for code blocks */ pre, code, -.highlight { - border-radius: 0 !important; +.prism-code, +.theme-code-block, +.highlight, +[class*="code"], +[class*="highlight"] { + border-radius: 6px !important; } -/* Docusaurus specific elements */ +/* Docusaurus specific elements (excluding code) */ .theme-doc-sidebar-container, .theme-doc-sidebar-menu, .menu__link, @@ -79,9 +86,6 @@ code, .navbar__link, .dropdown__link, .pagination-nav__link, -.theme-code-block, -.prism-code, -.token, .admonition, .alert, .tabs, @@ -94,7 +98,7 @@ code, [class*="menu"], [class*="nav"], [class*="tab"], -[class*="theme-"] { +[class*="theme-"]:not([class*="code"]) { border-radius: 0 !important; } From 535b1a66519364b4d191e3415dffdaa94fc325d0 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 17:25:11 -0500 Subject: [PATCH 10/38] new homepage example (placeholder) --- docs/index.mdx | 455 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 438 insertions(+), 17 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 7bc64a2a5c..ab2663373d 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -2,29 +2,450 @@ id: index title: Temporal Documentation sidebar_label: Home -description: Explore Temporal's comprehensive documentation to build, scale, and manage reliable, fault-tolerant workflows with Workflow-as-Code solutions. +description: Temporal is the open source platform that guarantees the successful execution of services and applications using the power of durable execution. --- - -import TemporalDocsLanding from '@site/src/components/experimental/TemporalDocsLanding'; + - From cb5f98852d501027df4c69cc797046050d3d7133 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Fri, 15 Aug 2025 17:25:57 -0500 Subject: [PATCH 11/38] remove h1 on homepage --- docs/index.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index ab2663373d..d4b9dd2465 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -5,8 +5,6 @@ sidebar_label: Home description: Temporal is the open source platform that guarantees the successful execution of services and applications using the power of durable execution. --- -# Temporal Docs - Temporal is an open-source development platform for building reliable and durable applications through crash-proof execution.
From 3ef32073497bf72e91f88f172c3c18a65b9a6da6 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 21 Aug 2025 14:54:28 -0500 Subject: [PATCH 12/38] finishing new generation of homepage demo --- docs/index.mdx | 334 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 266 insertions(+), 68 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index d4b9dd2465..82e6708dfd 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -19,7 +19,37 @@ Temporal is an open-source development platform for building reliable and durabl
-## Get Started + + +## Learn Temporal + + + +## Build Reliable Apps -## Learn Temporal - - -## Build Reliable Apps -Ready to build production-ready applications? Explore these key areas to get started with Temporal. +## Need Help? -
-
-

Temporal Cloud

-

Deploy production applications instantly with our fully-managed cloud platform - no infrastructure needed.

+
+
+
+ + + +
+
+

Join our Slack

+

Join our official Slack community to chat with us directly and become a part of the Temporal community.

+ + Join Slack + + + + +
-
-

Use Cases

-

Discover how to build reliable workflows for payment processing, data pipelines, user onboarding, and more.

-
-
-

Durable Execution

-

Learn how Temporal's core technology ensures your code runs to completion, even through failures and outages.

+ +
+
+ + + +
+
+

Ask AI

+

Get instant answers to your Temporal questions. Click the "Ask AI" button for personalized help and code examples.

+ + Try Ask AI + + + + +
@@ -145,7 +171,7 @@ Ready to build production-ready applications? Explore these key areas to get sta .hero-card h3 { margin: 0; - font-size: 1.25rem; + font-size: 1rem; font-weight: 600; color: var(--ifm-color); } @@ -154,7 +180,7 @@ Ready to build production-ready applications? Explore these key areas to get sta margin: 0; color: var(--ifm-color-emphasis-700); line-height: 1.5; - font-size: 0.95rem; + font-size: 0.85rem; } .sdk-grid { @@ -216,7 +242,7 @@ Ready to build production-ready applications? Explore these key areas to get sta .sdk-card h4 { margin: 0; - font-size: 0.85rem; + font-size: 0.75rem; font-weight: 400; color: var(--ifm-color); position: relative; @@ -256,23 +282,23 @@ Ready to build production-ready applications? Explore these key areas to get sta } .learn-icon { - width: 48px; - height: 48px; + width: 40px; + height: 40px; margin-bottom: 1rem; - background: #f0f4ff; - border: 2px solid #2563eb; + background: rgba(107, 114, 126, 0.08); + border: 1px solid rgba(107, 114, 126, 0.2); border-radius: 8px; display: flex; align-items: center; justify-content: center; - font-size: 1.2rem; - color: #2563eb; + font-size: 1rem; + color: rgba(55, 65, 81, 0.8); font-weight: 600; box-shadow: none; } .learn-card:nth-child(4) .learn-icon { - font-size: 1.8rem; + font-size: 1.4rem; } [data-theme="dark"] .learn-icon { @@ -283,19 +309,19 @@ Ready to build production-ready applications? Explore these key areas to get sta } [data-theme="dark"] .learn-card:nth-child(4) .learn-icon { - font-size: 1.6rem; + font-size: 1.2rem; } .learn-card:hover { transform: translateY(-3px); - box-shadow: 0 12px 32px rgba(68, 76, 231, 0.15), 0 0 24px rgba(68, 76, 231, 0.08); - border-color: #444CE7; + box-shadow: 0 12px 32px rgba(107, 114, 126, 0.12), 0 0 24px rgba(107, 114, 126, 0.06); + border-color: rgba(107, 114, 126, 0.3); text-decoration: none; color: inherit; } .learn-card:hover .learn-icon { - box-shadow: 0 6px 12px rgba(68, 76, 231, 0.35), 0 0 24px rgba(68, 76, 231, 0.15); + box-shadow: 0 6px 12px rgba(107, 114, 126, 0.2), 0 0 24px rgba(107, 114, 126, 0.1); } [data-theme="dark"] .learn-card:hover { @@ -305,7 +331,7 @@ Ready to build production-ready applications? Explore these key areas to get sta .learn-card h3 { margin: 0; - font-size: 1.25rem; + font-size: 1rem; font-weight: 600; color: var(--ifm-color-emphasis-900); position: relative; @@ -323,7 +349,7 @@ Ready to build production-ready applications? Explore these key areas to get sta flex-grow: 1; position: relative; z-index: 1; - font-size: 0.95rem; + font-size: 0.8rem; } [data-theme="dark"] .learn-card p { @@ -357,7 +383,7 @@ Ready to build production-ready applications? Explore these key areas to get sta .bottom-card h3 { margin: 0 0 0.75rem 0; - font-size: 1.1rem; + font-size: 0.95rem; font-weight: 600; color: var(--ifm-color); } @@ -365,29 +391,29 @@ Ready to build production-ready applications? Explore these key areas to get sta .bottom-card p { margin: 0; color: var(--ifm-color-emphasis-700); - font-size: 0.95rem; + font-size: 0.8rem; line-height: 1.5; } /* Modern section headers */ h1 { - font-size: 3rem; + font-size: 2rem; font-weight: 700; color: var(--ifm-color); margin-bottom: 1rem; } h2 { - font-size: 2rem; + font-size: 1.3rem; font-weight: 600; color: var(--ifm-color); margin: 3rem 0 1.5rem 0; } - /* ypography */ + /* Typography */ p { - font-size: 1.1rem; - line-height: 1.7; + font-size: 0.9rem; + line-height: 1.6; color: var(--ifm-color-emphasis-800); } @@ -416,7 +442,8 @@ Ready to build production-ready applications? Explore these key areas to get sta @media (max-width: 768px) { .hero-cards, .learn-cards, - .bottom-cards { + .bottom-cards, + .community-cards { grid-template-columns: 1fr; gap: 1.5rem; } @@ -426,13 +453,24 @@ Ready to build production-ready applications? Explore these key areas to get sta } h1 { - font-size: 2.5rem; + font-size: 1.75rem; } .hero-card, .learn-card { padding: 1.5rem; } + + .community-card { + padding: 1.5rem; + flex-direction: column; + text-align: center; + gap: 1rem; + } + + .community-content { + text-align: center; + } } @media (max-width: 480px) { @@ -441,9 +479,169 @@ Ready to build production-ready applications? Explore these key areas to get sta } h1 { - font-size: 2rem; + font-size: 1.5rem; + } + + .community-card { + padding: 1.25rem; + } + + .community-icon { + width: 40px; + height: 40px; } } -`} - + /* Community Cards */ + .community-cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1.25rem; + margin: 3rem 0 2rem 0; + } + + .community-card { + background: linear-gradient(135deg, #ffffff 0%, #fafbfc 100%); + border: 1px solid #e5e7eb; + border-radius: 16px; + padding: 1.75rem; + display: flex; + flex-direction: row; + gap: 1.25rem; + align-items: flex-start; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.02); + } + + [data-theme="dark"] .community-card { + background: #1a1b26; + border: 1px solid #2a2d3a; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + } + + .community-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(135deg, transparent 0%, rgba(99, 102, 241, 0.03) 100%); + opacity: 0; + transition: opacity 0.3s ease; + } + + [data-theme="dark"] .community-card::before { + background: linear-gradient(135deg, transparent 0%, rgba(68, 76, 231, 0.02) 100%); + } + + .community-card:hover::before { + opacity: 1; + } + + .community-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 32px rgba(99, 102, 241, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04); + border-color: rgba(99, 102, 241, 0.15); + } + + [data-theme="dark"] .community-card:hover { + border-color: #444CE7; + box-shadow: 0 8px 32px rgba(68, 76, 231, 0.15); + } + + .community-icon { + width: 44px; + height: 44px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + color: white; + position: relative; + z-index: 1; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12); + } + + .slack-icon { + background: linear-gradient(135deg, #4A154B 0%, #611f69 100%); + } + + .ai-icon { + background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); + } + + .community-content { + flex: 1; + display: flex; + flex-direction: column; + gap: 0.75rem; + position: relative; + z-index: 1; + } + + .community-content h3 { + margin: 0; + font-size: 1.1rem; + font-weight: 600; + color: #1f2937; + letter-spacing: -0.01em; + } + + [data-theme="dark"] .community-content h3 { + color: var(--ifm-color); + } + + .community-content p { + margin: 0; + color: #6b7280; + line-height: 1.5; + font-size: 0.85rem; + } + + [data-theme="dark"] .community-content p { + color: var(--ifm-color-emphasis-700); + } + + .community-link { + display: inline-flex; + align-items: center; + gap: 0.5rem; + color: #6366f1; + text-decoration: none; + font-weight: 500; + font-size: 0.85rem; + margin-top: 0.5rem; + transition: all 0.2s ease; + opacity: 0.9; + } + + [data-theme="dark"] .community-link { + color: #8b5cf6; + } + + .community-link:hover { + color: #4f46e5; + text-decoration: none; + transform: translateX(2px); + opacity: 1; + } + + [data-theme="dark"] .community-link:hover { + color: #a78bfa; + } + + .community-link svg { + transition: transform 0.2s ease; + opacity: 0.8; + } + + .community-link:hover svg { + transform: translateX(2px); + opacity: 1; + } +`} + \ No newline at end of file From f1be9c884b057bf3cfcb3b77c0a58c44cc79781f Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Sun, 24 Aug 2025 20:47:58 -0500 Subject: [PATCH 13/38] adding figma changes to docs homepage --- docs/index.mdx | 350 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 244 insertions(+), 106 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 82e6708dfd..24e47ff3ca 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -3,91 +3,62 @@ id: index title: Temporal Documentation sidebar_label: Home description: Temporal is the open source platform that guarantees the successful execution of services and applications using the power of durable execution. +hide_table_of_contents: true --- -Temporal is an open-source development platform for building reliable and durable applications through crash-proof execution. +
+
+

Build applications that never fail

- - - - -## Learn Temporal - -
- -
101
-

Temporal 101 and 102

-

Take comprehensive courses on Temporal 101, 102, Error Handling, and Cloud.

-
+ +

Temporal is an open source platform for building reliable applications. +Temporal provides crash proof execution by making sure that when crashes, network failures, or infrastructure outages occur, it guarantees that your applications pick up exactly where they left off, whether that is seconds, days, or even years later.

+ - -
</>
-

Code Exchange

-

Get started quickly with Temporal by following our language-specific quickstart guides.

-
+

Temporal lets you focus on building features that matter to your business while ensuring your critical processes like order fulfillment, customer onboarding, or payment processing never fail or get lost, no matter what goes wrong.

+ + + Quickstart → + +
+ +
-## Build Reliable Apps - - @@ -110,8 +81,8 @@ Temporal is an open-source development platform for building reliable and durabl
-
- +
+
@@ -133,54 +104,173 @@ Temporal is an open-source development platform for building reliable and durabl \ No newline at end of file + From 2e27e9956cc5e29843fb78203ce13e7867e06b3e Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Sun, 24 Aug 2025 21:19:57 -0500 Subject: [PATCH 14/38] quickstart button --- docs/index.mdx | 73 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 24e47ff3ca..10010c7f2f 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -146,7 +146,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ .hero-content p { font-size: 1rem; line-height: 1.7; - color: #a1a8b3; + color: #ffffff; margin-bottom: 1.5rem; } @@ -156,24 +156,69 @@ Temporal provides crash proof execution by making sure that when crashes, networ .hero-cta { display: inline-flex; - align-items: center; - gap: 0.5rem; + align-items: flex-start; + justify-content: center; + gap: 16px; + width: 181px; + height: 56px; background: linear-gradient(255.4deg, #444CE7 0%, #B664FF 100%); - color: #ffffff; - padding: 0.75rem 1.5rem; - border-radius: 8px; - text-decoration: none; - font-weight: 600; - font-size: 0.95rem; + color: #ffffff !important; + padding: 15px 24px 12px 24px; + border-radius: 12px; + text-decoration: none !important; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-weight: 500; + font-size: 15px; + line-height: 1.2; margin-top: 1rem; - transition: all 0.3s ease; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + border: none; + box-sizing: border-box; + box-shadow: 0 4px 12px rgba(68, 76, 231, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1); + letter-spacing: 0.02em; + position: relative; + overflow: hidden; + text-align: center; + white-space: nowrap; + } + + .hero-cta, + .hero-cta:visited, + .hero-cta:link, + .hero-cta:active { + color: #ffffff !important; } .hero-cta:hover { - transform: translateY(-2px); - box-shadow: 0 8px 25px rgba(68, 76, 231, 0.4); - text-decoration: none; - color: #ffffff; + transform: translateY(-3px); + box-shadow: 0 12px 32px rgba(68, 76, 231, 0.4), 0 4px 12px rgba(0, 0, 0, 0.15); + text-decoration: none !important; + color: #ffffff !important; + background: linear-gradient(255.4deg, #5a5ce7 0%, #c474ff 100%); + } + + .hero-cta::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 50%); + border-radius: 12px; + pointer-events: none; + } + + .hero-cta:active { + transform: translateY(-1px); + box-shadow: 0 6px 16px rgba(68, 76, 231, 0.35); + } + + .hero-cta:hover, + .hero-cta:hover:visited, + .hero-cta:hover:link, + .hero-cta:hover:active { + color: #ffffff !important; } .hero-actions { From 621aa083061073c579713be434e93f692129da44 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Sun, 24 Aug 2025 21:26:22 -0500 Subject: [PATCH 15/38] light mode colors --- docs/index.mdx | 73 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 10010c7f2f..8fec1e64d3 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -117,9 +117,9 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .hero-section { - background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); - border: 1px solid #e5e7eb; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); + background: linear-gradient(135deg, #ffffff 0%, #f5f5f5 100%); + border: 1px solid #e0e0e0; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } .hero-content { @@ -127,7 +127,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .hero-content { - color: #1f2937; + color: #000000; } .hero-content h1 { @@ -140,7 +140,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .hero-content h1 { - color: #1f2937; + color: #000000; } .hero-content p { @@ -151,7 +151,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .hero-content p { - color: #4b5563; + color: #333333; } .hero-cta { @@ -221,6 +221,43 @@ Temporal provides crash proof execution by making sure that when crashes, networ color: #ffffff !important; } + /* Light mode glass morphism button */ + [data-theme="light"] .hero-cta { + background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%); + border: 1px solid rgba(255, 255, 255, 0.6); + color: #000000 !important; + backdrop-filter: blur(15px); + box-shadow: + 0 8px 32px rgba(0, 0, 0, 0.12), + inset 0 1px 0 rgba(255, 255, 255, 1), + inset 0 -1px 0 rgba(0, 0, 0, 0.08); + } + + [data-theme="light"] .hero-cta:hover { + background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 100%); + border-color: rgba(255, 255, 255, 0.8); + color: #000000 !important; + box-shadow: + 0 12px 40px rgba(0, 0, 0, 0.18), + inset 0 2px 0 rgba(255, 255, 255, 1), + inset 0 -1px 0 rgba(0, 0, 0, 0.1); + transform: translateY(-3px); + } + + [data-theme="light"] .hero-cta, + [data-theme="light"] .hero-cta:visited, + [data-theme="light"] .hero-cta:link, + [data-theme="light"] .hero-cta:active { + color: #000000 !important; + } + + [data-theme="light"] .hero-cta:hover, + [data-theme="light"] .hero-cta:hover:visited, + [data-theme="light"] .hero-cta:hover:link, + [data-theme="light"] .hero-cta:hover:active { + color: #000000 !important; + } + .hero-actions { display: flex; flex-direction: column; @@ -244,7 +281,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ [data-theme="light"] .action-card { background: transparent; - border: 1px solid #e5e7eb; + border: 1px solid #d0d0d0; } .action-card:hover { @@ -258,9 +295,9 @@ Temporal provides crash proof execution by making sure that when crashes, networ [data-theme="light"] .action-card:hover { transform: translateY(-3px); - border-image: linear-gradient(135deg, #1FF1A5, #444CE7) 1; - background: transparent; - box-shadow: 0 12px 32px rgba(31, 241, 165, 0.15); + border-color: #666666; + background: rgba(0, 0, 0, 0.02); + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); } .action-icon { @@ -281,15 +318,21 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .action-icon { - background: rgba(31, 241, 165, 0.1); - border: 1px solid rgba(31, 241, 165, 0.2); - color: #1FF1A5; + background: #f0f0f0; + border: 1px solid #cccccc; + color: #000000; } .action-card:hover .action-icon { box-shadow: 0 6px 12px rgba(31, 241, 165, 0.2), 0 0 24px rgba(31, 241, 165, 0.1); } + [data-theme="light"] .action-card:hover .action-icon { + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1); + background: #e8e8e8; + border-color: #999999; + } + .action-content { flex: 1; min-width: 0; @@ -304,7 +347,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .action-card h3 { - color: #1f2937; + color: #000000; } .action-card p { @@ -315,7 +358,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .action-card p { - color: #CACBF9; + color: #666666; } .sdk-grid { From 6f75141da51ee880e87b1f6a1ae6b5850b25b95e Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Sun, 24 Aug 2025 21:34:19 -0500 Subject: [PATCH 16/38] fixing colors and effects --- docs/index.mdx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 8fec1e64d3..ea96cc05f1 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -117,7 +117,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .hero-section { - background: linear-gradient(135deg, #ffffff 0%, #f5f5f5 100%); + background: #ffffff; border: 1px solid #e0e0e0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } @@ -172,7 +172,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ line-height: 1.2; margin-top: 1rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); - border: none; + border: 1px solid rgba(68, 76, 231, 0.4); box-sizing: border-box; box-shadow: 0 4px 12px rgba(68, 76, 231, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1); letter-spacing: 0.02em; @@ -195,6 +195,7 @@ Temporal provides crash proof execution by making sure that when crashes, networ text-decoration: none !important; color: #ffffff !important; background: linear-gradient(255.4deg, #5a5ce7 0%, #c474ff 100%); + border-color: rgba(68, 76, 231, 0.6); } .hero-cta::before { @@ -224,23 +225,23 @@ Temporal provides crash proof execution by making sure that when crashes, networ /* Light mode glass morphism button */ [data-theme="light"] .hero-cta { background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%); - border: 1px solid rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.15); color: #000000 !important; backdrop-filter: blur(15px); box-shadow: - 0 8px 32px rgba(0, 0, 0, 0.12), + 0 2px 8px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 1), - inset 0 -1px 0 rgba(0, 0, 0, 0.08); + inset 0 -1px 0 rgba(0, 0, 0, 0.06); } [data-theme="light"] .hero-cta:hover { background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 100%); - border-color: rgba(255, 255, 255, 0.8); + border-color: rgba(0, 0, 0, 0.25); color: #000000 !important; box-shadow: - 0 12px 40px rgba(0, 0, 0, 0.18), + 0 4px 16px rgba(0, 0, 0, 0.08), inset 0 2px 0 rgba(255, 255, 255, 1), - inset 0 -1px 0 rgba(0, 0, 0, 0.1); + inset 0 -1px 0 rgba(0, 0, 0, 0.08); transform: translateY(-3px); } From 2987a5fdb38399da6638bb75ae66f16a0859c2ed Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Mon, 25 Aug 2025 10:32:50 -0500 Subject: [PATCH 17/38] temp using temporal logo --- docs/index.mdx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index ea96cc05f1..f0534a7189 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -84,10 +84,8 @@ Temporal provides crash proof execution by making sure that when crashes, networ
-
- - - +
+ Temporal

Ask AI

@@ -797,8 +795,15 @@ Temporal provides crash proof execution by making sure that when crashes, networ background: linear-gradient(135deg, #4A154B 0%, #611f69 100%); } - .ai-icon { + .temporal-icon { background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); + display: flex; + align-items: center; + justify-content: center; + } + + [data-theme="light"] .temporal-icon img { + content: url('/img/assets/temporal-logo-dark.svg'); } .community-content { From c02fb337be507c9d797e542982ed77a94bf2a893 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Mon, 25 Aug 2025 23:29:45 -0500 Subject: [PATCH 18/38] add enroll in course card --- docs/index.mdx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index f0534a7189..809500a2a2 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -23,14 +23,6 @@ Temporal provides crash proof execution by making sure that when crashes, networ
+ +
â–²
@@ -48,6 +42,16 @@ Temporal provides crash proof execution by making sure that when crashes, networ
+ +
⟋
+
+

Enroll in Temporal 101 and 102

+

Learn the fundamentals with comprehensive courses and become a Temporal expert.

+
+
+ + +
∩
From 1c0c9d73e3ba90215dbcc45c1054d239f940c313 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Tue, 26 Aug 2025 16:46:25 -0500 Subject: [PATCH 19/38] revert sidebar and keep stand alone features page --- sidebars.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sidebars.js b/sidebars.js index 115fa9aca9..0ff4626f84 100644 --- a/sidebars.js +++ b/sidebars.js @@ -4,13 +4,14 @@ module.exports = { "quickstarts", { type: "category", - label: "Introduction", + label: "Evaluate", collapsed: false, link: { type: "doc", id: "evaluate/index", }, items: [ + "evaluate/why-temporal", "evaluate/understanding-temporal", { type: "category", From a256dd00c9ce573d47aa2872f029678ac160111c Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 27 Aug 2025 14:57:15 -0500 Subject: [PATCH 20/38] add temporal icons --- static/img/icons/Book.svg | 9 +++++++++ static/img/icons/Cloud.svg | 9 +++++++++ static/img/icons/Code.svg | 9 +++++++++ static/img/icons/Education.svg | 9 +++++++++ static/img/icons/Lightning.png | Bin 0 -> 590 bytes static/img/icons/Message.svg | 9 +++++++++ static/img/icons/Rocket.svg | 9 +++++++++ static/img/icons/Slack.svg | 9 +++++++++ 8 files changed, 63 insertions(+) create mode 100644 static/img/icons/Book.svg create mode 100644 static/img/icons/Cloud.svg create mode 100644 static/img/icons/Code.svg create mode 100644 static/img/icons/Education.svg create mode 100644 static/img/icons/Lightning.png create mode 100644 static/img/icons/Message.svg create mode 100644 static/img/icons/Rocket.svg create mode 100644 static/img/icons/Slack.svg diff --git a/static/img/icons/Book.svg b/static/img/icons/Book.svg new file mode 100644 index 0000000000..de746e6444 --- /dev/null +++ b/static/img/icons/Book.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/icons/Cloud.svg b/static/img/icons/Cloud.svg new file mode 100644 index 0000000000..07918d443b --- /dev/null +++ b/static/img/icons/Cloud.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/icons/Code.svg b/static/img/icons/Code.svg new file mode 100644 index 0000000000..cea41909eb --- /dev/null +++ b/static/img/icons/Code.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/icons/Education.svg b/static/img/icons/Education.svg new file mode 100644 index 0000000000..193c29ade1 --- /dev/null +++ b/static/img/icons/Education.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/icons/Lightning.png b/static/img/icons/Lightning.png new file mode 100644 index 0000000000000000000000000000000000000000..f3af49456f2b0178adbbdc0e6f61514eed0e3d05 GIT binary patch literal 590 zcmV-U0&b>j&+)3=Xz_d`_R z6o+=MeX#17oW=~62+K3Sj0UJdN#<+oD@}`6t#Des@aX&50Lor&BCFzX9dtAhSCc)C zJOvv#O=nh1R+jIB^F=k;Ow&Ls%%?P3qONVZ&;ilK+RH>+#CFk3PW=?kGFJFh{MXjw z*tse1v01MyE$} zc<3o&4{jsIKk!h9+TudWAAe~-ozeU3Ajk+;2KsU(3n5<2k>)_f!sJSgCXJ(6p}a}> zDzo@}-hMVL1#?{!8{_uN_VZ#ztW1=Pey&Hv5hP!VnwrRhmgnt*;cvD3G%04CR$Dw= zg}a*d?2N+Ylhx@ + + + + + + + + diff --git a/static/img/icons/Rocket.svg b/static/img/icons/Rocket.svg new file mode 100644 index 0000000000..661c4976c4 --- /dev/null +++ b/static/img/icons/Rocket.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/icons/Slack.svg b/static/img/icons/Slack.svg new file mode 100644 index 0000000000..c460c09ba2 --- /dev/null +++ b/static/img/icons/Slack.svg @@ -0,0 +1,9 @@ + + + + + + + + + From 8274801f65a4df03ad4800ff4e2aaa1827fbc8a3 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 27 Aug 2025 15:25:37 -0500 Subject: [PATCH 21/38] adding dark vs light mode icons and to homepage --- docs/index.mdx | 42 ++++++++++++++++++++++++++--- static/img/icons/Cloud-dark.svg | 3 +++ static/img/icons/Code-dark.svg | 3 +++ static/img/icons/Education-dark.svg | 3 +++ static/img/icons/Rocket-dark.svg | 3 +++ 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 static/img/icons/Cloud-dark.svg create mode 100644 static/img/icons/Code-dark.svg create mode 100644 static/img/icons/Education-dark.svg create mode 100644 static/img/icons/Rocket-dark.svg diff --git a/docs/index.mdx b/docs/index.mdx index 809500a2a2..83d25d6d9d 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -25,7 +25,10 @@ Temporal provides crash proof execution by making sure that when crashes, networ
-
</>
+
+ Code icon + Code icon +

Developer Guide

Dive into everything you need to know about building with Workflows.

@@ -35,7 +38,10 @@ Temporal provides crash proof execution by making sure that when crashes, networ
-
â–²
+
+ Rocket icon + Rocket icon +

Deploy your Workflows

Deploy your Temporal Application to your environment, Self-Host the Temporal Service or use Temporal Cloud.

@@ -43,7 +49,10 @@ Temporal provides crash proof execution by making sure that when crashes, networ
-
⟋
+
+ Education icon + Education icon +

Enroll in Temporal 101 and 102

Learn the fundamentals with comprehensive courses and become a Temporal expert.

@@ -53,7 +62,10 @@ Temporal provides crash proof execution by making sure that when crashes, networ
-
∩
+
+ Cloud icon + Cloud icon +

Get started for free with $1000 in credits

Sign up for Temporal Cloud and let us host the Temporal Service for you.

@@ -879,5 +891,27 @@ Temporal provides crash proof execution by making sure that when crashes, networ transform: translateX(2px); opacity: 1; } + + /* Icon theme switching */ + .icon-dark-mode { + display: block; + } + + .icon-light-mode { + display: none; + } + + [data-theme="light"] .icon-dark-mode { + display: none; + } + + [data-theme="light"] .icon-light-mode { + display: block; + } + + .action-icon img { + width: 24px; + height: 24px; + } `} diff --git a/static/img/icons/Cloud-dark.svg b/static/img/icons/Cloud-dark.svg new file mode 100644 index 0000000000..2467bf6402 --- /dev/null +++ b/static/img/icons/Cloud-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/icons/Code-dark.svg b/static/img/icons/Code-dark.svg new file mode 100644 index 0000000000..2d3dfe409c --- /dev/null +++ b/static/img/icons/Code-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/icons/Education-dark.svg b/static/img/icons/Education-dark.svg new file mode 100644 index 0000000000..c274ed2362 --- /dev/null +++ b/static/img/icons/Education-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/icons/Rocket-dark.svg b/static/img/icons/Rocket-dark.svg new file mode 100644 index 0000000000..e0408fead2 --- /dev/null +++ b/static/img/icons/Rocket-dark.svg @@ -0,0 +1,3 @@ + + + From c2d61f38bca15e27bae5fbd13ba0502051fc1fa4 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 27 Aug 2025 20:11:45 -0500 Subject: [PATCH 22/38] reduce icon size --- docs/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 83d25d6d9d..6464c8a6d7 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -910,8 +910,8 @@ Temporal provides crash proof execution by making sure that when crashes, networ } .action-icon img { - width: 24px; - height: 24px; + width: 20px; + height: 20px; } `} From 79949ae5e2a652e92cbbeeb41bc06c79c8d1f96b Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 27 Aug 2025 21:03:14 -0500 Subject: [PATCH 23/38] adding temporal light vs dark mode icons to need help section --- docs/index.mdx | 54 ++++++++++++++++++++++++------- static/img/icons/Book-dark.svg | 3 ++ static/img/icons/Message-dark.svg | 3 ++ static/img/icons/Slack-dark.svg | 3 ++ 4 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 static/img/icons/Book-dark.svg create mode 100644 static/img/icons/Message-dark.svg create mode 100644 static/img/icons/Slack-dark.svg diff --git a/docs/index.mdx b/docs/index.mdx index 6464c8a6d7..a82fe9c328 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -83,9 +83,8 @@ Temporal provides crash proof execution by making sure that when crashes, networ
- - - + Slack + Slack

Join our Slack

@@ -99,9 +98,27 @@ Temporal provides crash proof execution by making sure that when crashes, networ
+
+
- Temporal + Message + Message

Ask AI

@@ -736,11 +753,23 @@ Temporal provides crash proof execution by making sure that when crashes, networ /* Community Cards */ .community-cards { display: grid; - grid-template-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr 1fr; gap: 1.25rem; margin: 3rem 0 2rem 0; } + @media (max-width: 768px) { + .community-cards { + grid-template-columns: 1fr; + } + } + + @media (min-width: 769px) and (max-width: 1024px) { + .community-cards { + grid-template-columns: 1fr 1fr; + } + } + .community-card { background: linear-gradient(135deg, #ffffff 0%, #fafbfc 100%); border: 1px solid #e5e7eb; @@ -798,29 +827,32 @@ Temporal provides crash proof execution by making sure that when crashes, networ height: 44px; border-radius: 12px; display: flex; - align-items: center; + align-items: flex-start; justify-content: center; flex-shrink: 0; color: white; position: relative; z-index: 1; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12); + padding-top: 8px; } .slack-icon { - background: linear-gradient(135deg, #4A154B 0%, #611f69 100%); + background: none; + } + + .forum-icon { + background: none; } .temporal-icon { - background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); + background: none; display: flex; align-items: center; justify-content: center; } - [data-theme="light"] .temporal-icon img { - content: url('/img/assets/temporal-logo-dark.svg'); - } + .community-content { flex: 1; diff --git a/static/img/icons/Book-dark.svg b/static/img/icons/Book-dark.svg new file mode 100644 index 0000000000..d227d20138 --- /dev/null +++ b/static/img/icons/Book-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/icons/Message-dark.svg b/static/img/icons/Message-dark.svg new file mode 100644 index 0000000000..9860473822 --- /dev/null +++ b/static/img/icons/Message-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/icons/Slack-dark.svg b/static/img/icons/Slack-dark.svg new file mode 100644 index 0000000000..535fab3798 --- /dev/null +++ b/static/img/icons/Slack-dark.svg @@ -0,0 +1,3 @@ + + + From 4c2aa3002a004a8c86e13b94db3c420b9976a656 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 27 Aug 2025 21:27:05 -0500 Subject: [PATCH 24/38] minimal slack, forum, and ask ai card format with hover effect --- docs/index.mdx | 201 ++++++++++--------------------------------------- 1 file changed, 41 insertions(+), 160 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index a82fe9c328..03ea417c38 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -76,61 +76,33 @@ Temporal provides crash proof execution by making sure that when crashes, networ - - -## Need Help? -
-
- +

Slack Community

+

Join us on temporal.io/slack and chat with us directly.

+ -
- +

Developer Forum

+

Ask questions, search solutions, and learn from other developers.

+ - From 16a3288d7c28e717d6d8623de02c27dfa0b023ca Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 28 Aug 2025 10:28:58 -0500 Subject: [PATCH 26/38] dark mode as default --- docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 92a6f36197..4a44d86095 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -27,7 +27,7 @@ module.exports = async function createConfigAsync() { clientModules: ["./src/client/remote-amplitude-analytics.js"], themeConfig: { colorMode: { - defaultMode: 'light', + defaultMode: 'dark', respectPrefersColorScheme: false, disableSwitch: false, // switchConfig: { From b314f48e9f915af792cd05148e3e0678c8a7977c Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 28 Aug 2025 10:37:02 -0500 Subject: [PATCH 27/38] remove react redundant components --- src/components/elements/CallToAction.js | 20 ++-- src/components/elements/InfoBox.js | 2 +- src/components/elements/SetupSteps.js | 54 +++++----- src/components/elements/info-box.module.css | 36 ------- .../elements/setup-steps.module.css | 100 +++++++++--------- 5 files changed, 88 insertions(+), 124 deletions(-) diff --git a/src/components/elements/CallToAction.js b/src/components/elements/CallToAction.js index 2941bd11dd..7be158145a 100644 --- a/src/components/elements/CallToAction.js +++ b/src/components/elements/CallToAction.js @@ -1,13 +1,13 @@ import React from 'react'; import styles from './call-to-action.module.css'; -export const CallToAction = ({ href, children }) => { - return ( - -
- {children} -
-
→
-
- ); -}; + export const CallToAction = ({ href, children }) => { + return ( + +
+ {children} +
+
→
+
+ ); + }; \ No newline at end of file diff --git a/src/components/elements/InfoBox.js b/src/components/elements/InfoBox.js index 2c2ea54ec4..d53c30a91d 100644 --- a/src/components/elements/InfoBox.js +++ b/src/components/elements/InfoBox.js @@ -11,4 +11,4 @@ export const InfoBox = ({ title, children }) => {
); -}; +}; \ No newline at end of file diff --git a/src/components/elements/SetupSteps.js b/src/components/elements/SetupSteps.js index 0d2a5acea2..cfdf16d55d 100644 --- a/src/components/elements/SetupSteps.js +++ b/src/components/elements/SetupSteps.js @@ -1,32 +1,32 @@ import React from 'react'; -import styles from './setup-steps.module.css'; -import CodeBlock from '@theme/CodeBlock'; + import styles from './setup-steps.module.css'; + import CodeBlock from '@theme/CodeBlock'; -export const SetupStep = ({ children, code }) => { - return ( -
-
- {children} -
-
- {code} + export const SetupStep = ({ children, code }) => { + return ( +
+
+ {children} +
+
+ {code} +
-
- ); -}; + ); + }; -export const CodeSnippet = ({ language, children }) => { - return ( - - {children} - - ); -}; + export const CodeSnippet = ({ language, children }) => { + return ( + + {children} + + ); + }; -export const SetupSteps = ({ children }) => { - return ( -
- {children} -
- ); -}; + export const SetupSteps = ({ children }) => { + return ( +
+ {children} +
+ ); + }; \ No newline at end of file diff --git a/src/components/elements/info-box.module.css b/src/components/elements/info-box.module.css index 9b700f3ad2..e69de29bb2 100644 --- a/src/components/elements/info-box.module.css +++ b/src/components/elements/info-box.module.css @@ -1,36 +0,0 @@ -.infoBox { - background: rgba(45, 45, 85, 0.95); - border: 1px solid #3b3b7c; - border-radius: 8px; - padding: 1.5rem; - margin: 1.5rem 0; - display: flex; - gap: 1rem; - color: #e6e6fa; - } - - .infoIcon { - font-size: 1.2rem; - color: #8585ff; - line-height: 1; - } - - .content h3 { - margin: 0 0 0.5rem 0; - font-size: 1.1rem; - color: #e6e6fa; - } - - .content p { - margin: 0.5rem 0; - color: #b4b4d4; - line-height: 1.5; - } - - .content code { - background: rgba(70, 70, 120, 0.5); - padding: 0.2em 0.4em; - border-radius: 4px; - font-family: var(--ifm-font-family-monospace); - font-size: 0.9em; - } \ No newline at end of file diff --git a/src/components/elements/setup-steps.module.css b/src/components/elements/setup-steps.module.css index 367e051995..3c096ecb8b 100644 --- a/src/components/elements/setup-steps.module.css +++ b/src/components/elements/setup-steps.module.css @@ -1,55 +1,55 @@ .setupSteps { - display: flex; - flex-direction: column; - gap: 2rem; - margin: 2rem 0; -} - -.setupStep { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 2rem; - align-items: start; -} - -.content { - padding-right: 1rem; -} - -.content h2 { - margin-top: 0; - color: var(--ifm-color-emphasis-800); -} - -.content p { - color: var(--ifm-color-emphasis-700); - font-size: 0.95rem; - line-height: 1.5; -} - -.code { - background: var(--ifm-color-emphasis-100); - border-radius: 8px; - padding: 1rem; - font-family: var(--ifm-font-family-monospace); - font-size: 0.9rem; - line-height: 1.4; - overflow-x: auto; -} - -.code pre { - margin: 0; - padding: 0; - background: transparent; -} - -@media (max-width: 768px) { + display: flex; + flex-direction: column; + gap: 2rem; + margin: 2rem 0; + } + .setupStep { - grid-template-columns: 1fr; - gap: 1rem; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2rem; + align-items: start; } - + .content { - padding-right: 0; + padding-right: 1rem; + } + + .content h2 { + margin-top: 0; + color: var(--ifm-color-emphasis-800); + } + + .content p { + color: var(--ifm-color-emphasis-700); + font-size: 0.95rem; + line-height: 1.5; + } + + .code { + background: var(--ifm-color-emphasis-100); + border-radius: 8px; + padding: 1rem; + font-family: var(--ifm-font-family-monospace); + font-size: 0.9rem; + line-height: 1.4; + overflow-x: auto; + } + + .code pre { + margin: 0; + padding: 0; + background: transparent; } -} + + @media (max-width: 768px) { + .setupStep { + grid-template-columns: 1fr; + gap: 1rem; + } + + .content { + padding-right: 0; + } + } \ No newline at end of file From d3f01a5ab1cf48b240c4cdeb136a4a543e0a5f4d Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 28 Aug 2025 11:48:26 -0500 Subject: [PATCH 28/38] centering sdk box logos --- docs/evaluate/index.mdx | 53 ++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/docs/evaluate/index.mdx b/docs/evaluate/index.mdx index 950621ab8a..76e1eb97f8 100644 --- a/docs/evaluate/index.mdx +++ b/docs/evaluate/index.mdx @@ -1,12 +1,10 @@ --- id: index -title: Introducing Temporal -sidebar_label: Introduction +title: Evaluate Temporal +sidebar_label: Evaluate description: Temporal is a developer-first, open source platform that ensures the successful execution of services and applications. --- -# Introducing Temporal - Temporal is a developer-first, open source platform that ensures the successful execution of services and applications. ## Who is Temporal for? @@ -71,22 +69,20 @@ Temporal provides durable execution for your applications through its unique arc Temporal allows you to develop with durable execution in different languages and multiple languages can be used to build single services, enabling polyglot development.
- Go SDK - Java SDK - TypeScript SDK - Python SDK - PHP SDK - .NET SDK - Ruby SDK + Go SDK + Java SDK + TypeScript SDK + Python SDK + PHP SDK + .NET SDK + Ruby SDK
## Self-Hosted or Fully-Managed Service Temporal is fully open source. You can self-host the Temporal Service or use Temporal Cloud, our fully-managed SaaS offering. -
- Self-Hosted or Fully-Managed Service -
+
@@ -109,5 +105,34 @@ Temporal is fully open source. You can self-host the Temporal Service or use Tem justify-content: center; align-items: center; } + + .sdk-logos { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 2rem; + margin: 2rem 0; + } + + .sdk-logos img { + max-width: 120px; + height: auto; + transition: transform 0.2s ease; + } + + .sdk-logos img:hover { + transform: scale(1.05); + } + + @media (max-width: 768px) { + .sdk-logos { + gap: 1.5rem; + } + + .sdk-logos img { + max-width: 100px; + } + } `} From f0a6812d1ad2ebb70d97ef4ace0fba89f5b6ede1 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 3 Sep 2025 12:02:28 -0500 Subject: [PATCH 29/38] faint outline and transparent background for icons on light mode homepage --- docs/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index c5e873e625..7a4c189b23 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -322,8 +322,8 @@ Temporal provides crash proof execution by making sure that when crashes, networ } [data-theme="light"] .action-icon { - background: #f0f0f0; - border: 1px solid #cccccc; + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.08); color: #000000; } @@ -333,8 +333,8 @@ Temporal provides crash proof execution by making sure that when crashes, networ [data-theme="light"] .action-card:hover .action-icon { box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1); - background: #e8e8e8; - border-color: #999999; + background: rgba(0, 0, 0, 0.05); + border-color: rgba(0, 0, 0, 0.12); } .action-content { From 1066be610464c71afb021de9fc7c373264d50d32 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 3 Sep 2025 12:06:59 -0500 Subject: [PATCH 30/38] homepage copy --- docs/index.mdx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 7a4c189b23..8d93fe4a9d 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -9,21 +9,19 @@ hide_table_of_contents: true

Build applications that never fail

- - -

Temporal is an open source platform for building reliable applications. -Temporal provides crash proof execution by making sure that when crashes, network failures, or infrastructure outages occur, it guarantees that your applications pick up exactly where they left off, whether that is seconds, days, or even years later.

- - -

Temporal lets you focus on building features that matter to your business while ensuring your critical processes like order fulfillment, customer onboarding, or payment processing never fail or get lost, no matter what goes wrong.

- +

+ Temporal is an open-source platform for building reliable applications. + Temporal delivers crash-proof execution by guaranteeing that applications resume exactly where they left off after crashes, network failures, or infrastructure outages, whether that happens seconds, days, or even years later. +

+

+ Temporal enables developers to focus on building features that drive the business while ensuring that mission-critical processes such as order fulfillment, customer onboarding, and payment processing never fail or disappear, regardless of what goes wrong. +

Quickstart →
- +
-
Code icon From 1b7c000807e52d31f909badc81144302430d2fa8 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 3 Sep 2025 12:17:48 -0500 Subject: [PATCH 31/38] light mode card hover state gradient --- docs/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 8d93fe4a9d..b254492aae 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -297,9 +297,9 @@ hide_table_of_contents: true [data-theme="light"] .action-card:hover { transform: translateY(-3px); - border-color: #666666; + border-image: linear-gradient(135deg,rgb(184, 185, 198),rgb(23, 33, 234)) 1; background: rgba(0, 0, 0, 0.02); - box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); + box-shadow: 0 12px 32px rgba(31, 32, 63, 0.2); } .action-icon { From f316d7e5b8ff641667e7cd2197759b9d16546b57 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 3 Sep 2025 12:21:12 -0500 Subject: [PATCH 32/38] copy clarity --- docs/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.mdx b/docs/index.mdx index b254492aae..a100534728 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -99,7 +99,7 @@ hide_table_of_contents: true Message

Ask AI

-

Try our AI for instant answers and personalized help.

+

Try our Ask AI button for instant answers and personalized help.

From a005d3ca831fadc929bf03e64ca0aeb182db1c38 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Wed, 3 Sep 2025 12:23:54 -0500 Subject: [PATCH 33/38] dev guide card copy --- docs/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.mdx b/docs/index.mdx index a100534728..828aadba5b 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -29,7 +29,7 @@ hide_table_of_contents: true

Developer Guide

-

Dive into everything you need to know about building with Workflows.

+

Dive into everything you need to know about building Temporal applications.

From 5f1563b199d72ac13e96e5883930a8d2137e5a37 Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 11 Sep 2025 12:42:47 -0700 Subject: [PATCH 34/38] polishing up the dev guide landing page - removing links, adding color outline hover effect, smaller cards for better styling --- docs/develop/index.mdx | 132 +++++++++++++++++++++++++++++------------ docs/index.mdx | 3 +- 2 files changed, 95 insertions(+), 40 deletions(-) diff --git a/docs/develop/index.mdx b/docs/develop/index.mdx index 67accad79c..916f295243 100644 --- a/docs/develop/index.mdx +++ b/docs/develop/index.mdx @@ -3,13 +3,15 @@ id: index title: Develop durable applications with Temporal SDKs description: Discover comprehensive Temporal SDK feature guides and API references. Enhance your Temporal Application development with Ruby, Go, Java, PHP, Python, TypeScript, and .NET. sidebar_label: Development +hide_table_of_contents: true --- import { SdkLogos } from '@site/src/components/elements/SdkLogos'; ## 100% Open Source -Temporal SDKs provide the foundation for building reliable distributed applications. Each SDK is designed to help you implement durable Workflows, Activities, and Workers with native language support and comprehensive tooling. +Temporal SDKs provide the foundation for building reliable distributed applications. +Each SDK is designed to help you implement durable Workflows, Activities, and Workers with native language support and comprehensive tooling.
@@ -101,22 +103,96 @@ Temporal SDKs provide the foundation for building reliable distributed applicati .sdk-grid { display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; } .dev-sdk-card { - background: var(--ifm-background-surface-color); - border: 1px solid rgba(255, 255, 255, 0.1); + background: transparent; + border: 0.5px solid rgba(255, 255, 255, 0.1); border-radius: 0; - padding: 1.25rem; - min-height: 200px; + padding: 1rem; + min-height: 140px; position: relative; display: block; + transition: all 0.3s ease; } [data-theme='light'] .dev-sdk-card { - border: 1px solid var(--ifm-color-emphasis-300); + background: transparent; + border: 0.5px solid var(--ifm-color-emphasis-300); + } + + /* SDK-specific hover effects for light mode */ + [data-theme='light'] .dev-sdk-card:nth-child(1):hover { + border: 1px solid #1f4ed8; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(2):hover { + border: 1px solid #dc2626; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(3):hover { + border: 1px solid #2d7d32; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(4):hover { + border: 1px solid #6a1b9a; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(5):hover { + border: 1px solid #e91e63; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(6):hover { + border: 1px solid #f57f17; + transform: translateY(-2px); + } + + [data-theme='light'] .dev-sdk-card:nth-child(7):hover { + border: 1px solid #ef6c00; + transform: translateY(-2px); + } + + /* SDK-specific hover effects for dark mode - lighter vibrant colors */ + [data-theme='dark'] .dev-sdk-card:nth-child(1):hover { + border: 1px solid #5b9bd5; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(2):hover { + border: 1px solid #ff6b6b; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(3):hover { + border: 1px solid #4caf50; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(4):hover { + border: 1px solid #ba68c8; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(5):hover { + border: 1px solid #ff4081; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(6):hover { + border: 1px solid #ffca28; + transform: translateY(-2px); + } + + [data-theme='dark'] .dev-sdk-card:nth-child(7):hover { + border: 1px solid #ff9800; + transform: translateY(-2px); } .dev-sdk-card-header { @@ -125,42 +201,41 @@ Temporal SDKs provide the foundation for building reliable distributed applicati align-items: flex-start; width: 100%; margin-bottom: 0.75rem; - gap: 1rem; + gap: 0.75rem; } .dev-sdk-card-header h2 { margin: 0; - font-size: 1.75rem; - font-weight: 300; + font-size: 1.2rem; + font-weight: 400; color: var(--ifm-color-emphasis-900); line-height: 1; flex: 1; } .dev-sdk-card-header img { - width: 48px; - height: 48px; + width: 32px; + height: 32px; flex-shrink: 0; } .dev-sdk-card-links { display: flex; flex-direction: column; - gap: 0.75rem; + gap: 0.5rem; position: absolute; bottom: 0; - left: 1.25rem; - padding-bottom: 1.25rem; + left: 1rem; + padding-bottom: 1rem; } .dev-sdk-card-links a { color: #CACBF9; text-decoration: none; - font-size: 1rem; + font-size: 0.85rem; font-family: var(--ifm-font-family-base); - line-height: 1; + line-height: 1.2; transition: color 0.15s ease; - position: relative; } [data-theme='light'] .dev-sdk-card-links a { @@ -175,27 +250,6 @@ Temporal SDKs provide the foundation for building reliable distributed applicati color: var(--ifm-color-primary-darker); } - .dev-sdk-card-links a::after { - content: ''; - position: absolute; - width: 100%; - height: 1px; - bottom: -2px; - left: 0; - background-color: #FFFFFF; - transform: scaleX(0); - transform-origin: bottom right; - transition: transform 0.15s ease; - } - - [data-theme='light'] .dev-sdk-card-links a::after { - background-color: var(--ifm-color-primary-darker); - } - - .dev-sdk-card-links a:hover::after { - transform: scaleX(1); - transform-origin: bottom left; - } @media (max-width: 768px) { .sdk-grid { diff --git a/docs/index.mdx b/docs/index.mdx index 828aadba5b..3078239698 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -707,7 +707,8 @@ hide_table_of_contents: true } h1 { - font-size: 1.5rem; + font-size: a + 1.5rem; } .community-card { From 3d3c7c9329bb95a6cad4c9371bda95efca492aac Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 11 Sep 2025 12:53:47 -0700 Subject: [PATCH 35/38] edits on evaluate page --- docs/evaluate/index.mdx | 73 ++++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 19 deletions(-) diff --git a/docs/evaluate/index.mdx b/docs/evaluate/index.mdx index 76e1eb97f8..09a6425d81 100644 --- a/docs/evaluate/index.mdx +++ b/docs/evaluate/index.mdx @@ -60,24 +60,36 @@ Temporal is a developer-first, open source platform that ensures the successful
-## How does Temporal work? - -Temporal provides durable execution for your applications through its unique architecture. Write your business logic as Workflows and Activities, deploy them to Workers, and let Temporal handle the rest. ## What programming languages are supported? Temporal allows you to develop with durable execution in different languages and multiple languages can be used to build single services, enabling polyglot development. + ## Self-Hosted or Fully-Managed Service Temporal is fully open source. You can self-host the Temporal Service or use Temporal Cloud, our fully-managed SaaS offering. @@ -109,29 +121,52 @@ Temporal is fully open source. You can self-host the Temporal Service or use Tem .sdk-logos { display: flex; flex-wrap: wrap; + gap: 1rem; justify-content: center; - align-items: center; - gap: 2rem; margin: 2rem 0; } + .sdk-logos a { + transition: all 0.2s ease; + border-radius: 8px; + padding: 0.5rem; + display: inline-block; + } + + .sdk-logos a:hover { + transform: translateY(-2px) scale(1.05); + opacity: 0.8; + } + .sdk-logos img { - max-width: 120px; - height: auto; - transition: transform 0.2s ease; + width: 48px; + height: 48px; + display: block; + } + + /* Disable hover effects for pattern cards */ + .pattern-card { + text-decoration: none; + color: inherit; } - .sdk-logos img:hover { - transform: scale(1.05); + .pattern-card:hover { + transform: none !important; + opacity: 1 !important; + box-shadow: none !important; + border-color: initial !important; + text-decoration: none; + color: inherit; } @media (max-width: 768px) { .sdk-logos { - gap: 1.5rem; + gap: 0.75rem; } .sdk-logos img { - max-width: 100px; + width: 30px; + height: 30px; } } `} From e2460e7416ac013edd745c83036f9789aa0a3c8c Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Thu, 11 Sep 2025 12:57:43 -0700 Subject: [PATCH 36/38] remove links --- docs/evaluate/index.mdx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/evaluate/index.mdx b/docs/evaluate/index.mdx index 09a6425d81..19b933ccaa 100644 --- a/docs/evaluate/index.mdx +++ b/docs/evaluate/index.mdx @@ -17,47 +17,47 @@ Temporal is a developer-first, open source platform that ensures the successful ## What problems does Temporal solve? From 060344a4899153efc147cda9e502512dc8e7c68b Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Mon, 15 Sep 2025 17:41:10 -0500 Subject: [PATCH 37/38] cleaning up custom.css --- src/css/custom.css | 71 ---------------------------------------------- 1 file changed, 71 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 5fd8e224e5..7205a923b5 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -860,68 +860,6 @@ h1 { line-height: 120%; } -.main-card { - position: relative; - width: 100%; - border-radius: 20px; - border: 2px solid var(--ifm-link-color); - background-color: var(--ifm-background-color); - padding: 32px; - margin: 12px 0; - text-align: left; - z-index: 2; -} - -.main-card h1 { - font-family: Aeonik; - font-size: 24px; - font-style: normal; - font-weight: 400; - line-height: 110%; -} - -.main-card p { - font-family: Aeonik; - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 120%; -} - -.w-third { - width: 1/3; -} - -.resource-card { - display: flex; - flex-direction: column; - justify-content: space-between; -} - -.resource-img { - border-radius: 9999px; - width: 2.5rem; - min-width: 2.5rem; - height: 2.5rem; - background: linear-gradient(255deg, #444ce7 0%, #b664ff 100%); -} - -.resource-card h1 { - font-size: 20px; - font-style: normal; - font-weight: 500; - line-height: 120%; -} - -.resource-card p { - margin: 0; -} - -.resource-card .author p { - font-size: 14px; - font-style: normal; - line-height: 120%; -} .community-card h1 { font-size: 24px; @@ -1407,17 +1345,8 @@ code { border-radius: 0; text-decoration: none; color: var(--ifm-color); - transition: all 0.3s ease; - cursor: pointer; } -.pattern-card:hover { - transform: translateY(-2px); - box-shadow: 0 8px 24px rgba(68, 76, 231, 0.2); - text-decoration: none; - color: var(--ifm-color); - border-color: var(--ifm-color-primary); -} .pattern-content h3 { font-size: 1.25rem; From 4fc50c3d3da16e5596c69919022acab4a14fc66d Mon Sep 17 00:00:00 2001 From: Jwahir Sundai Date: Tue, 16 Sep 2025 11:47:13 -0500 Subject: [PATCH 38/38] adding security cloud whitepaper --- docs/security.mdx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/security.mdx b/docs/security.mdx index 360355ccda..c90f380163 100644 --- a/docs/security.mdx +++ b/docs/security.mdx @@ -19,23 +19,33 @@ Find security information for your Temporal deployment, whether you're using Tem

Company Security

Learn about Temporal Technologies' general security practices, compliance certifications, and organizational security measures.

- +

Temporal Cloud Security

Explore the security features of our SaaS offering, including mTLS, end-to-end encryption, and enterprise compliance.

-
+

Self-Hosted Security

Discover how to deploy and secure your own Temporal Platform infrastructure with production-ready best practices.

-
+ + + + +
+

Temporal Cloud Security Whitepaper

+

Learn how Temporal Cloud provides provable security by design - orchestrating encrypted workflows without ever accessing your sensitive data.

+
+
+ +