-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
203 lines (191 loc) · 7.6 KB
/
index.html
File metadata and controls
203 lines (191 loc) · 7.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
---
layout: default
title: Open Source Tools & API Documentation
description: Open source tools, technical writing, and API documentation from BuiltFast.
hero: home
---
<!-- Quick Links Row -->
<section class="py-8 border-y border-subtle bg-elevated">
<div class="max-w-7xl mx-auto px-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<!-- Open Source -->
<a href="/oss/" class="card p-5 hover:border-emphasis group">
<div class="flex items-start gap-3">
{% lucide_icon "box" class="icon-md text-cyan shrink-0 mt-0.5" %}
<div>
<h3 class="text-primary font-medium mb-1 group-hover:text-cyan transition-colors">Open Source</h3>
<p class="text-sm text-muted">Tools and libraries we build and maintain.</p>
</div>
</div>
</a>
<!-- Blog -->
<a href="/blog/" class="card p-5 hover:border-emphasis group">
<div class="flex items-start gap-3">
{% lucide_icon "pen-line" class="icon-md text-orange shrink-0 mt-0.5" %}
<div>
<h3 class="text-primary font-medium mb-1 group-hover:text-cyan transition-colors">Blog</h3>
<p class="text-sm text-muted">Technical writing on hosting, infrastructure, and PHP.</p>
</div>
</div>
</a>
<!-- Vector Pro -->
<a href="/docs/getting-started/" class="card p-5 hover:border-emphasis group">
<div class="flex items-start gap-3">
{% lucide_icon "terminal" class="icon-md text-green-500 shrink-0 mt-0.5" %}
<div>
<h3 class="text-primary font-medium mb-1 group-hover:text-cyan transition-colors">Vector Pro</h3>
<p class="text-sm text-muted">API docs for our serverless WordPress platform.</p>
</div>
</div>
</a>
</div>
</div>
</section>
<!-- Open Source Section -->
<section id="open-source" class="py-16 md:py-20">
<div class="max-w-7xl mx-auto px-6">
{% include components/section-header.html
label="// open source"
title="Tools we've built and use in production."
link_url="/oss/"
link_text="View all"
%}
{% assign projects = site.oss | sort: "date" | reverse %}
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
{% assign count = 0 %}
{% for project in projects %}
{% unless project.tags contains 'vector-pro' %}
{% if count < 4 %}
{% include components/project-card.html project=project %}
{% assign count = count | plus: 1 %}
{% endif %}
{% endunless %}
{% endfor %}
</div>
</div>
</section>
<!-- Blog Section -->
<section id="blog" class="py-16 md:py-20 border-t border-subtle">
<div class="max-w-7xl mx-auto px-6">
{% include components/section-header.html
label="// blog"
title="From the Blog"
link_url="/blog/"
link_text="View all posts"
%}
{% assign recent_posts = site.posts | slice: 0, 5 %}
{% if recent_posts.size > 0 %}
<div>
{% for post in recent_posts %}
<a href="{{ post.url }}" class="blog-row">
<div class="blog-row-date">
<time datetime="{{ post.date | date: '%Y-%m-%d' }}">{{ post.date | date: "%b %d" }}</time>
<span class="blog-row-year">{{ post.date | date: "%Y" }}</span>
</div>
<span class="text-primary blog-title transition-colors">{{ post.title }}</span>
</a>
{% endfor %}
</div>
{% else %}
<p class="text-muted py-8">No posts yet. Check back soon.</p>
{% endif %}
</div>
</section>
<!-- Vector Pro Callout -->
<section id="vector-pro" class="py-16 md:py-20 border-t border-subtle">
<div class="max-w-7xl mx-auto px-6">
{% include components/section-header.html
label="// api"
title="Vector Pro"
link_url="/api/"
link_text="API Reference"
%}
<!-- Hero card with dot grid -->
<div class="vp-hero-card">
<div class="vp-hero-bg"></div>
<div class="vp-hero-content">
<p class="text-secondary mb-5 max-w-xl">Serverless WordPress hosting on AWS Lambda. Provision sites, manage deployments, and configure infrastructure through a REST API.</p>
<div class="vp-base-url">
<span class="vp-base-url-label">Base URL</span>
<code class="vp-base-url-value">api.builtfast.com/api/v1/vector</code>
</div>
</div>
</div>
<!-- Info grid -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-px bg-[var(--border-subtle)] border border-[var(--border-subtle)] rounded-lg overflow-hidden mt-6">
<!-- Quick Start -->
<div class="bg-base p-5">
<div class="mb-3">
<span class="text-sm font-semibold text-primary">Quick Start</span>
</div>
<div class="space-y-2 text-sm">
<div class="flex items-center gap-2">
<span class="api-step-num">1</span>
<span class="text-muted">Create site</span>
<code class="vp-method-badge post">POST</code>
<code class="vp-endpoint">/sites</code>
</div>
<div class="flex items-center gap-2">
<span class="api-step-num">2</span>
<span class="text-muted">Upload via SFTP</span>
<code class="vp-sftp">ssh.myvectorsite.com</code>
</div>
<div class="flex items-center gap-2">
<span class="api-step-num">3</span>
<span class="text-muted">Deploy</span>
<code class="vp-method-badge post">POST</code>
<code class="vp-endpoint">/deployments</code>
</div>
</div>
</div>
<!-- Developer Tools -->
<div class="bg-base p-5">
<div class="mb-3">
<span class="text-sm font-semibold text-primary">Developer Tools</span>
</div>
<div class="space-y-2">
<a href="/oss/vector-cli/" class="vp-tool-link">
{% lucide_icon "terminal" class="icon-sm" %}
<span>Vector CLI</span>
</a>
<a href="/api/openapi/" class="vp-tool-link">
{% lucide_icon "file-json" class="icon-sm" %}
<span>OpenAPI Spec</span>
</a>
<a href="/api/postman/" class="vp-tool-link">
{% lucide_icon "rocket" class="icon-sm" %}
<span>Postman Collection</span>
</a>
</div>
</div>
<!-- SDKs -->
<div class="bg-base p-5">
<div class="mb-3">
<span class="text-sm font-semibold text-primary">SDKs</span>
</div>
<div class="space-y-2">
<div class="vp-sdk-row">
<span class="vp-sdk-label">PHP</span>
<code class="vp-sdk-cmd">composer r built-fast/vector-pro-sdk</code>
<a href="/oss/vector-pro-sdk-php/" class="vp-sdk-link" aria-label="PHP SDK documentation">
{% lucide_icon "link" class="icon-sm" %}
</a>
<button class="copy-btn" data-copy="composer require built-fast/vector-pro-sdk" aria-label="Copy PHP install command">
{% lucide_icon "copy" class="icon-sm" %}
</button>
</div>
<div class="vp-sdk-row">
<span class="vp-sdk-label">Node</span>
<code class="vp-sdk-cmd">npm i @built-fast/vector-pro-sdk</code>
<a href="/oss/vector-pro-sdk-node/" class="vp-sdk-link" aria-label="Node SDK documentation">
{% lucide_icon "link" class="icon-sm" %}
</a>
<button class="copy-btn" data-copy="npm install @built-fast/vector-pro-sdk" aria-label="Copy Node install command">
{% lucide_icon "copy" class="icon-sm" %}
</button>
</div>
</div>
</div>
</div>
</div>
</section>