You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 590efff
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: src/content/articles/internal-developer-portal-platform-self-service-actions/index.mdx
+25-14Lines changed: 25 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,20 +16,23 @@ Last month I watched a developer spend three days getting a PostgreSQL database.
16
16
17
17
And yet the outcome was identical to not having a portal at all - the same tickets, the same meetings, the same waiting.
18
18
19
-
That's the portal-versus-platform distinction that trips up most organizations. A portal __indexes__ things: it aggregates links, surfaces documentation, shows who owns what. A platform __does__ things: it provisions infrastructure, creates repositories, grants access. The portal tells you how to request a database. The platform gives you a database.
19
+
That's the portal-versus-platform distinction that trips up most organizations. A portal _indexes_ things: it aggregates links, surfaces documentation, shows who owns what. A platform _does_ things: it provisions infrastructure, creates repositories, grants access. The portal tells you how to request a database. The platform gives you a database.
20
+
21
+
<Highlighter>Self-service actions are what transform a directory into a platform.</Highlighter> Without them, you've built a prettier wiki.
20
22
21
23
<Callouttype="warning">
22
24
If your "platform" requires developers to read documentation and file tickets to get things done, you've built a directory, not a platform. Platforms execute workflows. Directories point to workflows that humans execute.
23
25
</Callout>
24
26
25
-
Self-service actions are what transform a directory into a platform. Without them, you've built a prettier wiki.
26
-
27
27
## The Portal Maturity Model
28
28
29
29
Most internal developer portals evolve through predictable stages. Understanding where you are helps clarify where to invest next - and where most organizations get stuck.
30
30
31
31
<List
32
-
variant="check-icons-list"
32
+
variant="chevron-list"
33
+
classes={{
34
+
wrapper: "sm:ml-6 sm:mr-12 mb-6",
35
+
}}
33
36
items={[
34
37
{
35
38
lead: "Level 1: Directory.",
@@ -51,7 +54,11 @@ Most internal developer portals evolve through predictable stages. Understanding
51
54
/>
52
55
53
56
<Table
54
-
variant="vertical-column-delineation-table"
57
+
variant="grid-and-accent-header-table"
58
+
fullWidth={false}
59
+
classes={{
60
+
tbody: '!text-content',
61
+
}}
55
62
content={{
56
63
figure: "Portal maturity levels.",
57
64
thead: {
@@ -158,7 +165,7 @@ The YAML is straightforward, but the design decisions matter. Notice the sensibl
158
165
Five principles separate good actions from frustrating ones.
159
166
160
167
<List
161
-
variant="check-icons-list"
168
+
variant="numbered-with-background-list"
162
169
items={[
163
170
{
164
171
lead: "Obvious outcomes.",
@@ -191,24 +198,28 @@ The best self-service actions feel like filling out a form to order something on
191
198
192
199
Approvals are where self-service platforms regress into ticket systems. The instinct is understandable - production changes are risky, expensive resources need oversight, compliance requires audit trails. But if every request routes through a manual approval queue, you've just built Jira with a different skin.
193
200
194
-
The solution is __policy-based approval routing__: define rules that auto-approve low-risk requests while routing high-risk ones to the right approvers. Most requests should flow through automatically. Approvals become the exception, not the rule.
201
+
The solution is _policy-based approval routing_: define rules that auto-approve low-risk requests while routing high-risk ones to the right approvers. Most requests should flow through automatically. Approvals become the exception, not the rule.
195
202
196
203
The dimensions that typically matter:
197
204
198
205
<List
199
-
variant="check-icons-list"
206
+
variant="badge-list"
207
+
classes={{
208
+
titleClass: "block w-full text-center",
209
+
wrapper: "sm:ml-2 mb-6",
210
+
}}
200
211
items={[
201
212
{
202
-
lead: "Environment-based:",
203
-
text: "dev auto-approves, production needs sign-off",
213
+
title: "Environment-based:",
214
+
lead: "Dev auto-approves, production needs sign-off",
204
215
},
205
216
{
206
-
lead: "Cost-based:",
207
-
text: "under $100/month auto-approves, over $500 needs finance",
217
+
title: "Cost-based:",
218
+
lead: "Under $100/month auto-approves, over $500 needs finance",
208
219
},
209
220
{
210
-
lead: "Risk-based:",
211
-
text: "standard operations auto-approve, IAM changes need security review",
221
+
title: "Risk-based:",
222
+
lead: "Standard operations auto-approve, IAM changes need security review",
0 commit comments